kaka = function(){ var self = this; self.init = function(){ self.bindPlugin(); } self.bindPlugin = function(){ $('[data-plugin]').each(function(idx){ var el = $(this); var data = $(this).data(); var fa = data.plugin.match(/\-(\w)/g); if (fa) { for(x in fa) { var funcName = data.plugin.replace(fa[x], fa[x].toUpperCase()).replace('-',''); var func = eval('self.'+funcName); } } else { func = eval('self.'+data.plugin); } func(el, data); }); $('[data-selected]').each(function(idx){ var v = $(this).data('selected'); $('option', this).each(function(){ if ($(this).val()==v) { $(this).prop('selected', 1); } }) }); } self.validator = function(el, opts) { seajs.use(['/assets/js/kaka/libs/kaka.validator.js'], function(){ new kaka.validator(el, opts); }); } self.datetimePicker = function(el, opts) { $(el).data('type', 'datetime'); self.datePicker(el, opts); } self.datePicker = function(el, opts){ seajs.use(['/assets/js/datetime/bootstrap-datetimepicker.min.css', '/assets/js/datetime/bootstrap-datetimepicker.min.js'], function(){ seajs.use(['/assets/js/datetime/locales/bootstrap-datetimepicker.zh-CN.js'], function(){ var defaults = { format: 'yyyy/mm/dd', language: 'zh-CN', weekStart: 1, todayBtn: 1, autoclose: 1, minView: 2, todayHighlight: 1, startView: 2, forceParse: 0, showMeridian: 0 }; opts = $.extend(true, defaults, opts); switch (opts.type) { case 'datetime': opts.format = 'yyyy/mm/dd hh:ii'; opts.minView = 0; opts.minuteStep = 5; break; case 'datehour': opts.format = 'yyyy/mm/dd hh:00'; opts.minView = 1; break; } $(el).datetimepicker(opts); }); }); } self.chkGroup = function(el, opts){ $('[role=chk-all]', el).unbind('click'); $('[role=chk-all]', el).bind('click', function(){ var chk = $(this).is(":checked") ? true : false; $('[role=chk-item]', el).prop('checked', chk); }); $('[role=chk-item]', el).unbind('click'); $('[role=chk-item]', el).bind('click', function(){ var chk = true; $('[role=chk-item]', el).each(function(){ if (!$(this).is(":checked")) chk = false; }); $('[role=chk-all]', el).prop('checked', chk); }); } self.editor = function(el, opts){ seajs.use(['/assets/js/kindeditor/kindeditor.sea.js'], function(editor){ var defaults = { uploadJson : '/misc.php?act=upload&token='+opts.token, filterMode : false, themeType : 'bootstrap', cssPath : '/assets/css/richtext.css', bodyClass: 'richtext', width: '100%', minWidth : 450, minHeight: 360, fontSizeTable : ['9px', '10px', '12px', '14px', '16px', '18px', '24px', '32px', '38px', '42px'], items : [ 'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image', 'multiimage', 'flash', 'media', 'insertfile', 'table', /*'hr', 'emoticons',*/ 'baidumap', 'pagebreak', 'anchor', 'link', 'unlink', '/', 'cut', 'copy', 'paste', 'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript', 'superscript', '|', 'clearhtml', 'quickformat', /*'selectall', */'preview', 'print', 'template', 'code', 'source', 'fullscreen', ], afterBlur: function () { this.sync(); } } opts = $.extend(true, defaults, opts); editor.create(el, opts); }); } self.codeEditor = function(el, opts){ var mode = $(el).data('mode'); el.hide(); seajs.use(['/assets/js/ace/ace.sea.js'], function(ace){ var domId = 'ace-'+$(el).index(); var editorDom = '
'; $(editorDom).insertAfter(el); var editor = ace.edit(domId); editor.getSession().setValue($(el).val()); //editor.setTheme("ace/theme/twilight"); editor.getSession().setMode('ace/mode/'+mode); editor.getSession().on('change', function(e) { var val = editor.getSession().getValue(); $(el).val(val); }); }); } self.imgSelector = function(el, opts) { var id = 'img-selector'; var limit = $(el).data('limit'); var idx = $(el).index(); var ipt = $(el).data('ipt'); var ref = $(el).data('ref')?$(el).data('ref'):0; var dom = $('[data-ipt="'+ipt+'"]>.sui-img-selector-box'); var url = '/?module=admincp&controller=image&action=selector&ipt='+ipt+'&ref='+ref+'&limit='+limit+'&idx='+idx; var val = $('.sui-img-value', el).html(); var files = new Array(); $.applyImage = function(file, ipt, DOM) { var tpl = '' + '