1 line
11 KiB
JavaScript
1 line
11 KiB
JavaScript
var FAPImage=Backbone.Model.extend({defaults:{buttons:{check:!0},can:{save:!1,remove:!1},id:null,title:"",link:"http://www.free-images.cc",date:null,modified:null,mime:"image/jpeg",dateFormatted:null,height:null,width:null,orientation:null,filesizeInBytes:null,filesizeHumanReadable:null,size:{url:null},type:"image",icon:null,sizes:{thumbnail:{height:null,width:null,url:"http://www.free-images.cc",orientation:null},medium:{height:null,width:null,url:"http://www.free-images.cc",orientation:null},large:{height:null,width:null,url:"http://www.free-images.cc",orientation:null}}}}),FAPPage=1,subState,searchTerm,FAPSearchInterval,View=wp.media.View,mediaTrash=wp.media.view.settings.mediaTrash,l10n=wp.media.view.l10n,$=jQuery,FAPBrowser;FAPBrowser=View.extend({tagName:"div",className:"attachments-browser fap-media",initialize:function(){var a,b=this;_.defaults(this.options,{filters:!1,search:!1,date:!1,display:!1,sidebar:!0,toolbar:!0,AttachmentView:wp.media.view.Attachment.Library}),this.options.toolbar&&this.createToolbar(),this.toolbar.get("spinner").show(),this.options.sidebar&&(this.createSidebar(),this.createSidebarLogo()),this.options.sidebar&&"errors"!==this.options.sidebar||(this.$el.addClass("hide-sidebar"),"errors"===this.options.sidebar&&this.$el.addClass("sidebar-for-errors")),a=new FapCollection({page:FAPPage}),a.fetch({success:function(a){subState="fap";var c=new ImagesView({controller:b.controller,collection:a});b.views.view.$el.append('<div class="broadcast"><p>Unfortunatly the free-images.cc importer will be shut down on 1st August 2017. We have decided to discontinue our plugin, because we do not find the time to keep it up to date and we do not want to burden you with an outdated, maybe insecure plugin.<br><br>Our <a href="http://free-images.cc" target="_blank">website</a>, however, will stay online and provide marvelous cc0 licenced images for you.<br><br>Thank you all for your support! :)<br><br><a class="close_broadcast">Okay :/</a></p></div>'),b.views.add(c),b.toolbar.get("spinner").hide()}})},createSidebar:function(){var a=(this.options,this.sidebar=new wp.media.view.Sidebar({controller:this.controller}));this.views.add(a)},createSidebarLogo:function(){var a=new LHLogo;a.createLogo(),this.sidebar.views.add(a)},createToolbar:function(){var a;a={controller:this.controller},this.toolbar=new wp.media.view.Toolbar(a),this.views.add(this.toolbar),this.toolbar.set("spinner",new wp.media.view.Spinner({priority:-60})),this.toolbar.set("search",new FAPSearch({controller:this.controller,fapView:this.views}))},createUpload:function(){var a;a=new FAPUpload({controller:this.controller}),this.views.add(a)}});var View=wp.media.View,$=jQuery,ImagesView;ImagesView=View.extend({tagName:"ul",className:"attachments fap-images",attributes:{tabIndex:0},initialize:function(){this.el.id=_.uniqueId("__attachments-view-");var a=this;_.defaults(this.options,{refreshSensitivity:wp.media.isTouchDevice?300:200,refreshThreshold:3,AttachmentView:wp.media.view.Attachment,sortable:!1,resize:!0,idealColumnWidth:$(window).width()<640?135:150}),this._viewsByCid={},this.$window=$(window),this.scroll=_.chain(this.scroll).bind(this).throttle(this.options.refreshSensitivity).value(),this.options.scrollElement=this.options.scrollElement||this.el,$(this.options.scrollElement).on("scroll",this.scroll),this.collection.each(function(b){var c=new ImageView({controller:a.controller,model:b});a.views.add(c)}),_.bindAll(this,"setColumns"),this.options.resize&&(this.on("ready",this.bindEvents),this.controller.on("open",this.setColumns),_.defer(this.setColumns,this))},setColumns:function(){var a=this.columns,b=this.$el.width();b&&(this.columns=Math.min(Math.round(b/this.options.idealColumnWidth),12)||1,a&&a===this.columns||this.$el.closest(".media-frame-content").attr("data-columns",this.columns))},ready:function(){this.scroll()},scroll:function(){var a,b=this.options.scrollElement,c=b.scrollTop;b===document&&(b=document.body,c=$(document).scrollTop()),a=this.views.parent.toolbar,b.scrollHeight-(c+b.clientHeight)<b.clientHeight/3&&(FAPPage+=1,this.loadMorePictures(FAPPage))},loadMorePictures:function(a){var b,c=this;"fap"==subState?b=new FapCollection({page:a}):"search"==subState&&(b=new FapSearchCollection({searchTerm:searchTerm,page:a})),b.fetch({success:function(a){a.length<=0||a.each(function(a){var b=new ImageView({controller:c.controller,model:a});c.views.add(b)})}})}});var View=wp.media.View,$=jQuery,ImagesView;ImageView=View.extend({tagName:"li",className:"attachment fap-image",template:wp.template("attachment"),controller:this.controller,events:{"click .js--select-attachment":"toggleSelectionHandler","click .check":"toggleSelectionHandler",keydown:"toggleSelectionHandler"},attributes:function(){return{tabIndex:0,role:"checkbox","aria-label":this.model.get("title"),"aria-checked":!1,"data-id":this.model.get("id")}},buttons:{},initialize:function(){this.render()},render:function(){var a,b=this.model.get("size");b.url=this.model.get("sizes").thumbnail.url,this.model.set("size",b),this.model.set({icon:this.model.get("sizes").thumbnail.url}),a=_.defaults(this.model.toJSON(),{orientation:"landscape",uploading:!1,type:"",subtype:"",icon:"",filename:"",caption:"",title:"",dateFormatted:"",width:"",height:"",compat:!1,alt:"",description:""},this.options),this.$el.html(this.template(a))},toggleSelectionHandler:function(a){var b,c,d;return b=this.views.parent.views.parent.sidebar,c=this.$el,custom_data=!0,this.controller.toolbar.get().refresh(),jQuery(".attachment-details").remove(),c.hasClass("selected")?(c.removeClass("selected").removeClass("details"),custom_data=!1,void this.controller.toolbar.get().refresh()):(jQuery(".fap-image").each(function(a){jQuery(this).hasClass("selected")&&jQuery(this).removeClass("selected").removeClass("details")}),c.addClass("selected").addClass("details"),custom_data=!0,this.controller.toolbar.get().refresh(),d=new FAPDetails({controller:this.controller,model:this.model}),void b.views.add(d))}});var l10n=wp.media.view.l10n,FAPSearch;toolbar,FAPSearch=wp.media.View.extend({tagName:"input",className:"search",id:"media-search-input fap-search",attributes:{type:"search",placeholder:l10n.search},events:{input:"search",keyup:"search",change:"search",search:"search"},render:function(){return this},search:function(a){var b,c=this;b=c.views.parent.views.parent.get("spinner"),clearTimeout(FAPSearchInterval),FAPSearchInterval=setTimeout(function(){var d,e;if(FAPPage=1,searchTerm=a.target.value,d=c.options.fapView,b.show(),searchTerm)e=new FapSearchCollection({searchTerm:searchTerm,page:FAPPage}),e.fetch({success:function(a){if(jQuery(".attachments.fap-images").remove(),subState="search",a.length>0){jQuery(".no-fap").remove();var e=new ImagesView({controller:c.controller,collection:a});d.add(e)}else jQuery(".no-fap").remove(),jQuery(".attachments-browser").append('<div class="no-fap"><h2>Sorry, we couldn\'t find any images with the keyword "'+searchTerm+'"</h2></div>');b.hide()}});else{jQuery(".no-fap").remove();var f=new FapCollection({page:FAPPage});f.fetch({success:function(a){jQuery(".attachments.fap-images").remove(),subState="fap";var e=new ImagesView({controller:c.controller,collection:a});d.add(e),b.hide()}})}},500)}});var FAPDetails=ImageView.extend({tagName:"div",className:"attachment-details",template:wp.template("fap-image-details"),attributes:function(){return{tabIndex:0,"data-id":this.model.get("id")}},initialize:function(){var a;a=_.defaults(this.model.toJSON(),{orientation:"landscape",uploading:!1,type:"",subtype:"",icon:"",filename:"",caption:"",title:"",dateFormatted:"",width:"",height:"",compat:!1,alt:"",description:""},this.options),jQuery(".attachment-details").remove(),this.$el.html(this.template(a))}}),LHLogo=Backbone.View.extend({logoTemplate:wp.template("lh-logo"),createLogo:function(){this.$el.html(this.logoTemplate())}}),FAPUpload=wp.media.View.extend({template:wp.template("fap-image-upload"),initialize:function(){this.$el.html(this.template(""))}}),FapCollection=Backbone.Collection.extend({model:FAPImage,initialize:function(a){this.url=ajaxurl+"?action=list_images&paged="+a.page},parse:function(a){return a.data}}),FapSearchCollection=Backbone.Collection.extend({model:FAPImage,initialize:function(a){this.url=ajaxurl+"?action=list_images&s="+a.searchTerm+"&paged="+a.page},parse:function(a){return a.data}}),oldMediaFrame=wp.media.view.MediaFrame.Post,l10n=wp.media.view.l10n;wp.media.view.MediaFrame.Post=oldMediaFrame.extend({initialize:function(){oldMediaFrame.prototype.initialize.apply(this,arguments),this.states.add([new wp.media.controller.FAPController({id:"fap-action",menu:"default",content:"custom",title:wp.media.view.l10n.menuTitle,priority:60,toolbar:"fap-media-frame-toolbar",type:"link"})]),this.on("toolbar:create:fap-media-frame-toolbar",this.createCustomFrameToolbar,this),this.on("content:render:custom",this.FAPContent,this)},createCustomFrameToolbar:function(a){a.view=new wp.media.view.Toolbar.FAPToolbar({controller:this})},FAPContent:function(){this.$el.addClass("hide-router");var a=new FAPBrowser({controller:this});this.content.set(a)}});var custom_data=!1;wp.media.view.Toolbar.FAPToolbar=wp.media.view.Toolbar.extend({initialize:function(){_.defaults(this.options,{event:"custom_event",close:!1,items:{custom_event:{text:wp.media.view.l10n.addToLibrary,style:"primary",priority:80,requires:!1,click:this.customAction}}}),wp.media.view.Toolbar.prototype.initialize.apply(this,arguments)},refresh:function(){this.get("custom_event").model.set("disabled",!custom_data),wp.media.view.Toolbar.prototype.refresh.apply(this,arguments)},customAction:function(){custom_data=!1,this.controller.toolbar.get().refresh();var a=document.getElementsByClassName("attachment-details")[0].getAttribute("data-id"),b=ajaxurl+"?action=import_image&image_id="+a+"&post_id=0",c=this,d=new FAPUpload({controller:this.controller});this.controller.content.get("view").views.add(d),jQuery.get(b,function(a){jQuery(".progress-container").addClass("success"),setTimeout(function(){oldMediaFrame.prototype.open(),c.controller.states.get("insert").get("library").props.trigger("change",!0),c.controller.setState("insert")},1e3)}).fail(function(a,b,c){jQuery(".js--select-attachment").each(function(a){jQuery(this).hasClass("selected")&&jQuery(this).removeClass("selected")}),jQuery(".progress-container").remove(),alert(jQuery.parseJSON(a.responseText).msg)})},deactivateButton:function(){}}),wp.media.controller.FAPController=wp.media.controller.State.extend({initialize:function(){this.props=new Backbone.Model({custom_data:""}),this.props.on("change:custom_data",this.refresh,this)},refresh:function(){this.frame.toolbar.get().refresh()},customAction:function(){this.frame.content.mode("browse")}}),jQuery(document).ready(function(a){a("body").on("click",function(b){var c=a(b.target);c.hasClass("close_broadcast")&&a(".broadcast").addClass("closed")})}); |