PluginProbe ʕ •ᴥ•ʔ
Folders – Unlimited Folders to Organize Media Library Folder, Pages, Posts, File Manager / 2.2.5
Folders – Unlimited Folders to Organize Media Library Folder, Pages, Posts, File Manager v2.2.5
3.1.9 3.1.8 3.1.7 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8 3.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 trunk 1.3.7 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.6.6 2.6.7 2.6.8 2.6.9 2.7 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9 2.9.1 2.9.2
folders / assets / js / media.js
folders / assets / js Last commit date
custom.js 6 years ago livequery.min.js 6 years ago media.js 6 years ago
media.js
167 lines
1 (function() {
2 var MediaLibraryOrganizerTaxonomyFilter = wp.media.view.AttachmentFilters.extend({
3 id: 'media-attachment-taxonomy-filter',
4 createFilters: function() {
5 var filters = {};
6 _.each(folders_media_options.terms || {}, function(term, index) {
7 filters[term.term_id] = {
8 text: term.name + ' (' + term.count + ')',
9 props: {
10 'media_folder': term.slug
11 }
12 };
13 });
14 filters.all = {
15 text: 'Select a folder >>',
16 props: {
17 'media_folder': ''
18 },
19 priority: 10
20 };
21 filters.unassigned = {
22 text: '(Unassigned)',
23 props: {
24 'media_folder': "-1"
25 },
26 priority: 10
27 };
28 console.log(filters);
29 this.filters = filters;
30 },
31 change: function() {
32 var filters = {};
33 _.each(folders_media_options.terms || {}, function(term, index) {
34 filters[term.term_id] = {
35 text: term.name + ' (' + term.count + ')',
36 props: {
37 'media_folder': term.slug
38 }
39 };
40 });
41 filters.all = {
42 text: 'Select a folder >>',
43 props: {
44 'media_folder': ''
45 },
46 priority: 10
47 };
48 filters.unassigned = {
49 text: '(Unassigned)',
50 props: {
51 'media_folder': "-1"
52 },
53 priority: 10
54 };
55 this.filters = filters;
56 var filter = this.filters[ this.el.value ];
57 if ( filter ) {
58 this.model.set( filter.props );
59 }
60 }
61 });
62
63 var AttachmentsBrowser = wp.media.view.AttachmentsBrowser;
64 wp.media.view.AttachmentsBrowser = wp.media.view.AttachmentsBrowser.extend({
65 createToolbar: function() {
66 AttachmentsBrowser.prototype.createToolbar.call(this);
67 this.toolbar.set('MediaLibraryOrganizerTaxonomyFilter', new MediaLibraryOrganizerTaxonomyFilter({
68 controller: this.controller,
69 model: this.collection.props,
70 priority: -75
71 }).render());
72 }
73 });
74
75 var Query = wp.media.model.Query;
76 _.extend(Query, {
77 get: (function() {
78 var queries = [];
79 return function(props, options) {
80 var args = {},
81 orderby = Query.orderby,
82 defaults = Query.defaultProps,
83 query,
84 cache = false; // Always disable query
85 delete props.query;
86 delete props.cache;
87 _.defaults(props, defaults);
88
89 _.each(['include', 'exclude'], function(prop) {
90 if (props[prop] && !_.isArray(props[prop])) {
91 props[prop] = [props[prop]];
92 }
93 });
94 _.each(props, function(value, prop) {
95 if (_.isNull(value)) {
96 return;
97 }
98 args[Query.propmap[prop] || prop] = value;
99 });
100 _.defaults(args, Query.defaultArgs);
101 args.orderby = orderby.valuemap[props.orderby] || props.orderby;
102 // Disable query caching
103 cache = false;
104 // Search the query cache for a matching query.
105 if (cache) {
106 query = _.find(queries, function(query) {
107 return _.isEqual(query.args, args);
108 });
109 } else {
110 queries = [];
111 }
112 // Otherwise, create a new query and add it to the cache.
113 if (!query) {
114 query = new Query([], _.extend(options || {}, {
115 props: props,
116 args: args
117 }));
118 queries.push(query);
119 }
120 return query;
121 };
122 }())
123 });
124 })(jQuery, _);
125
126 var selectedFolderMediaId = -1;
127
128 jQuery(document).on("change", ".folder_for_media", function(){
129 selectedFolderMediaId = $(this).val();
130 });
131
132
133 var wp = window.wp;
134 //Upload on page Media Library (upload.php)
135 if (typeof wp !== 'undefined' && typeof wp.Uploader === 'function') {
136 jQuery.extend(wp.Uploader.prototype, {
137 progress: function () {
138 },
139 init: function () {
140 if (this.uploader) {
141 this.uploader.bind('FileFiltered', function (up, file) {
142 });
143 this.uploader.bind('BeforeUpload', function (uploader, file) {
144 var folder_id = selectedFolderMediaId;
145 var params = uploader.settings.multipart_params;
146 folder_id = parseInt(folder_id);
147 if (folder_id > 0) {
148 params.folder_for_media = folder_id;
149 }
150 });
151 this.uploader.bind('UploadComplete', function (up, files) {
152 selectedFolderMediaId = -1;
153 });
154 this.uploader.bind('UploadComplete', function (up, files) {
155 var wp_media = window.wp;
156
157 if( wp_media.media.frame.content.get() !== null) {
158 wp_media.media.frame.content.get().collection.props.set({ignore: (+ new Date())});
159 wp_media.media.frame.content.get().options.selection.reset();
160 } else {
161 wp_media.media.frame.library.props.set ({ignore: (+ new Date())});
162 }
163 });
164 }
165 }
166 });
167 }