ce238d39ef
git-svn-id: https://develop.svn.wordpress.org/trunk@22958 602fd350-edb4-49c9-b593-d223f7449a82
1 line
50 KiB
JavaScript
1 line
50 KiB
JavaScript
(function(e){var f=wp.media,d=f.model.Attachment,c=f.model.Attachments,a=f.model.Query,b;b=f.view.l10n=typeof _wpMediaViewsL10n==="undefined"?{}:_wpMediaViewsL10n;f.view.settings=b.settings||{};delete b.settings;f.model.settings.postId=f.view.settings.postId;e.support.transition=(function(){var g=document.documentElement.style,h={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},i;i=_.find(_.keys(h),function(j){return !_.isUndefined(g[j])});return i&&{end:h[i]}}());f.transition=function(g,h){var i=e.Deferred();h=h||2000;if(e.support.transition){if(!(g instanceof e)){g=e(g)}g.first().one(e.support.transition.end,i.resolve);_.delay(i.resolve,h)}else{i.resolve()}return i.promise()};f.controller.Region=function(g){_.extend(this,_.pick(g||{},"id","controller","selector"));this.on("activate:empty",this.empty,this);this.mode("empty")};f.controller.Region.extend=Backbone.Model.extend;_.extend(f.controller.Region.prototype,Backbone.Events,{trigger:(function(){var g=/\s+/,h=Backbone.Events.trigger;return function(i){var j=":"+this._mode,k=i.split(g).join(j)+j;h.apply(this,arguments);h.apply(this,[k].concat(_.rest(arguments)));return this}}()),mode:function(g){if(g){this.trigger("deactivate",this);this._mode=g;return this.trigger("activate",this)}return this._mode},view:function(g){var h=this._view,i=this._mode,j=this.id;if(!g){return h}if(g===h){return}if(j){g.$el.addClass("region-"+j)}if(i){g.$el.addClass("mode-"+i)}this.controller.views.set(this.selector,g);this._view=g},empty:function(){this.view(new f.View())}});f.controller.StateMachine=function(g){this.states=new Backbone.Collection(g)};f.controller.StateMachine.extend=Backbone.Model.extend;_.extend(f.controller.StateMachine.prototype,Backbone.Events,{state:function(g){this.states=this.states||new Backbone.Collection();g=g||this._state;if(g&&!this.states.get(g)){this.states.add({id:g})}return this.states.get(g)},setState:function(h){var g=this.state();if((g&&h===g.id)||!this.states||!this.states.get(h)){return}if(g){g.trigger("deactivate");this._lastState=g.id}this._state=h;this.state().trigger("activate")},lastState:function(){if(this._lastState){return this.state(this._lastState)}}});_.each(["on","off","trigger"],function(g){f.controller.StateMachine.prototype[g]=function(){this.states=this.states||new Backbone.Collection();this.states[g].apply(this.states,arguments);return this}});f.controller.State=Backbone.Model.extend({initialize:function(){this.on("activate",this._activate,this);this.on("activate",this.activate,this);this.on("deactivate",this._deactivate,this);this.on("deactivate",this.deactivate,this);this.on("reset",this.reset,this)},activate:function(){},_activate:function(){this.active=true;this.menu();this.toolbar();this.content()},deactivate:function(){},_deactivate:function(){this.active=false},reset:function(){},menu:function(){var i=this.frame.menu,h=this.get("menu"),g;if(!h){return}if(i.mode()!==h){i.mode(h)}g=i.view();if(g.select){g.select(this.id)}}});_.each(["toolbar","content"],function(g){f.controller.State.prototype[g]=function(){var h=this.get(g);if(h){this.frame[g].mode(h)}}});f.controller.Library=f.controller.State.extend({defaults:{id:"library",multiple:false,describe:false,toolbar:"main-attachments",sidebar:"settings",content:"browse",searchable:true,filterable:false,uploads:true},initialize:function(){if(!this.get("selection")){this.set("selection",new f.model.Selection(null,{multiple:this.get("multiple")}))}if(!this.get("library")){this.set("library",f.query())}if(!this.get("edge")){this.set("edge",120)}if(!this.get("gutter")){this.set("gutter",8)}this.resetDisplays();f.controller.State.prototype.initialize.apply(this,arguments)},activate:function(){var g=this.get("library"),h=this.get("selection");this._excludeStateLibrary();this.buildComposite();this.on("change:library change:exclude",this.buildComposite,this);this.on("change:excludeState",this._excludeState,this);if(this.get("multiple")){wp.Uploader.queue.on("add",this.selectUpload,this)}h.on("add remove reset",this.refreshSelection,this);this.refresh();this.on("insert",this._insertDisplaySettings,this)},deactivate:function(){this.get("selection").off(null,null,this);wp.Uploader.queue.off(null,null,this);this.off("change:excludeState",this._excludeState,this);this.off("change:library change:exclude",this.buildComposite,this);this.destroyComposite()},reset:function(){this.get("selection").clear();this.resetDisplays()},refresh:function(){this.content();this.refreshSelection()},resetDisplays:function(){this._displays=[];this._defaultDisplaySettings={align:getUserSetting("align","none"),size:getUserSetting("imgsize","medium"),link:getUserSetting("urlbutton","post")}},display:function(h){var g=this._displays;if(!g[h.cid]){g[h.cid]=new Backbone.Model(this._defaultDisplaySettings)}return g[h.cid]},_insertDisplaySettings:function(){var g=this.get("selection"),h;if(g.length!==1){return}h=this.display(g.first()).toJSON();setUserSetting("align",h.align);setUserSetting("imgsize",h.size);setUserSetting("urlbutton",h.link)},refreshSelection:function(){var g=this.get("selection"),h=this.frame.content.mode();this.frame.toolbar.view().refresh();this.trigger("refresh:selection",this,g);if(!g.length&&"browse"!==h&&"upload"!==h){this.content()}},selectUpload:function(g){this.get("selection").add(g)},buildComposite:function(){var h=this.get("_library"),g=this.get("exclude"),i;this.destroyComposite();if(!this.get("exclude")){return}if(!h){this.set("_library",h=this.get("library"))}i=new f.model.Attachments(null,{props:_.pick(h.props.toJSON(),"order","orderby")});i.validator=function(j){return !!h.getByCid(j.cid)&&!g.getByCid(j.cid)};i.mirror(h).observe(g);this.set("library",i)},destroyComposite:function(){var h=this.get("library"),g=this.get("_library");if(!g){return}h.unobserve();this.set("library",g);this.unset("_library")},_excludeState:function(){var h=this.get("excludeState"),g=this.previous("excludeState");if(g){this.frame.state(g).off("change:library",this._excludeStateLibrary,this)}if(h){this.frame.state(h).on("change:library",this._excludeStateLibrary,this)}},_excludeStateLibrary:function(){var g=this.get("excludeState");if(!g){return}this.set("exclude",this.frame.state(g).get("library"))}});f.controller.Upload=f.controller.State.extend({defaults:_.defaults({id:"upload",content:"upload",toolbar:"empty",uploads:true,libraryState:"library"},f.controller.State.prototype.defaults),initialize:function(){f.controller.State.prototype.initialize.apply(this,arguments)},activate:function(){wp.Uploader.queue.on("add",this.uploading,this);f.controller.State.prototype.activate.apply(this,arguments)},deactivate:function(){wp.Uploader.queue.off(null,null,this);f.controller.State.prototype.deactivate.apply(this,arguments)},uploading:function(h){var g=this.get("libraryState");this.frame.state(g).get("selection").add(h);this.frame.setState(g)}});f.controller.Gallery=f.controller.Library.extend({defaults:{id:"gallery-edit",multiple:false,describe:true,edge:199,editing:false,sortable:true,searchable:false,toolbar:"gallery-edit",content:"browse"},initialize:function(){if(!this.get("library")){this.set("library",new f.model.Selection())}if(!this.get("AttachmentView")){this.set("AttachmentView",f.view.Attachment.EditLibrary)}f.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var g=this.get("library");g.props.set("type","image");this.get("library").observe(wp.Uploader.queue);this.frame.content.on("activate:browse",this.gallerySettings,this);f.controller.Library.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue);this.frame.content.off(null,null,this);f.controller.Library.prototype.deactivate.apply(this,arguments)},gallerySettings:function(){var g=this.get("library");if(!g){return}g.gallery=g.gallery||new Backbone.Model();this.frame.content.view().sidebar.set({gallery:new f.view.Settings.Gallery({controller:this,model:g.gallery,priority:40})})}});f.controller.Embed=f.controller.State.extend({defaults:{id:"embed",url:"",menu:"main",content:"embed",toolbar:"main-embed",type:"link"},sensitivity:200,initialize:function(){this.debouncedScan=_.debounce(_.bind(this.scan,this),this.sensitivity);this.on("change:url",this.debouncedScan,this);this.on("scan",this.scanImage,this);f.controller.State.prototype.initialize.apply(this,arguments)},scan:function(){var g={type:"link"};this.trigger("scan",g);this.set(g)},scanImage:function(g){var k=this.frame,i=this,h=this.get("url"),j=new Image();j.onload=function(){if(i!==k.state()||h!==i.get("url")){return}i.set({type:"image",width:j.width,height:j.height})};j.src=h},reset:function(){_.each(_.difference(_.keys(this.attributes),_.keys(this.defaults)),function(g){this.unset(g)},this);this.set("url","");this.frame.toolbar.view().refresh()}});f.Views=function(h,g){this.view=h;this._views=_.isArray(g)?{"":g}:g||{}};f.Views.extend=Backbone.Model.extend;_.extend(f.Views.prototype,{all:function(){return _.flatten(this._views)},get:function(g){g=g||"";return this._views[g]},first:function(g){var h=this.get(g);return h&&h.length?h[0]:null},set:function(g,h,i){var k,j;if(!_.isString(g)){i=h;h=g;g=""}i=i||{};h=_.isArray(h)?h:[h];k=this.get(g);j=h;if(k){if(i.add){if(_.isUndefined(i.at)){j=k.concat(h)}else{j=k;j.splice.apply(j,[i.at,0].concat(h))}}else{_.each(j,function(l){l.__detach=true});_.each(k,function(l){if(l.__detach){l.$el.detach()}else{l.dispose()}});_.each(j,function(l){delete l.__detach})}}this._views[g]=j;_.each(h,function(n){var l=n.Views||f.Views,m=n.views=n.views||new l(n);m.parent=this.view;m.selector=g},this);if(!i.silent){this._attach(g,h,_.extend({ready:this._isReady()},i))}return this},add:function(g,h,i){if(!_.isString(g)){i=h;h=g;g=""}return this.set(g,h,_.extend({add:true},i))},unset:function(g,h,i){var j;if(!_.isString(g)){i=h;h=g;g=""}h=h||[];if(j=this.get(g)){h=_.isArray(h)?h:[h];this._views[g]=h.length?_.difference(j,h):[]}if(!i||!i.silent){_.invoke(h,"dispose")}return this},detach:function(){e(_.pluck(this.all(),"el")).detach();return this},render:function(){var g={ready:this._isReady()};_.each(this._views,function(i,h){this._attach(h,i,g)},this);this.rendered=true;return this},dispose:function(g){if(!g||!g.silent){if(this.parent&&this.parent.views){this.parent.views.unset(this.selector,this.view,{silent:true})}delete this.parent;delete this.selector}_.invoke(this.all(),"dispose");this._views=[];return this},replace:function(g,h){g.html(h);return this},insert:function(h,k,j){var g=j&&j.at,i;if(_.isNumber(g)&&(i=h.children()).length>g){i.eq(g).before(k)}else{h.append(k)}return this},ready:function(){this.view.trigger("ready");_.chain(this.all()).map(function(g){return g.views}).flatten().where({attached:true}).invoke("ready")},_attach:function(g,h,i){var k=g?this.view.$(g):this.view.$el,j;if(!k.length){return this}j=_.chain(h).pluck("views").flatten().value();_.each(j,function(l){if(l.rendered){return}l.view.render();l.rendered=true},this);this[i.add?"insert":"replace"](k,_.pluck(h,"el"),i);_.each(j,function(l){l.attached=true;if(i.ready){l.ready()}},this);return this},_isReady:function(){var g=this.view.el;while(g){if(g===document.body){return true}g=g.parentNode}return false}});f.View=Backbone.View.extend({Views:f.Views,constructor:function(){this.views=new this.Views(this,this.views);this.on("ready",this.ready,this);Backbone.View.apply(this,arguments)},dispose:function(){this.undelegateEvents();if(this.model&&this.model.off){this.model.off(null,null,this)}if(this.collection&&this.collection.off){this.collection.off(null,null,this)}if(this.controller&&this.controller.off){this.controller.off(null,null,this)}if(this.views){this.views.dispose()}return this},remove:function(){this.dispose();return Backbone.View.prototype.remove.apply(this,arguments)},render:function(){var g;if(this.prepare){g=this.prepare()}this.views.detach();if(this.template){g=g||{};this.trigger("prepare",g);this.$el.html(this.template(g))}this.views.render();return this},prepare:function(){return this.options},ready:function(){}});f.view.Frame=f.View.extend({initialize:function(){this._createRegions();this._createStates()},_createRegions:function(){this.regions=this.regions?this.regions.slice():[];_.each(this.regions,function(g){this[g]=new f.controller.Region({controller:this,id:g,selector:".media-frame-"+g})},this)},_createStates:function(){this.states=new Backbone.Collection(null,{model:f.controller.State});this.states.on("add",function(g){g.frame=this},this)},reset:function(){this.states.invoke("trigger","reset");return this}});_.extend(f.view.Frame.prototype,f.controller.StateMachine.prototype);f.view.MediaFrame=f.view.Frame.extend({className:"media-frame",template:f.template("media-frame"),regions:["menu","content","toolbar"],initialize:function(){f.view.Frame.prototype.initialize.apply(this,arguments);_.defaults(this.options,{title:"",modal:true,uploader:true});this.$el.addClass("wp-core-ui");if(this.options.modal){this.modal=new f.view.Modal({controller:this,$content:this.$el,title:this.options.title})}if(wp.Uploader.limitExceeded||!wp.Uploader.browser.supported){this.options.uploader=false}if(this.options.uploader){this.uploader=new f.view.UploaderWindow({controller:this,uploader:{dropzone:this.modal?this.modal.$el:this.$el,container:this.$el}});this.views.set(".media-frame-uploader",this.uploader)}this.on("attach",_.bind(this.views.ready,this.views),this)},render:function(){if(this.modal){this.modal.render()}f.view.Frame.prototype.render.apply(this,arguments);return this},createIframeStates:function(g){var j=f.view.settings,i=j.tabs,k=j.tabUrl,h;if(!i||!k){return}h=e("#post_ID");if(h.length){k+="&post_id="+h.val()}_.each(i,function(m,n){var l=this.state("iframe:"+n).set(_.defaults({tab:n,src:k+"&tab="+n,title:m,content:"iframe",menu:"main"},g))},this);this.content.on("activate:iframe",this.iframeContent,this);this.menu.on("activate:main",this.iframeMenu,this);this.on("open",this.hijackThickbox,this);this.on("close",this.restoreThickbox,this)},iframeContent:function(){this.$el.addClass("hide-toolbar");this.content.view(new f.view.Iframe({controller:this}).render())},iframeMenu:function(){var g={};_.each(f.view.settings.tabs,function(h,i){g["iframe:"+i]={text:this.state("iframe:"+i).get("title"),priority:200}},this);this.menu.view().set(g)},hijackThickbox:function(){var g=this;if(!window.tb_remove||this._tb_remove){return}this._tb_remove=window.tb_remove;window.tb_remove=function(){g.close();g.reset();g.setState(g.options.state);g._tb_remove.call(window)}},restoreThickbox:function(){if(!this._tb_remove){return}window.tb_remove=this._tb_remove;delete this._tb_remove}});_.each(["open","close","attach","detach"],function(g){f.view.MediaFrame.prototype[g]=function(h){if(this.modal){this.modal[g].apply(this.modal,arguments)}return this}});f.view.MediaFrame.Select=f.view.MediaFrame.extend({initialize:function(){f.view.MediaFrame.prototype.initialize.apply(this,arguments);_.defaults(this.options,{state:"upload",selection:[],library:{},multiple:false});this.createSelection();this.createStates();this.bindHandlers()},createSelection:function(){var g=this,h=this.options.selection;if(!(h instanceof f.model.Selection)){this.options.selection=new f.model.Selection(h,{multiple:this.options.multiple})}},createStates:function(){var g=this.options;this.states.add([new f.controller.Library({selection:g.selection,library:f.query(g.library),multiple:this.options.multiple,menu:"main",toolbar:"select"}),new f.controller.Upload({menu:"main"})])},bindHandlers:function(){this.menu.on("activate:main",this.mainMenu,this);this.content.on("activate:browse",this.browseContent,this);this.content.on("activate:upload",this.uploadContent,this);this.toolbar.on("activate:select",this.selectToolbar,this);this.on("refresh:selection",this.refreshSelectToolbar,this)},mainMenu:function(g){this.menu.view(new f.view.Menu({controller:this,silent:g&&g.silent,views:{upload:{text:b.uploadFilesTitle,priority:20},library:{text:b.mediaLibraryTitle,priority:40}}}))},browseContent:function(){var g=this.state();this.$el.removeClass("hide-toolbar");this.content.view(new f.view.AttachmentsBrowser({controller:this,collection:g.get("library"),selection:g.get("selection"),model:g,sortable:g.get("sortable"),search:g.get("searchable"),uploads:g.get("uploads"),filters:g.get("filterable"),display:g.get("displaySettings"),AttachmentView:g.get("AttachmentView")}))},uploadContent:function(){this.$el.addClass("hide-toolbar");this.content.view(new f.view.UploaderInline({controller:this}))},selectToolbar:function(g){g=_.defaults(g||{},{event:"select",silent:false,state:false});this.toolbar.view(new f.view.Toolbar({controller:this,silent:g.silent,items:{select:{style:"primary",text:b.select,priority:80,click:function(){var h=this.controller;h.close();h.state().trigger(g.event);h.reset();if(g.state){h.setState(g.state)}}}}}))},refreshSelectToolbar:function(){var g=this.state().get("selection");if(!g||"select"!==this.toolbar.mode()){return}this.toolbar.view().get("select").model.set("disabled",!g.length)}});f.view.MediaFrame.Post=f.view.MediaFrame.Select.extend({initialize:function(){_.defaults(this.options,{state:"upload",multiple:true,editing:false});f.view.MediaFrame.Select.prototype.initialize.apply(this,arguments);this.createIframeStates()},createStates:function(){var g=this.options;this.states.add([new f.controller.Library({selection:g.selection,library:f.query(g.library),editable:true,filterable:"all",multiple:this.options.multiple,menu:"main",displaySettings:true,displayUserSettings:true}),new f.controller.Upload({menu:"main"}),new f.controller.Embed(),new f.controller.Gallery({library:g.selection,editing:g.editing,menu:"gallery"}),new f.controller.Library({id:"gallery-library",library:f.query({type:"image"}),filterable:"uploaded",multiple:true,menu:"gallery",toolbar:"gallery-add",excludeState:"gallery-edit"}),new f.controller.Upload({id:"gallery-upload",menu:"gallery",libraryState:"gallery-edit"})])},bindHandlers:function(){f.view.MediaFrame.Select.prototype.bindHandlers.apply(this,arguments);var g={menu:{gallery:"galleryMenu"},content:{embed:"embedContent","edit-selection":"editSelectionContent"},toolbar:{"main-attachments":"mainAttachmentsToolbar","main-embed":"mainEmbedToolbar","gallery-edit":"galleryEditToolbar","gallery-add":"galleryAddToolbar"}};_.each(g,function(i,h){_.each(i,function(k,j){this[h].on("activate:"+j,this[k],this)},this)},this)},mainMenu:function(){f.view.MediaFrame.Select.prototype.mainMenu.call(this,{silent:true});this.menu.view().set({separateLibrary:new f.View({className:"separator",priority:60}),embed:{text:b.fromUrlTitle,priority:80}})},galleryMenu:function(){var g=this.lastState(),h=g&&g.id,i=this;this.menu.view(new f.view.Menu({controller:this,views:{cancel:{text:b.cancelGalleryTitle,priority:20,click:function(){if(h){i.setState(h)}else{i.close()}}},separateCancel:new f.View({className:"separator",priority:40}),"gallery-edit":{text:b.editGalleryTitle,priority:60},"gallery-upload":{text:b.uploadImagesTitle,priority:80},"gallery-library":{text:b.mediaLibraryTitle,priority:100}}}))},embedContent:function(){var g=new f.view.Embed({controller:this,model:this.state()}).render();this.content.view(g);g.url.focus()},editSelectionContent:function(){var i=this.state(),h=i.get("selection"),g;g=new f.view.AttachmentsBrowser({controller:this,collection:h,selection:h,model:i,sortable:true,search:false,AttachmentView:f.view.Attachment.EditSelection}).render();g.toolbar.set("backToLibrary",{text:b.returnToLibrary,priority:-100,click:function(){this.controller.content.mode("browse")}});this.content.view(g)},onSidebarGallerySettings:function(h){var g=this.state().get("library");if(!g){return}g.gallery=g.gallery||new Backbone.Model();this.sidebar.view().set({gallery:new f.view.Settings.Gallery({controller:this,model:g.gallery,priority:40}).render()},h)},mainAttachmentsToolbar:function(){this.toolbar.view(new f.view.Toolbar.Insert({controller:this,editable:this.state().get("editable")}))},mainEmbedToolbar:function(){this.toolbar.view(new f.view.Toolbar.Embed({controller:this}));this.$el.removeClass("hide-toolbar")},galleryEditToolbar:function(){var g=this.state().get("editing");this.toolbar.view(new f.view.Toolbar({controller:this,items:{insert:{style:"primary",text:g?b.updateGallery:b.insertGallery,priority:80,click:function(){var h=this.controller,i=h.state();h.close();i.trigger("update",i.get("library"));h.reset();h.setState("upload")}}}}))},galleryAddToolbar:function(){this.toolbar.view(new f.view.Toolbar({controller:this,items:{insert:{style:"primary",text:b.addToGallery,priority:80,click:function(){var g=this.controller,i=g.state(),h=g.state("gallery-edit");h.get("library").add(i.get("selection").models);i.trigger("reset");g.state("gallery-edit")}}}}))}});f.view.Modal=f.View.extend({tagName:"div",template:f.template("media-modal"),attributes:{tabindex:0},events:{"click .media-modal-backdrop, .media-modal-close":"closeHandler",keydown:"keydown"},initialize:function(){this.controller=this.options.controller;_.defaults(this.options,{container:document.body,title:"",propagate:true})},render:function(){this.options.$content=this.options.$content||e("<div />");this.options.$content.detach();this.$el.html(this.template({title:this.options.title}));this.options.$content.addClass("media-modal-content");this.$(".media-modal").append(this.options.$content);return this},attach:function(){this.$el.appendTo(this.options.container);return this.propagate("attach")},detach:function(){this.$el.detach();return this.propagate("detach")},open:function(){this.$el.show().focus();return this.propagate("open")},close:function(){this.$el.hide();return this.propagate("close")},closeHandler:function(g){g.preventDefault();this.close()},content:function(g){if(this.options.$content){this.options.$content.detach()}this.options.$content=(g instanceof Backbone.View)?g.$el:g;return this.render()},propagate:function(g){this.trigger(g);if(this.options.propagate){this.controller.trigger(g)}return this},keydown:function(g){if(27===g.which){g.preventDefault();this.close();return}}});f.view.UploaderWindow=f.View.extend({tagName:"div",className:"uploader-window",template:f.template("uploader-window"),initialize:function(){var g;this.controller=this.options.controller;this.$browser=e('<a href="#" class="browser" />').hide().appendTo("body");g=this.options.uploader=_.defaults(this.options.uploader||{},{dropzone:this.$el,browser:this.$browser,params:{}});if(g.dropzone&&!(g.dropzone instanceof e)){g.dropzone=e(g.dropzone)}this.controller.on("activate",this.refresh,this)},refresh:function(){if(this.uploader){this.uploader.refresh()}},ready:function(){var h=f.view.settings.postId,g;if(this.uploader){return}if(h){this.options.uploader.params.post_id=h}this.uploader=new wp.Uploader(this.options.uploader);g=this.uploader.dropzone;g.on("dropzone:enter",_.bind(this.show,this));g.on("dropzone:leave",_.bind(this.hide,this))},show:function(){var g=this.$el.show();_.defer(function(){g.css({opacity:1})})},hide:function(){var g=this.$el.css({opacity:0});f.transition(g).done(function(){if("0"===g.css("opacity")){g.hide()}})}});f.view.UploaderInline=f.View.extend({tagName:"div",className:"uploader-inline",template:f.template("uploader-inline"),initialize:function(){this.controller=this.options.controller;if(!this.options.$browser&&this.controller.uploader){this.options.$browser=this.controller.uploader.$browser}if(_.isUndefined(this.options.postId)){this.options.postId=f.view.settings.postId}this.views.set(".upload-inline-status",new f.view.UploaderStatus({controller:this.controller}))},ready:function(){var g=this.options.$browser,h;if(this.controller.uploader){h=this.$(".browser");g.detach().text(h.text());g[0].className=h[0].className;h.replaceWith(g.show())}return this}});f.view.UploaderStatus=f.View.extend({className:"media-uploader-status",template:f.template("uploader-status"),events:{"click .upload-dismiss-errors":"dismiss"},initialize:function(){this.controller=this.options.controller;this.queue=wp.Uploader.queue;this.queue.on("add remove reset",this.visibility,this);this.queue.on("add remove reset change:percent",this.progress,this);this.queue.on("add remove reset change:uploading",this.info,this);this.errors=wp.Uploader.errors;this.errors.reset();this.errors.on("add remove reset",this.visibility,this);this.errors.on("add",this.error,this)},dispose:function(){wp.Uploader.queue.off(null,null,this);f.View.prototype.dispose.apply(this,arguments);return this},visibility:function(){this.$el.toggleClass("uploading",!!this.queue.length);this.$el.toggleClass("errors",!!this.errors.length);this.$el.toggle(!!this.queue.length||!!this.errors.length)},ready:function(){_.each({"$bar":".media-progress-bar div","$index":".upload-index","$total":".upload-total","$filename":".upload-filename"},function(g,h){this[h]=this.$(g)},this);this.visibility();this.progress();this.info()},progress:function(){var g=this.queue,i=this.$bar,h=0;if(!i||!g.length){return}i.width((g.reduce(function(j,l){if(!l.get("uploading")){return j+100}var k=l.get("percent");return j+(_.isNumber(k)?k:100)},0)/g.length)+"%")},info:function(){var g=this.queue,h=0,i;if(!g.length){return}i=this.queue.find(function(k,j){h=j;return k.get("uploading")});this.$index.text(h+1);this.$total.text(g.length);this.$filename.html(i?this.filename(i.get("filename")):"")},filename:function(g){return f.truncate(_.escape(g),24)},error:function(g){this.views.add(".upload-errors",new f.view.UploaderStatusError({filename:this.filename(g.get("file").name),message:g.get("message")}),{at:0})},dismiss:function(g){var h=this.views.get(".upload-errors");g.preventDefault();if(h){_.invoke(h,"remove")}wp.Uploader.errors.reset()}});f.view.UploaderStatusError=f.View.extend({className:"upload-error",template:f.template("uploader-status-error")});f.view.Toolbar=f.View.extend({tagName:"div",className:"media-toolbar",initialize:function(){this.controller=this.options.controller;this._views={};this.$primary=e('<div class="media-toolbar-primary" />').prependTo(this.$el);this.$secondary=e('<div class="media-toolbar-secondary" />').prependTo(this.$el);if(this.options.items){this.set(this.options.items,{silent:true})}if(!this.options.silent){this.render()}},destroy:function(){this.remove();if(this.model){this.model.off(null,null,this)}if(this.collection){this.collection.off(null,null,this)}this.controller.off(null,null,this);_.each(this._views,function(g){if(g.destroy){g.destroy()}})},render:function(){var g=_.chain(this._views).sortBy(function(h){return h.options.priority||10}).groupBy(function(h){return(h.options.priority||10)>0?"primary":"secondary"}).value();e(_.pluck(this._views,"el")).detach();this.$primary.html(_.pluck(g.primary||[],"el"));this.$secondary.html(_.pluck(g.secondary||[],"el"));this.refresh();return this},set:function(i,g,h){h=h||{};if(_.isObject(i)){_.each(i,function(j,k){this.set(k,j,{silent:true})},this)}else{if(!(g instanceof Backbone.View)){g.classes=["media-button-"+i].concat(g.classes||[]);g=new f.view.Button(g).render()}g.controller=g.controller||this.controller;this._views[i]=g}if(!h.silent){this.render()}return this},get:function(g){return this._views[g]},unset:function(h,g){delete this._views[h];if(!g||!g.silent){this.render()}return this},refresh:function(){}});f.view.Toolbar.Select=f.view.Toolbar.extend({initialize:function(){var h=this.options,g=h.controller,i=g.state().get("selection");_.bindAll(this,"clickSelect");_.defaults(h,{event:"select",state:false,reset:true,close:true,text:b.select});h.items=_.defaults(h.items||{},{select:{style:"primary",text:h.text,priority:80,click:this.clickSelect}});f.view.Toolbar.prototype.initialize.apply(this,arguments)},clickSelect:function(){var h=this.options,g=this.controller;if(h.close){g.close()}if(h.event){g.state().trigger(h.event)}if(h.reset){g.reset()}if(h.state){g.setState(h.state)}}});f.view.Toolbar.Embed=f.view.Toolbar.Select.extend({initialize:function(){var g=this.options.controller;_.defaults(this.options,{text:b.insertIntoPost});f.view.Toolbar.Select.prototype.initialize.apply(this,arguments);g.on("change:url",this.refresh,this)},refresh:function(){var g=this.controller.state().get("url");this.get("select").model.set("disabled",!g||/^https?:\/\/$/.test(g))}});f.view.Toolbar.Insert=f.view.Toolbar.extend({initialize:function(){var g=this.options.controller,i=g.state().get("selection"),h;h=function(k,j){return function(){var l=this.controller,m=l.state().get("selection"),n=l.state(k),o=j?j(m):m.models;n.set("library",new f.model.Selection(o,{props:m.props.toJSON(),multiple:true}));this.controller.setState(k)}};this.options.items=_.defaults(this.options.items||{},{selection:new f.view.Selection({controller:g,collection:i,priority:-40,editable:this.options.editable&&function(){this.controller.content.mode("edit-selection")}}).render(),insert:{style:"primary",priority:80,text:b.insertIntoPost,click:function(){g.close();g.state().trigger("insert",i).reset()}},gallery:{text:b.createNewGallery,priority:40,click:h("gallery-edit",function(j){return j.where({type:"image"})})}});f.view.Toolbar.prototype.initialize.apply(this,arguments)},refresh:function(){var g=this.controller.state().get("selection"),h=g.length;this.get("insert").model.set("disabled",!g.length);this.get("gallery").$el.toggle(h>1&&g.any(function(i){return"image"===i.get("type")}))}});f.view.Button=f.View.extend({tagName:"a",className:"media-button",attributes:{href:"#"},events:{click:"click"},defaults:{text:"",style:"",size:"large",disabled:false},initialize:function(){this.model=new Backbone.Model(this.defaults);_.each(this.defaults,function(i,g){var h=this.options[g];if(_.isUndefined(h)){return}this.model.set(g,h);delete this.options[g]},this);this.model.on("change",this.render,this)},render:function(){var h=["button",this.className],g=this.model.toJSON();if(g.style){h.push("button-"+g.style)}if(g.size){h.push("button-"+g.size)}h=_.uniq(h.concat(this.options.classes));this.el.className=h.join(" ");this.$el.attr("disabled",g.disabled);this.$el.text(this.model.get("text"));return this},click:function(g){if("#"===this.attributes.href){g.preventDefault()}if(this.options.click&&!this.model.get("disabled")){this.options.click.apply(this,arguments)}}});f.view.ButtonGroup=f.View.extend({tagName:"div",className:"button-group button-large media-button-group",initialize:function(){this.buttons=_.map(this.options.buttons||[],function(g){if(g instanceof Backbone.View){return g}else{return new f.view.Button(g).render()}});delete this.options.buttons;if(this.options.classes){this.$el.addClass(this.options.classes)}},render:function(){this.$el.html(e(_.pluck(this.buttons,"el")).detach());return this}});f.view.PriorityList=f.View.extend({tagName:"div",initialize:function(){this.controller=this.options.controller;this._views={};this.set(_.extend({},this._views,this.options.views),{silent:true});delete this.options.views;if(!this.options.silent){this.render()}},destroy:this.dispose,set:function(l,h,j){var k,g,i;j=j||{};if(_.isObject(l)){_.each(l,function(m,n){this.set(n,m)},this);return this}if(!(h instanceof Backbone.View)){h=this.toView(h,l,j)}h.controller=h.controller||this.controller;this.unset(l);k=h.options.priority||10;g=this.views.get()||[];_.find(g,function(n,m){if(n.options.priority>k){i=m;return true}});this._views[l]=h;this.views.add(h,{at:_.isNumber(i)?i:g.length||0});return this},get:function(g){return this._views[g]},unset:function(h){var g=this.get(h);if(g){g.remove()}delete this._views[h];return this},toView:function(g){return new f.View(g)}});f.view.Menu=f.view.PriorityList.extend({tagName:"ul",className:"media-menu",toView:function(g,h){g=g||{};g.state=g.state||h;return new f.view.MenuItem(g).render()},select:function(h){var g=this.get(h);if(!g){return}this.deselect();g.$el.addClass("active")},deselect:function(){this.$el.children().removeClass("active")}});f.view.MenuItem=f.View.extend({tagName:"li",className:"media-menu-item",events:{click:"click"},click:function(){var g=this.options;if(g.click){g.click.call(this)}else{if(g.state){this.controller.setState(g.state)}}},render:function(){var g=this.options;if(g.text){this.$el.text(g.text)}else{if(g.html){this.$el.html(g.html)}}return this}});f.view.Sidebar=f.view.PriorityList.extend({className:"media-sidebar"});f.view.Attachment=f.View.extend({tagName:"li",className:"attachment",template:f.template("attachment"),events:{"click .attachment-preview":"toggleSelection","change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .close":"removeFromLibrary","click .check":"removeFromSelection","click a":"preventDefault"},buttons:{},initialize:function(){this.controller=this.options.controller;this.model.on("change:sizes change:uploading change:caption change:title",this.render,this);this.model.on("change:percent",this.progress,this);this.model.on("add",this.select,this);this.model.on("remove",this.deselect,this);this.model.on("selection:single selection:unsingle",this.details,this);this.details(this.model,this.controller.state().get("selection"))},dispose:function(){this.updateAll();f.View.prototype.dispose.apply(this,arguments);return this},render:function(){var h=this.model.toJSON(),g=_.defaults(this.model.toJSON(),{orientation:"landscape",uploading:false,type:"",subtype:"",icon:"",filename:"",caption:"",title:"",dateFormatted:"",width:"",height:"",compat:false,alt:""});g.buttons=this.buttons;g.describe=this.controller.state().get("describe");if("image"===g.type){g.size=this.imageSize()}this.views.detach();this.$el.html(this.template(g));this.$el.toggleClass("uploading",g.uploading);if(g.uploading){this.$bar=this.$(".media-progress-bar div")}else{delete this.$bar}if(this.selected()){this.select()}this.views.render();return this},progress:function(){if(this.$bar&&this.$bar.length){this.$bar.width(this.model.get("percent")+"%")}},toggleSelection:function(i){var h=this.options.selection,g=this.model;if(!h){return}if(h.has(g)){h[h.single()===g?"remove":"single"](g)}else{h.add(g).single(g)}},selected:function(){var g=this.options.selection;if(g){return g.has(this.model)}},select:function(g,i){var h=this.options.selection;if(!h||(i&&i!==h)){return}this.$el.addClass("selected")},deselect:function(g,i){var h=this.options.selection;if(!h||(i&&i!==h)){return}this.$el.removeClass("selected")},details:function(g,j){var i=this.options.selection,h;if(i!==j){return}h=i.single();this.$el.toggleClass("details",h===this.model)},preventDefault:function(g){g.preventDefault()},imageSize:function(g){var h=this.model.get("sizes");g=g||"medium";if(h&&h[g]){return _.clone(h[g])}else{return{url:this.model.get("url"),width:this.model.get("width"),height:this.model.get("height"),orientation:this.model.get("orientation")}}},updateSetting:function(i){var g=e(i.target).closest("[data-setting]"),h,j;if(!g.length){return}h=g.data("setting");j=i.target.value;if(this.model.get(h)!==j){this.model.save(h,j)}},updateAll:function(){var h=this.$("[data-setting]"),g=this.model,i;i=_.chain(h).map(function(k){var m=e("input, textarea, select, [value]",k),j,l;if(!m.length){return}j=e(k).data("setting");l=m.val();if(g.get(j)!==l){return[j,l]}}).compact().object().value();if(!_.isEmpty(i)){g.save(i)}},removeFromLibrary:function(g){g.stopPropagation();this.collection.remove(this.model)},removeFromSelection:function(h){var g=this.options.selection;if(!g){return}h.stopPropagation();g.remove(this.model)}});f.view.Attachment.Library=f.view.Attachment.extend({buttons:{check:true}});f.view.Attachment.EditLibrary=f.view.Attachment.extend({buttons:{close:true}});f.view.Attachments=f.View.extend({tagName:"ul",className:"attachments",cssTemplate:f.template("attachments-css"),events:{scroll:"scroll"},initialize:function(){this.controller=this.options.controller;this.el.id=_.uniqueId("__attachments-view-");_.defaults(this.options,{refreshSensitivity:200,refreshThreshold:3,AttachmentView:f.view.Attachment,sortable:false});this._viewsByCid={};this.collection.on("add",function(i,g,h){this.views.add(this.createAttachmentView(i),{at:h.index})},this);this.collection.on("remove",function(j,g,i){var h=this._viewsByCid[j.cid];delete this._viewsByCid[j.cid];if(h){h.remove()}},this);this.collection.on("reset",this.render,this);this.scroll=_.chain(this.scroll).bind(this).throttle(this.options.refreshSensitivity).value();this.initSortable();this.collection.props.on("change:orderby",this.refreshSortable,this);_.bindAll(this,"css");this.model.on("change:edge change:gutter",this.css,this);this._resizeCss=_.debounce(_.bind(this.css,this),this.refreshSensitivity);e(window).on("resize.attachments",this._resizeCss);this.css()},dispose:function(){this.collection.props.off(null,null,this);e(window).off("resize.attachments",this._resizeCss);f.View.prototype.dispose.apply(this,arguments)},css:function(){var g=e("#"+this.el.id+"-css");if(g.length){g.remove()}f.view.Attachments.$head().append(this.cssTemplate({id:this.el.id,edge:this.edge(),gutter:this.model.get("gutter")}))},edge:function(){var i=this.model.get("edge"),j,h,g;if(!this.$el.is(":visible")){return i}j=this.model.get("gutter")*2;h=this.$el.width()-j;g=Math.ceil(h/(i+j));i=Math.floor((h-(g*j))/g);return i},initSortable:function(){var g=this.collection,h;if(!this.options.sortable||!e.fn.sortable){return}this.$el.sortable({disabled:!!g.comparator,containment:this.$el,tolerance:"pointer",start:function(i,j){h=j.item.index()},update:function(j,k){var i=g.at(h);g.remove(i,{silent:true}).add(i,{at:k.item.index(),silent:true})}});g.props.on("change:orderby",function(){this.$el.sortable("option","disabled",!!g.comparator)},this)},refreshSortable:function(){if(!this.options.sortable||!e.fn.sortable){return}this.$el.sortable("option","disabled",!!this.collection.comparator)},createAttachmentView:function(h){var g=new this.options.AttachmentView({controller:this.controller,model:h,collection:this.collection,selection:this.options.selection});return this._viewsByCid[h.cid]=g},prepare:function(){if(this.collection.length){this.views.set(this.collection.map(this.createAttachmentView,this))}else{this.views.unset();this.collection.more().done(this.scroll)}},ready:function(){this.scroll()},scroll:function(g){if(!this.$el.is(":visible")){return}if(this.collection.hasMore()&&this.el.scrollHeight<this.el.scrollTop+(this.el.clientHeight*this.options.refreshThreshold)){this.collection.more().done(this.scroll)}}},{$head:(function(){var g;return function(){return g=g||e("head")}}())});f.view.Search=f.View.extend({tagName:"input",className:"search",attributes:{type:"search",placeholder:b.search},events:{input:"search",keyup:"search",change:"search",search:"search"},render:function(){this.el.value=this.model.escape("search");return this},search:function(g){if(g.target.value){this.model.set("search",g.target.value)}else{this.model.unset("search")}}});f.view.AttachmentFilters=f.View.extend({tagName:"select",className:"attachment-filters",events:{change:"change"},filters:{},keys:[],initialize:function(){this.$el.html(_.chain(this.filters).map(function(g,h){return{el:this.make("option",{value:h},g.text),priority:g.priority||50}},this).sortBy("priority").pluck("el").value());this.model.on("change",this.select,this);this.select()},change:function(h){var g=this.filters[this.el.value];if(g){this.model.set(g.props)}},select:function(){var g=this.model,i="all",h=g.toJSON();_.find(this.filters,function(k,l){var j=_.all(k.props,function(n,m){return n===(_.isUndefined(h[m])?null:h[m])});if(j){return i=l}});this.$el.val(i)}});f.view.AttachmentFilters.Uploaded=f.view.AttachmentFilters.extend({filters:{all:{text:b.allMediaItems,props:{uploadedTo:null,orderby:"date",order:"DESC"},priority:10},uploaded:{text:b.uploadedToThisPost,props:{uploadedTo:f.view.settings.postId,orderby:"menuOrder",order:"ASC"},priority:20}}});f.view.AttachmentFilters.All=f.view.AttachmentFilters.extend({filters:(function(){var g={};_.each(f.view.settings.mimeTypes||{},function(i,h){g[h]={text:i,props:{type:h,uploadedTo:null,orderby:"date",order:"DESC"}}});g.all={text:b.allMediaItems,props:{type:null,uploadedTo:null,orderby:"date",order:"DESC"},priority:10};g.uploaded={text:b.uploadedToThisPost,props:{type:null,uploadedTo:f.view.settings.postId,orderby:"menuOrder",order:"ASC"},priority:20};return g}())});f.view.AttachmentsBrowser=f.View.extend({tagName:"div",className:"attachments-browser",initialize:function(){this.controller=this.options.controller;_.defaults(this.options,{filters:false,search:true,uploads:false,display:false,AttachmentView:f.view.Attachment.Library});this.createToolbar();this.updateContent();this.createSidebar();this.collection.on("add remove reset",this.updateContent,this)},dispose:function(){this.options.selection.off(null,null,this);f.View.prototype.dispose.apply(this,arguments);return this},createToolbar:function(){var h,g;this.toolbar=new f.view.Toolbar({controller:this.controller});this.views.add(this.toolbar);h=this.options.filters;if("uploaded"===h){g=f.view.AttachmentFilters.Uploaded}else{if("all"===h){g=f.view.AttachmentFilters.All}}if(g){this.toolbar.set("filters",new g({controller:this.controller,model:this.collection.props,priority:-80}).render())}if(this.options.search){this.toolbar.set("search",new f.view.Search({controller:this.controller,model:this.collection.props,priority:60}).render())}if(this.options.sortable){this.toolbar.set("dragInfo",new f.View({el:e('<div class="instructions">'+b.dragInfo+"</div>")[0],priority:-40}))}},updateContent:function(){var g=this;if(!this.attachments){this.createAttachments()}if(!this.collection.length){this.collection.more().done(function(){if(!g.collection.length){g.createUploader()}})}},removeContent:function(){_.each(["attachments","uploader"],function(g){if(this[g]){this[g].remove();delete this[g]}},this)},createUploader:function(){this.removeContent();this.uploader=new f.view.UploaderInline({controller:this.controller});this.views.add(this.uploader)},createAttachments:function(){this.removeContent();this.attachments=new f.view.Attachments({controller:this.controller,collection:this.collection,selection:this.options.selection,model:this.model,sortable:this.options.sortable,AttachmentView:this.options.AttachmentView});this.views.add(this.attachments)},createSidebar:function(){var g=this.options,h=g.selection,i=this.sidebar=new f.view.Sidebar({controller:this.controller});this.views.add(i);if(g.uploads&&this.controller.uploader){i.set("uploads",new f.view.UploaderStatus({controller:this.controller,priority:40}))}h.on("selection:single",this.createSingle,this);h.on("selection:unsingle",this.disposeSingle,this);if(h.single()){this.createSingle()}},createSingle:function(){var h=this.sidebar,i=this.options.selection.single(),g={};h.set("details",new f.view.Attachment.Details({controller:this.controller,model:i,priority:80}));h.set("compat",new f.view.AttachmentCompat({controller:this.controller,model:i,priority:120}));if(this.options.display){h.set("display",new f.view.Settings.AttachmentDisplay({controller:this.controller,model:this.model.display(i),attachment:i,priority:160,userSettings:this.model.get("displayUserSettings")}))}},disposeSingle:function(){var g=this.sidebar;g.unset("details");g.unset("compat");g.unset("display")}});f.view.SelectionPreview=f.View.extend({tagName:"div",className:"selection-preview",template:f.template("media-selection-preview"),events:{"click .clear-selection":"clear"},initialize:function(){_.defaults(this.options,{clearable:true});this.controller=this.options.controller;this.collection.on("add change:url remove",this.render,this);this.render()},render:function(){var g=_.clone(this.options),j,i,h;if(!this.collection.length){this.$el.empty();return this}g.count=this.collection.length;j=this.collection.last();i=j.get("sizes");if("image"===j.get("type")){g.thumbnail=(i&&i.thumbnail)?i.thumbnail.url:j.get("url")}else{g.thumbnail=j.get("icon")}this.$el.html(this.template(g));return this},clear:function(g){g.preventDefault();this.collection.clear()}});f.view.Selection=f.View.extend({tagName:"div",className:"media-selection",template:f.template("media-selection"),events:{"click .edit-selection":"edit","click .clear-selection":"clear"},initialize:function(){_.defaults(this.options,{editable:false,clearable:true});this.controller=this.options.controller;this.attachments=new f.view.Attachments({controller:this.controller,collection:this.collection,selection:this.collection,sortable:true,model:new Backbone.Model({edge:40,gutter:5}),AttachmentView:f.view.Attachment.Selection});this.collection.on("add remove reset",this.refresh,this)},destroy:function(){this.remove();this.collection.off("add remove reset",this.refresh,this);this.attachments.destroy()},render:function(){this.attachments.$el.detach();this.attachments.render();this.$el.html(this.template(this.options));this.$(".selection-view").replaceWith(this.attachments.$el);this.refresh();return this},refresh:function(){if(!this.$el.children().length){return}this.$el.toggleClass("empty",!this.collection.length);this.$(".count").text(this.collection.length+" "+b.selected)},edit:function(g){g.preventDefault();if(this.options.editable){this.options.editable.call(this,this.collection)}},clear:function(g){g.preventDefault();this.collection.clear()}});f.view.Attachment.Selection=f.view.Attachment.extend({className:"attachment selection",toggleSelection:function(){this.options.selection.single(this.model)}});f.view.Attachment.EditSelection=f.view.Attachment.Selection.extend({buttons:{close:true}});f.view.Settings=f.View.extend({events:{"click button":"updateHandler","change input":"updateHandler","change select":"updateHandler","change textarea":"updateHandler"},initialize:function(){this.model=this.model||new Backbone.Model();this.model.on("change",this.updateChanges,this)},destroy:function(){this.model.off(null,null,this)},render:function(){this.$el.html(this.template(_.defaults({model:this.model.toJSON()},this.options)));_(this.model.attributes).chain().keys().each(this.update,this);return this},update:function(i){var j=this.model.get(i),h=this.$('[data-setting="'+i+'"]'),g;if(!h.length){return}if(h.is("select")){h.find('[value="'+j+'"]').attr("selected",true)}else{if(h.hasClass("button-group")){g=h.find("button").removeClass("active");g.filter('[value="'+j+'"]').addClass("active")}else{if(h.is('input[type="text"], textarea')){if(!h.is(":focus")){h.val(j)}}}}},updateHandler:function(i){var h=e(i.target).closest("[data-setting]"),j=i.target.value,g;i.preventDefault();if(!h.length){return}this.model.set(h.data("setting"),j);if(g=h.data("userSetting")){setUserSetting(g,j)}},updateChanges:function(h,g){if(g.changes){_(g.changes).chain().keys().each(this.update,this)}}});f.view.Settings.AttachmentDisplay=f.view.Settings.extend({className:"attachment-display-settings",template:f.template("attachment-display-settings"),initialize:function(){var g=this.options.attachment;_.defaults(this.options,{userSettings:false});f.view.Settings.prototype.initialize.apply(this,arguments);this.model.on("change:link",this.updateCustomLink,this);if(g){g.on("change:uploading",this.render,this)}},dispose:function(){var g=this.options.attachment;if(g){g.off(null,null,this)}f.view.Settings.prototype.dispose.apply(this,arguments)},render:function(){var g=this.options.attachment;if(g){_.extend(this.options,{sizes:g.get("sizes"),type:g.get("type")})}f.view.Settings.prototype.render.call(this);this.updateCustomLink();return this},updateCustomLink:function(){var g="custom"===this.model.get("link"),h=this.$(".link-to-custom");if(!g){h.hide();return}h.show();if(!this.model.get("linkUrl")){h.val("http://")}if(h.is(":visible")){h.focus()[0].select()}}});f.view.Settings.Gallery=f.view.Settings.extend({className:"gallery-settings",template:f.template("gallery-settings")});f.view.Attachment.Details=f.view.Attachment.extend({tagName:"div",className:"attachment-details",template:f.template("attachment-details"),events:{"change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .delete-attachment":"deleteAttachment"},deleteAttachment:function(g){g.preventDefault();if(confirm(b.warnDelete)){this.model.destroy()}}});f.view.AttachmentCompat=f.View.extend({tagName:"form",className:"compat-item",events:{submit:"preventDefault","change input":"save","change select":"save","change textarea":"save"},initialize:function(){this.model.on("change:compat",this.render,this)},destroy:function(){this.model.off(null,null,this)},render:function(){var g=this.model.get("compat");if(!g||!g.item){return}this.$el.html(g.item);return this},preventDefault:function(g){g.preventDefault()},save:function(g){var h={};g.preventDefault();_.each(this.$el.serializeArray(),function(i){h[i.name]=i.value});this.model.saveCompat(h)}});f.view.Iframe=f.View.extend({className:"media-iframe",initialize:function(){this.controller=this.options.controller},render:function(){this.$el.html('<iframe src="'+this.controller.state().get("src")+'" />');return this}});f.view.Embed=f.View.extend({className:"media-embed",initialize:function(){this.controller=this.options.controller;this.url=new f.view.EmbedUrl({controller:this.controller,model:this.model}).render();this._settings=new f.View();this.refresh();this.model.on("change:type",this.refresh,this)},render:function(){this.$el.html([this.url.el,this._settings.el]);this.url.focus();this.views.render();return this},settings:function(g){g.render();this._settings.$el.replaceWith(g.$el);if(this._settings.destroy){this._settings.destroy()}this._settings.remove();this._settings=g},refresh:function(){var h=this.model.get("type"),g;if("image"===h){g=f.view.EmbedImage}else{if("link"===h){g=f.view.EmbedLink}else{return}}this.settings(new g({controller:this.controller,model:this.model,priority:40}))}});f.view.EmbedUrl=f.View.extend({tagName:"label",className:"embed-url",events:{input:"url",keyup:"url",change:"url"},initialize:function(){this.label=this.make("span",null,this.options.label||b.url);this.input=this.make("input",{type:"text",value:this.model.get("url")||""});this.$label=e(this.label);this.$input=e(this.input);this.$el.append([this.label,this.input]);this.model.on("change:url",this.render,this)},destroy:function(){this.model.off(null,null,this)},render:function(){var g=this.$input;if(g.is(":focus")){return}this.input.value=this.model.get("url")||"http://";return this},url:function(g){this.model.set("url",g.target.value)},focus:function(){var g=this.$input;if(g.is(":visible")){g.focus()[0].select()}}});f.view.EmbedLink=f.view.Settings.extend({className:"embed-link-settings",template:f.template("embed-link-settings")});f.view.EmbedImage=f.view.Settings.AttachmentDisplay.extend({className:"embed-image-settings",template:f.template("embed-image-settings"),initialize:function(){f.view.Settings.AttachmentDisplay.prototype.initialize.apply(this,arguments);this.model.on("change:url",this.updateImage,this)},destroy:function(){this.model.off(null,null,this);f.view.Settings.AttachmentDisplay.prototype.destroy.apply(this,arguments)},updateImage:function(){this.$("img").attr("src",this.model.get("url"))}})}(jQuery)); |