Files
WPS3Media/assets/js/pro/media.min.js

1 line
6.2 KiB
JavaScript
Raw Normal View History

(function($,_){var media=wp.media;media.view.OffloadButton=media.view.Button.extend({defaults:{text:"",style:"primary",size:"large",disabled:false},initialize:function(options){if(options){this.options=options;this.defaults.text=as3cfpro_media.strings[this.options.action]}this.options=_.extend({},this.defaults,this.options);media.view.Button.prototype.initialize.apply(this,arguments);this.controller.on("selection:toggle",this.toggleDisabled,this);this.controller.on("select:activate",this.toggleDisabled,this)},render:function(){media.view.Button.prototype.render.apply(this,arguments);this.toggleDisabled();return this},toggleDisabled:function(){var selection=this.controller.state().get("selection").length>0;if(!selection){this.$el.addClass("disabled")}else{this.$el.removeClass("disabled")}},click:function(e){e.preventDefault();var selection=this.controller.state().get("selection");var models=selection.models;var library=this.controller.state().get("library");if(this.$el.hasClass("disabled")||!selection.length){return}var payload={_ajax_nonce:as3cfpro_media.nonces[this.options.scope+"_"+this.options.action],scope:this.options.scope,s3_action:this.options.action,ids:_.pluck(models,"id")};this.startOffloadAction();this.fireOffloadAction(payload).done((function(){_.each(models,(function(model){model.fetch()}));library._requery(true)}))},startOffloadAction:function(){$(".media-toolbar .spinner").css("visibility","visible").show();$(".media-toolbar-secondary .button").addClass("disabled");$(".offload-buttons__submenu").addClass("hidden")},fireOffloadAction:function(payload){return wp.ajax.send("as3cfpro_process_media_action",{data:payload}).done(_.bind(this.returnOffloadAction,this))},returnOffloadAction:function(response){if(response&&""!==response){$(".as3cf-notice").remove();$("#wp-media-grid h1").after(response)}this.controller.trigger("selection:action:done");$(".media-toolbar .spinner").attr("style","").hide()}});media.view.OffloadToggle=media.view.Button.extend({className:"offload-buttons__toggle",defaults:{style:"primary",size:"large",priority:-80,disabled:true},initialize:function(){media.view.Button.prototype.initialize.apply(this,arguments);this.controller.on("selection:toggle",this.toggleDisabled,this);this.controller.on("select:activate",this.toggleDisabled,this);$("body").on("click",this.blur);return this},click:function(e){e.preventDefault();if(this.$el.hasClass("disabled")){return}var toolbar=this.controller.content.get().toolbar;this.$el.toggleClass("opened");toolbar.$(".offload-buttons__submenu").toggleClass("hidden")},blur:function(){var $toggle=$(".media-toolbar .offload-buttons__toggle");var $submenu=$(".media-toolbar .offload-buttons__submenu");if($toggle.hasClass("opened")&&!$submenu.parent().is(":active, :hover")){$submenu.addClass("hidden");$toggle.removeClass("opened")}},toggleDisabled:function(){var selection=this.controller.state().get("selection").length>0;this.model.set("disabled",!selection);if(!selection){this.$el.addClass("disabled")}else{this.$el.removeClass("disabled")}}});var wpSelectModeToggleButton=media.view.SelectModeToggleButton;media.view.SelectModeToggleButton=wpSelectModeToggleButton.extend({toggleBulkEditHandler:function(){wpSelectModeToggleButton.prototype.toggleBulkEditHandler.call(this,arguments);var $toolbar=this.controller.content.get().toolbar;var $buttons=$toolbar.$(".offload-buttons");var $submenu=$buttons.find(".offload-buttons__submenu");if(this.controller.isModeActive("select")){$buttons.addClass("visible")}else{$buttons.removeClass("visible")}if($submenu.length){$buttons.width($submenu.outerWidth())}}});media.view.OffloadLocationFilter=wp.media.view.AttachmentFilters.extend({id:"media-attachment-as3cf-location-filter",initialize:function(){this.createFilters();_.extend(this.filters,this.options.filters);var html="";_(as3cfpro_media.filters.as3cf_location.options).each((function(option,key){if(typeof option==="string"){html+=$("<option></option>").val(key).html(option).wrap("<p>").parent().html()}else{html+='<optgroup label="'+key+'">';_(option).each((function(sub_option,s