7 lines
2.3 KiB
JavaScript
7 lines
2.3 KiB
JavaScript
/*!
|
|
* ZUI: 看板 - v1.9.2 - 2020-07-09
|
|
* http://openzui.com
|
|
* GitHub: https://github.com/easysoft/zui.git
|
|
* Copyright (c) 2020 cnezsoft.com; Licensed MIT
|
|
*/
|
|
!function(t){"use strict";if(!t.fn.droppable)throw new Error("Droppable requires for boards");var a="zui.boards",i=function(a,i){this.$=t(a),this.options=this.getOptions(i),this.getLang(),this.init()};i.DEFAULTS={lang:"en",langs:{zh_cn:{append2end:"移动到末尾"},zh_tw:{append2end:"移动到末尾"},en:{append2end:"Move to the end."}}},i.prototype.getOptions=function(a){return a=t.extend({},i.DEFAULTS,this.$.data(),a)},i.prototype.getLang=function(){var i=this.options;this.langName=i.lang||t.zui.clientLang(),this.lang=t.zui.getLangData(a,this.langName,i.langs)},i.prototype.init=function(){var a=1,i=this.lang;this.$.find('.board-item:not(".disable-drop"), .board:not(".disable-drop")').each(function(){var o=t(this);o.attr("id")?o.attr("data-id",o.attr("id")):o.attr("data-id")||o.attr("data-id","board"+a++),o.hasClass("board")&&o.find(".board-list").append('<div class="board-item board-item-empty"><i class="icon-plus"></i> {append2end}</div>'.format(i)).append('<div class="board-item board-item-shadow"></div>'.format(i))}),this.bind()},i.prototype.bind=function(a){var i=this.$,o=this.options;i.droppable(t.extend({before:o.before,target:'.board-item:not(".disable-drop, .board-item-shadow")',flex:!0,selector:'.board-item:not(".disable-drop, .board-item-shadow")',start:function(t){i.addClass("dragging").find(".board-item-shadow").height(t.element.outerHeight())},drag:function(t){if(i.find(".board.drop-in-empty").removeClass("drop-in-empty"),t.isIn){var a=t.target.closest(".board").addClass("drop-in"),o=a.find(".board-item-shadow"),e=t.target;i.addClass("drop-in").find(".board.drop-in").not(a).removeClass("drop-in"),o.insertBefore(e),a.toggleClass("drop-in-empty",e.hasClass("board-item-empty"))}},drop:function(a){if(a.isNew){var i;t.isFunction(o.drop)&&(i=o.drop(a)),i!==!1&&a.element.insertBefore(a.target)}},finish:function(){i.removeClass("dragging").removeClass("drop-in").find(".board.drop-in").removeClass("drop-in")}},o.droppable))},t.fn.boards=function(o){return this.each(function(){var e=t(this),n=e.data(a),r="object"==typeof o&&o;n||e.data(a,n=new i(this,r)),"string"==typeof o&&n[o]()})},t.fn.boards.Constructor=i}(jQuery); |