This commit is contained in:
2019-03-13 16:03:59 +08:00
commit ca2f3f4822
224 changed files with 56136 additions and 0 deletions

View File

@@ -0,0 +1,104 @@
/*!
* ZUI: 看板 - v1.8.1 - 2018-01-18
* http://zui.sexy
* GitHub: https://github.com/easysoft/zui.git
* Copyright (c) 2018 cnezsoft.com; Licensed MIT
*/
.board-item {
padding: 6px 10px;
margin-bottom: 5px;
background: #fff;
border: 1px solid #ddd;
-webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, .05);
box-shadow: 0 1px 0 rgba(0, 0, 0, .05);
-webkit-transition: all .4s cubic-bezier(.175, .885, .32, 1);
-o-transition: all .4s cubic-bezier(.175, .885, .32, 1);
transition: all .4s cubic-bezier(.175, .885, .32, 1);
}
.board-item:hover {
-webkit-box-shadow: 0 1px 1 rgba(0, 0, 0, .1);
box-shadow: 0 1px 1 rgba(0, 0, 0, .1);
}
.board-item.board-item-empty {
display: none;
color: #808080;
border-style: dashed;
}
.board-item.board-item-shadow {
display: none;
padding: 0;
background: #ddd;
border: none;
border-color: #ddd;
-webkit-box-shadow: inset 0 0 4px rgba(0, 0, 0, .1);
box-shadow: inset 0 0 4px rgba(0, 0, 0, .1);
-webkit-transition: all .4s cubic-bezier(.175, .885, .32, 1);
-o-transition: all .4s cubic-bezier(.175, .885, .32, 1);
transition: all .4s cubic-bezier(.175, .885, .32, 1);
}
.board-item.drag-shadow {
width: 250px;
cursor: move;
background-color: #fff;
border-color: #c4c4c4;
-webkit-box-shadow: 1px 1px 15px rgba(0, 0, 0, .25);
box-shadow: 1px 1px 15px rgba(0, 0, 0, .25);
opacity: .9;
}
.board-item.drag-from {
background-color: #ebf2f9;
}
.board-list .board-item:last-child {
margin-bottom: 0;
}
.board {
float: left;
width: 250px;
margin-right: 10px;
}
.board.drop-in-empty .board-item-empty {
height: 0;
padding: 0;
margin: 0;
overflow: hidden;
border: transparent;
}
.board:last-child {
margin-right: 0;
}
.board > .panel-body {
padding: 5px;
background: #f1f1f1;
}
.boards:before,
.boards:after {
/* 1 */
display: table;
content: " ";
/* 2 */
}
.boards:after {
clear: both;
}
.boards.dragging .board.drop-in {
border-color: #c4c4c4;
-webkit-box-shadow: 1px 1px 15px rgba(0, 0, 0, .25);
box-shadow: 1px 1px 15px rgba(0, 0, 0, .25);
}
.boards.dragging .board.drop-in .board-item-shadow {
display: block;
}
.boards.dragging .board .board-item.board-item-empty {
display: block;
}
.boards.dragging .board-item.disable-drop {
display: none;
}
.boards.drop-in .board-item.drag-from {
height: 0;
padding: 0;
margin: 0;
overflow: hidden;
border: transparent;
}

View File

@@ -0,0 +1,128 @@
/*!
* ZUI: 看板 - v1.8.1 - 2018-01-18
* http://zui.sexy
* GitHub: https://github.com/easysoft/zui.git
* Copyright (c) 2018 cnezsoft.com; Licensed MIT
*/
/* ========================================================================
* ZUI: boards.js
* http://zui.sexy
* ========================================================================
* Copyright (c) 2014-2016 cnezsoft.com; Licensed MIT
* ======================================================================== */
(function($) {
'use strict';
if(!$.fn.droppable) throw new Error('Droppable requires for boards');
var Boards = function(element, options) {
this.$ = $(element);
this.options = this.getOptions(options);
this.getLang();
this.init();
};
Boards.DEFAULTS = {
// lang: null,
langs: {
'zh_cn': {
append2end: '移动到末尾'
},
'zh_tw': {
append2end: '移动到末尾'
},
'en': {
append2end: 'Move to the end.'
}
}
}; // default options
Boards.prototype.getOptions = function(options) {
options = $.extend({lang: $.zui.clientLang()}, Boards.DEFAULTS, this.$.data(), options);
return options;
};
Boards.prototype.getLang = function() {
var options = this.options;
this.lang = options.langs[options.lang] || options.langs[Boards.DEFAULTS.lang];
};
Boards.prototype.init = function() {
var idSeed = 1;
var lang = this.lang;
this.$.find('.board-item:not(".disable-drop"), .board:not(".disable-drop")').each(function() {
var $this = $(this);
if($this.attr('id')) {
$this.attr('data-id', $this.attr('id'));
} else if(!$this.attr('data-id')) {
$this.attr('data-id', 'board' + (idSeed++));
}
if($this.hasClass('board')) {
$this.find('.board-list').append('<div class="board-item board-item-empty"><i class="icon-plus"></i> {append2end}</div>'.format(lang))
.append('<div class="board-item board-item-shadow"></div>'.format(lang));
}
});
this.bind();
};
Boards.prototype.bind = function(items) {
var $boards = this.$,
setting = this.options;
$boards.droppable($.extend({
before: setting.before,
target: '.board-item:not(".disable-drop, .board-item-shadow")',
flex: true,
selector: '.board-item:not(".disable-drop, .board-item-shadow")',
start: function(e) {
$boards.addClass('dragging').find('.board-item-shadow').height(e.element.outerHeight());
},
drag: function(e) {
$boards.find('.board.drop-in-empty').removeClass('drop-in-empty');
if(e.isIn) {
var board = e.target.closest('.board').addClass('drop-in');
var shadow = board.find('.board-item-shadow');
var target = e.target;
$boards.addClass('drop-in').find('.board.drop-in').not(board).removeClass('drop-in');
shadow.insertBefore(target);
board.toggleClass('drop-in-empty', target.hasClass('board-item-empty'));
}
},
drop: function(e) {
if(e.isNew) {
var result;
if($.isFunction(setting['drop'])) {
result = setting['drop'](e);
}
if(result !== false) e.element.insertBefore(e.target);
}
},
finish: function() {
$boards.removeClass('dragging').removeClass('drop-in').find('.board.drop-in').removeClass('drop-in');
}
}, setting.droppable));
};
$.fn.boards = function(option) {
return this.each(function() {
var $this = $(this);
var data = $this.data('zui.boards');
var options = typeof option == 'object' && option;
if(!data) $this.data('zui.boards', (data = new Boards(this, options)));
if(typeof option == 'string') data[option]();
});
};
$.fn.boards.Constructor = Boards;
}(jQuery));

View File

@@ -0,0 +1,6 @@
/*!
* ZUI: 看板 - v1.8.1 - 2018-01-18
* http://zui.sexy
* GitHub: https://github.com/easysoft/zui.git
* Copyright (c) 2018 cnezsoft.com; Licensed MIT
*/.board-item{padding:6px 10px;margin-bottom:5px;background:#fff;border:1px solid #ddd;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.05);box-shadow:0 1px 0 rgba(0,0,0,.05);-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}.board-item:hover{-webkit-box-shadow:0 1px 1 rgba(0,0,0,.1);box-shadow:0 1px 1 rgba(0,0,0,.1)}.board-item.board-item-empty{display:none;color:grey;border-style:dashed}.board-item.board-item-shadow{display:none;padding:0;background:#ddd;border:none;border-color:#ddd;-webkit-box-shadow:inset 0 0 4px rgba(0,0,0,.1);box-shadow:inset 0 0 4px rgba(0,0,0,.1);-webkit-transition:all .4s cubic-bezier(.175,.885,.32,1);-o-transition:all .4s cubic-bezier(.175,.885,.32,1);transition:all .4s cubic-bezier(.175,.885,.32,1)}.board-item.drag-shadow{width:250px;cursor:move;background-color:#fff;border-color:#c4c4c4;-webkit-box-shadow:1px 1px 15px rgba(0,0,0,.25);box-shadow:1px 1px 15px rgba(0,0,0,.25);opacity:.9}.board-item.drag-from{background-color:#ebf2f9}.board-list .board-item:last-child{margin-bottom:0}.board{float:left;width:250px;margin-right:10px}.board.drop-in-empty .board-item-empty{height:0;padding:0;margin:0;overflow:hidden;border:transparent}.board:last-child{margin-right:0}.board>.panel-body{padding:5px;background:#f1f1f1}.boards:after,.boards:before{display:table;content:" "}.boards:after{clear:both}.boards.dragging .board.drop-in{border-color:#c4c4c4;-webkit-box-shadow:1px 1px 15px rgba(0,0,0,.25);box-shadow:1px 1px 15px rgba(0,0,0,.25)}.boards.dragging .board.drop-in .board-item-shadow{display:block}.boards.dragging .board .board-item.board-item-empty{display:block}.boards.dragging .board-item.disable-drop{display:none}.boards.drop-in .board-item.drag-from{height:0;padding:0;margin:0;overflow:hidden;border:transparent}

View File

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