Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>2019-08-11 17:27:48 +0300
committernpmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>2019-08-11 20:43:33 +0300
commit723815f081a79b23c7daa1fc164152eb79525d94 (patch)
treecbcd47d22dc724784dcbedfc00a2657ce543ff89 /apps/systemtags/js
parent7b8ddd7e958bfbf7dbddf38aca2c789310e3d1a4 (diff)
Bump style-loader from 0.23.1 to 1.0.0
Bumps [style-loader](https://github.com/webpack-contrib/style-loader) from 0.23.1 to 1.0.0. - [Release notes](https://github.com/webpack-contrib/style-loader/releases) - [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/style-loader/compare/v0.23.1...v1.0.0) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> Signed-off-by: npmbuildbot[bot] <npmbuildbot[bot]@users.noreply.github.com>
Diffstat (limited to 'apps/systemtags/js')
-rw-r--r--apps/systemtags/js/systemtags.js4
-rw-r--r--apps/systemtags/js/systemtags.js.map2
2 files changed, 3 insertions, 3 deletions
diff --git a/apps/systemtags/js/systemtags.js b/apps/systemtags/js/systemtags.js
index baf5b5ee354..49ae9ecf41e 100644
--- a/apps/systemtags/js/systemtags.js
+++ b/apps/systemtags/js/systemtags.js
@@ -1,4 +1,4 @@
-!function(t){var e={};function i(n){if(e[n])return e[n].exports;var s=e[n]={i:n,l:!1,exports:{}};return t[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}i.m=t,i.c=e,i.d=function(t,e,n){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)i.d(n,s,function(e){return t[e]}.bind(null,s));return n},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="/js/",i(i.s=0)}([function(t,e,i){"use strict";i.r(e);i(1),i(2),i(3),i(4),i(5),i(6);window.OCA.SystemTags=OCA.SystemTags},function(e,i){OCA.SystemTags||(OCA.SystemTags={}),OCA.SystemTags.App={initFileList:function(e){return this._fileList?this._fileList:(this._fileList=new OCA.SystemTags.FileList(e,{id:"systemtags",fileActions:this._createFileActions(),config:OCA.Files.App.getFilesConfig(),shown:!0}),this._fileList.appName=t("systemtags","Tags"),this._fileList)},removeFileList:function(){this._fileList&&this._fileList.$fileList.empty()},_createFileActions:function(){var t=new OCA.Files.FileActions;return t.registerDefaultActions(),t.merge(OCA.Files.fileActions),this._globalActionsInitialized||(this._onActionsUpdated=_.bind(this._onActionsUpdated,this),OCA.Files.fileActions.on("setDefault.app-systemtags",this._onActionsUpdated),OCA.Files.fileActions.on("registerAction.app-systemtags",this._onActionsUpdated),this._globalActionsInitialized=!0),t.register("dir","Open",OC.PERMISSION_READ,"",function(t,e){OCA.Files.App.setActiveView("files",{silent:!0}),OCA.Files.App.fileList.changeDirectory(OC.joinPaths(e.$file.attr("data-path"),t),!0,!0)}),t.setDefault("dir","Open"),t},_onActionsUpdated:function(t){this._fileList&&(t.action?this._fileList.fileActions.registerAction(t.action):t.defaultAction&&this._fileList.fileActions.setDefault(t.defaultAction.mime,t.defaultAction.name))},destroy:function(){OCA.Files.fileActions.off("setDefault.app-systemtags",this._onActionsUpdated),OCA.Files.fileActions.off("registerAction.app-systemtags",this._onActionsUpdated),this.removeFileList(),this._fileList=null,delete this._globalActionsInitialized}},$(document).ready(function(){$("#app-content-systemtagsfilter").on("show",function(t){OCA.SystemTags.App.initFileList($(t.target))}),$("#app-content-systemtagsfilter").on("hide",function(){OCA.SystemTags.App.removeFileList()})})},function(e,i){var n;(n=function(t,e){this.initialize(t,e)}).prototype=_.extend({},OCA.Files.FileList.prototype,{id:"systemtagsfilter",appName:t("systemtags","Tagged files"),_systemTagIds:[],_lastUsedTags:[],_clientSideSort:!0,_allowSelection:!1,_filterField:null,initialize:function(t,e){if(OCA.Files.FileList.prototype.initialize.apply(this,arguments),!this.initialized){e&&e.systemTagIds&&(this._systemTagIds=e.systemTagIds),OC.Plugins.attach("OCA.SystemTags.FileList",this);var i=this.$el.find("#controls").empty();_.defer(_.bind(this._getLastUsedTags,this)),this._initFilterField(i)}},destroy:function(){this.$filterField.remove(),OCA.Files.FileList.prototype.destroy.apply(this,arguments)},_getLastUsedTags:function(){var t=this;$.ajax({type:"GET",url:OC.generateUrl("/apps/systemtags/lastused"),success:function(e){t._lastUsedTags=e}})},_initFilterField:function(e){var i=this;return this.$filterField=$('<input type="hidden" name="tags"/>'),e.append(this.$filterField),this.$filterField.select2({placeholder:t("systemtags","Select tags to filter by"),allowClear:!1,multiple:!0,toggleSelect:!0,separator:",",query:_.bind(this._queryTagsAutocomplete,this),id:function(t){return t.id},initSelection:function(t,e){var i=$(t).val().trim();if(i){var n=i.split(","),s=[];OC.SystemTags.collection.fetch({success:function(){_.each(n,function(t){var e=OC.SystemTags.collection.get(t);_.isUndefined(e)||s.push(e.toJSON())}),e(s)}})}else e([])},formatResult:function(t){return OC.SystemTags.getDescriptiveTag(t)},formatSelection:function(t){return OC.SystemTags.getDescriptiveTag(t)[0].outerHTML},sortResults:function(t){return t.sort(function(t,e){var n=i._lastUsedTags.indexOf(t.id),s=i._lastUsedTags.indexOf(e.id);return n!==s?-1===s?-1:-1===n?1:n<s?-1:1:OC.Util.naturalSortCompare(t.name,e.name)}),t},escapeMarkup:function(t){return t},formatNoMatches:function(){return t("systemtags","No tags found")}}),this.$filterField.on("change",_.bind(this._onTagsChanged,this)),this.$filterField},_queryTagsAutocomplete:function(t){OC.SystemTags.collection.fetch({success:function(){var e=OC.SystemTags.collection.filterByName(t.term);t.callback({results:_.invoke(e,"toJSON")})}})},_onUrlChanged:function(t){if(t.dir){var e=_.filter(t.dir.split("/"),function(t){return""!==t.trim()});this.$filterField.select2("val",e||[]),this._systemTagIds=e,this.reload()}},_onTagsChanged:function(t){var e=$(t.target).val().trim();this._systemTagIds=""!==e?e.split(","):[],this.$el.trigger(jQuery.Event("changeDirectory",{dir:this._systemTagIds.join("/")})),this.reload()},updateEmptyContent:function(){var e=this.getCurrentDirectory();"/"===e?(this._systemTagIds.length?this.$el.find("#emptycontent").html('<div class="icon-systemtags"></div><h2>'+t("systemtags","No files found for the selected tags")+"</h2>"):this.$el.find("#emptycontent").html('<div class="icon-systemtags"></div><h2>'+t("systemtags","Please select tags to filter by")+"</h2>"),this.$el.find("#emptycontent").toggleClass("hidden",!this.isEmpty),this.$el.find("#filestable thead th").toggleClass("hidden",this.isEmpty)):OCA.Files.FileList.prototype.updateEmptyContent.apply(this,arguments)},getDirectoryPermissions:function(){return OC.PERMISSION_READ|OC.PERMISSION_DELETE},updateStorageStatistics:function(){},reload:function(){if(this._setCurrentDir("/",!1),!this._systemTagIds.length)return this.updateEmptyContent(),this.setFiles([]),$.Deferred().resolve();this._selectedFiles={},this._selectionSummary.clear(),this._currentFileModel&&this._currentFileModel.off(),this._currentFileModel=null,this.$el.find(".select-all").prop("checked",!1),this.showMask(),this._reloadCall=this.filesClient.getFilteredFiles({systemTagIds:this._systemTagIds},{properties:this._getWebdavProperties()}),this._detailsView&&this._updateDetailsView(null);var t=this.reloadCallback.bind(this);return this._reloadCall.then(t,t)},reloadCallback:function(t,e){return e&&e.unshift({}),OCA.Files.FileList.prototype.reloadCallback.call(this,t,e)}}),OCA.SystemTags.FileList=n},function(t,e){OCA.SystemTags=_.extend({},OCA.SystemTags),OCA.SystemTags||(OCA.SystemTags={}),OCA.SystemTags.FilesPlugin={ignoreLists:["trashbin","files.public"],attach:function(t){if(!(this.ignoreLists.indexOf(t.id)>=0)){var e=new OCA.SystemTags.SystemTagsInfoView;t.registerDetailView(e),_.each(t.getRegisteredDetailViews(),function(t){if(t instanceof OCA.Files.MainFileInfoDetailView){var i=new OCA.SystemTags.SystemTagsInfoViewToggleView({systemTagsInfoView:e});return i.render(),i.listenTo(t,"pre-render",function(){i.$el.detach()}),void i.listenTo(t,"post-render",function(){t.$el.find(".file-details").append(i.$el)})}})}}},OC.Plugins.register("OCA.Files.FileList",OCA.SystemTags.FilesPlugin)},function(t,e){!function(t){function e(t){var e=t.toJSON();return OC.isUserAdmin()||e.canAssign||(e.locked=!0),e}var i=t.Files.DetailFileInfoView.extend({_rendered:!1,className:"systemTagsInfoView hidden",_inputView:null,initialize:function(t){var i=this;t=t||{},this._inputView=new OC.SystemTags.SystemTagsInputField({multiple:!0,allowActions:!0,allowCreate:!0,isAdmin:OC.isUserAdmin(),initSelection:function(t,n){n(i.selectedTagsCollection.map(e))}}),this.selectedTagsCollection=new OC.SystemTags.SystemTagsMappingCollection([],{objectType:"files"}),this._inputView.collection.on("change:name",this._onTagRenamedGlobally,this),this._inputView.collection.on("remove",this._onTagDeletedGlobally,this),this._inputView.on("select",this._onSelectTag,this),this._inputView.on("deselect",this._onDeselectTag,this)},_onSelectTag:function(t){this.selectedTagsCollection.create(t.toJSON())},_onDeselectTag:function(t){this.selectedTagsCollection.get(t).destroy()},_onTagRenamedGlobally:function(t){var e=this.selectedTagsCollection.get(t.id);e&&e.set(t.toJSON())},_onTagDeletedGlobally:function(t){this.selectedTagsCollection.remove(t)},setFileInfo:function(t){var i=this;this._rendered||this.render(),t&&(this.selectedTagsCollection.setObjectId(t.id),this.selectedTagsCollection.fetch({success:function(t){t.fetched=!0;var n=t.map(e);i._inputView.setData(n),0!==n.length?i.show():i.hide()}})),this.hide()},render:function(){this.$el.append(this._inputView.$el),this._inputView.render()},isVisible:function(){return!this.$el.hasClass("hidden")},show:function(){this.$el.removeClass("hidden")},hide:function(){this.$el.addClass("hidden")},openDropdown:function(){this.$el.find(".systemTagsInputField").select2("open")},remove:function(){this._inputView.remove()}});t.SystemTags.SystemTagsInfoView=i}(OCA)},function(e,i){
+!function(e){var t={};function i(s){if(t[s])return t[s].exports;var n=t[s]={i:s,l:!1,exports:{}};return e[s].call(n.exports,n,n.exports,i),n.l=!0,n.exports}i.m=e,i.c=t,i.d=function(e,t,s){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(i.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(s,n,function(t){return e[t]}.bind(null,n));return s},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/js/",i(i.s=0)}([function(e,t,i){"use strict";i.r(t);i(1),i(2),i(3),i(4),i(5),i(6);window.OCA.SystemTags=OCA.SystemTags},function(e,i){OCA.SystemTags||(OCA.SystemTags={}),OCA.SystemTags.App={initFileList:function(e){return this._fileList?this._fileList:(this._fileList=new OCA.SystemTags.FileList(e,{id:"systemtags",fileActions:this._createFileActions(),config:OCA.Files.App.getFilesConfig(),shown:!0}),this._fileList.appName=t("systemtags","Tags"),this._fileList)},removeFileList:function(){this._fileList&&this._fileList.$fileList.empty()},_createFileActions:function(){var e=new OCA.Files.FileActions;return e.registerDefaultActions(),e.merge(OCA.Files.fileActions),this._globalActionsInitialized||(this._onActionsUpdated=_.bind(this._onActionsUpdated,this),OCA.Files.fileActions.on("setDefault.app-systemtags",this._onActionsUpdated),OCA.Files.fileActions.on("registerAction.app-systemtags",this._onActionsUpdated),this._globalActionsInitialized=!0),e.register("dir","Open",OC.PERMISSION_READ,"",function(e,t){OCA.Files.App.setActiveView("files",{silent:!0}),OCA.Files.App.fileList.changeDirectory(OC.joinPaths(t.$file.attr("data-path"),e),!0,!0)}),e.setDefault("dir","Open"),e},_onActionsUpdated:function(e){this._fileList&&(e.action?this._fileList.fileActions.registerAction(e.action):e.defaultAction&&this._fileList.fileActions.setDefault(e.defaultAction.mime,e.defaultAction.name))},destroy:function(){OCA.Files.fileActions.off("setDefault.app-systemtags",this._onActionsUpdated),OCA.Files.fileActions.off("registerAction.app-systemtags",this._onActionsUpdated),this.removeFileList(),this._fileList=null,delete this._globalActionsInitialized}},$(document).ready(function(){$("#app-content-systemtagsfilter").on("show",function(e){OCA.SystemTags.App.initFileList($(e.target))}),$("#app-content-systemtagsfilter").on("hide",function(){OCA.SystemTags.App.removeFileList()})})},function(e,i){var s;(s=function(e,t){this.initialize(e,t)}).prototype=_.extend({},OCA.Files.FileList.prototype,{id:"systemtagsfilter",appName:t("systemtags","Tagged files"),_systemTagIds:[],_lastUsedTags:[],_clientSideSort:!0,_allowSelection:!1,_filterField:null,initialize:function(e,t){if(OCA.Files.FileList.prototype.initialize.apply(this,arguments),!this.initialized){t&&t.systemTagIds&&(this._systemTagIds=t.systemTagIds),OC.Plugins.attach("OCA.SystemTags.FileList",this);var i=this.$el.find("#controls").empty();_.defer(_.bind(this._getLastUsedTags,this)),this._initFilterField(i)}},destroy:function(){this.$filterField.remove(),OCA.Files.FileList.prototype.destroy.apply(this,arguments)},_getLastUsedTags:function(){var e=this;$.ajax({type:"GET",url:OC.generateUrl("/apps/systemtags/lastused"),success:function(t){e._lastUsedTags=t}})},_initFilterField:function(e){var i=this;return this.$filterField=$('<input type="hidden" name="tags"/>'),e.append(this.$filterField),this.$filterField.select2({placeholder:t("systemtags","Select tags to filter by"),allowClear:!1,multiple:!0,toggleSelect:!0,separator:",",query:_.bind(this._queryTagsAutocomplete,this),id:function(e){return e.id},initSelection:function(e,t){var i=$(e).val().trim();if(i){var s=i.split(","),n=[];OC.SystemTags.collection.fetch({success:function(){_.each(s,function(e){var t=OC.SystemTags.collection.get(e);_.isUndefined(t)||n.push(t.toJSON())}),t(n)}})}else t([])},formatResult:function(e){return OC.SystemTags.getDescriptiveTag(e)},formatSelection:function(e){return OC.SystemTags.getDescriptiveTag(e)[0].outerHTML},sortResults:function(e){return e.sort(function(e,t){var s=i._lastUsedTags.indexOf(e.id),n=i._lastUsedTags.indexOf(t.id);return s!==n?-1===n?-1:-1===s?1:s<n?-1:1:OC.Util.naturalSortCompare(e.name,t.name)}),e},escapeMarkup:function(e){return e},formatNoMatches:function(){return t("systemtags","No tags found")}}),this.$filterField.on("change",_.bind(this._onTagsChanged,this)),this.$filterField},_queryTagsAutocomplete:function(e){OC.SystemTags.collection.fetch({success:function(){var t=OC.SystemTags.collection.filterByName(e.term);e.callback({results:_.invoke(t,"toJSON")})}})},_onUrlChanged:function(e){if(e.dir){var t=_.filter(e.dir.split("/"),function(e){return""!==e.trim()});this.$filterField.select2("val",t||[]),this._systemTagIds=t,this.reload()}},_onTagsChanged:function(e){var t=$(e.target).val().trim();this._systemTagIds=""!==t?t.split(","):[],this.$el.trigger(jQuery.Event("changeDirectory",{dir:this._systemTagIds.join("/")})),this.reload()},updateEmptyContent:function(){var e=this.getCurrentDirectory();"/"===e?(this._systemTagIds.length?this.$el.find("#emptycontent").html('<div class="icon-systemtags"></div><h2>'+t("systemtags","No files found for the selected tags")+"</h2>"):this.$el.find("#emptycontent").html('<div class="icon-systemtags"></div><h2>'+t("systemtags","Please select tags to filter by")+"</h2>"),this.$el.find("#emptycontent").toggleClass("hidden",!this.isEmpty),this.$el.find("#filestable thead th").toggleClass("hidden",this.isEmpty)):OCA.Files.FileList.prototype.updateEmptyContent.apply(this,arguments)},getDirectoryPermissions:function(){return OC.PERMISSION_READ|OC.PERMISSION_DELETE},updateStorageStatistics:function(){},reload:function(){if(this._setCurrentDir("/",!1),!this._systemTagIds.length)return this.updateEmptyContent(),this.setFiles([]),$.Deferred().resolve();this._selectedFiles={},this._selectionSummary.clear(),this._currentFileModel&&this._currentFileModel.off(),this._currentFileModel=null,this.$el.find(".select-all").prop("checked",!1),this.showMask(),this._reloadCall=this.filesClient.getFilteredFiles({systemTagIds:this._systemTagIds},{properties:this._getWebdavProperties()}),this._detailsView&&this._updateDetailsView(null);var e=this.reloadCallback.bind(this);return this._reloadCall.then(e,e)},reloadCallback:function(e,t){return t&&t.unshift({}),OCA.Files.FileList.prototype.reloadCallback.call(this,e,t)}}),OCA.SystemTags.FileList=s},function(e,t){OCA.SystemTags=_.extend({},OCA.SystemTags),OCA.SystemTags||(OCA.SystemTags={}),OCA.SystemTags.FilesPlugin={ignoreLists:["trashbin","files.public"],attach:function(e){if(!(this.ignoreLists.indexOf(e.id)>=0)){var t=new OCA.SystemTags.SystemTagsInfoView;e.registerDetailView(t),_.each(e.getRegisteredDetailViews(),function(e){if(e instanceof OCA.Files.MainFileInfoDetailView){var i=new OCA.SystemTags.SystemTagsInfoViewToggleView({systemTagsInfoView:t});return i.render(),i.listenTo(e,"pre-render",function(){i.$el.detach()}),void i.listenTo(e,"post-render",function(){e.$el.find(".file-details").append(i.$el)})}})}}},OC.Plugins.register("OCA.Files.FileList",OCA.SystemTags.FilesPlugin)},function(e,t){!function(e){function t(e){var t=e.toJSON();return OC.isUserAdmin()||t.canAssign||(t.locked=!0),t}var i=e.Files.DetailFileInfoView.extend({_rendered:!1,className:"systemTagsInfoView hidden",_inputView:null,initialize:function(e){var i=this;e=e||{},this._inputView=new OC.SystemTags.SystemTagsInputField({multiple:!0,allowActions:!0,allowCreate:!0,isAdmin:OC.isUserAdmin(),initSelection:function(e,s){s(i.selectedTagsCollection.map(t))}}),this.selectedTagsCollection=new OC.SystemTags.SystemTagsMappingCollection([],{objectType:"files"}),this._inputView.collection.on("change:name",this._onTagRenamedGlobally,this),this._inputView.collection.on("remove",this._onTagDeletedGlobally,this),this._inputView.on("select",this._onSelectTag,this),this._inputView.on("deselect",this._onDeselectTag,this)},_onSelectTag:function(e){this.selectedTagsCollection.create(e.toJSON())},_onDeselectTag:function(e){this.selectedTagsCollection.get(e).destroy()},_onTagRenamedGlobally:function(e){var t=this.selectedTagsCollection.get(e.id);t&&t.set(e.toJSON())},_onTagDeletedGlobally:function(e){this.selectedTagsCollection.remove(e)},setFileInfo:function(e){var i=this;this._rendered||this.render(),e&&(this.selectedTagsCollection.setObjectId(e.id),this.selectedTagsCollection.fetch({success:function(e){e.fetched=!0;var s=e.map(t);i._inputView.setData(s),0!==s.length?i.show():i.hide()}})),this.hide()},render:function(){this.$el.append(this._inputView.$el),this._inputView.render()},isVisible:function(){return!this.$el.hasClass("hidden")},show:function(){this.$el.removeClass("hidden")},hide:function(){this.$el.addClass("hidden")},openDropdown:function(){this.$el.find(".systemTagsInputField").select2("open")},remove:function(){this._inputView.remove()}});e.SystemTags.SystemTagsInfoView=i}(OCA)},function(e,i){
/**
*
* @copyright Copyright (c) 2017, Daniel Calviño Sánchez (danxuliu@gmail.com)
@@ -19,5 +19,5 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
-!function(e){var i=OC.Backbone.View.extend({tagName:"span",className:"tag-label",events:{click:"click"},_systemTagsInfoView:null,template:function(e){return'<span class="icon icon-tag"/>'+t("systemtags","Tags")},initialize:function(t){if(t=t||{},this._systemTagsInfoView=t.systemTagsInfoView,!this._systemTagsInfoView)throw'Missing required parameter "systemTagsInfoView"'},click:function(){this._systemTagsInfoView.isVisible()?this._systemTagsInfoView.hide():(this._systemTagsInfoView.show(),this._systemTagsInfoView.openDropdown())},render:function(){return this.$el.html(this.template()),this}});e.SystemTags.SystemTagsInfoViewToggleView=i}(OCA)},function(t,e,i){var n=i(7);"string"==typeof n&&(n=[[t.i,n,""]]);var s={hmr:!0,transform:void 0,insertInto:void 0};i(9)(n,s);n.locals&&(t.exports=n.locals)},function(t,e,i){(t.exports=i(8)(!1)).push([t.i,"/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n#app-content-systemtagsfilter .select2-container {\n width: 30%;\n margin-left: 10px; }\n\n#app-sidebar .mainFileInfoView .tag-label {\n cursor: pointer;\n padding: 13px; }\n\n#app-sidebar .mainFileInfoView .icon-tag {\n opacity: .5;\n vertical-align: middle; }\n",""])},function(t,e,i){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var i=function(t,e){var i=t[1]||"",n=t[3];if(!n)return i;if(e&&"function"==typeof btoa){var s=(r=n,a=btoa(unescape(encodeURIComponent(JSON.stringify(r)))),l="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),"/*# ".concat(l," */")),o=n.sources.map(function(t){return"/*# sourceURL=".concat(n.sourceRoot).concat(t," */")});return[i].concat(o).concat([s]).join("\n")}var r,a,l;return[i].join("\n")}(e,t);return e[2]?"@media ".concat(e[2],"{").concat(i,"}"):i}).join("")},e.i=function(t,i){"string"==typeof t&&(t=[[null,t,""]]);for(var n={},s=0;s<this.length;s++){var o=this[s][0];null!=o&&(n[o]=!0)}for(var r=0;r<t.length;r++){var a=t[r];null!=a[0]&&n[a[0]]||(i&&!a[2]?a[2]=i:i&&(a[2]="(".concat(a[2],") and (").concat(i,")")),e.push(a))}},e}},function(t,e,i){var n,s,o={},r=(n=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===s&&(s=n.apply(this,arguments)),s}),a=function(t){var e={};return function(t,i){if("function"==typeof t)return t();if(void 0===e[t]){var n=function(t,e){return e?e.querySelector(t):document.querySelector(t)}.call(this,t,i);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}}(),l=null,c=0,f=[],u=i(10);function d(t,e){for(var i=0;i<t.length;i++){var n=t[i],s=o[n.id];if(s){s.refs++;for(var r=0;r<s.parts.length;r++)s.parts[r](n.parts[r]);for(;r<n.parts.length;r++)s.parts.push(v(n.parts[r],e))}else{var a=[];for(r=0;r<n.parts.length;r++)a.push(v(n.parts[r],e));o[n.id]={id:n.id,refs:1,parts:a}}}}function p(t,e){for(var i=[],n={},s=0;s<t.length;s++){var o=t[s],r=e.base?o[0]+e.base:o[0],a={css:o[1],media:o[2],sourceMap:o[3]};n[r]?n[r].parts.push(a):i.push(n[r]={id:r,parts:[a]})}return i}function h(t,e){var i=a(t.insertInto);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var n=f[f.length-1];if("top"===t.insertAt)n?n.nextSibling?i.insertBefore(e,n.nextSibling):i.appendChild(e):i.insertBefore(e,i.firstChild),f.push(e);else if("bottom"===t.insertAt)i.appendChild(e);else{if("object"!=typeof t.insertAt||!t.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var s=a(t.insertAt.before,i);i.insertBefore(e,s)}}function g(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t);var e=f.indexOf(t);e>=0&&f.splice(e,1)}function m(t){var e=document.createElement("style");if(void 0===t.attrs.type&&(t.attrs.type="text/css"),void 0===t.attrs.nonce){var n=function(){0;return i.nc}();n&&(t.attrs.nonce=n)}return y(e,t.attrs),h(t,e),e}function y(t,e){Object.keys(e).forEach(function(i){t.setAttribute(i,e[i])})}function v(t,e){var i,n,s,o;if(e.transform&&t.css){if(!(o="function"==typeof e.transform?e.transform(t.css):e.transform.default(t.css)))return function(){};t.css=o}if(e.singleton){var r=c++;i=l||(l=m(e)),n=C.bind(null,i,r,!1),s=C.bind(null,i,r,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(i=function(t){var e=document.createElement("link");return void 0===t.attrs.type&&(t.attrs.type="text/css"),t.attrs.rel="stylesheet",y(e,t.attrs),h(t,e),e}(e),n=function(t,e,i){var n=i.css,s=i.sourceMap,o=void 0===e.convertToAbsoluteUrls&&s;(e.convertToAbsoluteUrls||o)&&(n=u(n));s&&(n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(s))))+" */");var r=new Blob([n],{type:"text/css"}),a=t.href;t.href=URL.createObjectURL(r),a&&URL.revokeObjectURL(a)}.bind(null,i,e),s=function(){g(i),i.href&&URL.revokeObjectURL(i.href)}):(i=m(e),n=function(t,e){var i=e.css,n=e.media;n&&t.setAttribute("media",n);if(t.styleSheet)t.styleSheet.cssText=i;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(i))}}.bind(null,i),s=function(){g(i)});return n(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;n(t=e)}else s()}}t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(e=e||{}).attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||"boolean"==typeof e.singleton||(e.singleton=r()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var i=p(t,e);return d(i,e),function(t){for(var n=[],s=0;s<i.length;s++){var r=i[s];(a=o[r.id]).refs--,n.push(a)}t&&d(p(t,e),e);for(s=0;s<n.length;s++){var a;if(0===(a=n[s]).refs){for(var l=0;l<a.parts.length;l++)a.parts[l]();delete o[a.id]}}}};var T,_=(T=[],function(t,e){return T[t]=e,T.filter(Boolean).join("\n")});function C(t,e,i,n){var s=i?"":n.css;if(t.styleSheet)t.styleSheet.cssText=_(e,s);else{var o=document.createTextNode(s),r=t.childNodes;r[e]&&t.removeChild(r[e]),r.length?t.insertBefore(o,r[e]):t.appendChild(o)}}},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var i=e.protocol+"//"+e.host,n=i+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var s,o=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(o)?t:(s=0===o.indexOf("//")?o:0===o.indexOf("/")?i+o:n+o.replace(/^\.\//,""),"url("+JSON.stringify(s)+")")})}}]);
+!function(e){var i=OC.Backbone.View.extend({tagName:"span",className:"tag-label",events:{click:"click"},_systemTagsInfoView:null,template:function(e){return'<span class="icon icon-tag"/>'+t("systemtags","Tags")},initialize:function(e){if(e=e||{},this._systemTagsInfoView=e.systemTagsInfoView,!this._systemTagsInfoView)throw'Missing required parameter "systemTagsInfoView"'},click:function(){this._systemTagsInfoView.isVisible()?this._systemTagsInfoView.hide():(this._systemTagsInfoView.show(),this._systemTagsInfoView.openDropdown())},render:function(){return this.$el.html(this.template()),this}});e.SystemTags.SystemTagsInfoViewToggleView=i}(OCA)},function(e,t,i){var s=i(7);"string"==typeof s&&(s=[[e.i,s,""]]);var n={insert:"head",singleton:!1};i(9)(s,n);s.locals&&(e.exports=s.locals)},function(e,t,i){(e.exports=i(8)(!1)).push([e.i,"/*\n * Copyright (c) 2016\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n#app-content-systemtagsfilter .select2-container {\n width: 30%;\n margin-left: 10px; }\n\n#app-sidebar .mainFileInfoView .tag-label {\n cursor: pointer;\n padding: 13px; }\n\n#app-sidebar .mainFileInfoView .icon-tag {\n opacity: .5;\n vertical-align: middle; }\n",""])},function(e,t,i){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var i=function(e,t){var i=e[1]||"",s=e[3];if(!s)return i;if(t&&"function"==typeof btoa){var n=(a=s,l=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),r="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(l),"/*# ".concat(r," */")),o=s.sources.map(function(e){return"/*# sourceURL=".concat(s.sourceRoot).concat(e," */")});return[i].concat(o).concat([n]).join("\n")}var a,l,r;return[i].join("\n")}(t,e);return t[2]?"@media ".concat(t[2],"{").concat(i,"}"):i}).join("")},t.i=function(e,i){"string"==typeof e&&(e=[[null,e,""]]);for(var s={},n=0;n<this.length;n++){var o=this[n][0];null!=o&&(s[o]=!0)}for(var a=0;a<e.length;a++){var l=e[a];null!=l[0]&&s[l[0]]||(i&&!l[2]?l[2]=i:i&&(l[2]="(".concat(l[2],") and (").concat(i,")")),t.push(l))}},t}},function(e,t,i){"use strict";var s,n={},o=function(){return void 0===s&&(s=Boolean(window&&document&&document.all&&!window.atob)),s},a=function(){var e={};return function(t){if(void 0===e[t]){var i=document.querySelector(t);if(window.HTMLIFrameElement&&i instanceof window.HTMLIFrameElement)try{i=i.contentDocument.head}catch(e){i=null}e[t]=i}return e[t]}}();function l(e,t){for(var i=[],s={},n=0;n<e.length;n++){var o=e[n],a=t.base?o[0]+t.base:o[0],l={css:o[1],media:o[2],sourceMap:o[3]};s[a]?s[a].parts.push(l):i.push(s[a]={id:a,parts:[l]})}return i}function r(e,t){for(var i=0;i<e.length;i++){var s=e[i],o=n[s.id],a=0;if(o){for(o.refs++;a<o.parts.length;a++)o.parts[a](s.parts[a]);for(;a<s.parts.length;a++)o.parts.push(g(s.parts[a],t))}else{for(var l=[];a<s.parts.length;a++)l.push(g(s.parts[a],t));n[s.id]={id:s.id,refs:1,parts:l}}}}function c(e){var t=document.createElement("style");if(void 0===e.attributes.nonce){var s=i.nc;s&&(e.attributes.nonce=s)}if(Object.keys(e.attributes).forEach(function(i){t.setAttribute(i,e.attributes[i])}),"function"==typeof e.insert)e.insert(t);else{var n=a(e.insert||"head");if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(t)}return t}var u,f=(u=[],function(e,t){return u[e]=t,u.filter(Boolean).join("\n")});function d(e,t,i,s){var n=i?"":s.css;if(e.styleSheet)e.styleSheet.cssText=f(t,n);else{var o=document.createTextNode(n),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(o,a[t]):e.appendChild(o)}}var h=null,p=0;function g(e,t){var i,s,n;if(t.singleton){var o=p++;i=h||(h=c(t)),s=d.bind(null,i,o,!1),n=d.bind(null,i,o,!0)}else i=c(t),s=function(e,t,i){var s=i.css,n=i.media,o=i.sourceMap;if(n&&e.setAttribute("media",n),o&&btoa&&(s+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleSheet)e.styleSheet.cssText=s;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(s))}}.bind(null,i,t),n=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(i)};return s(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;s(e=t)}else n()}}e.exports=function(e,t){(t=t||{}).attributes="object"==typeof t.attributes?t.attributes:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=o());var i=l(e,t);return r(i,t),function(e){for(var s=[],o=0;o<i.length;o++){var a=i[o],c=n[a.id];c&&(c.refs--,s.push(c))}e&&r(l(e,t),t);for(var u=0;u<s.length;u++){var f=s[u];if(0===f.refs){for(var d=0;d<f.parts.length;d++)f.parts[d]();delete n[f.id]}}}}}]);
//# sourceMappingURL=systemtags.js.map \ No newline at end of file
diff --git a/apps/systemtags/js/systemtags.js.map b/apps/systemtags/js/systemtags.js.map
index 209db5d7309..cb067572f28 100644
--- a/apps/systemtags/js/systemtags.js.map
+++ b/apps/systemtags/js/systemtags.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./apps/systemtags/src/systemtags.js","webpack:///./apps/systemtags/src/app.js","webpack:///./apps/systemtags/src/systemtagsfilelist.js","webpack:///./apps/systemtags/src/filesplugin.js","webpack:///./apps/systemtags/src/systemtagsinfoview.js","webpack:///./apps/systemtags/src/systemtagsinfoviewtoggleview.js","webpack:///./apps/systemtags/src/css/systemtagsfilelist.scss?5a92","webpack:///./apps/systemtags/src/css/systemtagsfilelist.scss","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/style-loader/lib/urls.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","window","OCA","SystemTags","App","initFileList","$el","this","_fileList","FileList","id","fileActions","_createFileActions","config","Files","getFilesConfig","shown","appName","removeFileList","$fileList","empty","FileActions","registerDefaultActions","merge","_globalActionsInitialized","_onActionsUpdated","_","on","register","OC","PERMISSION_READ","filename","context","setActiveView","silent","fileList","changeDirectory","joinPaths","$file","attr","setDefault","ev","action","registerAction","defaultAction","mime","destroy","off","$","document","ready","e","target","options","initialize","extend","_systemTagIds","_lastUsedTags","_clientSideSort","_allowSelection","_filterField","apply","arguments","initialized","systemTagIds","Plugins","attach","$controls","find","defer","_getLastUsedTags","_initFilterField","$filterField","remove","self","ajax","type","url","generateUrl","success","response","$container","append","select2","placeholder","allowClear","multiple","toggleSelect","separator","query","_queryTagsAutocomplete","tag","initSelection","element","callback","val","trim","tagIds","split","tags","collection","fetch","each","tagId","isUndefined","push","toJSON","formatResult","getDescriptiveTag","formatSelection","outerHTML","sortResults","results","sort","a","b","aLastUsed","indexOf","bLastUsed","Util","naturalSortCompare","escapeMarkup","formatNoMatches","_onTagsChanged","filterByName","term","invoke","_onUrlChanged","dir","filter","reload","trigger","jQuery","Event","join","updateEmptyContent","getCurrentDirectory","length","html","toggleClass","isEmpty","getDirectoryPermissions","PERMISSION_DELETE","updateStorageStatistics","_setCurrentDir","setFiles","Deferred","resolve","_selectedFiles","_selectionSummary","clear","_currentFileModel","prop","showMask","_reloadCall","filesClient","getFilteredFiles","properties","_getWebdavProperties","_detailsView","_updateDetailsView","callBack","reloadCallback","then","status","result","unshift","FilesPlugin","ignoreLists","systemTagsInfoView","SystemTagsInfoView","registerDetailView","getRegisteredDetailViews","detailView","MainFileInfoDetailView","systemTagsInfoViewToggleView","SystemTagsInfoViewToggleView","render","listenTo","detach","modelToSelection","model","data","isUserAdmin","canAssign","locked","DetailFileInfoView","_rendered","className","_inputView","SystemTagsInputField","allowActions","allowCreate","isAdmin","selectedTagsCollection","map","SystemTagsMappingCollection","objectType","_onTagRenamedGlobally","_onTagDeletedGlobally","_onSelectTag","_onDeselectTag","changedTag","selectedTagMapping","set","setFileInfo","fileInfo","setObjectId","fetched","appliedTags","setData","show","hide","isVisible","hasClass","removeClass","addClass","openDropdown","Backbone","View","tagName","events","click","_systemTagsInfoView","template","content","hmr","transform","insertInto","undefined","locals","useSourceMap","list","toString","item","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","concat","sourceURLs","sources","source","sourceRoot","cssWithMappingToString","mediaQuery","alreadyImportedModules","_i","fn","memo","stylesInDom","isOldIE","all","atob","getElement","parent","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","singleton","singletonCounter","stylesInsertedAtTop","fixUrls","addStylesToDom","styles","domStyle","refs","j","parts","addStyle","listToStyles","newStyles","base","part","css","media","insertStyleElement","style","Error","lastStyleElementInsertedAtTop","insertAt","nextSibling","insertBefore","appendChild","firstChild","before","removeStyleElement","parentNode","removeChild","idx","splice","createStyleElement","createElement","attrs","nonce","nc","getNonce","addAttrs","el","keys","forEach","setAttribute","obj","update","default","styleIndex","applyToSingletonTag","URL","createObjectURL","revokeObjectURL","Blob","link","rel","createLinkElement","autoFixUrls","convertToAbsoluteUrls","blob","oldSrc","href","styleSheet","cssText","createTextNode","newObj","DEBUG","newList","mayRemove","textStore","replaceText","index","replacement","Boolean","cssNode","childNodes","location","baseUrl","protocol","host","currentDir","pathname","replace","fullMatch","origUrl","newUrl","unquotedOrigUrl","$1","test"],"mappings":"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","file":"systemtags.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import './app'\nimport './systemtagsfilelist'\nimport './filesplugin'\nimport './systemtagsinfoview'\nimport './systemtagsinfoviewtoggleview'\nimport './css/systemtagsfilelist.scss'\n\nwindow.OCA.SystemTags = OCA.SystemTags;\n","/*\n * Copyright (c) 2015 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function() {\n\tif (!OCA.SystemTags) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.SystemTags = {};\n\t}\n\n\tOCA.SystemTags.App = {\n\n\t\tinitFileList: function($el) {\n\t\t\tif (this._fileList) {\n\t\t\t\treturn this._fileList;\n\t\t\t}\n\n\t\t\tthis._fileList = new OCA.SystemTags.FileList(\n\t\t\t\t$el,\n\t\t\t\t{\n\t\t\t\t\tid: 'systemtags',\n\t\t\t\t\tfileActions: this._createFileActions(),\n\t\t\t\t\tconfig: OCA.Files.App.getFilesConfig(),\n\t\t\t\t\t// The file list is created when a \"show\" event is handled,\n\t\t\t\t\t// so it should be marked as \"shown\" like it would have been\n\t\t\t\t\t// done if handling the event with the file list already\n\t\t\t\t\t// created.\n\t\t\t\t\tshown: true\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis._fileList.appName = t('systemtags', 'Tags');\n\t\t\treturn this._fileList;\n\t\t},\n\n\t\tremoveFileList: function() {\n\t\t\tif (this._fileList) {\n\t\t\t\tthis._fileList.$fileList.empty();\n\t\t\t}\n\t\t},\n\n\t\t_createFileActions: function() {\n\t\t\t// inherit file actions from the files app\n\t\t\tvar fileActions = new OCA.Files.FileActions();\n\t\t\t// note: not merging the legacy actions because legacy apps are not\n\t\t\t// compatible with the sharing overview and need to be adapted first\n\t\t\tfileActions.registerDefaultActions();\n\t\t\tfileActions.merge(OCA.Files.fileActions);\n\n\t\t\tif (!this._globalActionsInitialized) {\n\t\t\t\t// in case actions are registered later\n\t\t\t\tthis._onActionsUpdated = _.bind(this._onActionsUpdated, this);\n\t\t\t\tOCA.Files.fileActions.on('setDefault.app-systemtags', this._onActionsUpdated);\n\t\t\t\tOCA.Files.fileActions.on('registerAction.app-systemtags', this._onActionsUpdated);\n\t\t\t\tthis._globalActionsInitialized = true;\n\t\t\t}\n\n\t\t\t// when the user clicks on a folder, redirect to the corresponding\n\t\t\t// folder in the files app instead of opening it directly\n\t\t\tfileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {\n\t\t\t\tOCA.Files.App.setActiveView('files', {silent: true});\n\t\t\t\tOCA.Files.App.fileList.changeDirectory(OC.joinPaths(context.$file.attr('data-path'), filename), true, true);\n\t\t\t});\n\t\t\tfileActions.setDefault('dir', 'Open');\n\t\t\treturn fileActions;\n\t\t},\n\n\t\t_onActionsUpdated: function(ev) {\n\t\t\tif (!this._fileList) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (ev.action) {\n\t\t\t\tthis._fileList.fileActions.registerAction(ev.action);\n\t\t\t} else if (ev.defaultAction) {\n\t\t\t\tthis._fileList.fileActions.setDefault(\n\t\t\t\t\tev.defaultAction.mime,\n\t\t\t\t\tev.defaultAction.name\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Destroy the app\n\t\t */\n\t\tdestroy: function() {\n\t\t\tOCA.Files.fileActions.off('setDefault.app-systemtags', this._onActionsUpdated);\n\t\t\tOCA.Files.fileActions.off('registerAction.app-systemtags', this._onActionsUpdated);\n\t\t\tthis.removeFileList();\n\t\t\tthis._fileList = null;\n\t\t\tdelete this._globalActionsInitialized;\n\t\t}\n\t};\n\n})();\n\n$(document).ready(function() {\n\t$('#app-content-systemtagsfilter').on('show', function(e) {\n\t\tOCA.SystemTags.App.initFileList($(e.target));\n\t});\n\t$('#app-content-systemtagsfilter').on('hide', function() {\n\t\tOCA.SystemTags.App.removeFileList();\n\t});\n});\n","/*\n * Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n(function() {\n\t/**\n\t * @class OCA.SystemTags.FileList\n\t * @augments OCA.Files.FileList\n\t *\n\t * @classdesc SystemTags file list.\n\t * Contains a list of files filtered by system tags.\n\t *\n\t * @param $el container element with existing markup for the #controls\n\t * and a table\n\t * @param [options] map of options, see other parameters\n\t * @param {Array.<string>} [options.systemTagIds] array of system tag ids to\n\t * filter by\n\t */\n\tvar FileList = function($el, options) {\n\t\tthis.initialize($el, options);\n\t};\n\tFileList.prototype = _.extend({}, OCA.Files.FileList.prototype,\n\t\t/** @lends OCA.SystemTags.FileList.prototype */ {\n\t\tid: 'systemtagsfilter',\n\t\tappName: t('systemtags', 'Tagged files'),\n\n\t\t/**\n\t\t * Array of system tag ids to filter by\n\t\t *\n\t\t * @type Array.<string>\n\t\t */\n\t\t_systemTagIds: [],\n\t\t_lastUsedTags: [],\n\n\t\t_clientSideSort: true,\n\t\t_allowSelection: false,\n\n\t\t_filterField: null,\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tinitialize: function($el, options) {\n\t\t\tOCA.Files.FileList.prototype.initialize.apply(this, arguments);\n\t\t\tif (this.initialized) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (options && options.systemTagIds) {\n\t\t\t\tthis._systemTagIds = options.systemTagIds;\n\t\t\t}\n\n\t\t\tOC.Plugins.attach('OCA.SystemTags.FileList', this);\n\n\t\t\tvar $controls = this.$el.find('#controls').empty();\n\n\t\t\t_.defer(_.bind(this._getLastUsedTags, this));\n\t\t\tthis._initFilterField($controls);\n\t\t},\n\t\t\n\t\tdestroy: function() {\n\t\t\tthis.$filterField.remove();\n\n\t\t\tOCA.Files.FileList.prototype.destroy.apply(this, arguments);\n\t\t},\n\n\t\t_getLastUsedTags: function() {\n\t\t\tvar self = this;\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: OC.generateUrl('/apps/systemtags/lastused'),\n\t\t\t\tsuccess: function (response) {\n\t\t\t\t\tself._lastUsedTags = response;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_initFilterField: function($container) {\n\t\t\tvar self = this;\n\t\t\tthis.$filterField = $('<input type=\"hidden\" name=\"tags\"/>');\n\t\t\t$container.append(this.$filterField);\n\t\t\tthis.$filterField.select2({\n\t\t\t\tplaceholder: t('systemtags', 'Select tags to filter by'),\n\t\t\t\tallowClear: false,\n\t\t\t\tmultiple: true,\n\t\t\t\ttoggleSelect: true,\n\t\t\t\tseparator: ',',\n\t\t\t\tquery: _.bind(this._queryTagsAutocomplete, this),\n\n\t\t\t\tid: function(tag) {\n\t\t\t\t\treturn tag.id;\n\t\t\t\t},\n\n\t\t\t\tinitSelection: function(element, callback) {\n\t\t\t\t\tvar val = $(element).val().trim();\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tvar tagIds = val.split(','),\n\t\t\t\t\t\t\ttags = [];\n\n\t\t\t\t\t\tOC.SystemTags.collection.fetch({\n\t\t\t\t\t\t\tsuccess: function() {\n\t\t\t\t\t\t\t\t_.each(tagIds, function(tagId) {\n\t\t\t\t\t\t\t\t\tvar tag = OC.SystemTags.collection.get(tagId);\n\t\t\t\t\t\t\t\t\tif (!_.isUndefined(tag)) {\n\t\t\t\t\t\t\t\t\t\ttags.push(tag.toJSON());\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tcallback(tags);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback([]);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tformatResult: function (tag) {\n\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag);\n\t\t\t\t},\n\n\t\t\t\tformatSelection: function (tag) {\n\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag)[0].outerHTML;\n\t\t\t\t},\n\n\t\t\t\tsortResults: function(results) {\n\t\t\t\t\tresults.sort(function(a, b) {\n\t\t\t\t\t\tvar aLastUsed = self._lastUsedTags.indexOf(a.id);\n\t\t\t\t\t\tvar bLastUsed = self._lastUsedTags.indexOf(b.id);\n\n\t\t\t\t\t\tif (aLastUsed !== bLastUsed) {\n\t\t\t\t\t\t\tif (bLastUsed === -1) {\n\t\t\t\t\t\t\t\treturn -1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (aLastUsed === -1) {\n\t\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn aLastUsed < bLastUsed ? -1 : 1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Both not found\n\t\t\t\t\t\treturn OC.Util.naturalSortCompare(a.name, b.name);\n\t\t\t\t\t});\n\t\t\t\t\treturn results;\n\t\t\t\t},\n\n\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\t// prevent double markup escape\n\t\t\t\t\treturn m;\n\t\t\t\t},\n\t\t\t\tformatNoMatches: function() {\n\t\t\t\t\treturn t('systemtags', 'No tags found');\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.$filterField.on('change', _.bind(this._onTagsChanged, this));\n\t\t\treturn this.$filterField;\n\t\t},\n\n\t\t/**\n\t\t * Autocomplete function for dropdown results\n\t\t *\n\t\t * @param {Object} query select2 query object\n\t\t */\n\t\t_queryTagsAutocomplete: function(query) {\n\t\t\tOC.SystemTags.collection.fetch({\n\t\t\t\tsuccess: function() {\n\t\t\t\t\tvar results = OC.SystemTags.collection.filterByName(query.term);\n\n\t\t\t\t\tquery.callback({\n\t\t\t\t\t\tresults: _.invoke(results, 'toJSON')\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Event handler for when the URL changed\n\t\t */\n\t\t_onUrlChanged: function(e) {\n\t\t\tif (e.dir) {\n\t\t\t\tvar tags = _.filter(e.dir.split('/'), function(val) { return val.trim() !== ''; });\n\t\t\t\tthis.$filterField.select2('val', tags || []);\n\t\t\t\tthis._systemTagIds = tags;\n\t\t\t\tthis.reload();\n\t\t\t}\n\t\t},\n\n\t\t_onTagsChanged: function(ev) {\n\t\t\tvar val = $(ev.target).val().trim();\n\t\t\tif (val !== '') {\n\t\t\t\tthis._systemTagIds = val.split(',');\n\t\t\t} else {\n\t\t\t\tthis._systemTagIds = [];\n\t\t\t}\n\n\t\t\tthis.$el.trigger(jQuery.Event('changeDirectory', {\n\t\t\t\tdir: this._systemTagIds.join('/')\n\t\t\t}));\n\t\t\tthis.reload();\n\t\t},\n\n\t\tupdateEmptyContent: function() {\n\t\t\tvar dir = this.getCurrentDirectory();\n\t\t\tif (dir === '/') {\n\t\t\t\t// root has special permissions\n\t\t\t\tif (!this._systemTagIds.length) {\n\t\t\t\t\t// no tags selected\n\t\t\t\t\tthis.$el.find('#emptycontent').html('<div class=\"icon-systemtags\"></div>' +\n\t\t\t\t\t\t'<h2>' + t('systemtags', 'Please select tags to filter by') + '</h2>');\n\t\t\t\t} else {\n\t\t\t\t\t// tags selected but no results\n\t\t\t\t\tthis.$el.find('#emptycontent').html('<div class=\"icon-systemtags\"></div>' +\n\t\t\t\t\t\t'<h2>' + t('systemtags', 'No files found for the selected tags') + '</h2>');\n\t\t\t\t}\n\t\t\t\tthis.$el.find('#emptycontent').toggleClass('hidden', !this.isEmpty);\n\t\t\t\tthis.$el.find('#filestable thead th').toggleClass('hidden', this.isEmpty);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tOCA.Files.FileList.prototype.updateEmptyContent.apply(this, arguments);\n\t\t\t}\n\t\t},\n\n\t\tgetDirectoryPermissions: function() {\n\t\t\treturn OC.PERMISSION_READ | OC.PERMISSION_DELETE;\n\t\t},\n\n\t\tupdateStorageStatistics: function() {\n\t\t\t// no op because it doesn't have\n\t\t\t// storage info like free space / used space\n\t\t},\n\n\t\treload: function() {\n\t\t\t// there is only root\n\t\t\tthis._setCurrentDir('/', false);\n\n\t\t\tif (!this._systemTagIds.length) {\n\t\t\t\t// don't reload\n\t\t\t\tthis.updateEmptyContent();\n\t\t\t\tthis.setFiles([]);\n\t\t\t\treturn $.Deferred().resolve();\n\t\t\t}\n\n\t\t\tthis._selectedFiles = {};\n\t\t\tthis._selectionSummary.clear();\n\t\t\tif (this._currentFileModel) {\n\t\t\t\tthis._currentFileModel.off();\n\t\t\t}\n\t\t\tthis._currentFileModel = null;\n\t\t\tthis.$el.find('.select-all').prop('checked', false);\n\t\t\tthis.showMask();\n\t\t\tthis._reloadCall = this.filesClient.getFilteredFiles(\n\t\t\t\t{\n\t\t\t\t\tsystemTagIds: this._systemTagIds\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproperties: this._getWebdavProperties()\n\t\t\t\t}\n\t\t\t);\n\t\t\tif (this._detailsView) {\n\t\t\t\t// close sidebar\n\t\t\t\tthis._updateDetailsView(null);\n\t\t\t}\n\t\t\tvar callBack = this.reloadCallback.bind(this);\n\t\t\treturn this._reloadCall.then(callBack, callBack);\n\t\t},\n\n\t\treloadCallback: function(status, result) {\n\t\t\tif (result) {\n\t\t\t\t// prepend empty dir info because original handler\n\t\t\t\tresult.unshift({});\n\t\t\t}\n\n\t\t\treturn OCA.Files.FileList.prototype.reloadCallback.call(this, status, result);\n\t\t}\n\t});\n\n\tOCA.SystemTags.FileList = FileList;\n})();\n","/*\n * Copyright (c) 2015 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function() {\n\tOCA.SystemTags = _.extend({}, OCA.SystemTags);\n\tif (!OCA.SystemTags) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.SystemTags = {};\n\t}\n\n\t/**\n\t * @namespace\n\t */\n\tOCA.SystemTags.FilesPlugin = {\n\t\tignoreLists: [\n\t\t\t'trashbin',\n\t\t\t'files.public'\n\t\t],\n\n\t\tattach: function(fileList) {\n\t\t\tif (this.ignoreLists.indexOf(fileList.id) >= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar systemTagsInfoView = new OCA.SystemTags.SystemTagsInfoView();\n\t\t\tfileList.registerDetailView(systemTagsInfoView);\n\n\t\t\t_.each(fileList.getRegisteredDetailViews(), function(detailView) {\n\t\t\t\tif (detailView instanceof OCA.Files.MainFileInfoDetailView) {\n\t\t\t\t\tvar systemTagsInfoViewToggleView =\n\t\t\t\t\t\tnew OCA.SystemTags.SystemTagsInfoViewToggleView({\n\t\t\t\t\t\t\tsystemTagsInfoView: systemTagsInfoView\n\t\t\t\t\t\t});\n\t\t\t\t\tsystemTagsInfoViewToggleView.render();\n\n\t\t\t\t\t// The toggle view element is detached before the\n\t\t\t\t\t// MainFileInfoDetailView is rendered to prevent its event\n\t\t\t\t\t// handlers from being removed.\n\t\t\t\t\tsystemTagsInfoViewToggleView.listenTo(detailView, 'pre-render', function() {\n\t\t\t\t\t\tsystemTagsInfoViewToggleView.$el.detach();\n\t\t\t\t\t});\n\t\t\t\t\tsystemTagsInfoViewToggleView.listenTo(detailView, 'post-render', function() {\n\t\t\t\t\t\tdetailView.$el.find('.file-details').append(systemTagsInfoViewToggleView.$el);\n\t\t\t\t\t});\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n})();\n\nOC.Plugins.register('OCA.Files.FileList', OCA.SystemTags.FilesPlugin);\n\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OCA) {\n\n\tfunction modelToSelection(model) {\n\t\tvar data = model.toJSON();\n\t\tif (!OC.isUserAdmin() && !data.canAssign) {\n\t\t\tdata.locked = true;\n\t\t}\n\t\treturn data;\n\t}\n\n\t/**\n\t * @class OCA.SystemTags.SystemTagsInfoView\n\t * @classdesc\n\t *\n\t * Displays a file's system tags\n\t *\n\t */\n\tvar SystemTagsInfoView = OCA.Files.DetailFileInfoView.extend(\n\t\t/** @lends OCA.SystemTags.SystemTagsInfoView.prototype */ {\n\n\t\t_rendered: false,\n\n\t\tclassName: 'systemTagsInfoView hidden',\n\n\t\t/**\n\t\t * @type OC.SystemTags.SystemTagsInputField\n\t\t */\n\t\t_inputView: null,\n\n\t\tinitialize: function(options) {\n\t\t\tvar self = this;\n\t\t\toptions = options || {};\n\n\t\t\tthis._inputView = new OC.SystemTags.SystemTagsInputField({\n\t\t\t\tmultiple: true,\n\t\t\t\tallowActions: true,\n\t\t\t\tallowCreate: true,\n\t\t\t\tisAdmin: OC.isUserAdmin(),\n\t\t\t\tinitSelection: function(element, callback) {\n\t\t\t\t\tcallback(self.selectedTagsCollection.map(modelToSelection));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.selectedTagsCollection = new OC.SystemTags.SystemTagsMappingCollection([], {objectType: 'files'});\n\n\t\t\tthis._inputView.collection.on('change:name', this._onTagRenamedGlobally, this);\n\t\t\tthis._inputView.collection.on('remove', this._onTagDeletedGlobally, this);\n\n\t\t\tthis._inputView.on('select', this._onSelectTag, this);\n\t\t\tthis._inputView.on('deselect', this._onDeselectTag, this);\n\t\t},\n\n\t\t/**\n\t\t * Event handler whenever a tag was selected\n\t\t */\n\t\t_onSelectTag: function(tag) {\n\t\t\t// create a mapping entry for this tag\n\t\t\tthis.selectedTagsCollection.create(tag.toJSON());\n\t\t},\n\n\t\t/**\n\t\t * Event handler whenever a tag gets deselected.\n\t\t * Removes the selected tag from the mapping collection.\n\t\t *\n\t\t * @param {string} tagId tag id\n\t\t */\n\t\t_onDeselectTag: function(tagId) {\n\t\t\tthis.selectedTagsCollection.get(tagId).destroy();\n\t\t},\n\n\t\t/**\n\t\t * Event handler whenever a tag was renamed globally.\n\t\t *\n\t\t * This will automatically adjust the tag mapping collection to\n\t\t * container the new name.\n\t\t *\n\t\t * @param {OC.Backbone.Model} changedTag tag model that has changed\n\t\t */\n\t\t_onTagRenamedGlobally: function(changedTag) {\n\t\t\t// also rename it in the selection, if applicable\n\t\t\tvar selectedTagMapping = this.selectedTagsCollection.get(changedTag.id);\n\t\t\tif (selectedTagMapping) {\n\t\t\t\tselectedTagMapping.set(changedTag.toJSON());\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Event handler whenever a tag was deleted globally.\n\t\t *\n\t\t * This will automatically adjust the tag mapping collection to\n\t\t * container the new name.\n\t\t *\n\t\t * @param {OC.Backbone.Model} tagId tag model that has changed\n\t\t */\n\t\t_onTagDeletedGlobally: function(tagId) {\n\t\t\t// also rename it in the selection, if applicable\n\t\t\tthis.selectedTagsCollection.remove(tagId);\n\t\t},\n\n\t\tsetFileInfo: function(fileInfo) {\n\t\t\tvar self = this;\n\t\t\tif (!this._rendered) {\n\t\t\t\tthis.render();\n\t\t\t}\n\n\t\t\tif (fileInfo) {\n\t\t\t\tthis.selectedTagsCollection.setObjectId(fileInfo.id);\n\t\t\t\tthis.selectedTagsCollection.fetch({\n\t\t\t\t\tsuccess: function(collection) {\n\t\t\t\t\t\tcollection.fetched = true;\n\n\t\t\t\t\t\tvar appliedTags = collection.map(modelToSelection);\n\t\t\t\t\t\tself._inputView.setData(appliedTags);\n\n\t\t\t\t\t\tif (appliedTags.length !== 0) {\n\t\t\t\t\t\t\tself.show();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.hide();\n\t\t},\n\n\t\t/**\n\t\t * Renders this details view\n\t\t */\n\t\trender: function() {\n\t\t\tvar self = this;\n\n\t\t\tthis.$el.append(this._inputView.$el);\n\t\t\tthis._inputView.render();\n\t\t},\n\n\t\tisVisible: function() {\n\t\t\treturn !this.$el.hasClass('hidden');\n\t\t},\n\n\t\tshow: function() {\n\t\t\tthis.$el.removeClass('hidden');\n\t\t},\n\n\t\thide: function() {\n\t\t\tthis.$el.addClass('hidden');\n\t\t},\n\n\t\topenDropdown: function() {\n\t\t\tthis.$el.find('.systemTagsInputField').select2('open');\n\t\t},\n\n\t\tremove: function() {\n\t\t\tthis._inputView.remove();\n\t\t}\n\t});\n\n\tOCA.SystemTags.SystemTagsInfoView = SystemTagsInfoView;\n\n})(OCA);\n\n","/**\n *\n * @copyright Copyright (c) 2017, Daniel Calviño Sánchez (danxuliu@gmail.com)\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function(OCA) {\n\n\t/**\n\t * @class OCA.SystemTags.SystemTagsInfoViewToggleView\n\t * @classdesc\n\t *\n\t * View to toggle the visibility of a SystemTagsInfoView.\n\t *\n\t * This toggle view must be explicitly rendered before it is used.\n\t */\n\tvar SystemTagsInfoViewToggleView = OC.Backbone.View.extend(\n\t\t/** @lends OC.Backbone.View.prototype */ {\n\n\t\ttagName: 'span',\n\n\t\tclassName: 'tag-label',\n\n\t\tevents: {\n\t\t\t'click': 'click'\n\t\t},\n\n\t\t/**\n\t\t * @type OCA.SystemTags.SystemTagsInfoView\n\t\t */\n\t\t_systemTagsInfoView: null,\n\n\t\ttemplate: function(data) {\n\t\t\treturn '<span class=\"icon icon-tag\"/>' + t('systemtags', 'Tags');\n\t\t},\n\n\t\t/**\n\t\t * Initialize this toggle view.\n\t\t *\n\t\t * The options must provide a systemTagsInfoView parameter that\n\t\t * references the SystemTagsInfoView to associate to this toggle view.\n\t\t */\n\t\tinitialize: function(options) {\n\t\t\tvar self = this;\n\t\t\toptions = options || {};\n\n\t\t\tthis._systemTagsInfoView = options.systemTagsInfoView;\n\t\t\tif (!this._systemTagsInfoView) {\n\t\t\t\tthrow 'Missing required parameter \"systemTagsInfoView\"';\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Toggles the visibility of the associated SystemTagsInfoView.\n\t\t *\n\t\t * When the systemTagsInfoView is shown its dropdown is also opened.\n\t\t */\n\t\tclick: function() {\n\t\t\tif (this._systemTagsInfoView.isVisible()) {\n\t\t\t\tthis._systemTagsInfoView.hide();\n\t\t\t} else {\n\t\t\t\tthis._systemTagsInfoView.show();\n\t\t\t\tthis._systemTagsInfoView.openDropdown();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Renders this toggle view.\n\t\t *\n\t\t * @return OCA.SystemTags.SystemTagsInfoViewToggleView this object.\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html(this.template());\n\n\t\t\treturn this;\n\t\t},\n\n\t});\n\n\tOCA.SystemTags.SystemTagsInfoViewToggleView = SystemTagsInfoViewToggleView;\n\n})(OCA);\n","\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/lib/loader.js!./systemtagsfilelist.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/lib/loader.js!./systemtagsfilelist.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/lib/loader.js!./systemtagsfilelist.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/*\\n * Copyright (c) 2016\\n *\\n * This file is licensed under the Affero General Public License version 3\\n * or later.\\n *\\n * See the COPYING-README file.\\n *\\n */\\n#app-content-systemtagsfilter .select2-container {\\n width: 30%;\\n margin-left: 10px; }\\n\\n#app-sidebar .mainFileInfoView .tag-label {\\n cursor: pointer;\\n padding: 13px; }\\n\\n#app-sidebar .mainFileInfoView .icon-tag {\\n opacity: .5;\\n vertical-align: middle; }\\n\", \"\"]);\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \"{\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = modules[_i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = \"(\".concat(item[2], \") and (\").concat(mediaQuery, \")\");\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot).concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n if (parent){\n return parent.querySelector(target);\n }\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertAt.before, target);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\n\tif(options.attrs.nonce === undefined) {\n\t\tvar nonce = getNonce();\n\t\tif (nonce) {\n\t\t\toptions.attrs.nonce = nonce;\n\t\t}\n\t}\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\tif(options.attrs.type === undefined) {\n\t\toptions.attrs.type = \"text/css\";\n\t}\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction getNonce() {\n\tif (typeof __webpack_nonce__ === 'undefined') {\n\t\treturn null;\n\t}\n\n\treturn __webpack_nonce__;\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = typeof options.transform === 'function'\n\t\t ? options.transform(obj.css) \n\t\t : options.transform.default(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./apps/systemtags/src/systemtags.js","webpack:///./apps/systemtags/src/app.js","webpack:///./apps/systemtags/src/systemtagsfilelist.js","webpack:///./apps/systemtags/src/filesplugin.js","webpack:///./apps/systemtags/src/systemtagsinfoview.js","webpack:///./apps/systemtags/src/systemtagsinfoviewtoggleview.js","webpack:///./apps/systemtags/src/css/systemtagsfilelist.scss?8d27","webpack:///./apps/systemtags/src/css/systemtagsfilelist.scss","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","window","OCA","SystemTags","App","initFileList","$el","this","_fileList","FileList","id","fileActions","_createFileActions","config","Files","getFilesConfig","shown","appName","removeFileList","$fileList","empty","FileActions","registerDefaultActions","merge","_globalActionsInitialized","_onActionsUpdated","_","on","register","OC","PERMISSION_READ","filename","context","setActiveView","silent","fileList","changeDirectory","joinPaths","$file","attr","setDefault","ev","action","registerAction","defaultAction","mime","destroy","off","$","document","ready","e","target","options","initialize","extend","_systemTagIds","_lastUsedTags","_clientSideSort","_allowSelection","_filterField","apply","arguments","initialized","systemTagIds","Plugins","attach","$controls","find","defer","_getLastUsedTags","_initFilterField","$filterField","remove","self","ajax","type","url","generateUrl","success","response","$container","append","select2","placeholder","allowClear","multiple","toggleSelect","separator","query","_queryTagsAutocomplete","tag","initSelection","element","callback","val","trim","tagIds","split","tags","collection","fetch","each","tagId","isUndefined","push","toJSON","formatResult","getDescriptiveTag","formatSelection","outerHTML","sortResults","results","sort","a","b","aLastUsed","indexOf","bLastUsed","Util","naturalSortCompare","escapeMarkup","formatNoMatches","_onTagsChanged","filterByName","term","invoke","_onUrlChanged","dir","filter","reload","trigger","jQuery","Event","join","updateEmptyContent","getCurrentDirectory","length","html","toggleClass","isEmpty","getDirectoryPermissions","PERMISSION_DELETE","updateStorageStatistics","_setCurrentDir","setFiles","Deferred","resolve","_selectedFiles","_selectionSummary","clear","_currentFileModel","prop","showMask","_reloadCall","filesClient","getFilteredFiles","properties","_getWebdavProperties","_detailsView","_updateDetailsView","callBack","reloadCallback","then","status","result","unshift","FilesPlugin","ignoreLists","systemTagsInfoView","SystemTagsInfoView","registerDetailView","getRegisteredDetailViews","detailView","MainFileInfoDetailView","systemTagsInfoViewToggleView","SystemTagsInfoViewToggleView","render","listenTo","detach","modelToSelection","model","data","isUserAdmin","canAssign","locked","DetailFileInfoView","_rendered","className","_inputView","SystemTagsInputField","allowActions","allowCreate","isAdmin","selectedTagsCollection","map","SystemTagsMappingCollection","objectType","_onTagRenamedGlobally","_onTagDeletedGlobally","_onSelectTag","_onDeselectTag","changedTag","selectedTagMapping","set","setFileInfo","fileInfo","setObjectId","fetched","appliedTags","setData","show","hide","isVisible","hasClass","removeClass","addClass","openDropdown","Backbone","View","tagName","events","click","_systemTagsInfoView","template","content","insert","singleton","locals","useSourceMap","list","toString","item","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","concat","sourceURLs","sources","source","sourceRoot","cssWithMappingToString","mediaQuery","alreadyImportedModules","_i","memo","stylesInDom","isOldIE","Boolean","all","atob","getTarget","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","listToStyles","styles","newStyles","base","part","css","media","parts","addStylesToDom","domStyle","j","refs","addStyle","insertStyleElement","style","createElement","attributes","nonce","nc","keys","forEach","setAttribute","Error","appendChild","textStore","replaceText","index","replacement","applyToSingletonTag","obj","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","singletonCounter","update","styleIndex","firstChild","parentNode","removeStyleElement","newObj","newList","mayRemove","_domStyle"],"mappings":"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","file":"systemtags.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import './app'\nimport './systemtagsfilelist'\nimport './filesplugin'\nimport './systemtagsinfoview'\nimport './systemtagsinfoviewtoggleview'\nimport './css/systemtagsfilelist.scss'\n\nwindow.OCA.SystemTags = OCA.SystemTags;\n","/*\n * Copyright (c) 2015 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function() {\n\tif (!OCA.SystemTags) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.SystemTags = {};\n\t}\n\n\tOCA.SystemTags.App = {\n\n\t\tinitFileList: function($el) {\n\t\t\tif (this._fileList) {\n\t\t\t\treturn this._fileList;\n\t\t\t}\n\n\t\t\tthis._fileList = new OCA.SystemTags.FileList(\n\t\t\t\t$el,\n\t\t\t\t{\n\t\t\t\t\tid: 'systemtags',\n\t\t\t\t\tfileActions: this._createFileActions(),\n\t\t\t\t\tconfig: OCA.Files.App.getFilesConfig(),\n\t\t\t\t\t// The file list is created when a \"show\" event is handled,\n\t\t\t\t\t// so it should be marked as \"shown\" like it would have been\n\t\t\t\t\t// done if handling the event with the file list already\n\t\t\t\t\t// created.\n\t\t\t\t\tshown: true\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis._fileList.appName = t('systemtags', 'Tags');\n\t\t\treturn this._fileList;\n\t\t},\n\n\t\tremoveFileList: function() {\n\t\t\tif (this._fileList) {\n\t\t\t\tthis._fileList.$fileList.empty();\n\t\t\t}\n\t\t},\n\n\t\t_createFileActions: function() {\n\t\t\t// inherit file actions from the files app\n\t\t\tvar fileActions = new OCA.Files.FileActions();\n\t\t\t// note: not merging the legacy actions because legacy apps are not\n\t\t\t// compatible with the sharing overview and need to be adapted first\n\t\t\tfileActions.registerDefaultActions();\n\t\t\tfileActions.merge(OCA.Files.fileActions);\n\n\t\t\tif (!this._globalActionsInitialized) {\n\t\t\t\t// in case actions are registered later\n\t\t\t\tthis._onActionsUpdated = _.bind(this._onActionsUpdated, this);\n\t\t\t\tOCA.Files.fileActions.on('setDefault.app-systemtags', this._onActionsUpdated);\n\t\t\t\tOCA.Files.fileActions.on('registerAction.app-systemtags', this._onActionsUpdated);\n\t\t\t\tthis._globalActionsInitialized = true;\n\t\t\t}\n\n\t\t\t// when the user clicks on a folder, redirect to the corresponding\n\t\t\t// folder in the files app instead of opening it directly\n\t\t\tfileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename, context) {\n\t\t\t\tOCA.Files.App.setActiveView('files', {silent: true});\n\t\t\t\tOCA.Files.App.fileList.changeDirectory(OC.joinPaths(context.$file.attr('data-path'), filename), true, true);\n\t\t\t});\n\t\t\tfileActions.setDefault('dir', 'Open');\n\t\t\treturn fileActions;\n\t\t},\n\n\t\t_onActionsUpdated: function(ev) {\n\t\t\tif (!this._fileList) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (ev.action) {\n\t\t\t\tthis._fileList.fileActions.registerAction(ev.action);\n\t\t\t} else if (ev.defaultAction) {\n\t\t\t\tthis._fileList.fileActions.setDefault(\n\t\t\t\t\tev.defaultAction.mime,\n\t\t\t\t\tev.defaultAction.name\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Destroy the app\n\t\t */\n\t\tdestroy: function() {\n\t\t\tOCA.Files.fileActions.off('setDefault.app-systemtags', this._onActionsUpdated);\n\t\t\tOCA.Files.fileActions.off('registerAction.app-systemtags', this._onActionsUpdated);\n\t\t\tthis.removeFileList();\n\t\t\tthis._fileList = null;\n\t\t\tdelete this._globalActionsInitialized;\n\t\t}\n\t};\n\n})();\n\n$(document).ready(function() {\n\t$('#app-content-systemtagsfilter').on('show', function(e) {\n\t\tOCA.SystemTags.App.initFileList($(e.target));\n\t});\n\t$('#app-content-systemtagsfilter').on('hide', function() {\n\t\tOCA.SystemTags.App.removeFileList();\n\t});\n});\n","/*\n * Copyright (c) 2016 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n(function() {\n\t/**\n\t * @class OCA.SystemTags.FileList\n\t * @augments OCA.Files.FileList\n\t *\n\t * @classdesc SystemTags file list.\n\t * Contains a list of files filtered by system tags.\n\t *\n\t * @param $el container element with existing markup for the #controls\n\t * and a table\n\t * @param [options] map of options, see other parameters\n\t * @param {Array.<string>} [options.systemTagIds] array of system tag ids to\n\t * filter by\n\t */\n\tvar FileList = function($el, options) {\n\t\tthis.initialize($el, options);\n\t};\n\tFileList.prototype = _.extend({}, OCA.Files.FileList.prototype,\n\t\t/** @lends OCA.SystemTags.FileList.prototype */ {\n\t\tid: 'systemtagsfilter',\n\t\tappName: t('systemtags', 'Tagged files'),\n\n\t\t/**\n\t\t * Array of system tag ids to filter by\n\t\t *\n\t\t * @type Array.<string>\n\t\t */\n\t\t_systemTagIds: [],\n\t\t_lastUsedTags: [],\n\n\t\t_clientSideSort: true,\n\t\t_allowSelection: false,\n\n\t\t_filterField: null,\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tinitialize: function($el, options) {\n\t\t\tOCA.Files.FileList.prototype.initialize.apply(this, arguments);\n\t\t\tif (this.initialized) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (options && options.systemTagIds) {\n\t\t\t\tthis._systemTagIds = options.systemTagIds;\n\t\t\t}\n\n\t\t\tOC.Plugins.attach('OCA.SystemTags.FileList', this);\n\n\t\t\tvar $controls = this.$el.find('#controls').empty();\n\n\t\t\t_.defer(_.bind(this._getLastUsedTags, this));\n\t\t\tthis._initFilterField($controls);\n\t\t},\n\t\t\n\t\tdestroy: function() {\n\t\t\tthis.$filterField.remove();\n\n\t\t\tOCA.Files.FileList.prototype.destroy.apply(this, arguments);\n\t\t},\n\n\t\t_getLastUsedTags: function() {\n\t\t\tvar self = this;\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: OC.generateUrl('/apps/systemtags/lastused'),\n\t\t\t\tsuccess: function (response) {\n\t\t\t\t\tself._lastUsedTags = response;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_initFilterField: function($container) {\n\t\t\tvar self = this;\n\t\t\tthis.$filterField = $('<input type=\"hidden\" name=\"tags\"/>');\n\t\t\t$container.append(this.$filterField);\n\t\t\tthis.$filterField.select2({\n\t\t\t\tplaceholder: t('systemtags', 'Select tags to filter by'),\n\t\t\t\tallowClear: false,\n\t\t\t\tmultiple: true,\n\t\t\t\ttoggleSelect: true,\n\t\t\t\tseparator: ',',\n\t\t\t\tquery: _.bind(this._queryTagsAutocomplete, this),\n\n\t\t\t\tid: function(tag) {\n\t\t\t\t\treturn tag.id;\n\t\t\t\t},\n\n\t\t\t\tinitSelection: function(element, callback) {\n\t\t\t\t\tvar val = $(element).val().trim();\n\t\t\t\t\tif (val) {\n\t\t\t\t\t\tvar tagIds = val.split(','),\n\t\t\t\t\t\t\ttags = [];\n\n\t\t\t\t\t\tOC.SystemTags.collection.fetch({\n\t\t\t\t\t\t\tsuccess: function() {\n\t\t\t\t\t\t\t\t_.each(tagIds, function(tagId) {\n\t\t\t\t\t\t\t\t\tvar tag = OC.SystemTags.collection.get(tagId);\n\t\t\t\t\t\t\t\t\tif (!_.isUndefined(tag)) {\n\t\t\t\t\t\t\t\t\t\ttags.push(tag.toJSON());\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tcallback(tags);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback([]);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tformatResult: function (tag) {\n\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag);\n\t\t\t\t},\n\n\t\t\t\tformatSelection: function (tag) {\n\t\t\t\t\treturn OC.SystemTags.getDescriptiveTag(tag)[0].outerHTML;\n\t\t\t\t},\n\n\t\t\t\tsortResults: function(results) {\n\t\t\t\t\tresults.sort(function(a, b) {\n\t\t\t\t\t\tvar aLastUsed = self._lastUsedTags.indexOf(a.id);\n\t\t\t\t\t\tvar bLastUsed = self._lastUsedTags.indexOf(b.id);\n\n\t\t\t\t\t\tif (aLastUsed !== bLastUsed) {\n\t\t\t\t\t\t\tif (bLastUsed === -1) {\n\t\t\t\t\t\t\t\treturn -1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (aLastUsed === -1) {\n\t\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn aLastUsed < bLastUsed ? -1 : 1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Both not found\n\t\t\t\t\t\treturn OC.Util.naturalSortCompare(a.name, b.name);\n\t\t\t\t\t});\n\t\t\t\t\treturn results;\n\t\t\t\t},\n\n\t\t\t\tescapeMarkup: function(m) {\n\t\t\t\t\t// prevent double markup escape\n\t\t\t\t\treturn m;\n\t\t\t\t},\n\t\t\t\tformatNoMatches: function() {\n\t\t\t\t\treturn t('systemtags', 'No tags found');\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.$filterField.on('change', _.bind(this._onTagsChanged, this));\n\t\t\treturn this.$filterField;\n\t\t},\n\n\t\t/**\n\t\t * Autocomplete function for dropdown results\n\t\t *\n\t\t * @param {Object} query select2 query object\n\t\t */\n\t\t_queryTagsAutocomplete: function(query) {\n\t\t\tOC.SystemTags.collection.fetch({\n\t\t\t\tsuccess: function() {\n\t\t\t\t\tvar results = OC.SystemTags.collection.filterByName(query.term);\n\n\t\t\t\t\tquery.callback({\n\t\t\t\t\t\tresults: _.invoke(results, 'toJSON')\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Event handler for when the URL changed\n\t\t */\n\t\t_onUrlChanged: function(e) {\n\t\t\tif (e.dir) {\n\t\t\t\tvar tags = _.filter(e.dir.split('/'), function(val) { return val.trim() !== ''; });\n\t\t\t\tthis.$filterField.select2('val', tags || []);\n\t\t\t\tthis._systemTagIds = tags;\n\t\t\t\tthis.reload();\n\t\t\t}\n\t\t},\n\n\t\t_onTagsChanged: function(ev) {\n\t\t\tvar val = $(ev.target).val().trim();\n\t\t\tif (val !== '') {\n\t\t\t\tthis._systemTagIds = val.split(',');\n\t\t\t} else {\n\t\t\t\tthis._systemTagIds = [];\n\t\t\t}\n\n\t\t\tthis.$el.trigger(jQuery.Event('changeDirectory', {\n\t\t\t\tdir: this._systemTagIds.join('/')\n\t\t\t}));\n\t\t\tthis.reload();\n\t\t},\n\n\t\tupdateEmptyContent: function() {\n\t\t\tvar dir = this.getCurrentDirectory();\n\t\t\tif (dir === '/') {\n\t\t\t\t// root has special permissions\n\t\t\t\tif (!this._systemTagIds.length) {\n\t\t\t\t\t// no tags selected\n\t\t\t\t\tthis.$el.find('#emptycontent').html('<div class=\"icon-systemtags\"></div>' +\n\t\t\t\t\t\t'<h2>' + t('systemtags', 'Please select tags to filter by') + '</h2>');\n\t\t\t\t} else {\n\t\t\t\t\t// tags selected but no results\n\t\t\t\t\tthis.$el.find('#emptycontent').html('<div class=\"icon-systemtags\"></div>' +\n\t\t\t\t\t\t'<h2>' + t('systemtags', 'No files found for the selected tags') + '</h2>');\n\t\t\t\t}\n\t\t\t\tthis.$el.find('#emptycontent').toggleClass('hidden', !this.isEmpty);\n\t\t\t\tthis.$el.find('#filestable thead th').toggleClass('hidden', this.isEmpty);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tOCA.Files.FileList.prototype.updateEmptyContent.apply(this, arguments);\n\t\t\t}\n\t\t},\n\n\t\tgetDirectoryPermissions: function() {\n\t\t\treturn OC.PERMISSION_READ | OC.PERMISSION_DELETE;\n\t\t},\n\n\t\tupdateStorageStatistics: function() {\n\t\t\t// no op because it doesn't have\n\t\t\t// storage info like free space / used space\n\t\t},\n\n\t\treload: function() {\n\t\t\t// there is only root\n\t\t\tthis._setCurrentDir('/', false);\n\n\t\t\tif (!this._systemTagIds.length) {\n\t\t\t\t// don't reload\n\t\t\t\tthis.updateEmptyContent();\n\t\t\t\tthis.setFiles([]);\n\t\t\t\treturn $.Deferred().resolve();\n\t\t\t}\n\n\t\t\tthis._selectedFiles = {};\n\t\t\tthis._selectionSummary.clear();\n\t\t\tif (this._currentFileModel) {\n\t\t\t\tthis._currentFileModel.off();\n\t\t\t}\n\t\t\tthis._currentFileModel = null;\n\t\t\tthis.$el.find('.select-all').prop('checked', false);\n\t\t\tthis.showMask();\n\t\t\tthis._reloadCall = this.filesClient.getFilteredFiles(\n\t\t\t\t{\n\t\t\t\t\tsystemTagIds: this._systemTagIds\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tproperties: this._getWebdavProperties()\n\t\t\t\t}\n\t\t\t);\n\t\t\tif (this._detailsView) {\n\t\t\t\t// close sidebar\n\t\t\t\tthis._updateDetailsView(null);\n\t\t\t}\n\t\t\tvar callBack = this.reloadCallback.bind(this);\n\t\t\treturn this._reloadCall.then(callBack, callBack);\n\t\t},\n\n\t\treloadCallback: function(status, result) {\n\t\t\tif (result) {\n\t\t\t\t// prepend empty dir info because original handler\n\t\t\t\tresult.unshift({});\n\t\t\t}\n\n\t\t\treturn OCA.Files.FileList.prototype.reloadCallback.call(this, status, result);\n\t\t}\n\t});\n\n\tOCA.SystemTags.FileList = FileList;\n})();\n","/*\n * Copyright (c) 2015 Vincent Petry <pvince81@owncloud.com>\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function() {\n\tOCA.SystemTags = _.extend({}, OCA.SystemTags);\n\tif (!OCA.SystemTags) {\n\t\t/**\n\t\t * @namespace\n\t\t */\n\t\tOCA.SystemTags = {};\n\t}\n\n\t/**\n\t * @namespace\n\t */\n\tOCA.SystemTags.FilesPlugin = {\n\t\tignoreLists: [\n\t\t\t'trashbin',\n\t\t\t'files.public'\n\t\t],\n\n\t\tattach: function(fileList) {\n\t\t\tif (this.ignoreLists.indexOf(fileList.id) >= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar systemTagsInfoView = new OCA.SystemTags.SystemTagsInfoView();\n\t\t\tfileList.registerDetailView(systemTagsInfoView);\n\n\t\t\t_.each(fileList.getRegisteredDetailViews(), function(detailView) {\n\t\t\t\tif (detailView instanceof OCA.Files.MainFileInfoDetailView) {\n\t\t\t\t\tvar systemTagsInfoViewToggleView =\n\t\t\t\t\t\tnew OCA.SystemTags.SystemTagsInfoViewToggleView({\n\t\t\t\t\t\t\tsystemTagsInfoView: systemTagsInfoView\n\t\t\t\t\t\t});\n\t\t\t\t\tsystemTagsInfoViewToggleView.render();\n\n\t\t\t\t\t// The toggle view element is detached before the\n\t\t\t\t\t// MainFileInfoDetailView is rendered to prevent its event\n\t\t\t\t\t// handlers from being removed.\n\t\t\t\t\tsystemTagsInfoViewToggleView.listenTo(detailView, 'pre-render', function() {\n\t\t\t\t\t\tsystemTagsInfoViewToggleView.$el.detach();\n\t\t\t\t\t});\n\t\t\t\t\tsystemTagsInfoViewToggleView.listenTo(detailView, 'post-render', function() {\n\t\t\t\t\t\tdetailView.$el.find('.file-details').append(systemTagsInfoViewToggleView.$el);\n\t\t\t\t\t});\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t};\n\n})();\n\nOC.Plugins.register('OCA.Files.FileList', OCA.SystemTags.FilesPlugin);\n\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function(OCA) {\n\n\tfunction modelToSelection(model) {\n\t\tvar data = model.toJSON();\n\t\tif (!OC.isUserAdmin() && !data.canAssign) {\n\t\t\tdata.locked = true;\n\t\t}\n\t\treturn data;\n\t}\n\n\t/**\n\t * @class OCA.SystemTags.SystemTagsInfoView\n\t * @classdesc\n\t *\n\t * Displays a file's system tags\n\t *\n\t */\n\tvar SystemTagsInfoView = OCA.Files.DetailFileInfoView.extend(\n\t\t/** @lends OCA.SystemTags.SystemTagsInfoView.prototype */ {\n\n\t\t_rendered: false,\n\n\t\tclassName: 'systemTagsInfoView hidden',\n\n\t\t/**\n\t\t * @type OC.SystemTags.SystemTagsInputField\n\t\t */\n\t\t_inputView: null,\n\n\t\tinitialize: function(options) {\n\t\t\tvar self = this;\n\t\t\toptions = options || {};\n\n\t\t\tthis._inputView = new OC.SystemTags.SystemTagsInputField({\n\t\t\t\tmultiple: true,\n\t\t\t\tallowActions: true,\n\t\t\t\tallowCreate: true,\n\t\t\t\tisAdmin: OC.isUserAdmin(),\n\t\t\t\tinitSelection: function(element, callback) {\n\t\t\t\t\tcallback(self.selectedTagsCollection.map(modelToSelection));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.selectedTagsCollection = new OC.SystemTags.SystemTagsMappingCollection([], {objectType: 'files'});\n\n\t\t\tthis._inputView.collection.on('change:name', this._onTagRenamedGlobally, this);\n\t\t\tthis._inputView.collection.on('remove', this._onTagDeletedGlobally, this);\n\n\t\t\tthis._inputView.on('select', this._onSelectTag, this);\n\t\t\tthis._inputView.on('deselect', this._onDeselectTag, this);\n\t\t},\n\n\t\t/**\n\t\t * Event handler whenever a tag was selected\n\t\t */\n\t\t_onSelectTag: function(tag) {\n\t\t\t// create a mapping entry for this tag\n\t\t\tthis.selectedTagsCollection.create(tag.toJSON());\n\t\t},\n\n\t\t/**\n\t\t * Event handler whenever a tag gets deselected.\n\t\t * Removes the selected tag from the mapping collection.\n\t\t *\n\t\t * @param {string} tagId tag id\n\t\t */\n\t\t_onDeselectTag: function(tagId) {\n\t\t\tthis.selectedTagsCollection.get(tagId).destroy();\n\t\t},\n\n\t\t/**\n\t\t * Event handler whenever a tag was renamed globally.\n\t\t *\n\t\t * This will automatically adjust the tag mapping collection to\n\t\t * container the new name.\n\t\t *\n\t\t * @param {OC.Backbone.Model} changedTag tag model that has changed\n\t\t */\n\t\t_onTagRenamedGlobally: function(changedTag) {\n\t\t\t// also rename it in the selection, if applicable\n\t\t\tvar selectedTagMapping = this.selectedTagsCollection.get(changedTag.id);\n\t\t\tif (selectedTagMapping) {\n\t\t\t\tselectedTagMapping.set(changedTag.toJSON());\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Event handler whenever a tag was deleted globally.\n\t\t *\n\t\t * This will automatically adjust the tag mapping collection to\n\t\t * container the new name.\n\t\t *\n\t\t * @param {OC.Backbone.Model} tagId tag model that has changed\n\t\t */\n\t\t_onTagDeletedGlobally: function(tagId) {\n\t\t\t// also rename it in the selection, if applicable\n\t\t\tthis.selectedTagsCollection.remove(tagId);\n\t\t},\n\n\t\tsetFileInfo: function(fileInfo) {\n\t\t\tvar self = this;\n\t\t\tif (!this._rendered) {\n\t\t\t\tthis.render();\n\t\t\t}\n\n\t\t\tif (fileInfo) {\n\t\t\t\tthis.selectedTagsCollection.setObjectId(fileInfo.id);\n\t\t\t\tthis.selectedTagsCollection.fetch({\n\t\t\t\t\tsuccess: function(collection) {\n\t\t\t\t\t\tcollection.fetched = true;\n\n\t\t\t\t\t\tvar appliedTags = collection.map(modelToSelection);\n\t\t\t\t\t\tself._inputView.setData(appliedTags);\n\n\t\t\t\t\t\tif (appliedTags.length !== 0) {\n\t\t\t\t\t\t\tself.show();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.hide();\n\t\t},\n\n\t\t/**\n\t\t * Renders this details view\n\t\t */\n\t\trender: function() {\n\t\t\tvar self = this;\n\n\t\t\tthis.$el.append(this._inputView.$el);\n\t\t\tthis._inputView.render();\n\t\t},\n\n\t\tisVisible: function() {\n\t\t\treturn !this.$el.hasClass('hidden');\n\t\t},\n\n\t\tshow: function() {\n\t\t\tthis.$el.removeClass('hidden');\n\t\t},\n\n\t\thide: function() {\n\t\t\tthis.$el.addClass('hidden');\n\t\t},\n\n\t\topenDropdown: function() {\n\t\t\tthis.$el.find('.systemTagsInputField').select2('open');\n\t\t},\n\n\t\tremove: function() {\n\t\t\tthis._inputView.remove();\n\t\t}\n\t});\n\n\tOCA.SystemTags.SystemTagsInfoView = SystemTagsInfoView;\n\n})(OCA);\n\n","/**\n *\n * @copyright Copyright (c) 2017, Daniel Calviño Sánchez (danxuliu@gmail.com)\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function(OCA) {\n\n\t/**\n\t * @class OCA.SystemTags.SystemTagsInfoViewToggleView\n\t * @classdesc\n\t *\n\t * View to toggle the visibility of a SystemTagsInfoView.\n\t *\n\t * This toggle view must be explicitly rendered before it is used.\n\t */\n\tvar SystemTagsInfoViewToggleView = OC.Backbone.View.extend(\n\t\t/** @lends OC.Backbone.View.prototype */ {\n\n\t\ttagName: 'span',\n\n\t\tclassName: 'tag-label',\n\n\t\tevents: {\n\t\t\t'click': 'click'\n\t\t},\n\n\t\t/**\n\t\t * @type OCA.SystemTags.SystemTagsInfoView\n\t\t */\n\t\t_systemTagsInfoView: null,\n\n\t\ttemplate: function(data) {\n\t\t\treturn '<span class=\"icon icon-tag\"/>' + t('systemtags', 'Tags');\n\t\t},\n\n\t\t/**\n\t\t * Initialize this toggle view.\n\t\t *\n\t\t * The options must provide a systemTagsInfoView parameter that\n\t\t * references the SystemTagsInfoView to associate to this toggle view.\n\t\t */\n\t\tinitialize: function(options) {\n\t\t\tvar self = this;\n\t\t\toptions = options || {};\n\n\t\t\tthis._systemTagsInfoView = options.systemTagsInfoView;\n\t\t\tif (!this._systemTagsInfoView) {\n\t\t\t\tthrow 'Missing required parameter \"systemTagsInfoView\"';\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Toggles the visibility of the associated SystemTagsInfoView.\n\t\t *\n\t\t * When the systemTagsInfoView is shown its dropdown is also opened.\n\t\t */\n\t\tclick: function() {\n\t\t\tif (this._systemTagsInfoView.isVisible()) {\n\t\t\t\tthis._systemTagsInfoView.hide();\n\t\t\t} else {\n\t\t\t\tthis._systemTagsInfoView.show();\n\t\t\t\tthis._systemTagsInfoView.openDropdown();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Renders this toggle view.\n\t\t *\n\t\t * @return OCA.SystemTags.SystemTagsInfoViewToggleView this object.\n\t\t */\n\t\trender: function() {\n\t\t\tthis.$el.html(this.template());\n\n\t\t\treturn this;\n\t\t},\n\n\t});\n\n\tOCA.SystemTags.SystemTagsInfoViewToggleView = SystemTagsInfoViewToggleView;\n\n})(OCA);\n","var content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/lib/loader.js!./systemtagsfilelist.scss\");\n\nif (typeof content === 'string') {\n content = [[module.id, content, '']];\n}\n\nvar options = {}\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = require(\"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\")(content, options);\n\nif (content.locals) {\n module.exports = content.locals;\n}\n","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/*\\n * Copyright (c) 2016\\n *\\n * This file is licensed under the Affero General Public License version 3\\n * or later.\\n *\\n * See the COPYING-README file.\\n *\\n */\\n#app-content-systemtagsfilter .select2-container {\\n width: 30%;\\n margin-left: 10px; }\\n\\n#app-sidebar .mainFileInfoView .tag-label {\\n cursor: pointer;\\n padding: 13px; }\\n\\n#app-sidebar .mainFileInfoView .icon-tag {\\n opacity: .5;\\n vertical-align: middle; }\\n\", \"\"]);\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \"{\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = modules[_i]; // skip already imported module\n // this implementation is not 100% perfect for weird media query combinations\n // when a module is imported multiple times with different media queries.\n // I hope this will never occur (Hey this way we have smaller bundles)\n\n if (item[0] == null || !alreadyImportedModules[item[0]]) {\n if (mediaQuery && !item[2]) {\n item[2] = mediaQuery;\n } else if (mediaQuery) {\n item[2] = \"(\".concat(item[2], \") and (\").concat(mediaQuery, \")\");\n }\n\n list.push(item);\n }\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot).concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","\"use strict\";\n\nvar stylesInDom = {};\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nfunction listToStyles(list, options) {\n var styles = [];\n var newStyles = {};\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var css = item[1];\n var media = item[2];\n var sourceMap = item[3];\n var part = {\n css: css,\n media: media,\n sourceMap: sourceMap\n };\n\n if (!newStyles[id]) {\n styles.push(newStyles[id] = {\n id: id,\n parts: [part]\n });\n } else {\n newStyles[id].parts.push(part);\n }\n }\n\n return styles;\n}\n\nfunction addStylesToDom(styles, options) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n var j = 0;\n\n if (domStyle) {\n domStyle.refs++;\n\n for (; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j]);\n }\n\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j], options));\n }\n } else {\n var parts = [];\n\n for (; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j], options));\n }\n\n stylesInDom[item.id] = {\n id: item.id,\n refs: 1,\n parts: parts\n };\n }\n }\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n\n if (typeof options.attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n options.attributes.nonce = nonce;\n }\n }\n\n Object.keys(options.attributes).forEach(function (key) {\n style.setAttribute(key, options.attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n }\n\n if (sourceMap && btoa) {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n options.attributes = typeof options.attributes === 'object' ? options.attributes : {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n var styles = listToStyles(list, options);\n addStylesToDom(styles, options);\n return function update(newList) {\n var mayRemove = [];\n\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i];\n var domStyle = stylesInDom[item.id];\n\n if (domStyle) {\n domStyle.refs--;\n mayRemove.push(domStyle);\n }\n }\n\n if (newList) {\n var newStyles = listToStyles(newList, options);\n addStylesToDom(newStyles, options);\n }\n\n for (var _i = 0; _i < mayRemove.length; _i++) {\n var _domStyle = mayRemove[_i];\n\n if (_domStyle.refs === 0) {\n for (var j = 0; j < _domStyle.parts.length; j++) {\n _domStyle.parts[j]();\n }\n\n delete stylesInDom[_domStyle.id];\n }\n }\n };\n};"],"sourceRoot":""} \ No newline at end of file