aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_trashbin
diff options
context:
space:
mode:
authorGary Kim <gary@garykim.dev>2019-10-05 15:53:07 +0800
committerGary Kim <gary@garykim.dev>2019-10-07 19:35:23 +0800
commit11d01319c6e9a5fe25537006c352e836c803c2e0 (patch)
treecc59167f0e562698981491fe123a5a95d7516206 /apps/files_trashbin
parent049628a3f53f3e5e6fe4111b5e28fa90d1a95dd9 (diff)
downloadnextcloud-server-11d01319c6e9a5fe25537006c352e836c803c2e0.tar.gz
nextcloud-server-11d01319c6e9a5fe25537006c352e836c803c2e0.zip
Show Delete Icon in Breadcrumb in Trashbin
Signed-off-by: Gary Kim <gary@garykim.dev>
Diffstat (limited to 'apps/files_trashbin')
-rw-r--r--apps/files_trashbin/js/files_trashbin.js2
-rw-r--r--apps/files_trashbin/js/files_trashbin.js.map2
-rw-r--r--apps/files_trashbin/src/filelist.js2
3 files changed, 3 insertions, 3 deletions
diff --git a/apps/files_trashbin/js/files_trashbin.js b/apps/files_trashbin/js/files_trashbin.js
index c9fd1c55dda..202739065b0 100644
--- a/apps/files_trashbin/js/files_trashbin.js
+++ b/apps/files_trashbin/js/files_trashbin.js
@@ -1,2 +1,2 @@
-!function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},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 n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},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);window.OCA.Trashbin=OCA.Trashbin},function(e,i){OCA.Trashbin={},OCA.Trashbin.App={_initialized:!1,client:null,initialize:function(e){if(!this._initialized){this._initialized=!0,this.client=new OC.Files.Client({host:OC.getHost(),port:OC.getPort(),root:OC.linkToRemoteBase("dav")+"/trashbin/"+OC.getCurrentUser().uid,useHTTPS:"https"===OC.getProtocol()});var i=OC.Util.History.parseUrlQuery();this.fileList=new OCA.Trashbin.FileList($("#app-content-trashbin"),{fileActions:this._createFileActions(),detailsViewEnabled:!1,scrollTo:i.scrollto,config:OCA.Files.App.getFilesConfig(),multiSelectMenu:[{name:"restore",displayName:t("files_trashbin","Restore"),iconClass:"icon-history"},{name:"delete",displayName:t("files_trashbin","Delete permanently"),iconClass:"icon-delete"}],client:this.client,shown:!0})}},_createFileActions:function(){var e=this.client,i=new OCA.Files.FileActions;return i.register("dir","Open",OC.PERMISSION_READ,"",(function(e,t){var i=t.fileList.getCurrentDirectory();t.fileList.changeDirectory(OC.joinPaths(i,e))})),i.setDefault("dir","Open"),i.registerAction({name:"Restore",displayName:t("files_trashbin","Restore"),type:OCA.Files.FileActions.TYPE_INLINE,mime:"all",permissions:OC.PERMISSION_READ,iconClass:"icon-history",actionHandler:function(i,n){var r=n.fileList,a=r.findFileEl(i);r.showFileBusyState(a,!0);var o=n.fileList.getCurrentDirectory();e.move(OC.joinPaths("trash",o,i),OC.joinPaths("restore",i),!0).then(r._removeCallback.bind(r,[i]),(function(){r.showFileBusyState(a,!1),OC.Notification.show(t("files_trashbin","Error while restoring file from trashbin"))}))}}),i.registerAction({name:"Delete",displayName:t("files_trashbin","Delete permanently"),mime:"all",permissions:OC.PERMISSION_READ,iconClass:"icon-delete",render:function(e,n,r){var a=i._makeActionLink(e,r);return a.attr("original-title",t("files_trashbin","Delete permanently")),a.children("img").attr("alt",t("files_trashbin","Delete permanently")),r.$file.find("td:last").append(a),a},actionHandler:function(i,n){var r=n.fileList;$(".tipsy").remove();var a=r.findFileEl(i);r.showFileBusyState(a,!0);var o=n.fileList.getCurrentDirectory();e.remove(OC.joinPaths("trash",o,i)).then(r._removeCallback.bind(r,[i]),(function(){r.showFileBusyState(a,!1),OC.Notification.show(t("files_trashbin","Error while removing file from trashbin"))}))}}),i}},$(document).ready((function(){$("#app-content-trashbin").one("show",(function(){OCA.Trashbin.App.initialize($("#app-content-trashbin"))}))}))},function(e,i){!function(){var e=new RegExp(/^(.+)\.d[0-9]+$/),i="{http://nextcloud.org/ns}trashbin-filename",n="{http://nextcloud.org/ns}trashbin-deletion-time",r="{http://nextcloud.org/ns}trashbin-original-location",a="{http://nextcloud.org/ns}trashbin-title";function o(t){t=OC.basename(t);var i=e.exec(t);return i&&i.length>1&&(t=i[1]),t}var s=function(e,t){this.client=t.client,this.initialize(e,t)};s.prototype=_.extend({},OCA.Files.FileList.prototype,{id:"trashbin",appName:t("files_trashbin","Deleted files"),client:null,initialize:function(){this.client.addFileInfoParser((function(e,t){var o=e.propStat[0].properties,s=o[r],l=o[a];return{displayName:o[i],mtime:1e3*parseInt(o[n],10),hasPreview:!0,path:s,extraData:l}}));var e=OCA.Files.FileList.prototype.initialize.apply(this,arguments);return this.$el.find(".undelete").click("click",_.bind(this._onClickRestoreSelected,this)),this.setSort("mtime","desc"),this.breadcrumb._makeCrumbs=function(){for(var e=OCA.Files.BreadCrumb.prototype._makeCrumbs.apply(this,arguments),t=1;t<e.length;t++)e[t].name=o(e[t].name);return e},OC.Plugins.attach("OCA.Trashbin.FileList",this),e},getDirectoryPermissions:function(){return OC.PERMISSION_READ|OC.PERMISSION_DELETE},_setCurrentDir:function(e){OCA.Files.FileList.prototype._setCurrentDir.apply(this,arguments);var t=OC.basename(e);""!==t&&this.setPageTitle(o(t))},_createRow:function(){var e=OCA.Files.FileList.prototype._createRow.apply(this,arguments);return e.find("td.filesize").remove(),e},getAjaxUrl:function(e,t){var i="";return t&&(i="?"+OC.buildQueryString(t)),OC.filePath("files_trashbin","ajax",e+".php")+i},setupUploadEvents:function(){},linkTo:function(e){return OC.linkTo("files","index.php")+"?view=trashbin&dir="+encodeURIComponent(e).replace(/%2F/g,"/")},elementToFile:function(e){var t=OCA.Files.FileList.prototype.elementToFile(e);return"/"===this.getCurrentDirectory()&&(t.displayName=o(t.name)),delete t.size,t},updateEmptyContent:function(){var e=this.$fileList.find("tr:first").exists();this.$el.find("#emptycontent").toggleClass("hidden",e),this.$el.find("#filestable th").toggleClass("hidden",!e)},_removeCallback:function(e){for(var t,i=0;i<e.length;i++)t=this.remove(OC.basename(e[i]),{updateSummary:!1}),this.fileSummary.remove({type:t.attr("data-type"),size:t.attr("data-size")});this.fileSummary.update(),this.updateEmptyContent()},_onClickRestoreSelected:function(e){e.preventDefault();for(var i=this,n=_.pluck(this.getSelectedFiles(),"name"),r=0;r<n.length;r++){var a=this.findFileEl(n[r]);this.showFileBusyState(a,!0)}this.fileMultiSelectMenu.toggleLoading("restore",!0);var o=n.map((function(e){return i.client.move(OC.joinPaths("trash",i.getCurrentDirectory(),e),OC.joinPaths("restore",e),!0).then((function(){i._removeCallback([e])}))}));return Promise.all(o).then((function(){i.fileMultiSelectMenu.toggleLoading("restore",!1)}),(function(){OC.Notification.show(t("files_trashbin","Error while restoring files from trashbin"))}))},_onClickDeleteSelected:function(e){e.preventDefault();for(var i=this,n=this.$el.find(".select-all").is(":checked"),r=_.pluck(this.getSelectedFiles(),"name"),a=0;a<r.length;a++){var o=this.findFileEl(r[a]);this.showFileBusyState(o,!0)}if(n)return this.client.remove(OC.joinPaths("trash",this.getCurrentDirectory())).then((function(){i.hideMask(),i.setFiles([])}),(function(){OC.Notification.show(t("files_trashbin","Error while emptying trashbin"))}));this.fileMultiSelectMenu.toggleLoading("delete",!0);var s=r.map((function(e){return i.client.remove(OC.joinPaths("trash",i.getCurrentDirectory(),e)).then((function(){i._removeCallback([e])}))}));return Promise.all(s).then((function(){i.fileMultiSelectMenu.toggleLoading("delete",!1)}),(function(){OC.Notification.show(t("files_trashbin","Error while removing files from trashbin"))}))},_onClickFile:function(e){var t=$(this).parent().parent().data("mime");return"httpd/unix-directory"!==t&&e.preventDefault(),OCA.Files.FileList.prototype._onClickFile.apply(this,arguments)},generatePreviewUrl:function(e){return OC.generateUrl("/apps/files_trashbin/preview?")+$.param(e)},getDownloadUrl:function(){return"#"},updateStorageStatistics:function(){},isSelectedDeletable:function(){return!0},_getWebdavProperties:function(){return[i,n,r,a].concat(this.filesClient.getPropfindProperties())},reload:function(){this._selectedFiles={},this._selectionSummary.clear(),this.$el.find(".select-all").prop("checked",!1),this.showMask(),this._reloadCall&&this._reloadCall.abort(),this._reloadCall=this.client.getFolderContents("trash/"+this.getCurrentDirectory(),{includeParent:!1,properties:this._getWebdavProperties()});var e=this.reloadCallback.bind(this);return this._reloadCall.then(e,e)},reloadCallback:function(e,i){return delete this._reloadCall,this.hideMask(),401!==e&&(403===e?(this.changeDirectory("/"),OC.Notification.show(t("files","This operation is forbidden")),!1):500===e?(this.changeDirectory("/"),OC.Notification.show(t("files","This directory is unavailable, please check the logs or contact the administrator")),!1):404===e?(this.changeDirectory("/"),!1):0===e||(this.setFiles(i),!0))}}),OCA.Trashbin.FileList=s}()},function(e,t,i){var n=i(4);"string"==typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);(0,i(6).default)("e1044e6c",n,!0,{})},function(e,t,i){(e.exports=i(5)(!1)).push([e.i,'#app-content-trashbin tbody tr[data-type="file"] td a.name,#app-content-trashbin tbody tr[data-type="file"] td a.name span.nametext,#app-content-trashbin tbody tr[data-type="file"] td a.name span.nametext span{cursor:default}#app-content-trashbin .summary :last-child{padding:0}#app-content-trashbin #filestable .summary .filesize{display:none}\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]||"",n=e[3];if(!n)return i;if(t&&"function"==typeof btoa){var r=(o=n,s=btoa(unescape(encodeURIComponent(JSON.stringify(o)))),l="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),"/*# ".concat(l," */")),a=n.sources.map((function(e){return"/*# sourceURL=".concat(n.sourceRoot).concat(e," */")}));return[i].concat(a).concat([r]).join("\n")}var o,s,l;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 n={},r=0;r<this.length;r++){var a=this[r][0];null!=a&&(n[a]=!0)}for(var o=0;o<e.length;o++){var s=e[o];null!=s[0]&&n[s[0]]||(i&&!s[2]?s[2]=i:i&&(s[2]="(".concat(s[2],") and (").concat(i,")")),t.push(s))}},t}},function(e,t,i){"use strict";function n(e,t){for(var i=[],n={},r=0;r<t.length;r++){var a=t[r],o=a[0],s={id:e+":"+r,css:a[1],media:a[2],sourceMap:a[3]};n[o]?n[o].parts.push(s):i.push(n[o]={id:o,parts:[s]})}return i}i.r(t),i.d(t,"default",(function(){return p}));var r="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!r)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var a={},o=r&&(document.head||document.getElementsByTagName("head")[0]),s=null,l=0,c=!1,u=function(){},f=null,h="data-vue-ssr-id",d="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function p(e,t,i,r){c=i,f=r||{};var o=n(e,t);return m(o),function(t){for(var i=[],r=0;r<o.length;r++){var s=o[r];(l=a[s.id]).refs--,i.push(l)}t?m(o=n(e,t)):o=[];for(r=0;r<i.length;r++){var l;if(0===(l=i[r]).refs){for(var c=0;c<l.parts.length;c++)l.parts[c]();delete a[l.id]}}}}function m(e){for(var t=0;t<e.length;t++){var i=e[t],n=a[i.id];if(n){n.refs++;for(var r=0;r<n.parts.length;r++)n.parts[r](i.parts[r]);for(;r<i.parts.length;r++)n.parts.push(C(i.parts[r]));n.parts.length>i.parts.length&&(n.parts.length=i.parts.length)}else{var o=[];for(r=0;r<i.parts.length;r++)o.push(C(i.parts[r]));a[i.id]={id:i.id,refs:1,parts:o}}}}function g(){var e=document.createElement("style");return e.type="text/css",o.appendChild(e),e}function C(e){var t,i,n=document.querySelector("style["+h+'~="'+e.id+'"]');if(n){if(c)return u;n.parentNode.removeChild(n)}if(d){var r=l++;n=s||(s=g()),t=b.bind(null,n,r,!1),i=b.bind(null,n,r,!0)}else n=g(),t=O.bind(null,n),i=function(){n.parentNode.removeChild(n)};return t(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap)return;t(e=n)}else i()}}var v,y=(v=[],function(e,t){return v[e]=t,v.filter(Boolean).join("\n")});function b(e,t,i,n){var r=i?"":n.css;if(e.styleSheet)e.styleSheet.cssText=y(t,r);else{var a=document.createTextNode(r),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(a,o[t]):e.appendChild(a)}}function O(e,t){var i=t.css,n=t.media,r=t.sourceMap;if(n&&e.setAttribute("media",n),f.ssrId&&e.setAttribute(h,t.id),r&&(i+="\n/*# sourceURL="+r.sources[0]+" */",i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */"),e.styleSheet)e.styleSheet.cssText=i;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(i))}}}]);
+!function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},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 n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},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);window.OCA.Trashbin=OCA.Trashbin},function(e,i){OCA.Trashbin={},OCA.Trashbin.App={_initialized:!1,client:null,initialize:function(e){if(!this._initialized){this._initialized=!0,this.client=new OC.Files.Client({host:OC.getHost(),port:OC.getPort(),root:OC.linkToRemoteBase("dav")+"/trashbin/"+OC.getCurrentUser().uid,useHTTPS:"https"===OC.getProtocol()});var i=OC.Util.History.parseUrlQuery();this.fileList=new OCA.Trashbin.FileList($("#app-content-trashbin"),{fileActions:this._createFileActions(),detailsViewEnabled:!1,scrollTo:i.scrollto,config:OCA.Files.App.getFilesConfig(),multiSelectMenu:[{name:"restore",displayName:t("files_trashbin","Restore"),iconClass:"icon-history"},{name:"delete",displayName:t("files_trashbin","Delete permanently"),iconClass:"icon-delete"}],client:this.client,shown:!0})}},_createFileActions:function(){var e=this.client,i=new OCA.Files.FileActions;return i.register("dir","Open",OC.PERMISSION_READ,"",(function(e,t){var i=t.fileList.getCurrentDirectory();t.fileList.changeDirectory(OC.joinPaths(i,e))})),i.setDefault("dir","Open"),i.registerAction({name:"Restore",displayName:t("files_trashbin","Restore"),type:OCA.Files.FileActions.TYPE_INLINE,mime:"all",permissions:OC.PERMISSION_READ,iconClass:"icon-history",actionHandler:function(i,n){var r=n.fileList,a=r.findFileEl(i);r.showFileBusyState(a,!0);var o=n.fileList.getCurrentDirectory();e.move(OC.joinPaths("trash",o,i),OC.joinPaths("restore",i),!0).then(r._removeCallback.bind(r,[i]),(function(){r.showFileBusyState(a,!1),OC.Notification.show(t("files_trashbin","Error while restoring file from trashbin"))}))}}),i.registerAction({name:"Delete",displayName:t("files_trashbin","Delete permanently"),mime:"all",permissions:OC.PERMISSION_READ,iconClass:"icon-delete",render:function(e,n,r){var a=i._makeActionLink(e,r);return a.attr("original-title",t("files_trashbin","Delete permanently")),a.children("img").attr("alt",t("files_trashbin","Delete permanently")),r.$file.find("td:last").append(a),a},actionHandler:function(i,n){var r=n.fileList;$(".tipsy").remove();var a=r.findFileEl(i);r.showFileBusyState(a,!0);var o=n.fileList.getCurrentDirectory();e.remove(OC.joinPaths("trash",o,i)).then(r._removeCallback.bind(r,[i]),(function(){r.showFileBusyState(a,!1),OC.Notification.show(t("files_trashbin","Error while removing file from trashbin"))}))}}),i}},$(document).ready((function(){$("#app-content-trashbin").one("show",(function(){OCA.Trashbin.App.initialize($("#app-content-trashbin"))}))}))},function(e,i){!function(){var e=new RegExp(/^(.+)\.d[0-9]+$/),i="{http://nextcloud.org/ns}trashbin-filename",n="{http://nextcloud.org/ns}trashbin-deletion-time",r="{http://nextcloud.org/ns}trashbin-original-location",a="{http://nextcloud.org/ns}trashbin-title";function o(t){t=OC.basename(t);var i=e.exec(t);return i&&i.length>1&&(t=i[1]),t}var s=function(e,t){this.client=t.client,this.initialize(e,t)};s.prototype=_.extend({},OCA.Files.FileList.prototype,{id:"trashbin",appName:t("files_trashbin","Deleted files"),client:null,initialize:function(){this.client.addFileInfoParser((function(e,t){var o=e.propStat[0].properties,s=o[r],l=o[a];return{displayName:o[i],mtime:1e3*parseInt(o[n],10),hasPreview:!0,path:s,extraData:l}}));var e=OCA.Files.FileList.prototype.initialize.apply(this,arguments);return this.$el.find(".undelete").click("click",_.bind(this._onClickRestoreSelected,this)),this.setSort("mtime","desc"),this.breadcrumb._makeCrumbs=function(){for(var e=OCA.Files.BreadCrumb.prototype._makeCrumbs.apply(this,[].concat(Array.prototype.slice.call(arguments),["icon-delete no-hover"])),t=1;t<e.length;t++)e[t].name=o(e[t].name);return e},OC.Plugins.attach("OCA.Trashbin.FileList",this),e},getDirectoryPermissions:function(){return OC.PERMISSION_READ|OC.PERMISSION_DELETE},_setCurrentDir:function(e){OCA.Files.FileList.prototype._setCurrentDir.apply(this,arguments);var t=OC.basename(e);""!==t&&this.setPageTitle(o(t))},_createRow:function(){var e=OCA.Files.FileList.prototype._createRow.apply(this,arguments);return e.find("td.filesize").remove(),e},getAjaxUrl:function(e,t){var i="";return t&&(i="?"+OC.buildQueryString(t)),OC.filePath("files_trashbin","ajax",e+".php")+i},setupUploadEvents:function(){},linkTo:function(e){return OC.linkTo("files","index.php")+"?view=trashbin&dir="+encodeURIComponent(e).replace(/%2F/g,"/")},elementToFile:function(e){var t=OCA.Files.FileList.prototype.elementToFile(e);return"/"===this.getCurrentDirectory()&&(t.displayName=o(t.name)),delete t.size,t},updateEmptyContent:function(){var e=this.$fileList.find("tr:first").exists();this.$el.find("#emptycontent").toggleClass("hidden",e),this.$el.find("#filestable th").toggleClass("hidden",!e)},_removeCallback:function(e){for(var t,i=0;i<e.length;i++)t=this.remove(OC.basename(e[i]),{updateSummary:!1}),this.fileSummary.remove({type:t.attr("data-type"),size:t.attr("data-size")});this.fileSummary.update(),this.updateEmptyContent()},_onClickRestoreSelected:function(e){e.preventDefault();for(var i=this,n=_.pluck(this.getSelectedFiles(),"name"),r=0;r<n.length;r++){var a=this.findFileEl(n[r]);this.showFileBusyState(a,!0)}this.fileMultiSelectMenu.toggleLoading("restore",!0);var o=n.map((function(e){return i.client.move(OC.joinPaths("trash",i.getCurrentDirectory(),e),OC.joinPaths("restore",e),!0).then((function(){i._removeCallback([e])}))}));return Promise.all(o).then((function(){i.fileMultiSelectMenu.toggleLoading("restore",!1)}),(function(){OC.Notification.show(t("files_trashbin","Error while restoring files from trashbin"))}))},_onClickDeleteSelected:function(e){e.preventDefault();for(var i=this,n=this.$el.find(".select-all").is(":checked"),r=_.pluck(this.getSelectedFiles(),"name"),a=0;a<r.length;a++){var o=this.findFileEl(r[a]);this.showFileBusyState(o,!0)}if(n)return this.client.remove(OC.joinPaths("trash",this.getCurrentDirectory())).then((function(){i.hideMask(),i.setFiles([])}),(function(){OC.Notification.show(t("files_trashbin","Error while emptying trashbin"))}));this.fileMultiSelectMenu.toggleLoading("delete",!0);var s=r.map((function(e){return i.client.remove(OC.joinPaths("trash",i.getCurrentDirectory(),e)).then((function(){i._removeCallback([e])}))}));return Promise.all(s).then((function(){i.fileMultiSelectMenu.toggleLoading("delete",!1)}),(function(){OC.Notification.show(t("files_trashbin","Error while removing files from trashbin"))}))},_onClickFile:function(e){var t=$(this).parent().parent().data("mime");return"httpd/unix-directory"!==t&&e.preventDefault(),OCA.Files.FileList.prototype._onClickFile.apply(this,arguments)},generatePreviewUrl:function(e){return OC.generateUrl("/apps/files_trashbin/preview?")+$.param(e)},getDownloadUrl:function(){return"#"},updateStorageStatistics:function(){},isSelectedDeletable:function(){return!0},_getWebdavProperties:function(){return[i,n,r,a].concat(this.filesClient.getPropfindProperties())},reload:function(){this._selectedFiles={},this._selectionSummary.clear(),this.$el.find(".select-all").prop("checked",!1),this.showMask(),this._reloadCall&&this._reloadCall.abort(),this._reloadCall=this.client.getFolderContents("trash/"+this.getCurrentDirectory(),{includeParent:!1,properties:this._getWebdavProperties()});var e=this.reloadCallback.bind(this);return this._reloadCall.then(e,e)},reloadCallback:function(e,i){return delete this._reloadCall,this.hideMask(),401!==e&&(403===e?(this.changeDirectory("/"),OC.Notification.show(t("files","This operation is forbidden")),!1):500===e?(this.changeDirectory("/"),OC.Notification.show(t("files","This directory is unavailable, please check the logs or contact the administrator")),!1):404===e?(this.changeDirectory("/"),!1):0===e||(this.setFiles(i),!0))}}),OCA.Trashbin.FileList=s}()},function(e,t,i){var n=i(4);"string"==typeof n&&(n=[[e.i,n,""]]),n.locals&&(e.exports=n.locals);(0,i(6).default)("e1044e6c",n,!0,{})},function(e,t,i){(e.exports=i(5)(!1)).push([e.i,'#app-content-trashbin tbody tr[data-type="file"] td a.name,#app-content-trashbin tbody tr[data-type="file"] td a.name span.nametext,#app-content-trashbin tbody tr[data-type="file"] td a.name span.nametext span{cursor:default}#app-content-trashbin .summary :last-child{padding:0}#app-content-trashbin #filestable .summary .filesize{display:none}\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]||"",n=e[3];if(!n)return i;if(t&&"function"==typeof btoa){var r=(o=n,s=btoa(unescape(encodeURIComponent(JSON.stringify(o)))),l="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(s),"/*# ".concat(l," */")),a=n.sources.map((function(e){return"/*# sourceURL=".concat(n.sourceRoot).concat(e," */")}));return[i].concat(a).concat([r]).join("\n")}var o,s,l;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 n={},r=0;r<this.length;r++){var a=this[r][0];null!=a&&(n[a]=!0)}for(var o=0;o<e.length;o++){var s=e[o];null!=s[0]&&n[s[0]]||(i&&!s[2]?s[2]=i:i&&(s[2]="(".concat(s[2],") and (").concat(i,")")),t.push(s))}},t}},function(e,t,i){"use strict";function n(e,t){for(var i=[],n={},r=0;r<t.length;r++){var a=t[r],o=a[0],s={id:e+":"+r,css:a[1],media:a[2],sourceMap:a[3]};n[o]?n[o].parts.push(s):i.push(n[o]={id:o,parts:[s]})}return i}i.r(t),i.d(t,"default",(function(){return p}));var r="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!r)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var a={},o=r&&(document.head||document.getElementsByTagName("head")[0]),s=null,l=0,c=!1,u=function(){},h=null,f="data-vue-ssr-id",d="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function p(e,t,i,r){c=i,h=r||{};var o=n(e,t);return m(o),function(t){for(var i=[],r=0;r<o.length;r++){var s=o[r];(l=a[s.id]).refs--,i.push(l)}t?m(o=n(e,t)):o=[];for(r=0;r<i.length;r++){var l;if(0===(l=i[r]).refs){for(var c=0;c<l.parts.length;c++)l.parts[c]();delete a[l.id]}}}}function m(e){for(var t=0;t<e.length;t++){var i=e[t],n=a[i.id];if(n){n.refs++;for(var r=0;r<n.parts.length;r++)n.parts[r](i.parts[r]);for(;r<i.parts.length;r++)n.parts.push(C(i.parts[r]));n.parts.length>i.parts.length&&(n.parts.length=i.parts.length)}else{var o=[];for(r=0;r<i.parts.length;r++)o.push(C(i.parts[r]));a[i.id]={id:i.id,refs:1,parts:o}}}}function g(){var e=document.createElement("style");return e.type="text/css",o.appendChild(e),e}function C(e){var t,i,n=document.querySelector("style["+f+'~="'+e.id+'"]');if(n){if(c)return u;n.parentNode.removeChild(n)}if(d){var r=l++;n=s||(s=g()),t=b.bind(null,n,r,!1),i=b.bind(null,n,r,!0)}else n=g(),t=O.bind(null,n),i=function(){n.parentNode.removeChild(n)};return t(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap)return;t(e=n)}else i()}}var v,y=(v=[],function(e,t){return v[e]=t,v.filter(Boolean).join("\n")});function b(e,t,i,n){var r=i?"":n.css;if(e.styleSheet)e.styleSheet.cssText=y(t,r);else{var a=document.createTextNode(r),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(a,o[t]):e.appendChild(a)}}function O(e,t){var i=t.css,n=t.media,r=t.sourceMap;if(n&&e.setAttribute("media",n),h.ssrId&&e.setAttribute(f,t.id),r&&(i+="\n/*# sourceURL="+r.sources[0]+" */",i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */"),e.styleSheet)e.styleSheet.cssText=i;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(i))}}}]);
//# sourceMappingURL=files_trashbin.js.map \ No newline at end of file
diff --git a/apps/files_trashbin/js/files_trashbin.js.map b/apps/files_trashbin/js/files_trashbin.js.map
index 7d338f0ea71..222bbbda83d 100644
--- a/apps/files_trashbin/js/files_trashbin.js.map
+++ b/apps/files_trashbin/js/files_trashbin.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./apps/files_trashbin/src/files_trashbin.js","webpack:///./apps/files_trashbin/src/app.js","webpack:///./apps/files_trashbin/src/filelist.js","webpack:///./apps/files_trashbin/src/trash.scss?7371","webpack:///./apps/files_trashbin/src/trash.scss","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.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","window","OCA","Trashbin","App","_initialized","client","initialize","$el","this","OC","Files","Client","host","getHost","port","getPort","root","linkToRemoteBase","getCurrentUser","uid","useHTTPS","getProtocol","urlParams","Util","History","parseUrlQuery","fileList","FileList","$","fileActions","_createFileActions","detailsViewEnabled","scrollTo","scrollto","config","getFilesConfig","multiSelectMenu","displayName","iconClass","shown","FileActions","register","PERMISSION_READ","filename","context","dir","getCurrentDirectory","changeDirectory","joinPaths","setDefault","registerAction","type","TYPE_INLINE","mime","permissions","actionHandler","tr","findFileEl","showFileBusyState","move","then","_removeCallback","Notification","show","render","actionSpec","isDefault","$actionLink","_makeActionLink","attr","children","$file","find","append","remove","document","ready","one","DELETED_REGEXP","RegExp","FILENAME_PROP","DELETION_TIME_PROP","TRASHBIN_ORIGINAL_LOCATION","TRASHBIN_TITLE","getDeletedFileName","basename","match","exec","length","options","_","extend","id","appName","addFileInfoParser","response","data","props","propStat","properties","path","title","mtime","parseInt","hasPreview","extraData","result","apply","arguments","click","_onClickRestoreSelected","setSort","breadcrumb","_makeCrumbs","parts","BreadCrumb","Plugins","attach","getDirectoryPermissions","PERMISSION_DELETE","_setCurrentDir","targetDir","baseDir","setPageTitle","_createRow","getAjaxUrl","action","params","q","buildQueryString","filePath","setupUploadEvents","linkTo","encodeURIComponent","replace","elementToFile","fileInfo","size","updateEmptyContent","exists","$fileList","toggleClass","files","updateSummary","fileSummary","update","event","preventDefault","self","pluck","getSelectedFiles","fileMultiSelectMenu","toggleLoading","restorePromises","map","file","Promise","all","_onClickDeleteSelected","allFiles","is","hideMask","setFiles","deletePromises","_onClickFile","parent","generatePreviewUrl","urlSpec","generateUrl","param","getDownloadUrl","updateStorageStatistics","isSelectedDeletable","_getWebdavProperties","concat","filesClient","getPropfindProperties","reload","_selectedFiles","_selectionSummary","clear","prop","showMask","_reloadCall","abort","getFolderContents","includeParent","callBack","reloadCallback","status","content","locals","add","default","push","useSourceMap","list","toString","item","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","JSON","stringify","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","_i","listToStyles","parentId","styles","newStyles","part","css","media","hasDocument","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","ssrIdKey","isOldIE","navigator","test","userAgent","toLowerCase","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","createElement","appendChild","obj","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild"],"mappings":"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","file":"files_trashbin.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 './filelist'\nimport './trash.scss'\n\nwindow.OCA.Trashbin = OCA.Trashbin\n","/**\n * Copyright (c) 2014\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/**\n * @namespace OCA.Trashbin\n */\nOCA.Trashbin = {}\n/**\n * @namespace OCA.Trashbin.App\n */\nOCA.Trashbin.App = {\n\t_initialized: false,\n\t/** @type {OC.Files.Client} */\n\tclient: null,\n\n\tinitialize: function($el) {\n\t\tif (this._initialized) {\n\t\t\treturn\n\t\t}\n\t\tthis._initialized = true\n\n\t\tthis.client = new OC.Files.Client({\n\t\t\thost: OC.getHost(),\n\t\t\tport: OC.getPort(),\n\t\t\troot: OC.linkToRemoteBase('dav') + '/trashbin/' + OC.getCurrentUser().uid,\n\t\t\tuseHTTPS: OC.getProtocol() === 'https'\n\t\t})\n\t\tvar urlParams = OC.Util.History.parseUrlQuery()\n\t\tthis.fileList = new OCA.Trashbin.FileList(\n\t\t\t$('#app-content-trashbin'), {\n\t\t\t\tfileActions: this._createFileActions(),\n\t\t\t\tdetailsViewEnabled: false,\n\t\t\t\tscrollTo: urlParams.scrollto,\n\t\t\t\tconfig: OCA.Files.App.getFilesConfig(),\n\t\t\t\tmultiSelectMenu: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'restore',\n\t\t\t\t\t\tdisplayName: t('files_trashbin', 'Restore'),\n\t\t\t\t\t\ticonClass: 'icon-history'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'delete',\n\t\t\t\t\t\tdisplayName: t('files_trashbin', 'Delete permanently'),\n\t\t\t\t\t\ticonClass: 'icon-delete'\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tclient: this.client,\n\t\t\t\t// The file list is created when a \"show\" event is handled, so\n\t\t\t\t// it should be marked as \"shown\" like it would have been done\n\t\t\t\t// if handling the event with the file list already created.\n\t\t\t\tshown: true\n\t\t\t}\n\t\t)\n\t},\n\n\t_createFileActions: function() {\n\t\tvar client = this.client\n\t\tvar fileActions = new OCA.Files.FileActions()\n\t\tfileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function(filename, context) {\n\t\t\tvar dir = context.fileList.getCurrentDirectory()\n\t\t\tcontext.fileList.changeDirectory(OC.joinPaths(dir, filename))\n\t\t})\n\n\t\tfileActions.setDefault('dir', 'Open')\n\n\t\tfileActions.registerAction({\n\t\t\tname: 'Restore',\n\t\t\tdisplayName: t('files_trashbin', 'Restore'),\n\t\t\ttype: OCA.Files.FileActions.TYPE_INLINE,\n\t\t\tmime: 'all',\n\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\ticonClass: 'icon-history',\n\t\t\tactionHandler: function(filename, context) {\n\t\t\t\tvar fileList = context.fileList\n\t\t\t\tvar tr = fileList.findFileEl(filename)\n\t\t\t\tfileList.showFileBusyState(tr, true)\n\t\t\t\tvar dir = context.fileList.getCurrentDirectory()\n\t\t\t\tclient.move(OC.joinPaths('trash', dir, filename), OC.joinPaths('restore', filename), true)\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfileList._removeCallback.bind(fileList, [filename]),\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tfileList.showFileBusyState(tr, false)\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while restoring file from trashbin'))\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t}\n\t\t})\n\n\t\tfileActions.registerAction({\n\t\t\tname: 'Delete',\n\t\t\tdisplayName: t('files_trashbin', 'Delete permanently'),\n\t\t\tmime: 'all',\n\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\ticonClass: 'icon-delete',\n\t\t\trender: function(actionSpec, isDefault, context) {\n\t\t\t\tvar $actionLink = fileActions._makeActionLink(actionSpec, context)\n\t\t\t\t$actionLink.attr('original-title', t('files_trashbin', 'Delete permanently'))\n\t\t\t\t$actionLink.children('img').attr('alt', t('files_trashbin', 'Delete permanently'))\n\t\t\t\tcontext.$file.find('td:last').append($actionLink)\n\t\t\t\treturn $actionLink\n\t\t\t},\n\t\t\tactionHandler: function(filename, context) {\n\t\t\t\tvar fileList = context.fileList\n\t\t\t\t$('.tipsy').remove()\n\t\t\t\tvar tr = fileList.findFileEl(filename)\n\t\t\t\tfileList.showFileBusyState(tr, true)\n\t\t\t\tvar dir = context.fileList.getCurrentDirectory()\n\t\t\t\tclient.remove(OC.joinPaths('trash', dir, filename))\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfileList._removeCallback.bind(fileList, [filename]),\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tfileList.showFileBusyState(tr, false)\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while removing file from trashbin'))\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t}\n\t\t})\n\t\treturn fileActions\n\t}\n}\n\n$(document).ready(function() {\n\t$('#app-content-trashbin').one('show', function() {\n\t\tvar App = OCA.Trashbin.App\n\t\tApp.initialize($('#app-content-trashbin'))\n\t\t// force breadcrumb init\n\t\t// App.fileList.changeDirectory(App.fileList.getCurrentDirectory(), false, true);\n\t})\n})\n","/* eslint-disable */\n/*\n * Copyright (c) 2014\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\tvar DELETED_REGEXP = new RegExp(/^(.+)\\.d[0-9]+$/)\n\tvar FILENAME_PROP = '{http://nextcloud.org/ns}trashbin-filename'\n\tvar DELETION_TIME_PROP = '{http://nextcloud.org/ns}trashbin-deletion-time'\n\tvar TRASHBIN_ORIGINAL_LOCATION = '{http://nextcloud.org/ns}trashbin-original-location'\n\tvar TRASHBIN_TITLE = '{http://nextcloud.org/ns}trashbin-title'\n\n\t/**\n\t * Convert a file name in the format filename.d12345 to the real file name.\n\t * This will use basename.\n\t * The name will not be changed if it has no \".d12345\" suffix.\n\t * @param {String} name file name\n\t * @returns {String} converted file name\n\t */\n\tfunction getDeletedFileName(name) {\n\t\tname = OC.basename(name)\n\t\tvar match = DELETED_REGEXP.exec(name)\n\t\tif (match && match.length > 1) {\n\t\t\tname = match[1]\n\t\t}\n\t\treturn name\n\t}\n\n\t/**\n\t * @class OCA.Trashbin.FileList\n\t * @augments OCA.Files.FileList\n\t * @classdesc List of deleted files\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\n\t */\n\tvar FileList = function($el, options) {\n\t\tthis.client = options.client\n\t\tthis.initialize($el, options)\n\t}\n\tFileList.prototype = _.extend({}, OCA.Files.FileList.prototype,\n\t\t/** @lends OCA.Trashbin.FileList.prototype */ {\n\t\tid: 'trashbin',\n\t\tappName: t('files_trashbin', 'Deleted files'),\n\t\t/** @type {OC.Files.Client} */\n\t\tclient: null,\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tinitialize: function() {\n\t\t\tthis.client.addFileInfoParser(function(response, data) {\n\t\t\t\tvar props = response.propStat[0].properties\n\t\t\t\tvar path = props[TRASHBIN_ORIGINAL_LOCATION]\n\t\t\t\tvar title = props[TRASHBIN_TITLE]\n\t\t\t\treturn {\n\t\t\t\t\tdisplayName: props[FILENAME_PROP],\n\t\t\t\t\tmtime: parseInt(props[DELETION_TIME_PROP], 10) * 1000,\n\t\t\t\t\thasPreview: true,\n\t\t\t\t\tpath: path,\n\t\t\t\t\textraData: title\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tvar result = OCA.Files.FileList.prototype.initialize.apply(this, arguments)\n\t\t\tthis.$el.find('.undelete').click('click', _.bind(this._onClickRestoreSelected, this))\n\n\t\t\tthis.setSort('mtime', 'desc')\n\t\t\t/**\n\t\t\t * Override crumb making to add \"Deleted Files\" entry\n\t\t\t * and convert files with \".d\" extensions to a more\n\t\t\t * user friendly name.\n\t\t\t */\n\t\t\t\tthis.breadcrumb._makeCrumbs = function() {\n\t\t\t\t\tvar parts = OCA.Files.BreadCrumb.prototype._makeCrumbs.apply(this, arguments)\n\t\t\t\t\tfor (var i = 1; i < parts.length; i++) {\n\t\t\t\t\t\tparts[i].name = getDeletedFileName(parts[i].name)\n\t\t\t\t\t}\n\t\t\t\t\treturn parts\n\t\t\t\t}\n\n\t\t\t\tOC.Plugins.attach('OCA.Trashbin.FileList', this)\n\t\t\t\treturn result\n\t\t\t},\n\n\t\t\t/**\n\t\t * Override to only return read permissions\n\t\t */\n\t\t\tgetDirectoryPermissions: function() {\n\t\t\t\treturn OC.PERMISSION_READ | OC.PERMISSION_DELETE\n\t\t\t},\n\n\t\t\t_setCurrentDir: function(targetDir) {\n\t\t\t\tOCA.Files.FileList.prototype._setCurrentDir.apply(this, arguments)\n\n\t\t\t\tvar baseDir = OC.basename(targetDir)\n\t\t\t\tif (baseDir !== '') {\n\t\t\t\t\tthis.setPageTitle(getDeletedFileName(baseDir))\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t_createRow: function() {\n\t\t\t// FIXME: MEGAHACK until we find a better solution\n\t\t\t\tvar tr = OCA.Files.FileList.prototype._createRow.apply(this, arguments)\n\t\t\t\ttr.find('td.filesize').remove()\n\t\t\t\treturn tr\n\t\t\t},\n\n\t\t\tgetAjaxUrl: function(action, params) {\n\t\t\t\tvar q = ''\n\t\t\t\tif (params) {\n\t\t\t\t\tq = '?' + OC.buildQueryString(params)\n\t\t\t\t}\n\t\t\t\treturn OC.filePath('files_trashbin', 'ajax', action + '.php') + q\n\t\t\t},\n\n\t\t\tsetupUploadEvents: function() {\n\t\t\t// override and do nothing\n\t\t\t},\n\n\t\t\tlinkTo: function(dir) {\n\t\t\t\treturn OC.linkTo('files', 'index.php') + '?view=trashbin&dir=' + encodeURIComponent(dir).replace(/%2F/g, '/')\n\t\t\t},\n\n\t\t\telementToFile: function($el) {\n\t\t\t\tvar fileInfo = OCA.Files.FileList.prototype.elementToFile($el)\n\t\t\t\tif (this.getCurrentDirectory() === '/') {\n\t\t\t\t\tfileInfo.displayName = getDeletedFileName(fileInfo.name)\n\t\t\t\t}\n\t\t\t\t// no size available\n\t\t\t\tdelete fileInfo.size\n\t\t\t\treturn fileInfo\n\t\t\t},\n\n\t\t\tupdateEmptyContent: function() {\n\t\t\t\tvar exists = this.$fileList.find('tr:first').exists()\n\t\t\t\tthis.$el.find('#emptycontent').toggleClass('hidden', exists)\n\t\t\t\tthis.$el.find('#filestable th').toggleClass('hidden', !exists)\n\t\t\t},\n\n\t\t\t_removeCallback: function(files) {\n\t\t\t\tvar $el\n\t\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\t\t$el = this.remove(OC.basename(files[i]), { updateSummary: false })\n\t\t\t\t\tthis.fileSummary.remove({ type: $el.attr('data-type'), size: $el.attr('data-size') })\n\t\t\t\t}\n\t\t\t\tthis.fileSummary.update()\n\t\t\t\tthis.updateEmptyContent()\n\t\t\t},\n\n\t\t\t_onClickRestoreSelected: function(event) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tvar self = this\n\t\t\t\tvar files = _.pluck(this.getSelectedFiles(), 'name')\n\t\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\t\tvar tr = this.findFileEl(files[i])\n\t\t\t\t\tthis.showFileBusyState(tr, true)\n\t\t\t\t}\n\n\t\t\t\tthis.fileMultiSelectMenu.toggleLoading('restore', true)\n\t\t\t\tvar restorePromises = files.map(function(file) {\n\t\t\t\t\treturn self.client.move(OC.joinPaths('trash', self.getCurrentDirectory(), file), OC.joinPaths('restore', file), true)\n\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tself._removeCallback([file])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t})\n\t\t\t\treturn Promise.all(restorePromises).then(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tself.fileMultiSelectMenu.toggleLoading('restore', false)\n\t\t\t\t\t},\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while restoring files from trashbin'))\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t},\n\n\t\t\t_onClickDeleteSelected: function(event) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tvar self = this\n\t\t\t\tvar allFiles = this.$el.find('.select-all').is(':checked')\n\t\t\t\tvar files = _.pluck(this.getSelectedFiles(), 'name')\n\t\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\t\tvar tr = this.findFileEl(files[i])\n\t\t\t\t\tthis.showFileBusyState(tr, true)\n\t\t\t\t}\n\n\t\t\t\tif (allFiles) {\n\t\t\t\t\treturn this.client.remove(OC.joinPaths('trash', this.getCurrentDirectory()))\n\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tself.hideMask()\n\t\t\t\t\t\t\t\tself.setFiles([])\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while emptying trashbin'))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\tthis.fileMultiSelectMenu.toggleLoading('delete', true)\n\t\t\t\t\tvar deletePromises = files.map(function(file) {\n\t\t\t\t\t\treturn self.client.remove(OC.joinPaths('trash', self.getCurrentDirectory(), file))\n\t\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\tself._removeCallback([file])\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t})\n\t\t\t\t\treturn Promise.all(deletePromises).then(\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tself.fileMultiSelectMenu.toggleLoading('delete', false)\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while removing files from trashbin'))\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\t_onClickFile: function(event) {\n\t\t\t\tvar mime = $(this).parent().parent().data('mime')\n\t\t\t\tif (mime !== 'httpd/unix-directory') {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t}\n\t\t\t\treturn OCA.Files.FileList.prototype._onClickFile.apply(this, arguments)\n\t\t\t},\n\n\t\t\tgeneratePreviewUrl: function(urlSpec) {\n\t\t\t\treturn OC.generateUrl('/apps/files_trashbin/preview?') + $.param(urlSpec)\n\t\t\t},\n\n\t\t\tgetDownloadUrl: function() {\n\t\t\t// no downloads\n\t\t\t\treturn '#'\n\t\t\t},\n\n\t\t\tupdateStorageStatistics: function() {\n\t\t\t// no op because the trashbin doesn't have\n\t\t\t// storage info like free space / used space\n\t\t\t},\n\n\t\t\tisSelectedDeletable: function() {\n\t\t\t\treturn true\n\t\t\t},\n\n\t\t\t/**\n\t\t * Returns list of webdav properties to request\n\t\t */\n\t\t\t_getWebdavProperties: function() {\n\t\t\t\treturn [FILENAME_PROP, DELETION_TIME_PROP, TRASHBIN_ORIGINAL_LOCATION, TRASHBIN_TITLE].concat(this.filesClient.getPropfindProperties())\n\t\t\t},\n\n\t\t\t/**\n\t\t * Reloads the file list using ajax call\n\t\t *\n\t\t * @returns ajax call object\n\t\t */\n\t\t\treload: function() {\n\t\t\t\tthis._selectedFiles = {}\n\t\t\t\tthis._selectionSummary.clear()\n\t\t\t\tthis.$el.find('.select-all').prop('checked', false)\n\t\t\t\tthis.showMask()\n\t\t\t\tif (this._reloadCall) {\n\t\t\t\t\tthis._reloadCall.abort()\n\t\t\t\t}\n\t\t\t\tthis._reloadCall = this.client.getFolderContents(\n\t\t\t\t\t'trash/' + this.getCurrentDirectory(), {\n\t\t\t\t\t\tincludeParent: false,\n\t\t\t\t\t\tproperties: this._getWebdavProperties()\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\tvar callBack = this.reloadCallback.bind(this)\n\t\t\t\treturn this._reloadCall.then(callBack, callBack)\n\t\t\t},\n\t\t\treloadCallback: function(status, result) {\n\t\t\t\tdelete this._reloadCall\n\t\t\t\tthis.hideMask()\n\n\t\t\t\tif (status === 401) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Firewall Blocked request?\n\t\t\t\tif (status === 403) {\n\t\t\t\t// Go home\n\t\t\t\t\tthis.changeDirectory('/')\n\t\t\t\t\tOC.Notification.show(t('files', 'This operation is forbidden'))\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Did share service die or something else fail?\n\t\t\t\tif (status === 500) {\n\t\t\t\t// Go home\n\t\t\t\t\tthis.changeDirectory('/')\n\t\t\t\t\tOC.Notification.show(t('files', 'This directory is unavailable, please check the logs or contact the administrator'))\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tif (status === 404) {\n\t\t\t\t// go back home\n\t\t\t\t\tthis.changeDirectory('/')\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\t// aborted ?\n\t\t\t\tif (status === 0) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tthis.setFiles(result)\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t})\n\n\tOCA.Trashbin.FileList = FileList\n})()\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./trash.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"e1044e6c\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name,#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name span.nametext,#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name span.nametext span{cursor:default}#app-content-trashbin .summary :last-child{padding:0}#app-content-trashbin #filestable .summary .filesize{display:none}\\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 * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./apps/files_trashbin/src/files_trashbin.js","webpack:///./apps/files_trashbin/src/app.js","webpack:///./apps/files_trashbin/src/filelist.js","webpack:///./apps/files_trashbin/src/trash.scss?7371","webpack:///./apps/files_trashbin/src/trash.scss","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.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","window","OCA","Trashbin","App","_initialized","client","initialize","$el","this","OC","Files","Client","host","getHost","port","getPort","root","linkToRemoteBase","getCurrentUser","uid","useHTTPS","getProtocol","urlParams","Util","History","parseUrlQuery","fileList","FileList","$","fileActions","_createFileActions","detailsViewEnabled","scrollTo","scrollto","config","getFilesConfig","multiSelectMenu","displayName","iconClass","shown","FileActions","register","PERMISSION_READ","filename","context","dir","getCurrentDirectory","changeDirectory","joinPaths","setDefault","registerAction","type","TYPE_INLINE","mime","permissions","actionHandler","tr","findFileEl","showFileBusyState","move","then","_removeCallback","Notification","show","render","actionSpec","isDefault","$actionLink","_makeActionLink","attr","children","$file","find","append","remove","document","ready","one","DELETED_REGEXP","RegExp","FILENAME_PROP","DELETION_TIME_PROP","TRASHBIN_ORIGINAL_LOCATION","TRASHBIN_TITLE","getDeletedFileName","basename","match","exec","length","options","_","extend","id","appName","addFileInfoParser","response","data","props","propStat","properties","path","title","mtime","parseInt","hasPreview","extraData","result","apply","arguments","click","_onClickRestoreSelected","setSort","breadcrumb","_makeCrumbs","parts","BreadCrumb","Plugins","attach","getDirectoryPermissions","PERMISSION_DELETE","_setCurrentDir","targetDir","baseDir","setPageTitle","_createRow","getAjaxUrl","action","params","q","buildQueryString","filePath","setupUploadEvents","linkTo","encodeURIComponent","replace","elementToFile","fileInfo","size","updateEmptyContent","exists","$fileList","toggleClass","files","updateSummary","fileSummary","update","event","preventDefault","self","pluck","getSelectedFiles","fileMultiSelectMenu","toggleLoading","restorePromises","map","file","Promise","all","_onClickDeleteSelected","allFiles","is","hideMask","setFiles","deletePromises","_onClickFile","parent","generatePreviewUrl","urlSpec","generateUrl","param","getDownloadUrl","updateStorageStatistics","isSelectedDeletable","_getWebdavProperties","concat","filesClient","getPropfindProperties","reload","_selectedFiles","_selectionSummary","clear","prop","showMask","_reloadCall","abort","getFolderContents","includeParent","callBack","reloadCallback","status","content","locals","add","default","push","useSourceMap","list","toString","item","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","JSON","stringify","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","_i","listToStyles","parentId","styles","newStyles","part","css","media","hasDocument","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","ssrIdKey","isOldIE","navigator","test","userAgent","toLowerCase","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","createElement","appendChild","obj","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild"],"mappings":"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","file":"files_trashbin.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 './filelist'\nimport './trash.scss'\n\nwindow.OCA.Trashbin = OCA.Trashbin\n","/**\n * Copyright (c) 2014\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/**\n * @namespace OCA.Trashbin\n */\nOCA.Trashbin = {}\n/**\n * @namespace OCA.Trashbin.App\n */\nOCA.Trashbin.App = {\n\t_initialized: false,\n\t/** @type {OC.Files.Client} */\n\tclient: null,\n\n\tinitialize: function($el) {\n\t\tif (this._initialized) {\n\t\t\treturn\n\t\t}\n\t\tthis._initialized = true\n\n\t\tthis.client = new OC.Files.Client({\n\t\t\thost: OC.getHost(),\n\t\t\tport: OC.getPort(),\n\t\t\troot: OC.linkToRemoteBase('dav') + '/trashbin/' + OC.getCurrentUser().uid,\n\t\t\tuseHTTPS: OC.getProtocol() === 'https'\n\t\t})\n\t\tvar urlParams = OC.Util.History.parseUrlQuery()\n\t\tthis.fileList = new OCA.Trashbin.FileList(\n\t\t\t$('#app-content-trashbin'), {\n\t\t\t\tfileActions: this._createFileActions(),\n\t\t\t\tdetailsViewEnabled: false,\n\t\t\t\tscrollTo: urlParams.scrollto,\n\t\t\t\tconfig: OCA.Files.App.getFilesConfig(),\n\t\t\t\tmultiSelectMenu: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'restore',\n\t\t\t\t\t\tdisplayName: t('files_trashbin', 'Restore'),\n\t\t\t\t\t\ticonClass: 'icon-history'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'delete',\n\t\t\t\t\t\tdisplayName: t('files_trashbin', 'Delete permanently'),\n\t\t\t\t\t\ticonClass: 'icon-delete'\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\tclient: this.client,\n\t\t\t\t// The file list is created when a \"show\" event is handled, so\n\t\t\t\t// it should be marked as \"shown\" like it would have been done\n\t\t\t\t// if handling the event with the file list already created.\n\t\t\t\tshown: true\n\t\t\t}\n\t\t)\n\t},\n\n\t_createFileActions: function() {\n\t\tvar client = this.client\n\t\tvar fileActions = new OCA.Files.FileActions()\n\t\tfileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function(filename, context) {\n\t\t\tvar dir = context.fileList.getCurrentDirectory()\n\t\t\tcontext.fileList.changeDirectory(OC.joinPaths(dir, filename))\n\t\t})\n\n\t\tfileActions.setDefault('dir', 'Open')\n\n\t\tfileActions.registerAction({\n\t\t\tname: 'Restore',\n\t\t\tdisplayName: t('files_trashbin', 'Restore'),\n\t\t\ttype: OCA.Files.FileActions.TYPE_INLINE,\n\t\t\tmime: 'all',\n\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\ticonClass: 'icon-history',\n\t\t\tactionHandler: function(filename, context) {\n\t\t\t\tvar fileList = context.fileList\n\t\t\t\tvar tr = fileList.findFileEl(filename)\n\t\t\t\tfileList.showFileBusyState(tr, true)\n\t\t\t\tvar dir = context.fileList.getCurrentDirectory()\n\t\t\t\tclient.move(OC.joinPaths('trash', dir, filename), OC.joinPaths('restore', filename), true)\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfileList._removeCallback.bind(fileList, [filename]),\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tfileList.showFileBusyState(tr, false)\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while restoring file from trashbin'))\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t}\n\t\t})\n\n\t\tfileActions.registerAction({\n\t\t\tname: 'Delete',\n\t\t\tdisplayName: t('files_trashbin', 'Delete permanently'),\n\t\t\tmime: 'all',\n\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\ticonClass: 'icon-delete',\n\t\t\trender: function(actionSpec, isDefault, context) {\n\t\t\t\tvar $actionLink = fileActions._makeActionLink(actionSpec, context)\n\t\t\t\t$actionLink.attr('original-title', t('files_trashbin', 'Delete permanently'))\n\t\t\t\t$actionLink.children('img').attr('alt', t('files_trashbin', 'Delete permanently'))\n\t\t\t\tcontext.$file.find('td:last').append($actionLink)\n\t\t\t\treturn $actionLink\n\t\t\t},\n\t\t\tactionHandler: function(filename, context) {\n\t\t\t\tvar fileList = context.fileList\n\t\t\t\t$('.tipsy').remove()\n\t\t\t\tvar tr = fileList.findFileEl(filename)\n\t\t\t\tfileList.showFileBusyState(tr, true)\n\t\t\t\tvar dir = context.fileList.getCurrentDirectory()\n\t\t\t\tclient.remove(OC.joinPaths('trash', dir, filename))\n\t\t\t\t\t.then(\n\t\t\t\t\t\tfileList._removeCallback.bind(fileList, [filename]),\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tfileList.showFileBusyState(tr, false)\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while removing file from trashbin'))\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t}\n\t\t})\n\t\treturn fileActions\n\t}\n}\n\n$(document).ready(function() {\n\t$('#app-content-trashbin').one('show', function() {\n\t\tvar App = OCA.Trashbin.App\n\t\tApp.initialize($('#app-content-trashbin'))\n\t\t// force breadcrumb init\n\t\t// App.fileList.changeDirectory(App.fileList.getCurrentDirectory(), false, true);\n\t})\n})\n","/* eslint-disable */\n/*\n * Copyright (c) 2014\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\tvar DELETED_REGEXP = new RegExp(/^(.+)\\.d[0-9]+$/)\n\tvar FILENAME_PROP = '{http://nextcloud.org/ns}trashbin-filename'\n\tvar DELETION_TIME_PROP = '{http://nextcloud.org/ns}trashbin-deletion-time'\n\tvar TRASHBIN_ORIGINAL_LOCATION = '{http://nextcloud.org/ns}trashbin-original-location'\n\tvar TRASHBIN_TITLE = '{http://nextcloud.org/ns}trashbin-title'\n\n\t/**\n\t * Convert a file name in the format filename.d12345 to the real file name.\n\t * This will use basename.\n\t * The name will not be changed if it has no \".d12345\" suffix.\n\t * @param {String} name file name\n\t * @returns {String} converted file name\n\t */\n\tfunction getDeletedFileName(name) {\n\t\tname = OC.basename(name)\n\t\tvar match = DELETED_REGEXP.exec(name)\n\t\tif (match && match.length > 1) {\n\t\t\tname = match[1]\n\t\t}\n\t\treturn name\n\t}\n\n\t/**\n\t * @class OCA.Trashbin.FileList\n\t * @augments OCA.Files.FileList\n\t * @classdesc List of deleted files\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\n\t */\n\tvar FileList = function($el, options) {\n\t\tthis.client = options.client\n\t\tthis.initialize($el, options)\n\t}\n\tFileList.prototype = _.extend({}, OCA.Files.FileList.prototype,\n\t\t/** @lends OCA.Trashbin.FileList.prototype */ {\n\t\tid: 'trashbin',\n\t\tappName: t('files_trashbin', 'Deleted files'),\n\t\t/** @type {OC.Files.Client} */\n\t\tclient: null,\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tinitialize: function() {\n\t\t\tthis.client.addFileInfoParser(function(response, data) {\n\t\t\t\tvar props = response.propStat[0].properties\n\t\t\t\tvar path = props[TRASHBIN_ORIGINAL_LOCATION]\n\t\t\t\tvar title = props[TRASHBIN_TITLE]\n\t\t\t\treturn {\n\t\t\t\t\tdisplayName: props[FILENAME_PROP],\n\t\t\t\t\tmtime: parseInt(props[DELETION_TIME_PROP], 10) * 1000,\n\t\t\t\t\thasPreview: true,\n\t\t\t\t\tpath: path,\n\t\t\t\t\textraData: title\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tvar result = OCA.Files.FileList.prototype.initialize.apply(this, arguments)\n\t\t\tthis.$el.find('.undelete').click('click', _.bind(this._onClickRestoreSelected, this))\n\n\t\t\tthis.setSort('mtime', 'desc')\n\t\t\t/**\n\t\t\t * Override crumb making to add \"Deleted Files\" entry\n\t\t\t * and convert files with \".d\" extensions to a more\n\t\t\t * user friendly name.\n\t\t\t */\n\t\t\t\tthis.breadcrumb._makeCrumbs = function() {\n\t\t\t\t\tvar parts = OCA.Files.BreadCrumb.prototype._makeCrumbs.apply(this, [...arguments, 'icon-delete no-hover'])\n\t\t\t\t\tfor (var i = 1; i < parts.length; i++) {\n\t\t\t\t\t\tparts[i].name = getDeletedFileName(parts[i].name)\n\t\t\t\t\t}\n\t\t\t\t\treturn parts\n\t\t\t\t}\n\n\t\t\t\tOC.Plugins.attach('OCA.Trashbin.FileList', this)\n\t\t\t\treturn result\n\t\t\t},\n\n\t\t\t/**\n\t\t * Override to only return read permissions\n\t\t */\n\t\t\tgetDirectoryPermissions: function() {\n\t\t\t\treturn OC.PERMISSION_READ | OC.PERMISSION_DELETE\n\t\t\t},\n\n\t\t\t_setCurrentDir: function(targetDir) {\n\t\t\t\tOCA.Files.FileList.prototype._setCurrentDir.apply(this, arguments)\n\n\t\t\t\tvar baseDir = OC.basename(targetDir)\n\t\t\t\tif (baseDir !== '') {\n\t\t\t\t\tthis.setPageTitle(getDeletedFileName(baseDir))\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t_createRow: function() {\n\t\t\t// FIXME: MEGAHACK until we find a better solution\n\t\t\t\tvar tr = OCA.Files.FileList.prototype._createRow.apply(this, arguments)\n\t\t\t\ttr.find('td.filesize').remove()\n\t\t\t\treturn tr\n\t\t\t},\n\n\t\t\tgetAjaxUrl: function(action, params) {\n\t\t\t\tvar q = ''\n\t\t\t\tif (params) {\n\t\t\t\t\tq = '?' + OC.buildQueryString(params)\n\t\t\t\t}\n\t\t\t\treturn OC.filePath('files_trashbin', 'ajax', action + '.php') + q\n\t\t\t},\n\n\t\t\tsetupUploadEvents: function() {\n\t\t\t// override and do nothing\n\t\t\t},\n\n\t\t\tlinkTo: function(dir) {\n\t\t\t\treturn OC.linkTo('files', 'index.php') + '?view=trashbin&dir=' + encodeURIComponent(dir).replace(/%2F/g, '/')\n\t\t\t},\n\n\t\t\telementToFile: function($el) {\n\t\t\t\tvar fileInfo = OCA.Files.FileList.prototype.elementToFile($el)\n\t\t\t\tif (this.getCurrentDirectory() === '/') {\n\t\t\t\t\tfileInfo.displayName = getDeletedFileName(fileInfo.name)\n\t\t\t\t}\n\t\t\t\t// no size available\n\t\t\t\tdelete fileInfo.size\n\t\t\t\treturn fileInfo\n\t\t\t},\n\n\t\t\tupdateEmptyContent: function() {\n\t\t\t\tvar exists = this.$fileList.find('tr:first').exists()\n\t\t\t\tthis.$el.find('#emptycontent').toggleClass('hidden', exists)\n\t\t\t\tthis.$el.find('#filestable th').toggleClass('hidden', !exists)\n\t\t\t},\n\n\t\t\t_removeCallback: function(files) {\n\t\t\t\tvar $el\n\t\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\t\t$el = this.remove(OC.basename(files[i]), { updateSummary: false })\n\t\t\t\t\tthis.fileSummary.remove({ type: $el.attr('data-type'), size: $el.attr('data-size') })\n\t\t\t\t}\n\t\t\t\tthis.fileSummary.update()\n\t\t\t\tthis.updateEmptyContent()\n\t\t\t},\n\n\t\t\t_onClickRestoreSelected: function(event) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tvar self = this\n\t\t\t\tvar files = _.pluck(this.getSelectedFiles(), 'name')\n\t\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\t\tvar tr = this.findFileEl(files[i])\n\t\t\t\t\tthis.showFileBusyState(tr, true)\n\t\t\t\t}\n\n\t\t\t\tthis.fileMultiSelectMenu.toggleLoading('restore', true)\n\t\t\t\tvar restorePromises = files.map(function(file) {\n\t\t\t\t\treturn self.client.move(OC.joinPaths('trash', self.getCurrentDirectory(), file), OC.joinPaths('restore', file), true)\n\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tself._removeCallback([file])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t})\n\t\t\t\treturn Promise.all(restorePromises).then(\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tself.fileMultiSelectMenu.toggleLoading('restore', false)\n\t\t\t\t\t},\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while restoring files from trashbin'))\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t},\n\n\t\t\t_onClickDeleteSelected: function(event) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tvar self = this\n\t\t\t\tvar allFiles = this.$el.find('.select-all').is(':checked')\n\t\t\t\tvar files = _.pluck(this.getSelectedFiles(), 'name')\n\t\t\t\tfor (var i = 0; i < files.length; i++) {\n\t\t\t\t\tvar tr = this.findFileEl(files[i])\n\t\t\t\t\tthis.showFileBusyState(tr, true)\n\t\t\t\t}\n\n\t\t\t\tif (allFiles) {\n\t\t\t\t\treturn this.client.remove(OC.joinPaths('trash', this.getCurrentDirectory()))\n\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tself.hideMask()\n\t\t\t\t\t\t\t\tself.setFiles([])\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while emptying trashbin'))\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t} else {\n\t\t\t\t\tthis.fileMultiSelectMenu.toggleLoading('delete', true)\n\t\t\t\t\tvar deletePromises = files.map(function(file) {\n\t\t\t\t\t\treturn self.client.remove(OC.joinPaths('trash', self.getCurrentDirectory(), file))\n\t\t\t\t\t\t\t.then(\n\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\tself._removeCallback([file])\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t})\n\t\t\t\t\treturn Promise.all(deletePromises).then(\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tself.fileMultiSelectMenu.toggleLoading('delete', false)\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\tOC.Notification.show(t('files_trashbin', 'Error while removing files from trashbin'))\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\t_onClickFile: function(event) {\n\t\t\t\tvar mime = $(this).parent().parent().data('mime')\n\t\t\t\tif (mime !== 'httpd/unix-directory') {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t}\n\t\t\t\treturn OCA.Files.FileList.prototype._onClickFile.apply(this, arguments)\n\t\t\t},\n\n\t\t\tgeneratePreviewUrl: function(urlSpec) {\n\t\t\t\treturn OC.generateUrl('/apps/files_trashbin/preview?') + $.param(urlSpec)\n\t\t\t},\n\n\t\t\tgetDownloadUrl: function() {\n\t\t\t// no downloads\n\t\t\t\treturn '#'\n\t\t\t},\n\n\t\t\tupdateStorageStatistics: function() {\n\t\t\t// no op because the trashbin doesn't have\n\t\t\t// storage info like free space / used space\n\t\t\t},\n\n\t\t\tisSelectedDeletable: function() {\n\t\t\t\treturn true\n\t\t\t},\n\n\t\t\t/**\n\t\t * Returns list of webdav properties to request\n\t\t */\n\t\t\t_getWebdavProperties: function() {\n\t\t\t\treturn [FILENAME_PROP, DELETION_TIME_PROP, TRASHBIN_ORIGINAL_LOCATION, TRASHBIN_TITLE].concat(this.filesClient.getPropfindProperties())\n\t\t\t},\n\n\t\t\t/**\n\t\t * Reloads the file list using ajax call\n\t\t *\n\t\t * @returns ajax call object\n\t\t */\n\t\t\treload: function() {\n\t\t\t\tthis._selectedFiles = {}\n\t\t\t\tthis._selectionSummary.clear()\n\t\t\t\tthis.$el.find('.select-all').prop('checked', false)\n\t\t\t\tthis.showMask()\n\t\t\t\tif (this._reloadCall) {\n\t\t\t\t\tthis._reloadCall.abort()\n\t\t\t\t}\n\t\t\t\tthis._reloadCall = this.client.getFolderContents(\n\t\t\t\t\t'trash/' + this.getCurrentDirectory(), {\n\t\t\t\t\t\tincludeParent: false,\n\t\t\t\t\t\tproperties: this._getWebdavProperties()\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\tvar callBack = this.reloadCallback.bind(this)\n\t\t\t\treturn this._reloadCall.then(callBack, callBack)\n\t\t\t},\n\t\t\treloadCallback: function(status, result) {\n\t\t\t\tdelete this._reloadCall\n\t\t\t\tthis.hideMask()\n\n\t\t\t\tif (status === 401) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Firewall Blocked request?\n\t\t\t\tif (status === 403) {\n\t\t\t\t// Go home\n\t\t\t\t\tthis.changeDirectory('/')\n\t\t\t\t\tOC.Notification.show(t('files', 'This operation is forbidden'))\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t// Did share service die or something else fail?\n\t\t\t\tif (status === 500) {\n\t\t\t\t// Go home\n\t\t\t\t\tthis.changeDirectory('/')\n\t\t\t\t\tOC.Notification.show(t('files', 'This directory is unavailable, please check the logs or contact the administrator'))\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\tif (status === 404) {\n\t\t\t\t// go back home\n\t\t\t\t\tthis.changeDirectory('/')\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t\t// aborted ?\n\t\t\t\tif (status === 0) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tthis.setFiles(result)\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t})\n\n\tOCA.Trashbin.FileList = FileList\n})()\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./trash.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"e1044e6c\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name,#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name span.nametext,#app-content-trashbin tbody tr[data-type=\\\"file\\\"] td a.name span.nametext span{cursor:default}#app-content-trashbin .summary :last-child{padding:0}#app-content-trashbin #filestable .summary .filesize{display:none}\\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 * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n"],"sourceRoot":""} \ No newline at end of file
diff --git a/apps/files_trashbin/src/filelist.js b/apps/files_trashbin/src/filelist.js
index 60b44ea7541..d499c108711 100644
--- a/apps/files_trashbin/src/filelist.js
+++ b/apps/files_trashbin/src/filelist.js
@@ -78,7 +78,7 @@
* user friendly name.
*/
this.breadcrumb._makeCrumbs = function() {
- var parts = OCA.Files.BreadCrumb.prototype._makeCrumbs.apply(this, arguments)
+ var parts = OCA.Files.BreadCrumb.prototype._makeCrumbs.apply(this, [...arguments, 'icon-delete no-hover'])
for (var i = 1; i < parts.length; i++) {
parts[i].name = getDeletedFileName(parts[i].name)
}