summaryrefslogtreecommitdiff
path: root/assets/js/src/BoardColumnScrolling.js
diff options
context:
space:
mode:
Diffstat (limited to 'assets/js/src/BoardColumnScrolling.js')
-rw-r--r--assets/js/src/BoardColumnScrolling.js85
1 files changed, 85 insertions, 0 deletions
diff --git a/assets/js/src/BoardColumnScrolling.js b/assets/js/src/BoardColumnScrolling.js
new file mode 100644
index 00000000..e637180d
--- /dev/null
+++ b/assets/js/src/BoardColumnScrolling.js
@@ -0,0 +1,85 @@
+Kanboard.BoardColumnScrolling = function(app) {
+ this.app = app;
+};
+
+Kanboard.BoardColumnScrolling.prototype.execute = function() {
+ if (this.app.hasId("board")) {
+ this.render();
+
+ $(window).on("load", this.render);
+ $(window).resize(this.render);
+ }
+};
+
+Kanboard.BoardColumnScrolling.prototype.listen = function() {
+ var self = this;
+
+ $(document).on('click', ".filter-toggle-height", function(e) {
+ e.preventDefault();
+ self.toggle();
+ });
+};
+
+Kanboard.BoardColumnScrolling.prototype.onBoardRendered = function() {
+ this.render();
+};
+
+Kanboard.BoardColumnScrolling.prototype.toggle = function() {
+ var scrolling = localStorage.getItem("column_scroll");
+
+ if (scrolling == undefined) {
+ scrolling = 1;
+ }
+
+ localStorage.setItem("column_scroll", scrolling == 0 ? 1 : 0);
+ this.render();
+};
+
+Kanboard.BoardColumnScrolling.prototype.render = function() {
+ var taskList = $(".board-task-list");
+ var rotationWrapper = $(".board-rotation-wrapper");
+ var filterMax = $(".filter-max-height");
+ var filterMin = $(".filter-min-height");
+
+ if (localStorage.getItem("column_scroll") == 0) {
+ var height = 80;
+
+ filterMax.show();
+ filterMin.hide();
+ rotationWrapper.css("min-height", '');
+
+ taskList.each(function() {
+ var columnHeight = $(this).height();
+
+ if (columnHeight > height) {
+ height = columnHeight;
+ }
+ });
+
+ taskList.css("min-height", height);
+ taskList.css("height", '');
+ }
+ else {
+
+ filterMax.hide();
+ filterMin.show();
+
+ if ($(".board-swimlane").length > 1) {
+ taskList.each(function() {
+ if ($(this).height() > 500) {
+ $(this).css("height", 500);
+ }
+ else {
+ $(this).css("min-height", 320); // Height of the dropdown menu
+ rotationWrapper.css("min-height", 320);
+ }
+ });
+ }
+ else {
+ var height = $(window).height() - 170;
+
+ taskList.css("height", height);
+ rotationWrapper.css("min-height", height);
+ }
+ }
+};