it('setPosition when resize', function(done) { overlay.hide().destroy(); overlay = new Overlay(); var setPosition = sinon.spy(overlay, '_setPosition'); expect(setPosition.called).not.to.be.ok(); overlay.render(); expect(setPosition.callCount).to.be(1); overlay.show(); expect(setPosition.callCount).to.be(2); $(window).resize(); setTimeout(function() { expect(setPosition.callCount).to.be(3); overlay.set("visible", false); $(window).resize(); setTimeout(function () { expect(setPosition.callCount).to.be(3); done(); }, 100); }, 100); });
function showImmediately() { _$jscoverage['/bubble.js'].functionData[9]++; _$jscoverage['/bubble.js'].lineData[185]++; var xy = getXy(bubble); _$jscoverage['/bubble.js'].lineData[186]++; if (visit36_186_1(xy)) { _$jscoverage['/bubble.js'].lineData[187]++; bubble.move(xy[0], xy[1]); _$jscoverage['/bubble.js'].lineData[188]++; var archor = getTopPosition(bubble); _$jscoverage['/bubble.js'].lineData[189]++; if (visit37_189_1(archor)) { _$jscoverage['/bubble.js'].lineData[190]++; xy[1] = archor.get('y') + archor.get('el').outerHeight(); _$jscoverage['/bubble.js'].lineData[191]++; bubble.move(xy[0], xy[1]); } _$jscoverage['/bubble.js'].lineData[193]++; if (visit38_193_1(!bubble.get('visible'))) { _$jscoverage['/bubble.js'].lineData[194]++; bubble.show(); } else { _$jscoverage['/bubble.js'].lineData[196]++; logger.debug('already show by selectionChange'); } } }
it("对齐居中有效", function () { var o = new Overlay({ width: 400, elCls: "popup", resize: { handlers: ["t"] }, content: "render by javascript" }); o.set("align", { points: ['cc', 'cc'] }); o.show(); expect(parseInt(o.get('el').css('left'), 10)) .toBeEqual(Math.ceil((Dom.viewportWidth() - o.get('el').outerWidth()) / 2)); expect(parseInt(o.get('el').css("top"), 10)) .toBeEqual(Math.ceil((Dom.viewportHeight() - o.get('el').outerHeight()) / 2)); o.destroy(); });
store.on("pending", function() { o.get("el").css(css); o.center(); o.show(); setTimeout(function() { store.retrySave() }, 1E3) });
it('set align to null', function() { overlay.hide().destroy(); overlay = new Overlay({ align: null }); var pin = sinon.spy(Position, 'pin'); overlay.show(); expect(pin.called).not.to.be.ok(); });
store.on('pending', function () { o.get('el').css(css); o.center(); o.show(); // 轮训,直到用户允许 setTimeout(function () { store.retrySave(); }, 1000); });
it('setPosition', function() { overlay.hide().destroy(); overlay = new Overlay(); var setPosition = sinon.spy(overlay, '_setPosition'); expect(setPosition.called).not.to.be.ok(); overlay.render(); expect(setPosition.calledOnce).to.be.ok(); overlay.show(); expect(setPosition.calledTwice).to.be.ok(); });
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"); });
function showImmediately() { var xy = getXy(bubble); if (xy) { bubble.move(xy[0], xy[1]); var archor = getTopPosition(bubble); if (archor) { xy[1] = archor.get('y') + archor.get('el').outerHeight(); bubble.move(xy[0], xy[1]); } if (!bubble.get('visible')) { bubble.show(); } } }
store.on('pending', function() { _$jscoverage['/local-storage.js'].functionData[3]++; _$jscoverage['/local-storage.js'].lineData[68]++; o.get('el').css(css); _$jscoverage['/local-storage.js'].lineData[69]++; o.center(); _$jscoverage['/local-storage.js'].lineData[70]++; o.show(); _$jscoverage['/local-storage.js'].lineData[72]++; setTimeout(function() { _$jscoverage['/local-storage.js'].functionData[4]++; _$jscoverage['/local-storage.js'].lineData[73]++; store.retrySave(); }, 1000); });
function showImmediately() { var xy = getXy(bubble); if (xy) { bubble.move(xy[0], xy[1]); var archor = getTopPosition(bubble); if (archor) { xy[1] = archor.get('y') + archor.get('el').outerHeight(); bubble.move(xy[0], xy[1]); } if (!bubble.get('visible')) { bubble.show(); } else { logger.debug('already show by selectionChange'); } } }
function showImmediately() { var xy = getXy(bubble); if(xy) { bubble.move(xy[0], xy[1]); var archor = getTopPosition(bubble); if(archor) { xy[1] = archor.get("y") + archor.get("el").outerHeight(); bubble.move(xy[0], xy[1]) } if(!bubble.get("visible")) { bubble.show() }else { logger.debug("already show by selectionChange") } } }
KISSY.add("editor/plugin/local-storage", ["editor", "overlay", "./flash-bridge"], function(S, require) { var Editor = require("editor"); var Overlay = require("overlay"); var FlashBridge = require("./flash-bridge"); var ie = S.UA.ieMode; if((!ie || ie > 8) && window.localStorage) { return window.localStorage } var swfSrc = Editor.Utils.debugUrl("plugin/local-storage/assets/swfstore.swf?t=" + +new Date); var css = {width:215, border:"1px solid red"}, reverseCss = {width:0, border:"none"}; var o = new Overlay({prefixCls:"ks-editor-", elStyle:{background:"white"}, width:"0px", content:"<h1 style='" + "text-align:center;'>\u8bf7\u70b9\u51fb\u5141\u8bb8</h1>" + "<div class='storage-container'></div>", zIndex:Editor.baseZIndex(Editor.ZIndexManager.STORE_FLASH_SHOW)}); o.render(); o.show(); var store = new FlashBridge({src:swfSrc, render:o.get("contentEl").one(".storage-container"), params:{flashVars:{useCompression:true}}, attrs:{height:138, width:"100%"}, methods:["setItem", "removeItem", "getItem", "setMinDiskSpace", "getValueOf"]}); S.ready(function() { setTimeout(function() { o.center() }, 0) }); store.on("pending", function() { o.get("el").css(css); o.center(); o.show(); setTimeout(function() { store.retrySave() }, 1E3) }); store.on("save", function() { o.get("el").css(reverseCss) }); var oldSet = store.setItem; S.mix(store, {_ke:1, getItem:function(k) { return this["getValueOf"](k) }, retrySave:function() { var self = this; self.setItem(self.lastSave.k, self.lastSave.v) }, setItem:function(k, v) { var self = this; self.lastSave = {k:k, v:v}; oldSet.call(self, k, v) }}); store.on("contentReady", function() { store._ready = 1 }); return store });
Dialog.prototype.show = function(){ var overlay = this._overlay; this.emit('show'); if (overlay) { overlay.show(); this.el.addClass('modal'); } // escape if (!overlay || overlay.closable) this.escapable(); this.el.appendTo('body'); this.el.css({ marginLeft: -(this.el.width() / 2) + 'px' }); this.emit('show'); return this; };
KISSY.add('kg/editor-plugins/1.1.0/local-storage',["editor","overlay","./flash-bridge","util","ua"],function(S ,require, exports, module) { /** * @ignore * localStorage support for ie<8 * @author yiminghe@gmail.com */ var Editor = require('editor'); var Overlay = require('overlay'); var FlashBridge = require('./flash-bridge'); var util = require('util'); var ie = require('ua').ieMode; // 原生或者已经定义过立即返回 // ie 使用 flash 模拟的 localStorage,序列化性能不行 if ((!ie || ie > 8) && window.localStorage) { //原生的立即可用 module.exports = window.localStorage; } else { // 国产浏览器用随机数/时间戳试试 ! 是可以的 var swfSrc = Editor.Utils.debugUrl('plugin/local-storage/assets/swfstore.swf?refresh=' + (+new Date())); var css = { width: 215, border: '1px solid red' }, reverseCss = { width: 0, border: 'none' }; //Dialog 不行 var o = new Overlay({ prefixCls: 'ks-editor-', elStyle: { background: 'white' }, width: '0px', content: '<h1 style="' + 'text-align:center;">请点击允许</h1>' + '<div class="storage-container"></div>', zIndex: Editor.baseZIndex(Editor.ZIndexManager.STORE_FLASH_SHOW) }); o.render(); o.show(); var store = new FlashBridge({ src: swfSrc, render: o.get('contentEl').one('.storage-container'), params: { flashVars: { useCompression: true } }, attrs: { height: 138, width: '100%' }, methods: ['setItem', 'removeItem', 'getItem', 'setMinDiskSpace', 'getValueOf'] }); // 必须在视窗范围内才可以初始化,触发 contentReady 事件 util.ready(function () { setTimeout(function () { o.center(); }, 0); }); store.on('pending', function () { o.get('el').css(css); o.center(); o.show(); // 轮训,直到用户允许 setTimeout(function () { store.retrySave(); }, 1000); }); store.on('save', function () { o.get('el').css(reverseCss); }); var oldSet = store.setItem; util.mix(store, { _ke: 1, getItem: function (k) { return this.getValueOf(k); }, retrySave: function () { var self = this; self.setItem(self.lastSave.k, self.lastSave.v); }, setItem: function (k, v) { var self = this; self.lastSave = {k: k, v: v}; oldSet.call(self, k, v); } }); //非原生,等待flash通知 store.on('contentReady', function () { store._ready = 1; }); /* 'quotaExceededError' 'error' 'save' 'inadequateDimensions' */ module.exports = store; } });
$("#J_uploadImage").click(function(){ if(!$("#photoDialog")[0]){ var html = ""; html += '<div id="photoDialog" class="g-dialog photo-dialog">'; html += '<div class="dialog-content">'; html += '<div class="hd"><h3>上传图片</h3></div>'; html += '<div class="bd clearfix">'; html += '<form id="faceUpload" name="faceUpload" enctype="multipart/form-data" method="post" target="photo-frame" action="/uploadPic/select">'; html += '<div class="photo-row clearfix">'; html += '<input type="button" value="上传图片" class="bbl-btn upload-cover" />'; html += '<input type="file" class="upload-btn" name="filedata" id="J_FilePath" />'; html += '</div>'; html += '<div class="photo-row pt10 pb15">'; html += '<span class="gc6">支持JPG、GIF、PNG格式,且文件小于2M</span>'; html += '</div>'; html += '<div class="photo-row">'; html += '<div class="photo-box">'; html += '<span><img src="/assets/img/ui/blank.gif" id="photo" alt="" /> </span>'; html += '</div>'; html += '</div>'; html += '</form>'; html += '<form class="mt20" id="faceUpload2" name="faceUpload2" enctype="multipart/form-data" method="post" action="/site/doUploadPic">'; html += '<input type="hidden" value="" name="thumb-path" id="thumb-path" />'; html += '<input type="hidden" value="" name="area-x1" id="area-x1" />'; html += '<input type="hidden" value="" name="area-y1" id="area-y1" />'; html += '<input type="hidden" value="" name="area-x2" id="area-x2" />'; html += '<input type="hidden" value="" name="area-y2" id="area-y2" />'; html += '<div class="photo-row face-submit dn">'; html += '<input type="submit" class="bbl-btn submit" value="保存图片"/>'; html += '<span id="J_Waiting" class="ml10 gc6 dn"><img src="/assets/img/ui/loading16.gif">请耐心等待…</span>'; html += '</div>'; html += '</form>'; html += '<iframe style="width:0px;height:0px;padding:0px;" src="" frameborder="0" name="photo-frame"></iframe>'; html += '</div>'; html += '<a class="close" href="javascript:;"></a>'; html += '</div>'; html += '</div>'; // $("body").append(html); uploadOverlay = new Overlay({ template:html, width:450, zIndex: 9999, align: { selfXY: [ "50%", "50%" ], baseXY: [ "50%", "50%" ] } }); uploadOverlay.show(); Mask.set({ backgroundColor:'#000', opacity:0.3 }).show(); }else{ uploadOverlay = new Overlay({ template:'#photoDialog', width: 450, zIndex: 9999, align: { selfXY: [ "50%", "50%" ], baseXY: [ "50%", "50%" ] } }); uploadOverlay.show(); Mask.show() } $("#J_FilePath").change(function(){ $("#faceUpload").submit(); $('#photo').attr("src","/assets/img/ui/loading1.gif"); }); $("#faceUpload2").submit(function(){ $this = $(this); $("#faceUpload2 input[type=submit]")[0].disabled = "disabled"; $("#faceUpload2 input[type=submit]").removeClass("bbl-btn").addClass("disabled"); $("#J_Waiting").show(); $.post($this.attr("action"),$this.serializeArray(),function(data){ $("#J_Waiting").hide(); $("#faceUpload2 input[type=submit]")[0].disabled = ""; $("#faceUpload2 input[type=submit]").removeClass("disabled").addClass("bbl-btn"); if(data.code=="100"){ uploadOverlay.hide() Mask.hide() $("#J_uploadImgShow").attr("src",data.src) $(".site-logo").show() $("#faceUpload")[0].reset(); $("#faceUpload2")[0].reset(); $("#J_uploadImg").val(data.src) $("#faceUpload2 .face-submit").hide(); $.smeite.photoarea.cancelSelection(); } }); return false; }); $("#photoDialog .close").unbind("click").click(function(){ $("#faceUpload")[0].reset(); $("#faceUpload2")[0].reset(); $('#photo').attr("src",""); $("#faceUpload2 .face-submit").hide(); if($.smeite.photoarea!=null){ $.smeite.photoarea.cancelSelection(); } uploadOverlay.hide() Mask.hide() }); });
exports.loading = function() { !maskCount && mask.show(); maskCount++; };
KISSY.add(function(S, require) { _$jscoverage['/local-storage.js'].functionData[0]++; _$jscoverage['/local-storage.js'].lineData[7]++; var Editor = require('editor'); _$jscoverage['/local-storage.js'].lineData[8]++; var Overlay = require('overlay'); _$jscoverage['/local-storage.js'].lineData[9]++; var FlashBridge = require('./flash-bridge'); _$jscoverage['/local-storage.js'].lineData[11]++; var ie = S.UA.ieMode; _$jscoverage['/local-storage.js'].lineData[15]++; if (visit1_15_1((visit2_15_2(!ie || visit3_15_3(ie > 8))) && window.localStorage)) { _$jscoverage['/local-storage.js'].lineData[17]++; return window.localStorage; } _$jscoverage['/local-storage.js'].lineData[21]++; var swfSrc = Editor.Utils.debugUrl('plugin/local-storage/assets/swfstore.swf?t=' + (+new Date())); _$jscoverage['/local-storage.js'].lineData[23]++; var css = { width: 215, border: '1px solid red'}, reverseCss = { width: 0, border: 'none'}; _$jscoverage['/local-storage.js'].lineData[32]++; var o = new Overlay({ prefixCls: 'ks-editor-', elStyle: { background: 'white'}, width: '0px', content: '<h1 style="' + 'text-align:center;">\u8bf7\u70b9\u51fb\u5141\u8bb8</h1>' + '<div class="storage-container"></div>', zIndex: Editor.baseZIndex(Editor.ZIndexManager.STORE_FLASH_SHOW)}); _$jscoverage['/local-storage.js'].lineData[42]++; o.render(); _$jscoverage['/local-storage.js'].lineData[43]++; o.show(); _$jscoverage['/local-storage.js'].lineData[45]++; var store = new FlashBridge({ src: swfSrc, render: o.get('contentEl').one('.storage-container'), params: { flashVars: { useCompression: true}}, attrs: { height: 138, width: '100%'}, methods: ['setItem', 'removeItem', 'getItem', 'setMinDiskSpace', 'getValueOf']}); _$jscoverage['/local-storage.js'].lineData[61]++; S.ready(function() { _$jscoverage['/local-storage.js'].functionData[1]++; _$jscoverage['/local-storage.js'].lineData[62]++; setTimeout(function() { _$jscoverage['/local-storage.js'].functionData[2]++; _$jscoverage['/local-storage.js'].lineData[63]++; o.center(); }, 0); }); _$jscoverage['/local-storage.js'].lineData[67]++; store.on('pending', function() { _$jscoverage['/local-storage.js'].functionData[3]++; _$jscoverage['/local-storage.js'].lineData[68]++; o.get('el').css(css); _$jscoverage['/local-storage.js'].lineData[69]++; o.center(); _$jscoverage['/local-storage.js'].lineData[70]++; o.show(); _$jscoverage['/local-storage.js'].lineData[72]++; setTimeout(function() { _$jscoverage['/local-storage.js'].functionData[4]++; _$jscoverage['/local-storage.js'].lineData[73]++; store.retrySave(); }, 1000); }); _$jscoverage['/local-storage.js'].lineData[77]++; store.on('save', function() { _$jscoverage['/local-storage.js'].functionData[5]++; _$jscoverage['/local-storage.js'].lineData[78]++; o.get('el').css(reverseCss); }); _$jscoverage['/local-storage.js'].lineData[81]++; var oldSet = store.setItem; _$jscoverage['/local-storage.js'].lineData[83]++; S.mix(store, { _ke: 1, getItem: function(k) { _$jscoverage['/local-storage.js'].functionData[6]++; _$jscoverage['/local-storage.js'].lineData[86]++; return this.getValueOf(k); }, retrySave: function() { _$jscoverage['/local-storage.js'].functionData[7]++; _$jscoverage['/local-storage.js'].lineData[89]++; var self = this; _$jscoverage['/local-storage.js'].lineData[90]++; self.setItem(self.lastSave.k, self.lastSave.v); }, setItem: function(k, v) { _$jscoverage['/local-storage.js'].functionData[8]++; _$jscoverage['/local-storage.js'].lineData[93]++; var self = this; _$jscoverage['/local-storage.js'].lineData[94]++; self.lastSave = { k: k, v: v}; _$jscoverage['/local-storage.js'].lineData[95]++; oldSet.call(self, k, v); }}); _$jscoverage['/local-storage.js'].lineData[100]++; store.on('contentReady', function() { _$jscoverage['/local-storage.js'].functionData[9]++; _$jscoverage['/local-storage.js'].lineData[101]++; store._ready = 1; }); _$jscoverage['/local-storage.js'].lineData[111]++; return store; });
], function (S, require) { var Editor = require('editor'); var Overlay = require('overlay'); var FlashBridge = require('./flash-bridge'); var ie = S.UA.ieMode; // 原生或者已经定义过立即返回 // ie 使用 flash 模拟的 localStorage,序列化性能不行 // 原生或者已经定义过立即返回 // ie 使用 flash 模拟的 localStorage,序列化性能不行 if ((!ie || ie > 8) && window.localStorage) { //原生的立即可用 return window.localStorage; } // 国产浏览器用随机数/时间戳试试 ! 是可以的 // 国产浏览器用随机数/时间戳试试 ! 是可以的 var swfSrc = Editor.Utils.debugUrl('plugin/local-storage/assets/swfstore.swf?t=' + +new Date()); var css = { width: 215, border: '1px solid red' }, reverseCss = { width: 0, border: 'none' }; //Dialog 不行 //Dialog 不行 var o = new Overlay({ prefixCls: 'ks-editor-', elStyle: { background: 'white' }, width: '0px', content: '<h1 style="' + 'text-align:center;">\u8BF7\u70B9\u51FB\u5141\u8BB8</h1>' + '<div class="storage-container"></div>', zIndex: Editor.baseZIndex(Editor.ZIndexManager.STORE_FLASH_SHOW) }); o.render(); o.show(); var store = new FlashBridge({ src: swfSrc, render: o.get('contentEl').one('.storage-container'), params: { flashVars: { useCompression: true } }, attrs: { height: 138, width: '100%' }, methods: [ 'setItem', 'removeItem', 'getItem', 'setMinDiskSpace', 'getValueOf' ] }); // 必须在视窗范围内才可以初始化,触发 contentReady 事件 // 必须在视窗范围内才可以初始化,触发 contentReady 事件 S.ready(function () { setTimeout(function () { o.center(); }, 0); }); store.on('pending', function () { o.get('el').css(css); o.center(); o.show(); // 轮训,直到用户允许 // 轮训,直到用户允许 setTimeout(function () { store.retrySave(); }, 1000); }); store.on('save', function () { o.get('el').css(reverseCss); }); var oldSet = store.setItem; S.mix(store, { _ke: 1, getItem: function (k) { return this.getValueOf(k); }, retrySave: function () { var self = this; self.setItem(self.lastSave.k, self.lastSave.v); }, setItem: function (k, v) { var self = this; self.lastSave = { k: k, v: v }; oldSet.call(self, k, v); } }); //非原生,等待flash通知 //非原生,等待flash通知 store.on('contentReady', function () { store._ready = 1; }); /* 'quotaExceededError' 'error' 'save' 'inadequateDimensions' */ /* 'quotaExceededError' 'error' 'save' 'inadequateDimensions' */ return store; });