示例#1
0
        it("show/hide 事件顺利触发", function () {

            var hideCall = jasmine.createSpy(),
                showCall = jasmine.createSpy();

            o.show();

            o.on('hide', function () {
                hideCall();
            });
            o.on('show', function () {
                showCall();
            });

            o.hide();
            o.show();
            expect(hideCall).toHaveBeenCalled();
            expect(showCall).toHaveBeenCalled();
            o.detach("show hide");

        });
示例#2
0
KISSY.add('editor-plugins/lib/draft',["editor","json","event/dom","./local-storage","overlay","./menubutton","util","node"],function(S ,require, exports, module) {function e(e,t,n){for(e+="";e.length<t;)e=n+e;return e}function t(t){return"number"==typeof t&&(t=new Date(t)),t instanceof Date?[t.getFullYear(),"-",e(t.getMonth()+1,2,"0"),"-",e(t.getDate(),2,"0")," ",e(t.getHours(),2,"0"),":",e(t.getMinutes(),2,"0"),":",e(t.getSeconds(),2,"0")].join(""):t}function n(e,t){this.editor=e,this.config=t,this._init()}function r(e,t){var r=new n(e,t);e.on("destroy",function(){r.destroy()})}function a(e){this.config=e||{}}var i=require("editor"),o=require("json"),l=require("event/dom"),s=require("./local-storage"),d=require("overlay"),f=require("./menubutton"),p=require("util"),c=require("node"),u=5,h=5,v="ks-editor-draft-save20110503",g=i.Utils.addRes,m=i.Utils.destroyRes;p.augment(n,{_getSaveKey:function(){var e=this,t=e.config;return t.draft&&t.draft.saveKey||v},_getDrafts:function(){var e=this;if(!e.drafts){var t=s.getItem(e._getSaveKey()),n=[];t&&(n=s===window.localStorage?o.parse(p.urlDecode(t)):t),e.drafts=n}return e.drafts},_init:function(){var e=this,t=e.editor,n=t.get("prefixCls"),r=t.get("statusBarEl"),a=this.config;a.draft=a.draft||{},e.draftInterval=a.draft.interval=a.draft.interval||h,e.draftLimit=a.draft.limit=a.draft.limit||u;var o=c('<div class="'+n+'editor-draft"><span class="'+n+'editor-draft-title">内容正文每'+a.draft.interval+"分钟自动保存一次。</span></div>").appendTo(r);e.timeTip=c('<span class="'+n+'editor-draft-time"/>').appendTo(o);var s=c(p.substitute('<a href="#" onclick="return false;" class="{prefixCls}editor-button {prefixCls}editor-draft-save-btn ks-inline-block" style="vertical-align:middle;padding:1px 9px;"><span class="{prefixCls}editor-draft-save"></span><span>立即保存</span></a>',{prefixCls:n})).unselectable(void 0).appendTo(o),d=new f({render:o,collapseOnClick:!0,width:"100px",prefixCls:n+"editor-",menu:{width:"225px",align:{points:["tr","br"]}},matchElWidth:!1,content:"恢复编辑历史"}).render();e.versions=d,d.on("beforeCollapsedChange",function b(t){t.newValue||(d.detach("beforeCollapsedChange",b),e.sync())}),s.on("click",function(t){e.save(!1),t.halt()}),g.call(e,s),t.get("textarea")[0].form&&!function(){function n(){e.save(!0)}var r=t.get("textarea"),a=r[0].form;l.on(a,"submit",n),g.call(e,function(){l.remove(a,"submit",n)})}();var v=setInterval(function(){e.save(!0)},60*e.draftInterval*1e3);if(g.call(e,function(){clearInterval(v)}),d.on("click",e.recover,e),g.call(e,d),e.holder=o,a.draft.helpHTML){var m=c('<a tabindex="0" hidefocus="hidefocus" class="'+n+'editor-draft-help" title="点击查看帮助" href="javascript:void(\'点击查看帮助 \')">点击查看帮助</a>').unselectable(void 0).appendTo(o);m.on("click",function(){m[0].focus(),e.helpPopup&&e.helpPopup.get("visible")?e.helpPopup.hide():e._prepareHelp()}),m.on("blur",function(){e.helpPopup&&e.helpPopup.hide()}),e.helpBtn=m,g.call(e,m),i.Utils.lazyRun(e,"_prepareHelp","_realHelp")}g.call(e,o)},_prepareHelp:function(){var e=this,t=e.editor,n=t.get("prefixCls"),r=e.config,a=r.draft,o=c(a.helpHTML||""),l="height:0;position:absolute;font-size:0;width:0;border:8px #000 solid;border-color:#000 transparent transparent transparent;border-style:solid dashed dashed dashed;",s=c('<div style="'+l+'border-top-color:#CED5E0;"><div style="'+l+'left:-8px;top:-10px;border-top-color:white;"></div></div>');o.append(s),o.css({border:"1px solid #ACB4BE","text-align":"left"}),e.helpPopup=new d({content:o,prefixCls:n+"editor-",width:o.width()+"px",zIndex:i.baseZIndex(i.ZIndexManager.OVERLAY),mask:!1}).render(),e.helpPopup.get("el").css("border","none"),e.helpPopup.arrow=s},_realHelp:function(){var e=this.helpPopup,t=this.helpBtn,n=e.arrow;e.show();var r=t.offset();e.get("el").offset({left:r.left-e.get("el").width()+17,top:r.top-e.get("el").height()-7}),n.offset({left:r.left-2,top:r.top-8})},disable:function(){this.holder.css("visibility","hidden")},enable:function(){this.holder.css("visibility","")},sync:function(){var e,n,r,a=this,i=a.draftLimit,l=a.timeTip,d=a.versions,f=a._getDrafts();for(f.length>i&&f.splice(0,f.length-i),d.removeItems(!0),e=0;e<f.length;e++)n=f[e],r=(n.auto?"自动":"手动")+"保存于 : "+t(n.date),d.addItem({content:r,value:e});f.length||d.addItem({disabled:!0,content:"尚无历史",value:""}),l.html(r),s.setItem(a._getSaveKey(),s===window.localStorage?encodeURIComponent(o.stringify(f)):f)},save:function(e){var t=this,n=t._getDrafts(),r=t.editor,a=r.getFormatData();a&&(n[n.length-1]&&a===n[n.length-1].content&&(n.length-=1),t.drafts=n.concat({content:a,date:(new Date).getTime(),auto:e}),t.sync())},recover:function(e){var n=this,r=n.editor,a=n._getDrafts(),i=e.target.get("value");window.confirm("确认恢复 "+t(a[i].date)+" 的编辑历史?")&&(r.execCommand("save"),r.setData(a[i].content),r.execCommand("save")),e.halt()},destroy:function(){m.call(this)}}),p.augment(a,{pluginRenderUI:function(e){var t=this.config;s.ready?s.ready(function(){r(e,t)}):r(e,t)}}),module.exports=a;});