summaryrefslogtreecommitdiff
path: root/assets/js/src
diff options
context:
space:
mode:
Diffstat (limited to 'assets/js/src')
-rw-r--r--assets/js/src/App.js15
-rw-r--r--assets/js/src/Popover.js47
-rw-r--r--assets/js/src/Project.js10
-rw-r--r--assets/js/src/Sidebar.js25
-rw-r--r--assets/js/src/Task.js11
-rw-r--r--assets/js/src/Tooltip.js15
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>';