diff options
Diffstat (limited to 'assets/js/src')
-rw-r--r-- | assets/js/src/App.js | 15 | ||||
-rw-r--r-- | assets/js/src/Popover.js | 47 | ||||
-rw-r--r-- | assets/js/src/Project.js | 10 | ||||
-rw-r--r-- | assets/js/src/Sidebar.js | 25 | ||||
-rw-r--r-- | assets/js/src/Task.js | 11 | ||||
-rw-r--r-- | assets/js/src/Tooltip.js | 15 |
6 files changed, 68 insertions, 55 deletions
diff --git a/assets/js/src/App.js b/assets/js/src/App.js index 976b4554..cd5df66e 100644 --- a/assets/js/src/App.js +++ b/assets/js/src/App.js @@ -1,7 +1,6 @@ function App() { this.board = new Board(this); this.markdown = new Markdown(); - this.sidebar = new Sidebar(); this.search = new Search(this); this.swimlane = new Swimlane(); this.dropdown = new Dropdown(); @@ -33,7 +32,6 @@ App.prototype.listen = function() { this.project.listen(); this.popover.listen(); this.markdown.listen(); - this.sidebar.listen(); this.tooltip.listen(); this.dropdown.listen(); this.search.listen(); @@ -43,6 +41,19 @@ App.prototype.listen = function() { this.autoComplete(); this.datePicker(); this.focus(); + + $(document).on("click", ".ajax-replace", function(e) { + e.preventDefault(); + var el = $(this); + + $.ajax({ + cache: false, + url: el.attr("href"), + success: function(data) { + el.replaceWith(data); + } + }); + }); }; App.prototype.refresh = function() { diff --git a/assets/js/src/Popover.js b/assets/js/src/Popover.js index 8d72dec8..a5ec647c 100644 --- a/assets/js/src/Popover.js +++ b/assets/js/src/Popover.js @@ -13,7 +13,7 @@ Popover.prototype.open = function(link) { self.app.dropdown.close(); $.get(link, function(content) { - $("body").append('<div id="popover-container"><div id="popover-content">' + content + '</div></div>'); + $("body").prepend('<div id="popover-container"><div id="popover-content">' + content + '</div></div>'); self.app.refresh(); self.router.dispatch(this.app); self.afterOpen(); @@ -55,26 +55,47 @@ Popover.prototype.listen = function() { Popover.prototype.afterOpen = function() { var self = this; - var taskForm = $("#task-form"); + var popoverForm = $("#popover-content .popover-form"); - if (taskForm) { - taskForm.on("submit", function(e) { + // Submit forms with Ajax request + if (popoverForm) { + popoverForm.on("submit", function(e) { e.preventDefault(); $.ajax({ type: "POST", - url: taskForm.attr("action"), - data: taskForm.serialize(), + url: popoverForm.attr("action"), + data: popoverForm.serialize(), success: function(data, textStatus, request) { - if (request.getResponseHeader("X-Ajax-Redirect")) { - window.location = request.getResponseHeader("X-Ajax-Redirect"); - } - else { - $("#popover-content").html(data); - self.afterOpen(); - } + self.afterSubmit(data, request, self); } }); }); } + + // Submit link with Ajax request + $(document).on("click", ".popover-link", function(e) { + e.preventDefault(); + + $.ajax({ + type: "GET", + url: $(this).attr("href"), + success: function(data, textStatus, request) { + self.afterSubmit(data, request, self); + } + }); + }); +}; + +Popover.prototype.afterSubmit = function(data, request, self) { + var redirect = request.getResponseHeader("X-Ajax-Redirect"); + + if (redirect) { + window.location = redirect === 'self' ? window.location.href.split("#")[0] : redirect; + } + else { + $("#popover-content").html(data); + $("#popover-content input[autofocus]").focus(); + self.afterOpen(); + } }; diff --git a/assets/js/src/Project.js b/assets/js/src/Project.js index e2412412..19941f03 100644 --- a/assets/js/src/Project.js +++ b/assets/js/src/Project.js @@ -15,4 +15,14 @@ Project.prototype.listen = function() { }) }); }); + + $('#project-creation-form #form-src_project_id').on('change', function() { + var srcProjectId = $(this).val(); + + if (srcProjectId == 0) { + $(".project-creation-options").hide(); + } else { + $(".project-creation-options").show(); + } + }); }; diff --git a/assets/js/src/Sidebar.js b/assets/js/src/Sidebar.js deleted file mode 100644 index 0794d6b3..00000000 --- a/assets/js/src/Sidebar.js +++ /dev/null @@ -1,25 +0,0 @@ -function Sidebar() { -} - -Sidebar.prototype.expand = function(e) { - e.preventDefault(); - $(".sidebar-container").removeClass("sidebar-collapsed"); - $(".sidebar-collapse").show(); - $(".sidebar h2").show(); - $(".sidebar ul").show(); - $(".sidebar-expand").hide(); -}; - -Sidebar.prototype.collapse = function(e) { - e.preventDefault(); - $(".sidebar-container").addClass("sidebar-collapsed"); - $(".sidebar-expand").show(); - $(".sidebar h2").hide(); - $(".sidebar ul").hide(); - $(".sidebar-collapse").hide(); -}; - -Sidebar.prototype.listen = function() { - $(document).on("click", ".sidebar-collapse", this.collapse); - $(document).on("click", ".sidebar-expand", this.expand); -}; diff --git a/assets/js/src/Task.js b/assets/js/src/Task.js index b3dc1b63..75087a40 100644 --- a/assets/js/src/Task.js +++ b/assets/js/src/Task.js @@ -7,4 +7,15 @@ Task.prototype.listen = function() { $(this).addClass("color-square-selected"); $("#form-color_id").val($(this).data("color-id")); }); + + $(document).on("click", ".assign-me", function(e) { + e.preventDefault(); + + var currentId = $(this).data("current-id"); + var dropdownId = "#" + $(this).data("target-id"); + + if ($(dropdownId + ' option[value=' + currentId + ']').length) { + $(dropdownId).val(currentId); + } + }); }; diff --git a/assets/js/src/Tooltip.js b/assets/js/src/Tooltip.js index 0ec8b268..f3ef55f9 100644 --- a/assets/js/src/Tooltip.js +++ b/assets/js/src/Tooltip.js @@ -48,21 +48,6 @@ Tooltip.prototype.listen = function() { var position = $(_this).tooltip("option", "position"); position.of = $(_this); tooltip.position(position); - - // Toggle subtasks status - $('#tooltip-subtasks a').not(".popover").click(function(e) { - - e.preventDefault(); - e.stopPropagation(); - - if ($(this).hasClass("popover-subtask-restriction")) { - self.app.popover.open($(this).attr('href')); - $(_this).tooltip('close'); - } - else { - $.get($(this).attr('href'), setTooltipContent); - } - }); }); return '<i class="fa fa-spinner fa-spin"></i>'; |