]> source.dussan.org Git - nextcloud-server.git/commitdiff
Improve the share link password error feedback with a red border 15127/head
authorChristoph Wurst <christoph@winzerhof-wurst.at>
Tue, 16 Apr 2019 08:12:25 +0000 (10:12 +0200)
committerBackportbot <backportbot-noreply@rullzer.com>
Tue, 16 Apr 2019 11:54:04 +0000 (11:54 +0000)
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
apps/files_sharing/js/dist/additionalScripts.js
apps/files_sharing/js/dist/additionalScripts.js.map
apps/files_sharing/src/style/sharetabview.scss
core/js/dist/share_backend.js
core/js/dist/share_backend.js.map
core/js/sharedialoglinkshareview.js

index 27139c9e866607c16758f8041bf12d4f97c06740..984b3324ef8aaa8a3af0148ff566d29ea618f49d 100644 (file)
@@ -20,5 +20,5 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *
  */
-!function(){"use strict";var e=OC.Backbone.View.extend({tagName:"span",events:{click:"_onClick"},_dirInfo:void 0,_shareTab:void 0,initialize:function(e){this._shareTab=e.shareTab},render:function(e){if(this._dirInfo=e.dirInfo||null,null===this._dirInfo||"/"===this._dirInfo.path&&""===this._dirInfo.name)this.$el.removeClass("shared icon-public icon-shared"),this.$el.hide();else{var n=e.dirInfo&&e.dirInfo.shareTypes&&e.dirInfo.shareTypes.length>0;this.$el.removeClass("shared icon-public icon-shared"),n?(this.$el.addClass("shared"),-1!==e.dirInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK)?this.$el.addClass("icon-public"):this.$el.addClass("icon-shared")):this.$el.addClass("icon-shared"),this.$el.show(),this.delegateEvents()}return this},_onClick:function(e){e.preventDefault();var n=new OCA.Files.FileInfoModel(this._dirInfo),t=this;n.on("change",function(){t.render({dirInfo:t._dirInfo})}),this._shareTab.on("sharesChanged",function(e){for(var n=[],i=e.getSharesWithCurrentItem(),r=0;r<i.length;r++)-1===n.indexOf(i[r].share_type)&&n.push(i[r].share_type);e.hasLinkShares()&&n.push(OC.Share.SHARE_TYPE_LINK),t._dirInfo.shareTypes=n,t.render({dirInfo:t._dirInfo})}),OCA.Files.App.fileList.showDetailsView(n,"shareTabView")}});OCA.Sharing.ShareBreadCrumbView=e}()},function(e,n,t){var i=t(8);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,t(2).default)("03f26936",i,!0,{})},function(e,n,t){(e.exports=t(1)(!1)).push([e.i,".app-files .shareTabView {\n  min-height: 100px; }\n\n.share-autocomplete-item {\n  display: flex; }\n  .share-autocomplete-item.merged {\n    margin-left: 32px; }\n  .share-autocomplete-item .autocomplete-item-text {\n    margin-left: 10px;\n    margin-right: 10px;\n    white-space: nowrap;\n    text-overflow: ellipsis;\n    overflow: hidden;\n    line-height: 32px;\n    vertical-align: middle;\n    flex-grow: 1; }\n    .share-autocomplete-item .autocomplete-item-text .ui-state-highlight {\n      border: none;\n      margin: 0; }\n  .share-autocomplete-item.with-description .autocomplete-item-text {\n    line-height: 100%; }\n  .share-autocomplete-item .autocomplete-item-details {\n    display: block;\n    line-height: 130%;\n    font-size: 90%;\n    opacity: 0.7; }\n  .share-autocomplete-item .icon {\n    opacity: .7;\n    margin-right: 7px; }\n  .share-autocomplete-item .icon.search-globally {\n    width: 32px;\n    height: 32px;\n    margin-right: 0; }\n\n.shareTabView .oneline {\n  white-space: nowrap;\n  position: relative; }\n\n.shareTabView .shareWithLoading {\n  padding-left: 10px;\n  right: 35px;\n  top: 3px; }\n\n.shareTabView .shareWithConfirm {\n  position: absolute;\n  right: 2px;\n  top: 6px;\n  padding: 14px;\n  opacity: 0.5; }\n\n.shareTabView .shareWithField:focus ~ .shareWithConfirm {\n  opacity: 1; }\n\n.shareTabView .linkMore {\n  position: absolute;\n  right: -7px;\n  top: -4px;\n  padding: 14px; }\n\n.shareTabView .popovermenu {\n  /* Border above last entry '+ Add another share' to separate it from current link settings */ }\n  .shareTabView .popovermenu .linkPassMenu .share-pass-submit {\n    width: auto !important; }\n  .shareTabView .popovermenu .linkPassMenu .icon-loading-small {\n    background-color: var(--color-main-background);\n    position: absolute;\n    right: 8px;\n    margin: 3px;\n    padding: 10px;\n    width: 32px;\n    height: 32px;\n    z-index: 10; }\n  .shareTabView .popovermenu .datepicker {\n    margin-left: 35px; }\n  .shareTabView .popovermenu .share-add input.share-note-delete {\n    border: none;\n    background-color: transparent;\n    width: 44px !important;\n    padding: 0;\n    flex: 0 0 44px;\n    margin-left: auto; }\n    .shareTabView .popovermenu .share-add input.share-note-delete.hidden {\n      display: none; }\n  .shareTabView .popovermenu .share-note-form span.icon-note {\n    position: relative; }\n  .shareTabView .popovermenu .share-note-form textarea.share-note {\n    margin: 0;\n    width: 200px;\n    min-height: 70px;\n    resize: none; }\n    .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit {\n      position: absolute;\n      width: 44px !important;\n      height: 44px;\n      bottom: 0px;\n      right: 10px;\n      margin: 0;\n      background-color: transparent;\n      border: none;\n      opacity: .7; }\n      .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:hover, .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:focus, .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:active {\n        opacity: 1; }\n  .shareTabView .popovermenu .share-note-form.share-note-link {\n    margin-bottom: 10px; }\n  .shareTabView .popovermenu .new-share {\n    border-top: 1px solid var(--color-border); }\n\n.shareTabView .linkPass .icon-loading-small {\n  margin-right: 0px; }\n\n.shareTabView .icon {\n  background-size: 16px 16px; }\n\n.shareTabView .shareWithList .icon-loading-small:not(.hidden) + span,\n.shareTabView .linkShareView .icon-loading-small:not(.hidden) + input + label:before {\n  /* Hide if loader is visible */\n  display: none !important; }\n\n.shareTabView input[type='checkbox'] {\n  margin: 0 3px 0 8px;\n  vertical-align: middle; }\n\n.shareTabView input[type='text'].shareWithField, .shareTabView input[type='text'].emailField {\n  width: 100%;\n  box-sizing: border-box;\n  padding-right: 32px;\n  text-overflow: ellipsis; }\n\n.shareTabView input[type='text'].linkText .shareTabView input[type='password'].linkPassText, .shareTabView input[type='password'].passwordField {\n  width: 180px !important; }\n\n.shareTabView form {\n  font-size: 100%;\n  margin-left: 0;\n  margin-right: 0; }\n\n.shareTabView .share-note {\n  border-radius: var(--border-radius);\n  margin-bottom: 10px;\n  margin-left: 37px; }\n\n.shareWithList {\n  list-style-type: none;\n  display: flex;\n  flex-direction: column; }\n  .shareWithList > li {\n    height: 44px;\n    white-space: normal;\n    display: inline-flex;\n    align-items: center;\n    position: relative; }\n    .shareWithList > li .avatar {\n      width: 32px;\n      height: 32px;\n      background-color: var(--color-primary); }\n  .shareWithList .unshare img {\n    vertical-align: text-bottom;\n    /* properly align icons */ }\n  .shareWithList .sharingOptionsGroup {\n    margin-left: auto;\n    display: flex;\n    align-items: center;\n    white-space: nowrap; }\n    .shareWithList .sharingOptionsGroup > .icon:not(.hidden),\n    .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden) {\n      padding: 14px;\n      height: 44px;\n      width: 44px;\n      opacity: .5;\n      display: block;\n      cursor: pointer; }\n      .shareWithList .sharingOptionsGroup > .icon:not(.hidden):hover, .shareWithList .sharingOptionsGroup > .icon:not(.hidden):focus, .shareWithList .sharingOptionsGroup > .icon:not(.hidden):active,\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):hover,\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):focus,\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):active {\n        opacity: .7; }\n    .shareWithList .sharingOptionsGroup > .share-menu {\n      position: relative;\n      display: block; }\n  .shareWithList .username {\n    padding: 0 8px;\n    overflow: hidden;\n    white-space: nowrap;\n    text-overflow: ellipsis; }\n\n.ui-autocomplete {\n  /* limit dropdown height to 6 1/2 entries */\n  max-height: calc(36px * 6.5);\n  overflow-y: auto;\n  overflow-x: hidden;\n  z-index: 1550 !important; }\n\n.notCreatable {\n  padding-left: 12px;\n  padding-top: 12px;\n  color: var(--color-text-lighter); }\n\n.contactsmenu-popover {\n  left: -6px;\n  right: auto;\n  padding: 3px 6px;\n  top: 100%;\n  margin-top: 0; }\n  .contactsmenu-popover li.hidden {\n    display: none !important; }\n  .contactsmenu-popover:after {\n    left: 8px;\n    right: auto; }\n\n.reshare,\n#link label,\n#expiration label {\n  display: inline-flex;\n  align-items: center; }\n  .reshare .avatar,\n  #link label .avatar,\n  #expiration label .avatar {\n    margin-right: 5px; }\n\n.resharerInfoView.subView {\n  position: relative; }\n",""])},function(e,n,t){var i=t(10);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,t(2).default)("27ced9ca",i,!0,{})},function(e,n,t){(e.exports=t(1)(!1)).push([e.i,"/**\n * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n *\n */\ndiv.crumb span.icon-shared,\ndiv.crumb span.icon-public {\n  display: inline-block;\n  cursor: pointer;\n  opacity: 0.2;\n  margin-right: 6px; }\n\ndiv.crumb span.icon-shared.shared,\ndiv.crumb span.icon-public.shared {\n  opacity: 0.7; }\n",""])}]);
+!function(){"use strict";var e=OC.Backbone.View.extend({tagName:"span",events:{click:"_onClick"},_dirInfo:void 0,_shareTab:void 0,initialize:function(e){this._shareTab=e.shareTab},render:function(e){if(this._dirInfo=e.dirInfo||null,null===this._dirInfo||"/"===this._dirInfo.path&&""===this._dirInfo.name)this.$el.removeClass("shared icon-public icon-shared"),this.$el.hide();else{var n=e.dirInfo&&e.dirInfo.shareTypes&&e.dirInfo.shareTypes.length>0;this.$el.removeClass("shared icon-public icon-shared"),n?(this.$el.addClass("shared"),-1!==e.dirInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK)?this.$el.addClass("icon-public"):this.$el.addClass("icon-shared")):this.$el.addClass("icon-shared"),this.$el.show(),this.delegateEvents()}return this},_onClick:function(e){e.preventDefault();var n=new OCA.Files.FileInfoModel(this._dirInfo),t=this;n.on("change",function(){t.render({dirInfo:t._dirInfo})}),this._shareTab.on("sharesChanged",function(e){for(var n=[],i=e.getSharesWithCurrentItem(),r=0;r<i.length;r++)-1===n.indexOf(i[r].share_type)&&n.push(i[r].share_type);e.hasLinkShares()&&n.push(OC.Share.SHARE_TYPE_LINK),t._dirInfo.shareTypes=n,t.render({dirInfo:t._dirInfo})}),OCA.Files.App.fileList.showDetailsView(n,"shareTabView")}});OCA.Sharing.ShareBreadCrumbView=e}()},function(e,n,t){var i=t(8);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,t(2).default)("03f26936",i,!0,{})},function(e,n,t){(e.exports=t(1)(!1)).push([e.i,".app-files .shareTabView {\n  min-height: 100px; }\n\n.share-autocomplete-item {\n  display: flex; }\n  .share-autocomplete-item.merged {\n    margin-left: 32px; }\n  .share-autocomplete-item .autocomplete-item-text {\n    margin-left: 10px;\n    margin-right: 10px;\n    white-space: nowrap;\n    text-overflow: ellipsis;\n    overflow: hidden;\n    line-height: 32px;\n    vertical-align: middle;\n    flex-grow: 1; }\n    .share-autocomplete-item .autocomplete-item-text .ui-state-highlight {\n      border: none;\n      margin: 0; }\n  .share-autocomplete-item.with-description .autocomplete-item-text {\n    line-height: 100%; }\n  .share-autocomplete-item .autocomplete-item-details {\n    display: block;\n    line-height: 130%;\n    font-size: 90%;\n    opacity: 0.7; }\n  .share-autocomplete-item .icon {\n    opacity: .7;\n    margin-right: 7px; }\n  .share-autocomplete-item .icon.search-globally {\n    width: 32px;\n    height: 32px;\n    margin-right: 0; }\n\n.shareTabView .oneline {\n  white-space: nowrap;\n  position: relative; }\n\n.shareTabView .shareWithLoading {\n  padding-left: 10px;\n  right: 35px;\n  top: 3px; }\n\n.shareTabView .shareWithConfirm {\n  position: absolute;\n  right: 2px;\n  top: 6px;\n  padding: 14px;\n  opacity: 0.5; }\n\n.shareTabView .shareWithField:focus ~ .shareWithConfirm {\n  opacity: 1; }\n\n.shareTabView .linkMore {\n  position: absolute;\n  right: -7px;\n  top: -4px;\n  padding: 14px; }\n\n.shareTabView .popovermenu {\n  /* Border above last entry '+ Add another share' to separate it from current link settings */ }\n  .shareTabView .popovermenu .linkPassMenu input.error {\n    border-color: var(--color-error) !important; }\n    .shareTabView .popovermenu .linkPassMenu input.error[type=\"submit\"] {\n      border-left: none; }\n  .shareTabView .popovermenu .linkPassMenu .share-pass-submit {\n    width: auto !important; }\n  .shareTabView .popovermenu .linkPassMenu .icon-loading-small {\n    background-color: var(--color-main-background);\n    position: absolute;\n    right: 8px;\n    margin: 3px;\n    padding: 10px;\n    width: 32px;\n    height: 32px;\n    z-index: 10; }\n  .shareTabView .popovermenu .datepicker {\n    margin-left: 35px; }\n  .shareTabView .popovermenu .share-add input.share-note-delete {\n    border: none;\n    background-color: transparent;\n    width: 44px !important;\n    padding: 0;\n    flex: 0 0 44px;\n    margin-left: auto; }\n    .shareTabView .popovermenu .share-add input.share-note-delete.hidden {\n      display: none; }\n  .shareTabView .popovermenu .share-note-form span.icon-note {\n    position: relative; }\n  .shareTabView .popovermenu .share-note-form textarea.share-note {\n    margin: 0;\n    width: 200px;\n    min-height: 70px;\n    resize: none; }\n    .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit {\n      position: absolute;\n      width: 44px !important;\n      height: 44px;\n      bottom: 0px;\n      right: 10px;\n      margin: 0;\n      background-color: transparent;\n      border: none;\n      opacity: .7; }\n      .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:hover, .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:focus, .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:active {\n        opacity: 1; }\n  .shareTabView .popovermenu .share-note-form.share-note-link {\n    margin-bottom: 10px; }\n  .shareTabView .popovermenu .new-share {\n    border-top: 1px solid var(--color-border); }\n\n.shareTabView .linkPass .icon-loading-small {\n  margin-right: 0px; }\n\n.shareTabView .icon {\n  background-size: 16px 16px; }\n\n.shareTabView .shareWithList .icon-loading-small:not(.hidden) + span,\n.shareTabView .linkShareView .icon-loading-small:not(.hidden) + input + label:before {\n  /* Hide if loader is visible */\n  display: none !important; }\n\n.shareTabView input[type='checkbox'] {\n  margin: 0 3px 0 8px;\n  vertical-align: middle; }\n\n.shareTabView input[type='text'].shareWithField, .shareTabView input[type='text'].emailField {\n  width: 100%;\n  box-sizing: border-box;\n  padding-right: 32px;\n  text-overflow: ellipsis; }\n\n.shareTabView input[type='text'].linkText .shareTabView input[type='password'].linkPassText, .shareTabView input[type='password'].passwordField {\n  width: 180px !important; }\n\n.shareTabView form {\n  font-size: 100%;\n  margin-left: 0;\n  margin-right: 0; }\n\n.shareTabView .share-note {\n  border-radius: var(--border-radius);\n  margin-bottom: 10px;\n  margin-left: 37px; }\n\n.shareWithList {\n  list-style-type: none;\n  display: flex;\n  flex-direction: column; }\n  .shareWithList > li {\n    height: 44px;\n    white-space: normal;\n    display: inline-flex;\n    align-items: center;\n    position: relative; }\n    .shareWithList > li .avatar {\n      width: 32px;\n      height: 32px;\n      background-color: var(--color-primary); }\n  .shareWithList .unshare img {\n    vertical-align: text-bottom;\n    /* properly align icons */ }\n  .shareWithList .sharingOptionsGroup {\n    margin-left: auto;\n    display: flex;\n    align-items: center;\n    white-space: nowrap; }\n    .shareWithList .sharingOptionsGroup > .icon:not(.hidden),\n    .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden) {\n      padding: 14px;\n      height: 44px;\n      width: 44px;\n      opacity: .5;\n      display: block;\n      cursor: pointer; }\n      .shareWithList .sharingOptionsGroup > .icon:not(.hidden):hover, .shareWithList .sharingOptionsGroup > .icon:not(.hidden):focus, .shareWithList .sharingOptionsGroup > .icon:not(.hidden):active,\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):hover,\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):focus,\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):active {\n        opacity: .7; }\n    .shareWithList .sharingOptionsGroup > .share-menu {\n      position: relative;\n      display: block; }\n  .shareWithList .username {\n    padding: 0 8px;\n    overflow: hidden;\n    white-space: nowrap;\n    text-overflow: ellipsis; }\n\n.ui-autocomplete {\n  /* limit dropdown height to 6 1/2 entries */\n  max-height: calc(36px * 6.5);\n  overflow-y: auto;\n  overflow-x: hidden;\n  z-index: 1550 !important; }\n\n.notCreatable {\n  padding-left: 12px;\n  padding-top: 12px;\n  color: var(--color-text-lighter); }\n\n.contactsmenu-popover {\n  left: -6px;\n  right: auto;\n  padding: 3px 6px;\n  top: 100%;\n  margin-top: 0; }\n  .contactsmenu-popover li.hidden {\n    display: none !important; }\n  .contactsmenu-popover:after {\n    left: 8px;\n    right: auto; }\n\n.reshare,\n#link label,\n#expiration label {\n  display: inline-flex;\n  align-items: center; }\n  .reshare .avatar,\n  #link label .avatar,\n  #expiration label .avatar {\n    margin-right: 5px; }\n\n.resharerInfoView.subView {\n  position: relative; }\n",""])},function(e,n,t){var i=t(10);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,t(2).default)("27ced9ca",i,!0,{})},function(e,n,t){(e.exports=t(1)(!1)).push([e.i,"/**\n * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n *\n */\ndiv.crumb span.icon-shared,\ndiv.crumb span.icon-public {\n  display: inline-block;\n  cursor: pointer;\n  opacity: 0.2;\n  margin-right: 6px; }\n\ndiv.crumb span.icon-shared.shared,\ndiv.crumb span.icon-public.shared {\n  opacity: 0.7; }\n",""])}]);
 //# sourceMappingURL=additionalScripts.js.map
\ No newline at end of file
index 6690589aaba77ef6694cb5583231ce9ecc172c44..19bb65160c49310d119a109abacaca5c343e2f21 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./apps/files_sharing/src/collaborationresourceshandler.js","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","webpack:///./apps/files_sharing/src/additionalScripts.js","webpack:///./apps/files_sharing/src/share.js","webpack:///./apps/files_sharing/src/sharetabview.js","webpack:///./apps/files_sharing/src/sharebreadcrumbview.js","webpack:///./apps/files_sharing/src/style/sharetabview.scss?669d","webpack:///./apps/files_sharing/src/style/sharetabview.scss","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss?20f5","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","installedModules","0","1","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","error","Error","request","undefined","setTimeout","head","appendChild","all","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","__webpack_public_path__","OC","linkTo","__webpack_nonce__","btoa","requestToken","OCP","Collaboration","registerType","action","dialogs","filepicker","f","Files","getClient","getFileInfo","then","status","fileInfo","id","typeString","typeIconClass","useSourceMap","list","toString","this","map","item","content","cssMapping","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","concat","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","listToStyles","parentId","styles","newStyles","part","css","media","parts","__webpack_exports__","addStylesClient","hasDocument","DEBUG","stylesInDom","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","options","ssrIdKey","isOldIE","navigator","test","userAgent","toLowerCase","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","obj","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","ssrId","styleSheet","cssText","firstChild","createTextNode","newObj","textStore","replaceText","index","replacement","filter","Boolean","cssNode","childNodes","insertBefore","OCA","Sharing","_","extend","Client","PROPERTY_SHARE_TYPES","NS_OWNCLOUD","PROPERTY_OWNER_ID","PROPERTY_OWNER_DISPLAY_NAME","Util","attach","fileList","Share","fileActions","oldCreateRow","_createRow","fileData","tr","apply","arguments","sharePermissions","getSharePermissions","permissions","actions","Comment","Details","Goto","attr","shareOwner","shareOwnerId","mountType","PERMISSION_UPDATE","recipientData","isEmpty","shareTypes","oldElementToFile","elementToFile","$el","split","expirationTimestamp","parseInt","shares","expiration","oldGetWebdavProperties","_getWebdavProperties","props","filesClient","addFileInfoParser","response","propStat","properties","permissionsProp","PROPERTY_PERMISSIONS","indexOf","shareTypesProp","chain","xmlvalue","namespaceURI","nodeName","textContent","text","on","ev","$files","each","file","$tr","$","hasLink","hasShares","shareType","SHARE_TYPE_LINK","SHARE_TYPE_EMAIL","SHARE_TYPE_USER","SHARE_TYPE_GROUP","SHARE_TYPE_REMOTE","SHARE_TYPE_CIRCLE","SHARE_TYPE_ROOM","_updateFileActionIcon","sharesLoaded","registerAction","displayName","context","$file","altText","mime","order","PERMISSION_ALL","iconClass","fileName","icon","generateUrl","FileActions","TYPE_INLINE","actionHandler","isNaN","showDetailsView","render","actionSpec","isDefault","PERMISSION_SHARE","_defaultRenderAction","shareTab","ShareTabView","shareModel","fileInfoModel","findFileEl","hasLinkShares","forEach","share","share_type","_updateFileListDataAttributes","hasUserShares","markFileAsShared","set","getShareTypes","registerTabView","breadCrumbSharingDetailView","ShareBreadCrumbView","registerBreadCrumbDetailView","pluck","mapObject","shareWith","share_with","shareWithDisplayName","share_with_displayname","removeAttr","Plugins","register","DetailTabView","className","initialize","template","params","getLabel","getIcon","_this","self","_dialog","model","off","html","isUndefined","attributes","itemType","isDirectory","itemSource","possiblePermissions","configModel","ShareConfigModel","ShareItemModel","ShareDialogView","find","append","fetch","trigger","Resources","vm","Vue","el","h","View","toJSON","empty","BreadCrumbView","Backbone","tagName","events","click","_dirInfo","_shareTab","dirInfo","path","removeClass","hide","isShared","addClass","show","delegateEvents","_onClick","preventDefault","FileInfoModel","getSharesWithCurrentItem","App","locals","add","default"],"mappings":"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","file":"additionalScripts.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0,\n \t\t1: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"files_sharing.\" + chunkId + \".js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/');\n__webpack_nonce__ = btoa(OC.requestToken);\n\nwindow.OCP.Collaboration.registerType('file', {\n\taction: () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tOC.dialogs.filepicker(t('files_sharing', 'Link to a file'), function (f) {\n\t\t\t\tconst client = OC.Files.getClient();\n\t\t\t\tclient.getFileInfo(f).then((status, fileInfo) => {\n\t\t\t\t\tresolve(fileInfo.id);\n\t\t\t\t}, () => {\n\t\t\t\t\treject();\n\t\t\t\t});\n\t\t\t}, false);\n\t\t});\n\t},\n\ttypeString: t('files_sharing', 'Link to a file'),\n\ttypeIconClass: 'icon-files-dark'\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\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 ' + item[2] + '{' + content + '}';\n      } else {\n        return content;\n      }\n    }).join('');\n  }; // import a list of modules into the list\n\n\n  list.i = function (modules, mediaQuery) {\n    if (typeof modules === 'string') {\n      modules = [[null, modules, '']];\n    }\n\n    var alreadyImportedModules = {};\n\n    for (var i = 0; i < this.length; i++) {\n      var id = this[i][0];\n\n      if (id != null) {\n        alreadyImportedModules[id] = true;\n      }\n    }\n\n    for (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] = '(' + item[2] + ') and (' + 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] || '';\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=' + cssMapping.sourceRoot + 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,' + base64;\n  return '/*# ' + 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","__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/');\n__webpack_nonce__ = btoa(OC.requestToken);\n\nimport './share'\nimport './sharetabview'\nimport './sharebreadcrumbview'\n\nimport './style/sharetabview.scss'\nimport './style/sharebreadcrumb.scss'\n\nimport './collaborationresourceshandler.js'\n\nwindow.OCA.Sharing = OCA.Sharing;\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(function() {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_SHARE_TYPES:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}share-types',\n\t\tPROPERTY_OWNER_ID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}owner-id',\n\t\tPROPERTY_OWNER_DISPLAY_NAME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}owner-display-name'\n\t});\n\n\tif (!OCA.Sharing) {\n\t\tOCA.Sharing = {};\n\t}\n\t/**\n\t * @namespace\n\t */\n\tOCA.Sharing.Util = {\n\t\t/**\n\t\t * Initialize the sharing plugin.\n\t\t *\n\t\t * Registers the \"Share\" file action and adds additional\n\t\t * DOM attributes for the sharing file info.\n\t\t *\n\t\t * @param {OCA.Files.FileList} fileList file list to be extended\n\t\t */\n\t\tattach: function(fileList) {\n\t\t\t// core sharing is disabled/not loaded\n\t\t\tif (!OC.Share) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (fileList.id === 'trashbin' || fileList.id === 'files.public') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fileActions = fileList.fileActions;\n\t\t\tvar oldCreateRow = fileList._createRow;\n\t\t\tfileList._createRow = function(fileData) {\n\n\t\t\t\tvar tr = oldCreateRow.apply(this, arguments);\n\t\t\t\tvar sharePermissions = OCA.Sharing.Util.getSharePermissions(fileData);\n\t\t\t\t\n\t\t\t\tif (fileData.permissions === 0) {\n\t\t\t\t\t// no permission, disabling sidebar\n\t\t\t\t\tdelete fileActions.actions.all.Comment;\n\t\t\t\t\tdelete fileActions.actions.all.Details;\n\t\t\t\t\tdelete fileActions.actions.all.Goto;\n\t\t\t\t}\n\t\t\t\ttr.attr('data-share-permissions', sharePermissions);\n\t\t\t\tif (fileData.shareOwner) {\n\t\t\t\t\ttr.attr('data-share-owner', fileData.shareOwner);\n\t\t\t\t\ttr.attr('data-share-owner-id', fileData.shareOwnerId);\n\t\t\t\t\t// user should always be able to rename a mount point\n\t\t\t\t\tif (fileData.mountType === 'shared-root') {\n\t\t\t\t\t\ttr.attr('data-permissions', fileData.permissions | OC.PERMISSION_UPDATE);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (fileData.recipientData && !_.isEmpty(fileData.recipientData)) {\n\t\t\t\t\ttr.attr('data-share-recipient-data', JSON.stringify(fileData.recipientData));\n\t\t\t\t}\n\t\t\t\tif (fileData.shareTypes) {\n\t\t\t\t\ttr.attr('data-share-types', fileData.shareTypes.join(','));\n\t\t\t\t}\n\t\t\t\treturn tr;\n\t\t\t};\n\n\t\t\tvar oldElementToFile = fileList.elementToFile;\n\t\t\tfileList.elementToFile = function($el) {\n\t\t\t\tvar fileInfo = oldElementToFile.apply(this, arguments);\n\t\t\t\tfileInfo.sharePermissions = $el.attr('data-share-permissions') || undefined;\n\t\t\t\tfileInfo.shareOwner = $el.attr('data-share-owner') || undefined;\n\t\t\t\tfileInfo.shareOwnerId = $el.attr('data-share-owner-id') || undefined;\n\n\t\t\t\tif( $el.attr('data-share-types')){\n\t\t\t\t\tfileInfo.shareTypes = $el.attr('data-share-types').split(',');\n\t\t\t\t}\n\n\t\t\t\tif( $el.attr('data-expiration')){\n\t\t\t\t\tvar expirationTimestamp = parseInt($el.attr('data-expiration'));\n\t\t\t\t\tfileInfo.shares = [];\n\t\t\t\t\tfileInfo.shares.push({expiration: expirationTimestamp});\n\t\t\t\t}\n\n\t\t\t\treturn fileInfo;\n\t\t\t};\n\n\t\t\tvar oldGetWebdavProperties = fileList._getWebdavProperties;\n\t\t\tfileList._getWebdavProperties = function() {\n\t\t\t\tvar props = oldGetWebdavProperties.apply(this, arguments);\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_OWNER_ID);\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME);\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_SHARE_TYPES);\n\t\t\t\treturn props;\n\t\t\t};\n\n\t\t\tfileList.filesClient.addFileInfoParser(function(response) {\n\t\t\t\tvar data = {};\n\t\t\t\tvar props = response.propStat[0].properties;\n\t\t\t\tvar permissionsProp = props[OC.Files.Client.PROPERTY_PERMISSIONS];\n\n\t\t\t\tif (permissionsProp && permissionsProp.indexOf('S') >= 0) {\n\t\t\t\t\tdata.shareOwner = props[OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME];\n\t\t\t\t\tdata.shareOwnerId = props[OC.Files.Client.PROPERTY_OWNER_ID];\n\t\t\t\t}\n\n\t\t\t\tvar shareTypesProp = props[OC.Files.Client.PROPERTY_SHARE_TYPES];\n\t\t\t\tif (shareTypesProp) {\n\t\t\t\t\tdata.shareTypes = _.chain(shareTypesProp).filter(function(xmlvalue) {\n\t\t\t\t\t\treturn (xmlvalue.namespaceURI === OC.Files.Client.NS_OWNCLOUD && xmlvalue.nodeName.split(':')[1] === 'share-type');\n\t\t\t\t\t}).map(function(xmlvalue) {\n\t\t\t\t\t\treturn parseInt(xmlvalue.textContent || xmlvalue.text, 10);\n\t\t\t\t\t}).value();\n\t\t\t\t}\n\n\t\t\t\treturn data;\n\t\t\t});\n\n\t\t\t// use delegate to catch the case with multiple file lists\n\t\t\tfileList.$el.on('fileActionsReady', function(ev){\n\t\t\t\tvar $files = ev.$files;\n\n\t\t\t\t_.each($files, function(file) {\n\t\t\t\t\tvar $tr = $(file);\n\t\t\t\t\tvar shareTypes = $tr.attr('data-share-types') || '';\n\t\t\t\t\tvar shareOwner = $tr.attr('data-share-owner');\n\t\t\t\t\tif (shareTypes || shareOwner) {\n\t\t\t\t\t\tvar hasLink = false;\n\t\t\t\t\t\tvar hasShares = false;\n\t\t\t\t\t\t_.each(shareTypes.split(',') || [], function(shareType) {\n\t\t\t\t\t\t\tshareType = parseInt(shareType, 10);\n\t\t\t\t\t\t\tif (shareType === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\t\t\thasLink = true;\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\t\t\t\t\thasLink = true;\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_USER) {\n\t\t\t\t\t\t\t\thasShares = true;\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\t\t\t\t\thasShares = true;\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\t\t\t\t\thasShares = true;\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\t\t\t\t\thasShares = true;\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\t\t\t\t\thasShares = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tOCA.Sharing.Util._updateFileActionIcon($tr, hasShares, hasLink);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\n\t\t\tfileList.$el.on('changeDirectory', function() {\n\t\t\t\tOCA.Sharing.sharesLoaded = false;\n\t\t\t});\n\n\t\t\tfileActions.registerAction({\n\t\t\t\tname: 'Share',\n\t\t\t\tdisplayName: function(context) {\n\t\t\t\t\tif (context && context.$file) {\n\t\t\t\t\t\tvar shareType = parseInt(context.$file.data('share-types'), 10)\n\t\t\t\t\t\tvar shareOwner = context.$file.data('share-owner-id')\n\t\t\t\t\t\tif (shareType >= 0 || shareOwner) {\n\t\t\t\t\t\t\treturn t('core', 'Shared')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn t('core', 'Share')\n\t\t\t\t},\n\t\t\t\taltText: t('core', 'Share'),\n\t\t\t\tmime: 'all',\n\t\t\t\torder: -150,\n\t\t\t\tpermissions: OC.PERMISSION_ALL,\n\t\t\t\ticonClass: function(fileName, context) {\n\t\t\t\t\tvar shareType = parseInt(context.$file.data('share-types'), 10)\n\t\t\t\t\tif (shareType === OC.Share.SHARE_TYPE_EMAIL\n\t\t\t\t\t\t|| shareType === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\treturn 'icon-public'\n\t\t\t\t\t}\n\t\t\t\t\treturn 'icon-shared'\n\t\t\t\t},\n\t\t\t\ticon: function(fileName, context) {\n\t\t\t\t\tvar shareOwner = context.$file.data('share-owner-id')\n\t\t\t\t\tif (shareOwner) {\n\t\t\t\t\t\treturn OC.generateUrl(`/avatar/${shareOwner}/32`)\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttype: OCA.Files.FileActions.TYPE_INLINE,\n\t\t\t\tactionHandler: function(fileName, context) {\n\t\t\t\t\t// do not open sidebar if permission is set and equal to 0\n\t\t\t\t\tvar permissions = parseInt(context.$file.data('share-permissions'), 10);\n\t\t\t\t\tif (isNaN(permissions) || permissions > 0) {\n\t\t\t\t\t\tfileList.showDetailsView(fileName, 'shareTabView');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\trender: function(actionSpec, isDefault, context) {\n\t\t\t\t\tvar permissions = parseInt(context.$file.data('permissions'), 10);\n\t\t\t\t\t// if no share permissions but share owner exists, still show the link\n\t\t\t\t\tif ((permissions & OC.PERMISSION_SHARE) !== 0 || context.$file.attr('data-share-owner')) {\n\t\t\t\t\t\treturn fileActions._defaultRenderAction.call(fileActions, actionSpec, isDefault, context);\n\t\t\t\t\t}\n\t\t\t\t\t// don't render anything\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar shareTab = new OCA.Sharing.ShareTabView('shareTabView', {order: -20});\n\t\t\t// detect changes and change the matching list entry\n\t\t\tshareTab.on('sharesChanged', function(shareModel) {\n\t\t\t\tvar fileInfoModel = shareModel.fileInfoModel;\n\t\t\t\tvar $tr = fileList.findFileEl(fileInfoModel.get('name'));\n\n\t\t\t\t// We count email shares as link share\n\t\t\t\tvar hasLinkShares = shareModel.hasLinkShares();\n\t\t\t\tshareModel.get('shares').forEach(function (share) {\n\t\t\t\t\tif (share.share_type === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\t\t\thasLinkShares = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tOCA.Sharing.Util._updateFileListDataAttributes(fileList, $tr, shareModel);\n\t\t\t\tif (!OCA.Sharing.Util._updateFileActionIcon($tr, shareModel.hasUserShares(), hasLinkShares)) {\n\t\t\t\t\t// remove icon, if applicable\n\t\t\t\t\tOC.Share.markFileAsShared($tr, false, false);\n\t\t\t\t}\n\n\t\t\t\t// FIXME: this is too convoluted. We need to get rid of the above updates\n\t\t\t\t// and only ever update the model and let the events take care of rerendering\n\t\t\t\tfileInfoModel.set({\n\t\t\t\t\tshareTypes: shareModel.getShareTypes(),\n\t\t\t\t\t// in case markFileAsShared decided to change the icon,\n\t\t\t\t\t// we need to modify the model\n\t\t\t\t\t// (FIXME: yes, this is hacky)\n\t\t\t\t\ticon: $tr.attr('data-icon')\n\t\t\t\t});\n\t\t\t});\n\t\t\tfileList.registerTabView(shareTab);\n\n\t\t\tvar breadCrumbSharingDetailView = new OCA.Sharing.ShareBreadCrumbView({shareTab: shareTab});\n\t\t\tfileList.registerBreadCrumbDetailView(breadCrumbSharingDetailView);\n\t\t},\n\n\t\t/**\n\t\t * Update file list data attributes\n\t\t */\n\t\t_updateFileListDataAttributes: function(fileList, $tr, shareModel) {\n\t\t\t// files app current cannot show recipients on load, so we don't update the\n\t\t\t// icon when changed for consistency\n\t\t\tif (fileList.id === 'files') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar recipients = _.pluck(shareModel.get('shares'), 'share_with_displayname');\n\t\t\t// note: we only update the data attribute because updateIcon()\n\t\t\tif (recipients.length) {\n\t\t\t\tvar recipientData = _.mapObject(shareModel.get('shares'), function (share) {\n\t\t\t\t\treturn {shareWith: share.share_with, shareWithDisplayName: share.share_with_displayname};\n\t\t\t\t});\n\t\t\t\t$tr.attr('data-share-recipient-data', JSON.stringify(recipientData));\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$tr.removeAttr('data-share-recipient-data');\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update the file action share icon for the given file\n\t\t *\n\t\t * @param $tr file element of the file to update\n\t\t * @param {boolean} hasUserShares true if a user share exists\n\t\t * @param {boolean} hasLinkShares true if a link share exists\n\t\t *\n\t\t * @return {boolean} true if the icon was set, false otherwise\n\t\t */\n\t\t_updateFileActionIcon: function($tr, hasUserShares, hasLinkShares) {\n\t\t\t// if the statuses are loaded already, use them for the icon\n\t\t\t// (needed when scrolling to the next page)\n\t\t\tif (hasUserShares || hasLinkShares || $tr.attr('data-share-recipient-data') || $tr.attr('data-share-owner')) {\n\t\t\t\tOC.Share.markFileAsShared($tr, true, hasLinkShares);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * @param {Array} fileData\n\t\t * @returns {String}\n\t\t */\n\t\tgetSharePermissions: function(fileData) {\n\t\t\treturn fileData.sharePermissions;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.Files.FileList', OCA.Sharing.Util);\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* @global Handlebars */\n\n(function() {\n\tvar TEMPLATE =\n\t\t'<div>' +\n\t\t'<div class=\"dialogContainer\"></div>' +\n\t\t'<div id=\"collaborationResources\"></div>' +\n\t\t'</div>';\n\n\t/**\n\t * @memberof OCA.Sharing\n\t */\n\tvar ShareTabView = OCA.Files.DetailTabView.extend(\n\t\t/** @lends OCA.Sharing.ShareTabView.prototype */ {\n\t\tid: 'shareTabView',\n\t\tclassName: 'tab shareTabView',\n\n\t\tinitialize: function(name, options) {\n\t\t\tOCA.Files.DetailTabView.prototype.initialize.call(this, name, options);\n\t\t\tOC.Plugins.attach('OCA.Sharing.ShareTabView', this);\n\t\t},\n\n\t\ttemplate: function(params) {\n\t\t\treturn \tTEMPLATE;\n\t\t},\n\n\t\tgetLabel: function() {\n\t\t\treturn t('files_sharing', 'Sharing');\n\t\t},\n\n\t\tgetIcon: function() {\n\t\t\treturn 'icon-shared';\n\t\t},\n\n\t\t/**\n\t\t * Renders this details view\n\t\t */\n\t\trender: function() {\n\t\t\tvar self = this;\n\t\t\tif (this._dialog) {\n\t\t\t\t// remove/destroy older instance\n\t\t\t\tthis._dialog.model.off();\n\t\t\t\tthis._dialog.remove();\n\t\t\t\tthis._dialog = null;\n\t\t\t}\n\n\t\t\tif (this.model) {\n\t\t\t\tthis.$el.html(this.template());\n\n\t\t\t\tif (_.isUndefined(this.model.get('sharePermissions'))) {\n\t\t\t\t\tthis.model.set('sharePermissions', OCA.Sharing.Util.getSharePermissions(this.model.attributes));\n\t\t\t\t}\n\n\t\t\t\t// TODO: the model should read these directly off the passed fileInfoModel\n\t\t\t\tvar attributes = {\n\t\t\t\t\titemType: this.model.isDirectory() ? 'folder' : 'file',\n\t\t\t\t   \titemSource: this.model.get('id'),\n\t\t\t\t\tpossiblePermissions: this.model.get('sharePermissions')\n\t\t\t\t};\n\t\t\t\tvar configModel = new OC.Share.ShareConfigModel();\n\t\t\t\tvar shareModel = new OC.Share.ShareItemModel(attributes, {\n\t\t\t\t\tconfigModel: configModel,\n\t\t\t\t\tfileInfoModel: this.model\n\t\t\t\t});\n\t\t\t\tthis._dialog = new OC.Share.ShareDialogView({\n\t\t\t\t\tconfigModel: configModel,\n\t\t\t\t\tmodel: shareModel\n\t\t\t\t});\n\t\t\t\tthis.$el.find('.dialogContainer').append(this._dialog.$el);\n\t\t\t\tthis._dialog.render();\n\t\t\t\tthis._dialog.model.fetch();\n\t\t\t\tthis._dialog.model.on('change', function() {\n\t\t\t\t\tself.trigger('sharesChanged', shareModel);\n\t\t\t\t});\n\n\t\t\t\timport('./collaborationresources').then((Resources) => {\n\t\t\t\t\tvar vm = new Resources.Vue({\n\t\t\t\t\t\tel: '#collaborationResources',\n\t\t\t\t\t\trender: h => h(Resources.View),\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tmodel: this.model.toJSON()\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tthis.model.on('change', () => { vm.data = this.model.toJSON() })\n\n\t\t\t\t})\n\n\t\t\t} else {\n\t\t\t\tthis.$el.empty();\n\t\t\t\t// TODO: render placeholder text?\n\t\t\t}\n\t\t\tthis.trigger('rendered');\n\t\t}\n\t});\n\n\tOCA.Sharing.ShareTabView = ShareTabView;\n})();\n\n","/* global Handlebars, OC */\n\n/**\n * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\t'use strict';\n\n\tvar BreadCrumbView = OC.Backbone.View.extend({\n\t\ttagName: 'span',\n\t\tevents: {\n\t\t\tclick: '_onClick'\n\t\t},\n\t\t_dirInfo: undefined,\n\n\t\t/** @type OCA.Sharing.ShareTabView */\n\t\t_shareTab: undefined,\n\n\t\tinitialize: function(options) {\n\t\t\tthis._shareTab = options.shareTab;\n\t\t},\n\n\t\trender: function(data) {\n\t\t\tthis._dirInfo = data.dirInfo || null;\n\n\t\t\tif (this._dirInfo !== null && (this._dirInfo.path !== '/' || this._dirInfo.name !== '')) {\n\t\t\t\tvar isShared = data.dirInfo && data.dirInfo.shareTypes && data.dirInfo.shareTypes.length > 0;\n\t\t\t\tthis.$el.removeClass('shared icon-public icon-shared');\n\t\t\t\tif (isShared) {\n\t\t\t\t\tthis.$el.addClass('shared');\n\t\t\t\t\tif (data.dirInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK) !== -1) {\n\t\t\t\t\t\tthis.$el.addClass('icon-public');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.$el.addClass('icon-shared');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$el.addClass('icon-shared');\n\t\t\t\t}\n\t\t\t\tthis.$el.show();\n\t\t\t\tthis.delegateEvents();\n\t\t\t} else {\n\t\t\t\tthis.$el.removeClass('shared icon-public icon-shared');\n\t\t\t\tthis.$el.hide();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\t\t_onClick: function(e) {\n\t\t\te.preventDefault();\n\n\t\t\tvar fileInfoModel = new OCA.Files.FileInfoModel(this._dirInfo);\n\t\t\tvar self = this;\n\t\t\tfileInfoModel.on('change', function() {\n\t\t\t\tself.render({\n\t\t\t\t\tdirInfo: self._dirInfo\n\t\t\t\t});\n\t\t\t});\n\t\t\tthis._shareTab.on('sharesChanged', function(shareModel) {\n\t\t\t\tvar shareTypes = [];\n\t\t\t\tvar shares = shareModel.getSharesWithCurrentItem();\n\n\t\t\t\tfor(var i = 0; i < shares.length; i++) {\n\t\t\t\t\tif (shareTypes.indexOf(shares[i].share_type) === -1) {\n\t\t\t\t\t\tshareTypes.push(shares[i].share_type);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (shareModel.hasLinkShares()) {\n\t\t\t\t\tshareTypes.push(OC.Share.SHARE_TYPE_LINK);\n\t\t\t\t}\n\n\t\t\t\t// Since the dirInfo isn't updated we need to do this dark hackery\n\t\t\t\tself._dirInfo.shareTypes = shareTypes;\n\n\t\t\t\tself.render({\n\t\t\t\t\tdirInfo: self._dirInfo\n\t\t\t\t});\n\t\t\t});\n\t\t\tOCA.Files.App.fileList.showDetailsView(fileInfoModel, 'shareTabView');\n\t\t}\n\t});\n\n\tOCA.Sharing.ShareBreadCrumbView = BreadCrumbView;\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/lib/loader.js!./sharetabview.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(\"03f26936\", content, true, {});","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".app-files .shareTabView {\\n  min-height: 100px; }\\n\\n.share-autocomplete-item {\\n  display: flex; }\\n  .share-autocomplete-item.merged {\\n    margin-left: 32px; }\\n  .share-autocomplete-item .autocomplete-item-text {\\n    margin-left: 10px;\\n    margin-right: 10px;\\n    white-space: nowrap;\\n    text-overflow: ellipsis;\\n    overflow: hidden;\\n    line-height: 32px;\\n    vertical-align: middle;\\n    flex-grow: 1; }\\n    .share-autocomplete-item .autocomplete-item-text .ui-state-highlight {\\n      border: none;\\n      margin: 0; }\\n  .share-autocomplete-item.with-description .autocomplete-item-text {\\n    line-height: 100%; }\\n  .share-autocomplete-item .autocomplete-item-details {\\n    display: block;\\n    line-height: 130%;\\n    font-size: 90%;\\n    opacity: 0.7; }\\n  .share-autocomplete-item .icon {\\n    opacity: .7;\\n    margin-right: 7px; }\\n  .share-autocomplete-item .icon.search-globally {\\n    width: 32px;\\n    height: 32px;\\n    margin-right: 0; }\\n\\n.shareTabView .oneline {\\n  white-space: nowrap;\\n  position: relative; }\\n\\n.shareTabView .shareWithLoading {\\n  padding-left: 10px;\\n  right: 35px;\\n  top: 3px; }\\n\\n.shareTabView .shareWithConfirm {\\n  position: absolute;\\n  right: 2px;\\n  top: 6px;\\n  padding: 14px;\\n  opacity: 0.5; }\\n\\n.shareTabView .shareWithField:focus ~ .shareWithConfirm {\\n  opacity: 1; }\\n\\n.shareTabView .linkMore {\\n  position: absolute;\\n  right: -7px;\\n  top: -4px;\\n  padding: 14px; }\\n\\n.shareTabView .popovermenu {\\n  /* Border above last entry '+ Add another share' to separate it from current link settings */ }\\n  .shareTabView .popovermenu .linkPassMenu .share-pass-submit {\\n    width: auto !important; }\\n  .shareTabView .popovermenu .linkPassMenu .icon-loading-small {\\n    background-color: var(--color-main-background);\\n    position: absolute;\\n    right: 8px;\\n    margin: 3px;\\n    padding: 10px;\\n    width: 32px;\\n    height: 32px;\\n    z-index: 10; }\\n  .shareTabView .popovermenu .datepicker {\\n    margin-left: 35px; }\\n  .shareTabView .popovermenu .share-add input.share-note-delete {\\n    border: none;\\n    background-color: transparent;\\n    width: 44px !important;\\n    padding: 0;\\n    flex: 0 0 44px;\\n    margin-left: auto; }\\n    .shareTabView .popovermenu .share-add input.share-note-delete.hidden {\\n      display: none; }\\n  .shareTabView .popovermenu .share-note-form span.icon-note {\\n    position: relative; }\\n  .shareTabView .popovermenu .share-note-form textarea.share-note {\\n    margin: 0;\\n    width: 200px;\\n    min-height: 70px;\\n    resize: none; }\\n    .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit {\\n      position: absolute;\\n      width: 44px !important;\\n      height: 44px;\\n      bottom: 0px;\\n      right: 10px;\\n      margin: 0;\\n      background-color: transparent;\\n      border: none;\\n      opacity: .7; }\\n      .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:hover, .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:focus, .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:active {\\n        opacity: 1; }\\n  .shareTabView .popovermenu .share-note-form.share-note-link {\\n    margin-bottom: 10px; }\\n  .shareTabView .popovermenu .new-share {\\n    border-top: 1px solid var(--color-border); }\\n\\n.shareTabView .linkPass .icon-loading-small {\\n  margin-right: 0px; }\\n\\n.shareTabView .icon {\\n  background-size: 16px 16px; }\\n\\n.shareTabView .shareWithList .icon-loading-small:not(.hidden) + span,\\n.shareTabView .linkShareView .icon-loading-small:not(.hidden) + input + label:before {\\n  /* Hide if loader is visible */\\n  display: none !important; }\\n\\n.shareTabView input[type='checkbox'] {\\n  margin: 0 3px 0 8px;\\n  vertical-align: middle; }\\n\\n.shareTabView input[type='text'].shareWithField, .shareTabView input[type='text'].emailField {\\n  width: 100%;\\n  box-sizing: border-box;\\n  padding-right: 32px;\\n  text-overflow: ellipsis; }\\n\\n.shareTabView input[type='text'].linkText .shareTabView input[type='password'].linkPassText, .shareTabView input[type='password'].passwordField {\\n  width: 180px !important; }\\n\\n.shareTabView form {\\n  font-size: 100%;\\n  margin-left: 0;\\n  margin-right: 0; }\\n\\n.shareTabView .share-note {\\n  border-radius: var(--border-radius);\\n  margin-bottom: 10px;\\n  margin-left: 37px; }\\n\\n.shareWithList {\\n  list-style-type: none;\\n  display: flex;\\n  flex-direction: column; }\\n  .shareWithList > li {\\n    height: 44px;\\n    white-space: normal;\\n    display: inline-flex;\\n    align-items: center;\\n    position: relative; }\\n    .shareWithList > li .avatar {\\n      width: 32px;\\n      height: 32px;\\n      background-color: var(--color-primary); }\\n  .shareWithList .unshare img {\\n    vertical-align: text-bottom;\\n    /* properly align icons */ }\\n  .shareWithList .sharingOptionsGroup {\\n    margin-left: auto;\\n    display: flex;\\n    align-items: center;\\n    white-space: nowrap; }\\n    .shareWithList .sharingOptionsGroup > .icon:not(.hidden),\\n    .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden) {\\n      padding: 14px;\\n      height: 44px;\\n      width: 44px;\\n      opacity: .5;\\n      display: block;\\n      cursor: pointer; }\\n      .shareWithList .sharingOptionsGroup > .icon:not(.hidden):hover, .shareWithList .sharingOptionsGroup > .icon:not(.hidden):focus, .shareWithList .sharingOptionsGroup > .icon:not(.hidden):active,\\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):hover,\\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):focus,\\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):active {\\n        opacity: .7; }\\n    .shareWithList .sharingOptionsGroup > .share-menu {\\n      position: relative;\\n      display: block; }\\n  .shareWithList .username {\\n    padding: 0 8px;\\n    overflow: hidden;\\n    white-space: nowrap;\\n    text-overflow: ellipsis; }\\n\\n.ui-autocomplete {\\n  /* limit dropdown height to 6 1/2 entries */\\n  max-height: calc(36px * 6.5);\\n  overflow-y: auto;\\n  overflow-x: hidden;\\n  z-index: 1550 !important; }\\n\\n.notCreatable {\\n  padding-left: 12px;\\n  padding-top: 12px;\\n  color: var(--color-text-lighter); }\\n\\n.contactsmenu-popover {\\n  left: -6px;\\n  right: auto;\\n  padding: 3px 6px;\\n  top: 100%;\\n  margin-top: 0; }\\n  .contactsmenu-popover li.hidden {\\n    display: none !important; }\\n  .contactsmenu-popover:after {\\n    left: 8px;\\n    right: auto; }\\n\\n.reshare,\\n#link label,\\n#expiration label {\\n  display: inline-flex;\\n  align-items: center; }\\n  .reshare .avatar,\\n  #link label .avatar,\\n  #expiration label .avatar {\\n    margin-right: 5px; }\\n\\n.resharerInfoView.subView {\\n  position: relative; }\\n\", \"\"]);\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/lib/loader.js!./sharebreadcrumb.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(\"27ced9ca\", content, true, {});","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/**\\n * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\\n *\\n * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program.  If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\ndiv.crumb span.icon-shared,\\ndiv.crumb span.icon-public {\\n  display: inline-block;\\n  cursor: pointer;\\n  opacity: 0.2;\\n  margin-right: 6px; }\\n\\ndiv.crumb span.icon-shared.shared,\\ndiv.crumb span.icon-public.shared {\\n  opacity: 0.7; }\\n\", \"\"]);\n\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./apps/files_sharing/src/collaborationresourceshandler.js","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","webpack:///./apps/files_sharing/src/additionalScripts.js","webpack:///./apps/files_sharing/src/share.js","webpack:///./apps/files_sharing/src/sharetabview.js","webpack:///./apps/files_sharing/src/sharebreadcrumbview.js","webpack:///./apps/files_sharing/src/style/sharetabview.scss?669d","webpack:///./apps/files_sharing/src/style/sharetabview.scss","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss?20f5","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","installedModules","0","1","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","error","Error","request","undefined","setTimeout","head","appendChild","all","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","__webpack_public_path__","OC","linkTo","__webpack_nonce__","btoa","requestToken","OCP","Collaboration","registerType","action","dialogs","filepicker","f","Files","getClient","getFileInfo","then","status","fileInfo","id","typeString","typeIconClass","useSourceMap","list","toString","this","map","item","content","cssMapping","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","concat","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","listToStyles","parentId","styles","newStyles","part","css","media","parts","__webpack_exports__","addStylesClient","hasDocument","DEBUG","stylesInDom","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","options","ssrIdKey","isOldIE","navigator","test","userAgent","toLowerCase","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","obj","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","ssrId","styleSheet","cssText","firstChild","createTextNode","newObj","textStore","replaceText","index","replacement","filter","Boolean","cssNode","childNodes","insertBefore","OCA","Sharing","_","extend","Client","PROPERTY_SHARE_TYPES","NS_OWNCLOUD","PROPERTY_OWNER_ID","PROPERTY_OWNER_DISPLAY_NAME","Util","attach","fileList","Share","fileActions","oldCreateRow","_createRow","fileData","tr","apply","arguments","sharePermissions","getSharePermissions","permissions","actions","Comment","Details","Goto","attr","shareOwner","shareOwnerId","mountType","PERMISSION_UPDATE","recipientData","isEmpty","shareTypes","oldElementToFile","elementToFile","$el","split","expirationTimestamp","parseInt","shares","expiration","oldGetWebdavProperties","_getWebdavProperties","props","filesClient","addFileInfoParser","response","propStat","properties","permissionsProp","PROPERTY_PERMISSIONS","indexOf","shareTypesProp","chain","xmlvalue","namespaceURI","nodeName","textContent","text","on","ev","$files","each","file","$tr","$","hasLink","hasShares","shareType","SHARE_TYPE_LINK","SHARE_TYPE_EMAIL","SHARE_TYPE_USER","SHARE_TYPE_GROUP","SHARE_TYPE_REMOTE","SHARE_TYPE_CIRCLE","SHARE_TYPE_ROOM","_updateFileActionIcon","sharesLoaded","registerAction","displayName","context","$file","altText","mime","order","PERMISSION_ALL","iconClass","fileName","icon","generateUrl","FileActions","TYPE_INLINE","actionHandler","isNaN","showDetailsView","render","actionSpec","isDefault","PERMISSION_SHARE","_defaultRenderAction","shareTab","ShareTabView","shareModel","fileInfoModel","findFileEl","hasLinkShares","forEach","share","share_type","_updateFileListDataAttributes","hasUserShares","markFileAsShared","set","getShareTypes","registerTabView","breadCrumbSharingDetailView","ShareBreadCrumbView","registerBreadCrumbDetailView","pluck","mapObject","shareWith","share_with","shareWithDisplayName","share_with_displayname","removeAttr","Plugins","register","DetailTabView","className","initialize","template","params","getLabel","getIcon","_this","self","_dialog","model","off","html","isUndefined","attributes","itemType","isDirectory","itemSource","possiblePermissions","configModel","ShareConfigModel","ShareItemModel","ShareDialogView","find","append","fetch","trigger","Resources","vm","Vue","el","h","View","toJSON","empty","BreadCrumbView","Backbone","tagName","events","click","_dirInfo","_shareTab","dirInfo","path","removeClass","hide","isShared","addClass","show","delegateEvents","_onClick","preventDefault","FileInfoModel","getSharesWithCurrentItem","App","locals","add","default"],"mappings":"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","file":"additionalScripts.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0,\n \t\t1: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"files_sharing.\" + chunkId + \".js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/');\n__webpack_nonce__ = btoa(OC.requestToken);\n\nwindow.OCP.Collaboration.registerType('file', {\n\taction: () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tOC.dialogs.filepicker(t('files_sharing', 'Link to a file'), function (f) {\n\t\t\t\tconst client = OC.Files.getClient();\n\t\t\t\tclient.getFileInfo(f).then((status, fileInfo) => {\n\t\t\t\t\tresolve(fileInfo.id);\n\t\t\t\t}, () => {\n\t\t\t\t\treject();\n\t\t\t\t});\n\t\t\t}, false);\n\t\t});\n\t},\n\ttypeString: t('files_sharing', 'Link to a file'),\n\ttypeIconClass: 'icon-files-dark'\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\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 ' + item[2] + '{' + content + '}';\n      } else {\n        return content;\n      }\n    }).join('');\n  }; // import a list of modules into the list\n\n\n  list.i = function (modules, mediaQuery) {\n    if (typeof modules === 'string') {\n      modules = [[null, modules, '']];\n    }\n\n    var alreadyImportedModules = {};\n\n    for (var i = 0; i < this.length; i++) {\n      var id = this[i][0];\n\n      if (id != null) {\n        alreadyImportedModules[id] = true;\n      }\n    }\n\n    for (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] = '(' + item[2] + ') and (' + 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] || '';\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=' + cssMapping.sourceRoot + 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,' + base64;\n  return '/*# ' + 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","__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/');\n__webpack_nonce__ = btoa(OC.requestToken);\n\nimport './share'\nimport './sharetabview'\nimport './sharebreadcrumbview'\n\nimport './style/sharetabview.scss'\nimport './style/sharebreadcrumb.scss'\n\nimport './collaborationresourceshandler.js'\n\nwindow.OCA.Sharing = OCA.Sharing;\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(function() {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_SHARE_TYPES:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}share-types',\n\t\tPROPERTY_OWNER_ID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}owner-id',\n\t\tPROPERTY_OWNER_DISPLAY_NAME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}owner-display-name'\n\t});\n\n\tif (!OCA.Sharing) {\n\t\tOCA.Sharing = {};\n\t}\n\t/**\n\t * @namespace\n\t */\n\tOCA.Sharing.Util = {\n\t\t/**\n\t\t * Initialize the sharing plugin.\n\t\t *\n\t\t * Registers the \"Share\" file action and adds additional\n\t\t * DOM attributes for the sharing file info.\n\t\t *\n\t\t * @param {OCA.Files.FileList} fileList file list to be extended\n\t\t */\n\t\tattach: function(fileList) {\n\t\t\t// core sharing is disabled/not loaded\n\t\t\tif (!OC.Share) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (fileList.id === 'trashbin' || fileList.id === 'files.public') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fileActions = fileList.fileActions;\n\t\t\tvar oldCreateRow = fileList._createRow;\n\t\t\tfileList._createRow = function(fileData) {\n\n\t\t\t\tvar tr = oldCreateRow.apply(this, arguments);\n\t\t\t\tvar sharePermissions = OCA.Sharing.Util.getSharePermissions(fileData);\n\t\t\t\t\n\t\t\t\tif (fileData.permissions === 0) {\n\t\t\t\t\t// no permission, disabling sidebar\n\t\t\t\t\tdelete fileActions.actions.all.Comment;\n\t\t\t\t\tdelete fileActions.actions.all.Details;\n\t\t\t\t\tdelete fileActions.actions.all.Goto;\n\t\t\t\t}\n\t\t\t\ttr.attr('data-share-permissions', sharePermissions);\n\t\t\t\tif (fileData.shareOwner) {\n\t\t\t\t\ttr.attr('data-share-owner', fileData.shareOwner);\n\t\t\t\t\ttr.attr('data-share-owner-id', fileData.shareOwnerId);\n\t\t\t\t\t// user should always be able to rename a mount point\n\t\t\t\t\tif (fileData.mountType === 'shared-root') {\n\t\t\t\t\t\ttr.attr('data-permissions', fileData.permissions | OC.PERMISSION_UPDATE);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (fileData.recipientData && !_.isEmpty(fileData.recipientData)) {\n\t\t\t\t\ttr.attr('data-share-recipient-data', JSON.stringify(fileData.recipientData));\n\t\t\t\t}\n\t\t\t\tif (fileData.shareTypes) {\n\t\t\t\t\ttr.attr('data-share-types', fileData.shareTypes.join(','));\n\t\t\t\t}\n\t\t\t\treturn tr;\n\t\t\t};\n\n\t\t\tvar oldElementToFile = fileList.elementToFile;\n\t\t\tfileList.elementToFile = function($el) {\n\t\t\t\tvar fileInfo = oldElementToFile.apply(this, arguments);\n\t\t\t\tfileInfo.sharePermissions = $el.attr('data-share-permissions') || undefined;\n\t\t\t\tfileInfo.shareOwner = $el.attr('data-share-owner') || undefined;\n\t\t\t\tfileInfo.shareOwnerId = $el.attr('data-share-owner-id') || undefined;\n\n\t\t\t\tif( $el.attr('data-share-types')){\n\t\t\t\t\tfileInfo.shareTypes = $el.attr('data-share-types').split(',');\n\t\t\t\t}\n\n\t\t\t\tif( $el.attr('data-expiration')){\n\t\t\t\t\tvar expirationTimestamp = parseInt($el.attr('data-expiration'));\n\t\t\t\t\tfileInfo.shares = [];\n\t\t\t\t\tfileInfo.shares.push({expiration: expirationTimestamp});\n\t\t\t\t}\n\n\t\t\t\treturn fileInfo;\n\t\t\t};\n\n\t\t\tvar oldGetWebdavProperties = fileList._getWebdavProperties;\n\t\t\tfileList._getWebdavProperties = function() {\n\t\t\t\tvar props = oldGetWebdavProperties.apply(this, arguments);\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_OWNER_ID);\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME);\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_SHARE_TYPES);\n\t\t\t\treturn props;\n\t\t\t};\n\n\t\t\tfileList.filesClient.addFileInfoParser(function(response) {\n\t\t\t\tvar data = {};\n\t\t\t\tvar props = response.propStat[0].properties;\n\t\t\t\tvar permissionsProp = props[OC.Files.Client.PROPERTY_PERMISSIONS];\n\n\t\t\t\tif (permissionsProp && permissionsProp.indexOf('S') >= 0) {\n\t\t\t\t\tdata.shareOwner = props[OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME];\n\t\t\t\t\tdata.shareOwnerId = props[OC.Files.Client.PROPERTY_OWNER_ID];\n\t\t\t\t}\n\n\t\t\t\tvar shareTypesProp = props[OC.Files.Client.PROPERTY_SHARE_TYPES];\n\t\t\t\tif (shareTypesProp) {\n\t\t\t\t\tdata.shareTypes = _.chain(shareTypesProp).filter(function(xmlvalue) {\n\t\t\t\t\t\treturn (xmlvalue.namespaceURI === OC.Files.Client.NS_OWNCLOUD && xmlvalue.nodeName.split(':')[1] === 'share-type');\n\t\t\t\t\t}).map(function(xmlvalue) {\n\t\t\t\t\t\treturn parseInt(xmlvalue.textContent || xmlvalue.text, 10);\n\t\t\t\t\t}).value();\n\t\t\t\t}\n\n\t\t\t\treturn data;\n\t\t\t});\n\n\t\t\t// use delegate to catch the case with multiple file lists\n\t\t\tfileList.$el.on('fileActionsReady', function(ev){\n\t\t\t\tvar $files = ev.$files;\n\n\t\t\t\t_.each($files, function(file) {\n\t\t\t\t\tvar $tr = $(file);\n\t\t\t\t\tvar shareTypes = $tr.attr('data-share-types') || '';\n\t\t\t\t\tvar shareOwner = $tr.attr('data-share-owner');\n\t\t\t\t\tif (shareTypes || shareOwner) {\n\t\t\t\t\t\tvar hasLink = false;\n\t\t\t\t\t\tvar hasShares = false;\n\t\t\t\t\t\t_.each(shareTypes.split(',') || [], function(shareType) {\n\t\t\t\t\t\t\tshareType = parseInt(shareType, 10);\n\t\t\t\t\t\t\tif (shareType === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\t\t\thasLink = true;\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\t\t\t\t\thasLink = true;\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_USER) {\n\t\t\t\t\t\t\t\thasShares = true;\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\t\t\t\t\thasShares = true;\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\t\t\t\t\thasShares = true;\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\t\t\t\t\thasShares = true;\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\t\t\t\t\thasShares = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tOCA.Sharing.Util._updateFileActionIcon($tr, hasShares, hasLink);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\n\t\t\tfileList.$el.on('changeDirectory', function() {\n\t\t\t\tOCA.Sharing.sharesLoaded = false;\n\t\t\t});\n\n\t\t\tfileActions.registerAction({\n\t\t\t\tname: 'Share',\n\t\t\t\tdisplayName: function(context) {\n\t\t\t\t\tif (context && context.$file) {\n\t\t\t\t\t\tvar shareType = parseInt(context.$file.data('share-types'), 10)\n\t\t\t\t\t\tvar shareOwner = context.$file.data('share-owner-id')\n\t\t\t\t\t\tif (shareType >= 0 || shareOwner) {\n\t\t\t\t\t\t\treturn t('core', 'Shared')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn t('core', 'Share')\n\t\t\t\t},\n\t\t\t\taltText: t('core', 'Share'),\n\t\t\t\tmime: 'all',\n\t\t\t\torder: -150,\n\t\t\t\tpermissions: OC.PERMISSION_ALL,\n\t\t\t\ticonClass: function(fileName, context) {\n\t\t\t\t\tvar shareType = parseInt(context.$file.data('share-types'), 10)\n\t\t\t\t\tif (shareType === OC.Share.SHARE_TYPE_EMAIL\n\t\t\t\t\t\t|| shareType === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\treturn 'icon-public'\n\t\t\t\t\t}\n\t\t\t\t\treturn 'icon-shared'\n\t\t\t\t},\n\t\t\t\ticon: function(fileName, context) {\n\t\t\t\t\tvar shareOwner = context.$file.data('share-owner-id')\n\t\t\t\t\tif (shareOwner) {\n\t\t\t\t\t\treturn OC.generateUrl(`/avatar/${shareOwner}/32`)\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttype: OCA.Files.FileActions.TYPE_INLINE,\n\t\t\t\tactionHandler: function(fileName, context) {\n\t\t\t\t\t// do not open sidebar if permission is set and equal to 0\n\t\t\t\t\tvar permissions = parseInt(context.$file.data('share-permissions'), 10);\n\t\t\t\t\tif (isNaN(permissions) || permissions > 0) {\n\t\t\t\t\t\tfileList.showDetailsView(fileName, 'shareTabView');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\trender: function(actionSpec, isDefault, context) {\n\t\t\t\t\tvar permissions = parseInt(context.$file.data('permissions'), 10);\n\t\t\t\t\t// if no share permissions but share owner exists, still show the link\n\t\t\t\t\tif ((permissions & OC.PERMISSION_SHARE) !== 0 || context.$file.attr('data-share-owner')) {\n\t\t\t\t\t\treturn fileActions._defaultRenderAction.call(fileActions, actionSpec, isDefault, context);\n\t\t\t\t\t}\n\t\t\t\t\t// don't render anything\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar shareTab = new OCA.Sharing.ShareTabView('shareTabView', {order: -20});\n\t\t\t// detect changes and change the matching list entry\n\t\t\tshareTab.on('sharesChanged', function(shareModel) {\n\t\t\t\tvar fileInfoModel = shareModel.fileInfoModel;\n\t\t\t\tvar $tr = fileList.findFileEl(fileInfoModel.get('name'));\n\n\t\t\t\t// We count email shares as link share\n\t\t\t\tvar hasLinkShares = shareModel.hasLinkShares();\n\t\t\t\tshareModel.get('shares').forEach(function (share) {\n\t\t\t\t\tif (share.share_type === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\t\t\thasLinkShares = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tOCA.Sharing.Util._updateFileListDataAttributes(fileList, $tr, shareModel);\n\t\t\t\tif (!OCA.Sharing.Util._updateFileActionIcon($tr, shareModel.hasUserShares(), hasLinkShares)) {\n\t\t\t\t\t// remove icon, if applicable\n\t\t\t\t\tOC.Share.markFileAsShared($tr, false, false);\n\t\t\t\t}\n\n\t\t\t\t// FIXME: this is too convoluted. We need to get rid of the above updates\n\t\t\t\t// and only ever update the model and let the events take care of rerendering\n\t\t\t\tfileInfoModel.set({\n\t\t\t\t\tshareTypes: shareModel.getShareTypes(),\n\t\t\t\t\t// in case markFileAsShared decided to change the icon,\n\t\t\t\t\t// we need to modify the model\n\t\t\t\t\t// (FIXME: yes, this is hacky)\n\t\t\t\t\ticon: $tr.attr('data-icon')\n\t\t\t\t});\n\t\t\t});\n\t\t\tfileList.registerTabView(shareTab);\n\n\t\t\tvar breadCrumbSharingDetailView = new OCA.Sharing.ShareBreadCrumbView({shareTab: shareTab});\n\t\t\tfileList.registerBreadCrumbDetailView(breadCrumbSharingDetailView);\n\t\t},\n\n\t\t/**\n\t\t * Update file list data attributes\n\t\t */\n\t\t_updateFileListDataAttributes: function(fileList, $tr, shareModel) {\n\t\t\t// files app current cannot show recipients on load, so we don't update the\n\t\t\t// icon when changed for consistency\n\t\t\tif (fileList.id === 'files') {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar recipients = _.pluck(shareModel.get('shares'), 'share_with_displayname');\n\t\t\t// note: we only update the data attribute because updateIcon()\n\t\t\tif (recipients.length) {\n\t\t\t\tvar recipientData = _.mapObject(shareModel.get('shares'), function (share) {\n\t\t\t\t\treturn {shareWith: share.share_with, shareWithDisplayName: share.share_with_displayname};\n\t\t\t\t});\n\t\t\t\t$tr.attr('data-share-recipient-data', JSON.stringify(recipientData));\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$tr.removeAttr('data-share-recipient-data');\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update the file action share icon for the given file\n\t\t *\n\t\t * @param $tr file element of the file to update\n\t\t * @param {boolean} hasUserShares true if a user share exists\n\t\t * @param {boolean} hasLinkShares true if a link share exists\n\t\t *\n\t\t * @return {boolean} true if the icon was set, false otherwise\n\t\t */\n\t\t_updateFileActionIcon: function($tr, hasUserShares, hasLinkShares) {\n\t\t\t// if the statuses are loaded already, use them for the icon\n\t\t\t// (needed when scrolling to the next page)\n\t\t\tif (hasUserShares || hasLinkShares || $tr.attr('data-share-recipient-data') || $tr.attr('data-share-owner')) {\n\t\t\t\tOC.Share.markFileAsShared($tr, true, hasLinkShares);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * @param {Array} fileData\n\t\t * @returns {String}\n\t\t */\n\t\tgetSharePermissions: function(fileData) {\n\t\t\treturn fileData.sharePermissions;\n\t\t}\n\t};\n})();\n\nOC.Plugins.register('OCA.Files.FileList', OCA.Sharing.Util);\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* @global Handlebars */\n\n(function() {\n\tvar TEMPLATE =\n\t\t'<div>' +\n\t\t'<div class=\"dialogContainer\"></div>' +\n\t\t'<div id=\"collaborationResources\"></div>' +\n\t\t'</div>';\n\n\t/**\n\t * @memberof OCA.Sharing\n\t */\n\tvar ShareTabView = OCA.Files.DetailTabView.extend(\n\t\t/** @lends OCA.Sharing.ShareTabView.prototype */ {\n\t\tid: 'shareTabView',\n\t\tclassName: 'tab shareTabView',\n\n\t\tinitialize: function(name, options) {\n\t\t\tOCA.Files.DetailTabView.prototype.initialize.call(this, name, options);\n\t\t\tOC.Plugins.attach('OCA.Sharing.ShareTabView', this);\n\t\t},\n\n\t\ttemplate: function(params) {\n\t\t\treturn \tTEMPLATE;\n\t\t},\n\n\t\tgetLabel: function() {\n\t\t\treturn t('files_sharing', 'Sharing');\n\t\t},\n\n\t\tgetIcon: function() {\n\t\t\treturn 'icon-shared';\n\t\t},\n\n\t\t/**\n\t\t * Renders this details view\n\t\t */\n\t\trender: function() {\n\t\t\tvar self = this;\n\t\t\tif (this._dialog) {\n\t\t\t\t// remove/destroy older instance\n\t\t\t\tthis._dialog.model.off();\n\t\t\t\tthis._dialog.remove();\n\t\t\t\tthis._dialog = null;\n\t\t\t}\n\n\t\t\tif (this.model) {\n\t\t\t\tthis.$el.html(this.template());\n\n\t\t\t\tif (_.isUndefined(this.model.get('sharePermissions'))) {\n\t\t\t\t\tthis.model.set('sharePermissions', OCA.Sharing.Util.getSharePermissions(this.model.attributes));\n\t\t\t\t}\n\n\t\t\t\t// TODO: the model should read these directly off the passed fileInfoModel\n\t\t\t\tvar attributes = {\n\t\t\t\t\titemType: this.model.isDirectory() ? 'folder' : 'file',\n\t\t\t\t   \titemSource: this.model.get('id'),\n\t\t\t\t\tpossiblePermissions: this.model.get('sharePermissions')\n\t\t\t\t};\n\t\t\t\tvar configModel = new OC.Share.ShareConfigModel();\n\t\t\t\tvar shareModel = new OC.Share.ShareItemModel(attributes, {\n\t\t\t\t\tconfigModel: configModel,\n\t\t\t\t\tfileInfoModel: this.model\n\t\t\t\t});\n\t\t\t\tthis._dialog = new OC.Share.ShareDialogView({\n\t\t\t\t\tconfigModel: configModel,\n\t\t\t\t\tmodel: shareModel\n\t\t\t\t});\n\t\t\t\tthis.$el.find('.dialogContainer').append(this._dialog.$el);\n\t\t\t\tthis._dialog.render();\n\t\t\t\tthis._dialog.model.fetch();\n\t\t\t\tthis._dialog.model.on('change', function() {\n\t\t\t\t\tself.trigger('sharesChanged', shareModel);\n\t\t\t\t});\n\n\t\t\t\timport('./collaborationresources').then((Resources) => {\n\t\t\t\t\tvar vm = new Resources.Vue({\n\t\t\t\t\t\tel: '#collaborationResources',\n\t\t\t\t\t\trender: h => h(Resources.View),\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tmodel: this.model.toJSON()\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tthis.model.on('change', () => { vm.data = this.model.toJSON() })\n\n\t\t\t\t})\n\n\t\t\t} else {\n\t\t\t\tthis.$el.empty();\n\t\t\t\t// TODO: render placeholder text?\n\t\t\t}\n\t\t\tthis.trigger('rendered');\n\t\t}\n\t});\n\n\tOCA.Sharing.ShareTabView = ShareTabView;\n})();\n\n","/* global Handlebars, OC */\n\n/**\n * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\t'use strict';\n\n\tvar BreadCrumbView = OC.Backbone.View.extend({\n\t\ttagName: 'span',\n\t\tevents: {\n\t\t\tclick: '_onClick'\n\t\t},\n\t\t_dirInfo: undefined,\n\n\t\t/** @type OCA.Sharing.ShareTabView */\n\t\t_shareTab: undefined,\n\n\t\tinitialize: function(options) {\n\t\t\tthis._shareTab = options.shareTab;\n\t\t},\n\n\t\trender: function(data) {\n\t\t\tthis._dirInfo = data.dirInfo || null;\n\n\t\t\tif (this._dirInfo !== null && (this._dirInfo.path !== '/' || this._dirInfo.name !== '')) {\n\t\t\t\tvar isShared = data.dirInfo && data.dirInfo.shareTypes && data.dirInfo.shareTypes.length > 0;\n\t\t\t\tthis.$el.removeClass('shared icon-public icon-shared');\n\t\t\t\tif (isShared) {\n\t\t\t\t\tthis.$el.addClass('shared');\n\t\t\t\t\tif (data.dirInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK) !== -1) {\n\t\t\t\t\t\tthis.$el.addClass('icon-public');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.$el.addClass('icon-shared');\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$el.addClass('icon-shared');\n\t\t\t\t}\n\t\t\t\tthis.$el.show();\n\t\t\t\tthis.delegateEvents();\n\t\t\t} else {\n\t\t\t\tthis.$el.removeClass('shared icon-public icon-shared');\n\t\t\t\tthis.$el.hide();\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\t\t_onClick: function(e) {\n\t\t\te.preventDefault();\n\n\t\t\tvar fileInfoModel = new OCA.Files.FileInfoModel(this._dirInfo);\n\t\t\tvar self = this;\n\t\t\tfileInfoModel.on('change', function() {\n\t\t\t\tself.render({\n\t\t\t\t\tdirInfo: self._dirInfo\n\t\t\t\t});\n\t\t\t});\n\t\t\tthis._shareTab.on('sharesChanged', function(shareModel) {\n\t\t\t\tvar shareTypes = [];\n\t\t\t\tvar shares = shareModel.getSharesWithCurrentItem();\n\n\t\t\t\tfor(var i = 0; i < shares.length; i++) {\n\t\t\t\t\tif (shareTypes.indexOf(shares[i].share_type) === -1) {\n\t\t\t\t\t\tshareTypes.push(shares[i].share_type);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (shareModel.hasLinkShares()) {\n\t\t\t\t\tshareTypes.push(OC.Share.SHARE_TYPE_LINK);\n\t\t\t\t}\n\n\t\t\t\t// Since the dirInfo isn't updated we need to do this dark hackery\n\t\t\t\tself._dirInfo.shareTypes = shareTypes;\n\n\t\t\t\tself.render({\n\t\t\t\t\tdirInfo: self._dirInfo\n\t\t\t\t});\n\t\t\t});\n\t\t\tOCA.Files.App.fileList.showDetailsView(fileInfoModel, 'shareTabView');\n\t\t}\n\t});\n\n\tOCA.Sharing.ShareBreadCrumbView = BreadCrumbView;\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/lib/loader.js!./sharetabview.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(\"03f26936\", content, true, {});","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".app-files .shareTabView {\\n  min-height: 100px; }\\n\\n.share-autocomplete-item {\\n  display: flex; }\\n  .share-autocomplete-item.merged {\\n    margin-left: 32px; }\\n  .share-autocomplete-item .autocomplete-item-text {\\n    margin-left: 10px;\\n    margin-right: 10px;\\n    white-space: nowrap;\\n    text-overflow: ellipsis;\\n    overflow: hidden;\\n    line-height: 32px;\\n    vertical-align: middle;\\n    flex-grow: 1; }\\n    .share-autocomplete-item .autocomplete-item-text .ui-state-highlight {\\n      border: none;\\n      margin: 0; }\\n  .share-autocomplete-item.with-description .autocomplete-item-text {\\n    line-height: 100%; }\\n  .share-autocomplete-item .autocomplete-item-details {\\n    display: block;\\n    line-height: 130%;\\n    font-size: 90%;\\n    opacity: 0.7; }\\n  .share-autocomplete-item .icon {\\n    opacity: .7;\\n    margin-right: 7px; }\\n  .share-autocomplete-item .icon.search-globally {\\n    width: 32px;\\n    height: 32px;\\n    margin-right: 0; }\\n\\n.shareTabView .oneline {\\n  white-space: nowrap;\\n  position: relative; }\\n\\n.shareTabView .shareWithLoading {\\n  padding-left: 10px;\\n  right: 35px;\\n  top: 3px; }\\n\\n.shareTabView .shareWithConfirm {\\n  position: absolute;\\n  right: 2px;\\n  top: 6px;\\n  padding: 14px;\\n  opacity: 0.5; }\\n\\n.shareTabView .shareWithField:focus ~ .shareWithConfirm {\\n  opacity: 1; }\\n\\n.shareTabView .linkMore {\\n  position: absolute;\\n  right: -7px;\\n  top: -4px;\\n  padding: 14px; }\\n\\n.shareTabView .popovermenu {\\n  /* Border above last entry '+ Add another share' to separate it from current link settings */ }\\n  .shareTabView .popovermenu .linkPassMenu input.error {\\n    border-color: var(--color-error) !important; }\\n    .shareTabView .popovermenu .linkPassMenu input.error[type=\\\"submit\\\"] {\\n      border-left: none; }\\n  .shareTabView .popovermenu .linkPassMenu .share-pass-submit {\\n    width: auto !important; }\\n  .shareTabView .popovermenu .linkPassMenu .icon-loading-small {\\n    background-color: var(--color-main-background);\\n    position: absolute;\\n    right: 8px;\\n    margin: 3px;\\n    padding: 10px;\\n    width: 32px;\\n    height: 32px;\\n    z-index: 10; }\\n  .shareTabView .popovermenu .datepicker {\\n    margin-left: 35px; }\\n  .shareTabView .popovermenu .share-add input.share-note-delete {\\n    border: none;\\n    background-color: transparent;\\n    width: 44px !important;\\n    padding: 0;\\n    flex: 0 0 44px;\\n    margin-left: auto; }\\n    .shareTabView .popovermenu .share-add input.share-note-delete.hidden {\\n      display: none; }\\n  .shareTabView .popovermenu .share-note-form span.icon-note {\\n    position: relative; }\\n  .shareTabView .popovermenu .share-note-form textarea.share-note {\\n    margin: 0;\\n    width: 200px;\\n    min-height: 70px;\\n    resize: none; }\\n    .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit {\\n      position: absolute;\\n      width: 44px !important;\\n      height: 44px;\\n      bottom: 0px;\\n      right: 10px;\\n      margin: 0;\\n      background-color: transparent;\\n      border: none;\\n      opacity: .7; }\\n      .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:hover, .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:focus, .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:active {\\n        opacity: 1; }\\n  .shareTabView .popovermenu .share-note-form.share-note-link {\\n    margin-bottom: 10px; }\\n  .shareTabView .popovermenu .new-share {\\n    border-top: 1px solid var(--color-border); }\\n\\n.shareTabView .linkPass .icon-loading-small {\\n  margin-right: 0px; }\\n\\n.shareTabView .icon {\\n  background-size: 16px 16px; }\\n\\n.shareTabView .shareWithList .icon-loading-small:not(.hidden) + span,\\n.shareTabView .linkShareView .icon-loading-small:not(.hidden) + input + label:before {\\n  /* Hide if loader is visible */\\n  display: none !important; }\\n\\n.shareTabView input[type='checkbox'] {\\n  margin: 0 3px 0 8px;\\n  vertical-align: middle; }\\n\\n.shareTabView input[type='text'].shareWithField, .shareTabView input[type='text'].emailField {\\n  width: 100%;\\n  box-sizing: border-box;\\n  padding-right: 32px;\\n  text-overflow: ellipsis; }\\n\\n.shareTabView input[type='text'].linkText .shareTabView input[type='password'].linkPassText, .shareTabView input[type='password'].passwordField {\\n  width: 180px !important; }\\n\\n.shareTabView form {\\n  font-size: 100%;\\n  margin-left: 0;\\n  margin-right: 0; }\\n\\n.shareTabView .share-note {\\n  border-radius: var(--border-radius);\\n  margin-bottom: 10px;\\n  margin-left: 37px; }\\n\\n.shareWithList {\\n  list-style-type: none;\\n  display: flex;\\n  flex-direction: column; }\\n  .shareWithList > li {\\n    height: 44px;\\n    white-space: normal;\\n    display: inline-flex;\\n    align-items: center;\\n    position: relative; }\\n    .shareWithList > li .avatar {\\n      width: 32px;\\n      height: 32px;\\n      background-color: var(--color-primary); }\\n  .shareWithList .unshare img {\\n    vertical-align: text-bottom;\\n    /* properly align icons */ }\\n  .shareWithList .sharingOptionsGroup {\\n    margin-left: auto;\\n    display: flex;\\n    align-items: center;\\n    white-space: nowrap; }\\n    .shareWithList .sharingOptionsGroup > .icon:not(.hidden),\\n    .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden) {\\n      padding: 14px;\\n      height: 44px;\\n      width: 44px;\\n      opacity: .5;\\n      display: block;\\n      cursor: pointer; }\\n      .shareWithList .sharingOptionsGroup > .icon:not(.hidden):hover, .shareWithList .sharingOptionsGroup > .icon:not(.hidden):focus, .shareWithList .sharingOptionsGroup > .icon:not(.hidden):active,\\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):hover,\\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):focus,\\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):active {\\n        opacity: .7; }\\n    .shareWithList .sharingOptionsGroup > .share-menu {\\n      position: relative;\\n      display: block; }\\n  .shareWithList .username {\\n    padding: 0 8px;\\n    overflow: hidden;\\n    white-space: nowrap;\\n    text-overflow: ellipsis; }\\n\\n.ui-autocomplete {\\n  /* limit dropdown height to 6 1/2 entries */\\n  max-height: calc(36px * 6.5);\\n  overflow-y: auto;\\n  overflow-x: hidden;\\n  z-index: 1550 !important; }\\n\\n.notCreatable {\\n  padding-left: 12px;\\n  padding-top: 12px;\\n  color: var(--color-text-lighter); }\\n\\n.contactsmenu-popover {\\n  left: -6px;\\n  right: auto;\\n  padding: 3px 6px;\\n  top: 100%;\\n  margin-top: 0; }\\n  .contactsmenu-popover li.hidden {\\n    display: none !important; }\\n  .contactsmenu-popover:after {\\n    left: 8px;\\n    right: auto; }\\n\\n.reshare,\\n#link label,\\n#expiration label {\\n  display: inline-flex;\\n  align-items: center; }\\n  .reshare .avatar,\\n  #link label .avatar,\\n  #expiration label .avatar {\\n    margin-right: 5px; }\\n\\n.resharerInfoView.subView {\\n  position: relative; }\\n\", \"\"]);\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/lib/loader.js!./sharebreadcrumb.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(\"27ced9ca\", content, true, {});","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/**\\n * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\\n *\\n * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program.  If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\ndiv.crumb span.icon-shared,\\ndiv.crumb span.icon-public {\\n  display: inline-block;\\n  cursor: pointer;\\n  opacity: 0.2;\\n  margin-right: 6px; }\\n\\ndiv.crumb span.icon-shared.shared,\\ndiv.crumb span.icon-public.shared {\\n  opacity: 0.7; }\\n\", \"\"]);\n\n"],"sourceRoot":""}
\ No newline at end of file
index b3753f3f3211afd51c9313db839ee8616f554fcf..d10808a7488aba82b636de201da381f89f5a9e1b 100644 (file)
        }
        .popovermenu {
                .linkPassMenu {
+                       input.error {
+                               border-color: var(--color-error) !important;
+                               &[type="submit"] {
+                                       border-left: none;
+                               }
+                       }
                        .share-pass-submit {
                                width: auto !important;
                        }
index a5d59b4e292ba7191f4a63c443dd5e0b730f3797..c4052be0364b0786400b324f8034c9e67722b072 100644 (file)
@@ -20,5 +20,5 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *
  */
-!function(){OC.Share||(OC.Share={}),OC.Share.Social={};var e=OC.Backbone.Model.extend({defaults:{key:null,url:null,name:null,iconClass:null,newWindow:!0}});OC.Share.Social.Model=e;var a=OC.Backbone.Collection.extend({model:OC.Share.Social.Model,comparator:"key"});OC.Share.Social.Collection=new a}()},function(e,a){!function(){OC.Share||(OC.Share={});var e=OC.Backbone.View.extend({id:"shareDialogResharerInfo",tagName:"div",className:"reshare",configModel:void 0,_template:void 0,initialize:function(e){var a=this;if(this.model.on("change:reshare",function(){a.render()}),_.isUndefined(e.configModel))throw"missing OC.Share.ShareConfigModel";this.configModel=e.configModel},render:function(){if(!this.model.hasReshare()||this.model.getReshareOwner()===OC.currentUser)return this.$el.empty(),this;var e=this.template(),a=this.model.getReshareOwnerDisplayname(),n=this.model.getReshareNote(),s="";return s=this.model.getReshareType()===OC.Share.SHARE_TYPE_GROUP?t("core","Shared with you and the group {group} by {owner}",{group:this.model.getReshareWithDisplayName(),owner:a},void 0,{escape:!1}):this.model.getReshareType()===OC.Share.SHARE_TYPE_CIRCLE?t("core","Shared with you and {circle} by {owner}",{circle:this.model.getReshareWithDisplayName(),owner:a},void 0,{escape:!1}):this.model.getReshareType()===OC.Share.SHARE_TYPE_ROOM?this.model.get("reshare").share_with_displayname?t("core","Shared with you and the conversation {conversation} by {owner}",{conversation:this.model.getReshareWithDisplayName(),owner:a},void 0,{escape:!1}):t("core","Shared with you in a conversation by {owner}",{owner:a},void 0,{escape:!1}):t("core","Shared with you by {owner}",{owner:a},void 0,{escape:!1}),this.$el.html(e({reshareOwner:this.model.getReshareOwner(),sharedByText:s,shareNote:n,hasShareNote:""!==n})),this.$el.find(".avatar").each(function(){var e=$(this);e.avatar(e.data("username"),32)}),this.$el.find(".reshare").contactsMenu(this.model.getReshareOwner(),OC.Share.SHARE_TYPE_USER,this.$el),this},template:function(){return OC.Share.Templates.sharedialogresharerinfoview}});OC.Share.ShareDialogResharerInfoView=e}()},function(e,a){!function(){OC.Share||(OC.Share={});var e=t("core","Choose a password for the public link"),a=t("core",'Choose a password for the public link or press the "Enter" key'),n=OC.Backbone.View.extend({id:"shareDialogLinkShare",configModel:void 0,showLink:!0,showPending:!1,password:"",newShareId:"new-share",events:{"click .share-menu .icon-more":"onToggleMenu","change .hideDownloadCheckbox":"onHideDownloadChange","click input.share-pass-submit":"onPasswordEntered","keyup input.linkPassText":"onPasswordKeyUp","change .showPasswordCheckbox":"onShowPasswordClick","change .passwordByTalkCheckbox":"onPasswordByTalkChange","change .publicEditingCheckbox":"onAllowPublicEditingChange","click .linkText":"onLinkTextClick","click .pop-up":"onPopUpClick","change .publicUploadRadio":"onPublicUploadChange","click .expireDate":"onExpireDateChange","change .datepicker":"onChangeExpirationDate","click .datepicker":"showDatePicker","click .share-add":"showNoteForm","click .share-note-delete":"deleteNote","click .share-note-submit":"updateNote","click .unshare":"onUnshare","click .new-share":"newShare","submit .enforcedPassForm":"enforcedPasswordSet"},initialize:function(e){var a=this;if(this.model.on("change:permissions",function(){a.render()}),this.model.on("change:itemType",function(){a.render()}),this.model.on("change:allowPublicUploadStatus",function(){a.render()}),this.model.on("change:hideFileListStatus",function(){a.render()}),this.model.on("change:linkShares",function(e,t){var n,s=e.previous("linkShares");if(s.length===t.length)for(n=0;n<t.length;n++){if(t[n].id!==s[n].id)return;if(t[n].password!==s[n].password)return void a.render()}}),_.isUndefined(e.configModel))throw"missing OC.Share.ShareConfigModel";this.configModel=e.configModel;var n=new Clipboard(".clipboard-button");n.on("success",function(e){var a=$(e.trigger);a.tooltip("hide").attr("data-original-title",t("core","Copied!")).tooltip("fixTitle").tooltip({placement:"bottom",trigger:"manual"}).tooltip("show"),_.delay(function(){a.tooltip("hide").attr("data-original-title",t("core","Copy link")).tooltip("fixTitle")},3e3)}),n.on("error",function(e){var a=$(e.trigger),n=a.next(".share-menu").find(".popovermenu"),s=n.find("li.linkTextMenu"),i=s.find(".linkText");a.closest("li[data-share-id]").data("share-id");OC.showMenu(null,n);var l="";l=/iPhone|iPad/i.test(navigator.userAgent)?t("core","Not supported!"):/Mac/i.test(navigator.userAgent)?t("core","Press ⌘-C to copy."):t("core","Press Ctrl-C to copy."),s.removeClass("hidden"),i.select(),i.tooltip("hide").attr("data-original-title",l).tooltip("fixTitle").tooltip({placement:"bottom",trigger:"manual"}).tooltip("show"),_.delay(function(){i.tooltip("hide"),i.attr("data-original-title",t("core","Copy")).tooltip("fixTitle")},3e3)})},newShare:function(e){var a=this,n=$(e.target).closest("li[data-share-id]"),s=n.data("share-id"),i=n.find(".share-menu > .icon-loading-small");if(!i.hasClass("hidden")&&""===this.password)return!1;n.find(".icon").addClass("hidden"),i.removeClass("hidden"),OC.hideMenus();var l={},r=this.configModel.get("enforcePasswordForPublicLink");if(this.configModel.get("isDefaultExpireDateEnforced")){var o=this.configModel.get("defaultExpireDate"),d=moment().add(o,"day").format("DD-MM-YYYY");l.expireDate=d}r&&""!==this.password&&(l.password=this.password);var h=!1;r&&!this.showPending&&""===this.password?(this.showPending=s,(a=this.render()).$el.find(".pending #enforcedPassText").focus()):$.when(this.model.saveLinkShare(l,{success:function(){if(i.addClass("hidden"),n.find(".icon").removeClass("hidden"),a.render(),h){var e=a.$el.find("li[data-share-id]"),t=a.$el.find('li[data-share-id="'+h+'"]');if(t&&1===e.length){var s=t.find(".popovermenu");OC.showMenu(null,s)}}},error:function(){}})).fail(function(e){if(a.password="",r&&e&&e.responseJSON&&e.responseJSON.ocs.meta&&e.responseJSON.ocs.meta.message){var s=a.$el.find(".pending #enforcedPassText");s.tooltip("destroy"),s.attr("title",e.responseJSON.ocs.meta.message),s.tooltip({placement:"bottom",trigger:"manual"}),s.tooltip("show")}else OC.Notification.showTemporary(t("core","Unable to create a link share")),i.addClass("hidden"),n.find(".icon").removeClass("hidden")}).then(function(e){h=e.ocs.data.id})},enforcedPasswordSet:function(e){e.preventDefault();var a=$(e.target).find("input.enforcedPassText");this.password=a.val(),this.showPending=!1,this.newShare(e)},onLinkTextClick:function(e){var a=$(e.target).closest("li[data-share-id]").find(".linkText");a.focus(),a.select()},onHideDownloadChange:function(e){var a=$(e.target).closest("li[data-share-id]"),n=a.data("share-id"),s=a.find(".hideDownloadCheckbox");s.siblings(".icon-loading-small").removeClass("hidden").addClass("inlineblock");var i=!1;s.is(":checked")&&(i=!0),this.model.saveLinkShare({hideDownload:i,cid:n},{success:function(){s.siblings(".icon-loading-small").addClass("hidden").removeClass("inlineblock")},error:function(e,a){OC.Notification.showTemporary(t("core","Unable to toggle this option")),s.siblings(".icon-loading-small").addClass("hidden").removeClass("inlineblock")}})},onShowPasswordClick:function(e){var a=$(e.target).closest("li[data-share-id]"),t=a.data("share-id");a.find(".linkPass").slideToggle(OC.menuSpeed),a.find(".linkPassMenu").toggleClass("hidden"),a.find(".showPasswordCheckbox").is(":checked")?OC.Util.isIE()||a.find(".linkPassText").focus():this.model.saveLinkShare({password:"",cid:t})},onPasswordKeyUp:function(e){13===e.keyCode&&this.onPasswordEntered(e)},onPasswordEntered:function(t){var n=$(t.target).closest("li[data-share-id]"),s=n.data("share-id"),i=n.find(".linkPassMenu .icon-loading-small");if(i.hasClass("hidden")){var l=n.find(".linkPassText");l.removeClass("error");var r=l.val();if(n.find(".linkPassText").attr("placeholder")===a)r===a&&(r="");else if(""===r||"**********"===r||r===e)return;i.removeClass("hidden").addClass("inlineblock"),this.model.saveLinkShare({password:r,cid:s},{complete:function(e){i.removeClass("inlineblock").addClass("hidden")},error:function(e,a){var t=l.parent();t.tooltip("destroy"),l.addClass("error"),t.attr("title",a),t.tooltip({placement:"bottom",trigger:"manual"}),t.tooltip("show")}})}},onPasswordByTalkChange:function(e){var a=$(e.target).closest("li[data-share-id]"),n=a.data("share-id"),s=a.find(".passwordByTalkCheckbox");s.siblings(".icon-loading-small").removeClass("hidden").addClass("inlineblock");var i=!1;s.is(":checked")&&(i=!0),this.model.saveLinkShare({sendPasswordByTalk:i,cid:n},{success:function(){s.siblings(".icon-loading-small").addClass("hidden").removeClass("inlineblock")},error:function(e,a){OC.Notification.showTemporary(t("core","Unable to toggle this option")),s.siblings(".icon-loading-small").addClass("hidden").removeClass("inlineblock")}})},onAllowPublicEditingChange:function(e){var a=$(e.target).closest("li[data-share-id]"),n=a.data("share-id"),s=a.find(".publicEditingCheckbox");s.siblings(".icon-loading-small").removeClass("hidden").addClass("inlineblock");var i=OC.PERMISSION_READ;s.is(":checked")&&(i=OC.PERMISSION_UPDATE|OC.PERMISSION_READ),this.model.saveLinkShare({permissions:i,cid:n},{success:function(){s.siblings(".icon-loading-small").addClass("hidden").removeClass("inlineblock")},error:function(e,a){OC.Notification.showTemporary(t("core","Unable to toggle this option")),s.siblings(".icon-loading-small").addClass("hidden").removeClass("inlineblock")}})},onPublicUploadChange:function(e){var a=$(e.target).closest("li[data-share-id]").data("share-id"),t=e.currentTarget.value;this.model.saveLinkShare({permissions:t,cid:a})},showNoteForm:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),t=(a.closest("li[data-share-id]"),a.closest("li")),n=t.next("li.share-note-form");t.find(".share-note-delete").toggleClass("hidden"),n.toggleClass("hidden"),n.find("textarea").focus()},deleteNote:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=a.closest("li"),s=n.next("li.share-note-form");s.find(".share-note").val(""),s.addClass("hidden"),n.find(".share-note-delete").addClass("hidden"),this.sendNote("",t,n)},updateNote:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=a.closest("li.share-note-form"),s=n.prev("li"),i=n.find(".share-note").val().trim();i.length<1||this.sendNote(i,t,s)},sendNote:function(e,a,t){var n=t.next("li.share-note-form"),s=n.find("input.share-note-submit"),i=n.find("input.share-note-error");s.prop("disabled",!0),t.find(".icon-loading-small").removeClass("hidden"),t.find(".icon-edit").hide();$.ajax({method:"PUT",url:OC.linkToOCS("apps/files_sharing/api/v1/shares",2)+a+"?"+OC.buildQueryString({format:"json"}),data:{note:e},complete:function(){s.prop("disabled",!1),t.find(".icon-loading-small").addClass("hidden"),t.find(".icon-edit").show()},error:function(){i.show(),setTimeout(function(){i.hide()},3e3)}})},render:function(){this.$el.find(".has-tooltip").tooltip(),this.password="";var n=this.template(),s=this.model.sharePermissionPossible();if(!s||!this.showLink||!this.configModel.isShareWithLinkAllowed()){var i={shareAllowed:!1};return s||(i.noSharingPlaceholder=t("core","Resharing is not allowed")),this.$el.html(n(i)),this}var l=this.model.isFolder()&&this.model.createPermissionPossible()&&this.configModel.isPublicUploadEnabled(),r="";this.model.isPublicEditingAllowed()&&(r='checked="checked"');var o=this.configModel.get("enforcePasswordForPublicLink"),d=(this.configModel.get("enableLinkPasswordByDefault"),this.configModel.get("enforcePasswordForPublicLink")?e:a),h=!this.model.isFolder()&&this.model.updatePermissionPossible(),c=this.configModel.get("isDefaultExpireDateEnforced"),u=new Date;u.setDate(u.getDate()+1),$.datepicker.setDefaults({minDate:u}),this.$el.find(".datepicker").datepicker({dateFormat:"dd-mm-yy"});var p=4;oc_capabilities.password_policy&&oc_capabilities.password_policy.minLength&&(p=oc_capabilities.password_policy.minLength);var m={urlLabel:t("core","Link"),hideDownloadLabel:t("core","Hide download"),enablePasswordLabel:o?t("core","Password protection enforced"):t("core","Password protect"),passwordLabel:t("core","Password"),passwordPlaceholderInitial:d,publicUpload:l,publicEditing:h,publicEditingChecked:r,publicEditingLabel:t("core","Allow editing"),mailPrivatePlaceholder:t("core","Email link to person"),mailButtonText:t("core","Send"),publicUploadRWLabel:t("core","Allow upload and editing"),publicUploadRLabel:t("core","Read only"),publicUploadWLabel:t("core","File drop (upload only)"),publicUploadRWValue:OC.PERMISSION_UPDATE|OC.PERMISSION_CREATE|OC.PERMISSION_READ|OC.PERMISSION_DELETE,publicUploadRValue:OC.PERMISSION_READ,publicUploadWValue:OC.PERMISSION_CREATE,expireDateLabel:c?t("core","Expiration date enforced"):t("core","Set expiration date"),expirationLabel:t("core","Expiration"),expirationDatePlaceholder:t("core","Expiration date"),isExpirationEnforced:c,isPasswordEnforced:o,defaultExpireDate:moment().add(1,"day").format("DD-MM-YYYY"),addNoteLabel:t("core","Note to recipient"),unshareLabel:t("core","Unshare"),unshareLinkLabel:t("core","Delete share link"),newShareLabel:t("core","Add another link")},f={isPasswordEnforced:o,enforcedPasswordLabel:t("core","Password protection for links is mandatory"),passwordPlaceholder:d,minPasswordLength:p},g=this.pendingPopoverMenuTemplate(_.extend({},f)),v=this.getShareeList();if(_.isArray(v))for(var S=0;S<v.length;S++){var C=[];OC.Share.Social.Collection.each(function(e){var a=e.get("url");a=a.replace("{{reference}}",v[S].shareLinkURL),C.push({url:a,label:t("core","Share to {name}",{name:e.get("name")}),name:e.get("name"),iconClass:e.get("iconClass"),newWindow:e.get("newWindow")})});var w=this.getPopoverObject(v[S]);v[S].popoverMenu=this.popoverMenuTemplate(_.extend({},m,w,{social:C})),v[S].pendingPopoverMenu=g}return this.$el.html(n({linkShares:v,shareAllowed:!0,nolinkShares:0===v.length,newShareLabel:t("core","Share link"),newShareTitle:t("core","New share link"),pendingPopoverMenu:g,showPending:this.showPending===this.newShareId,newShareId:this.newShareId})),this.delegateEvents(),autosize(this.$el.find(".share-note-form .share-note")),this},onToggleMenu:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target).closest("li[data-share-id]"),t=a.find(".sharingOptionsGroup .popovermenu");a.data("share-id");OC.showMenu(null,t);var n=!0===this.configModel.get("enableLinkPasswordByDefault");!(""!==t.find(".linkPassText").val())&&n&&t.find(".linkPassText").focus()},template:function(){return OC.Share.Templates.sharedialoglinkshareview},popoverMenuTemplate:function(e){return OC.Share.Templates.sharedialoglinkshareview_popover_menu(e)},pendingPopoverMenuTemplate:function(e){return OC.Share.Templates.sharedialoglinkshareview_popover_menu_pending(e)},onPopUpClick:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.currentTarget).data("url"),t=$(e.currentTarget).data("window");if($(e.currentTarget).tooltip("hide"),a)if(!0===t){var n=screen.width/2-300,s=screen.height/2-200;window.open(a,"name","width=600, height=400, top="+s+", left="+n)}else window.location.href=a},onExpireDateChange:function(e){var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=$("#expirationDateContainer-"+t),s=a.prop("checked");n.toggleClass("hidden",!s),s?(a.closest("li").next("li").removeClass("hidden"),this.showDatePicker(e)):(a.closest("li").next("li").addClass("hidden"),this.setExpirationDate("",t))},showDatePicker:function(e){var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=a.data("max-date"),s="#expirationDatePicker-"+t,i=this;$(s).datepicker({dateFormat:"dd-mm-yy",onSelect:function(e){i.setExpirationDate(e,t)},maxDate:n}),$(s).datepicker("show"),$(s).focus()},setExpirationDate:function(e,a){this.model.saveLinkShare({expireDate:e,cid:a})},onChangeExpirationDate:function(e){var a=$(e.target),t=a.val(),n=a.closest("li[data-share-id]").data("share-id"),s="#expirationDatePicker-"+n;this.setExpirationDate(t,n),$(s).datepicker("hide")},getShareeList:function(){var e=this.model.get("linkShares");if(!this.model.hasLinkShares())return[];for(var a=[],t=0;t<e.length;t++){var n=this.getShareeObject(t);a.push(_.extend({},n))}return a},getShareeObject:function(e){var a=this.model.get("linkShares")[e];return _.extend({},a,{cid:a.id,shareAllowed:!0,linkShareLabel:a.label?a.label:t("core","Share link"),popoverMenu:{},shareLinkURL:a.url,newShareTitle:t("core","New share link"),copyLabel:t("core","Copy link"),showPending:this.showPending===a.id,linkShareCreationDate:t("core","Created on {time}",{time:moment(1e3*a.stime).format("LLLL")})})},getPopoverObject:function(a){var n="",s="",i="";switch(this.model.linkSharePermissions(a.id)){case OC.PERMISSION_READ:s="checked";break;case OC.PERMISSION_CREATE:i="checked";break;case OC.PERMISSION_UPDATE|OC.PERMISSION_CREATE|OC.PERMISSION_READ|OC.PERMISSION_DELETE:n="checked"}var l,r=!!a.password,o=!0===this.configModel.get("enableLinkPasswordByDefault"),d=this.configModel.get("enforcePasswordForPublicLink"),h=this.configModel.get("isDefaultExpireDateEnforced"),c=this.configModel.get("defaultExpireDate"),u=!!a.expiration||h;u&&(l=moment(a.expiration,"YYYY-MM-DD").format("DD-MM-YYYY"));var p=void 0!==oc_appswebroots.spreed,m=a.sendPasswordByTalk,f=a.hideDownload,g=null;if(u&&h){var v=a.stime;_.isNumber(v)&&(v=new Date(1e3*v)),v||(v=new Date),v=OC.Util.stripTime(v).getTime(),g=new Date(v+24*c*3600*1e3)}return{cid:a.id,shareLinkURL:a.url,passwordPlaceholder:r?"**********":e,isPasswordSet:r||o||d,showPasswordByTalkCheckBox:p&&r,passwordByTalkLabel:t("core","Password protect by Talk"),isPasswordByTalkSet:m,publicUploadRWChecked:n,publicUploadRChecked:s,publicUploadWChecked:i,hasExpireDate:u,expireDate:l,shareNote:a.note,hasNote:""!==a.note,maxDate:g,hideDownload:f,isExpirationEnforced:h}},onUnshare:function(e){e.preventDefault(),e.stopPropagation();var a=this,n=$(e.target);n.is("a")||(n=n.closest("a"));var s=n.find(".icon-loading-small").eq(0);if(!s.hasClass("hidden"))return!1;s.removeClass("hidden");var i=n.closest("li[data-share-id]"),l=i.data("share-id");return a.model.removeShare(l,{success:function(){i.remove(),a.render()},error:function(){s.addClass("hidden"),OC.Notification.showTemporary(t("core","Could not unshare"))}}),!1}});OC.Share.ShareDialogLinkShareView=n}()},function(e,a){!function(){var e=t("core","Choose a password for the mail share");OC.Share||(OC.Share={});var a=OC.Backbone.View.extend({id:"shareDialogLinkShare",configModel:void 0,_menuOpen:!1,_renderPermissionChange:!1,events:{"click .unshare":"onUnshare","click .share-add":"showNoteForm","click .share-note-delete":"deleteNote","click .share-note-submit":"updateNote","click .share-menu .icon-more":"onToggleMenu","click .permissions":"onPermissionChange","click .expireDate":"onExpireDateChange","click .password":"onMailSharePasswordProtectChange","click .passwordByTalk":"onMailSharePasswordProtectByTalkChange","click .secureDrop":"onSecureDropChange","keyup input.passwordField":"onMailSharePasswordKeyUp","focusout input.passwordField":"onMailSharePasswordEntered","change .datepicker":"onChangeExpirationDate","click .datepicker":"showDatePicker"},initialize:function(e){if(_.isUndefined(e.configModel))throw"missing OC.Share.ShareConfigModel";this.configModel=e.configModel;var a=this;this.model.on("change:shares",function(){a.render()})},getShareeObject:function(a){var n=this.model.getShareWith(a),s=this.model.getShareWithDisplayName(a),i=this.model.getShareWithAvatar(a),l="",r=this.model.getShareType(a),o=this.model.getSharedBy(a),d=this.model.getSharedByDisplayName(a),h=this.model.getFileOwnerUid(a);if(r===OC.Share.SHARE_TYPE_GROUP?s=s+" ("+t("core","group")+")":r===OC.Share.SHARE_TYPE_REMOTE?s=s+" ("+t("core","remote")+")":r===OC.Share.SHARE_TYPE_REMOTE_GROUP?s=s+" ("+t("core","remote group")+")":r===OC.Share.SHARE_TYPE_EMAIL?s=s+" ("+t("core","email")+")":r===OC.Share.SHARE_TYPE_CIRCLE||r===OC.Share.SHARE_TYPE_ROOM&&(s=s+" ("+t("core","conversation")+")"),r===OC.Share.SHARE_TYPE_GROUP?l=n+" ("+t("core","group")+")":r===OC.Share.SHARE_TYPE_REMOTE?l=n+" ("+t("core","remote")+")":r===OC.Share.SHARE_TYPE_REMOTE_GROUP?l=n+" ("+t("core","remote group")+")":r===OC.Share.SHARE_TYPE_EMAIL?l=n+" ("+t("core","email")+")":r===OC.Share.SHARE_TYPE_CIRCLE&&(l=n,n="circle-"+a),o!==oc_current_user){var c=""===l;c||(l+=" ("),l+=t("core","shared by {sharer}",{sharer:d}),c||(l+=")")}var u=this.model.get("shares")[a],p=u.password,m=null!==p&&""!==p,f=u.send_password_by_talk,g=this.model.getNote(a);return _.extend({},{cid:this.cid,hasSharePermission:this.model.hasSharePermission(a),editPermissionState:this.model.editPermissionState(a),hasCreatePermission:this.model.hasCreatePermission(a),hasUpdatePermission:this.model.hasUpdatePermission(a),hasDeletePermission:this.model.hasDeletePermission(a),sharedBy:o,sharedByDisplayName:d,shareWith:n,shareWithDisplayName:s,shareWithAvatar:i,shareWithTitle:l,shareType:r,shareId:this.model.get("shares")[a].id,modSeed:i||r!==OC.Share.SHARE_TYPE_USER&&r!==OC.Share.SHARE_TYPE_CIRCLE&&r!==OC.Share.SHARE_TYPE_ROOM,owner:h,isShareWithCurrentUser:r===OC.Share.SHARE_TYPE_USER&&n===oc_current_user,canUpdateShareSettings:o===oc_current_user||h===oc_current_user,isRemoteShare:r===OC.Share.SHARE_TYPE_REMOTE,isRemoteGroupShare:r===OC.Share.SHARE_TYPE_REMOTE_GROUP,isNoteAvailable:r!==OC.Share.SHARE_TYPE_REMOTE&&r!==OC.Share.SHARE_TYPE_REMOTE_GROUP,isMailShare:r===OC.Share.SHARE_TYPE_EMAIL,isCircleShare:r===OC.Share.SHARE_TYPE_CIRCLE,isFileSharedByMail:r===OC.Share.SHARE_TYPE_EMAIL&&!this.model.isFolder(),isPasswordSet:m&&!f,isPasswordByTalkSet:m&&f,isTalkEnabled:void 0!==oc_appswebroots.spreed,secureDropMode:!this.model.hasReadPermission(a),hasExpireDate:null!==this.model.getExpireDate(a),shareNote:g,hasNote:""!==g,expireDate:moment(this.model.getExpireDate(a),"YYYY-MM-DD").format("DD-MM-YYYY"),passwordPlaceholder:m?"**********":e,passwordByTalkPlaceholder:m&&f?"**********":e})},getShareProperties:function(){return{unshareLabel:t("core","Unshare"),addNoteLabel:t("core","Note to recipient"),canShareLabel:t("core","Can reshare"),canEditLabel:t("core","Can edit"),createPermissionLabel:t("core","Can create"),updatePermissionLabel:t("core","Can change"),deletePermissionLabel:t("core","Can delete"),secureDropLabel:t("core","File drop (upload only)"),expireDateLabel:t("core","Set expiration date"),passwordLabel:t("core","Password protect"),passwordByTalkLabel:t("core","Password protect by Talk"),crudsLabel:t("core","Access control"),expirationDatePlaceholder:t("core","Expiration date"),defaultExpireDate:moment().add(1,"day").format("DD-MM-YYYY"),triangleSImage:OC.imagePath("core","actions/triangle-s"),isResharingAllowed:this.configModel.get("isResharingAllowed"),isPasswordForMailSharesRequired:this.configModel.get("isPasswordForMailSharesRequired"),sharePermissionPossible:this.model.sharePermissionPossible(),editPermissionPossible:this.model.editPermissionPossible(),createPermissionPossible:this.model.createPermissionPossible(),updatePermissionPossible:this.model.updatePermissionPossible(),deletePermissionPossible:this.model.deletePermissionPossible(),sharePermission:OC.PERMISSION_SHARE,createPermission:OC.PERMISSION_CREATE,updatePermission:OC.PERMISSION_UPDATE,deletePermission:OC.PERMISSION_DELETE,readPermission:OC.PERMISSION_READ,isFolder:this.model.isFolder()}},getShareeList:function(){var e=this.getShareProperties();if(!this.model.hasUserShares())return[];for(var a=this.model.get("shares"),t=[],n=0;n<a.length;n++){var s=this.getShareeObject(n);s.shareType!==OC.Share.SHARE_TYPE_LINK&&t.push(_.extend({},e,s))}return t},getLinkReshares:function(){var e={unshareLabel:t("core","Unshare")};if(!this.model.hasUserShares())return[];for(var a=this.model.get("shares"),n=[],s=0;s<a.length;s++){var i=this.getShareeObject(s);i.shareType===OC.Share.SHARE_TYPE_LINK&&n.push(_.extend({},e,i,{shareInitiator:a[s].uid_owner,shareInitiatorText:t("core","{shareInitiatorDisplayName} shared via link",{shareInitiatorDisplayName:a[s].displayname_owner})}))}return n},render:function(){if(this._renderPermissionChange){var e=parseInt(this._renderPermissionChange,10),a=this.model.findShareWithIndex(e),t=this.getShareeObject(a);$.extend(t,this.getShareProperties()),this.$("li[data-share-id="+e+"]").find(".sharingOptionsGroup .popovermenu").replaceWith(this.popoverMenuTemplate(t))}else this.$el.html(this.template({cid:this.cid,sharees:this.getShareeList(),linkReshares:this.getLinkReshares()})),this.$(".avatar").each(function(){var e=$(this);e.hasClass("imageplaceholderseed")?(e.css({width:32,height:32}),e.data("avatar")?(e.css("border-radius","0%"),e.css("background","url("+e.data("avatar")+") no-repeat"),e.css("background-size","31px")):e.imageplaceholder(e.data("seed"))):e.avatar(e.data("username"),32,void 0,void 0,void 0,e.data("displayname"))}),this.$(".has-tooltip").tooltip({placement:"bottom"}),this.$("ul.shareWithList > li").each(function(){var e=$(this),a=e.data("share-with"),t=e.data("share-type");e.find("div.avatar, span.username").contactsMenu(a,t,e)});var n=this;if(this.getShareeList().forEach(function(e){var a=n.$("#canEdit-"+n.cid+"-"+e.shareId);1===a.length&&(a.prop("checked","checked"===e.editPermissionState),e.isFolder&&a.prop("indeterminate","indeterminate"===e.editPermissionState))}),this.$(".popovermenu").on("afterHide",function(){n._menuOpen=!1}),this.$(".popovermenu").on("beforeHide",function(){var e=parseInt(n._menuOpen,10);if(!_.isNaN(e)){var a=".expirationDateContainer-"+n.cid+"-"+e,t="#expirationDatePicker-"+n.cid+"-"+e,s="#expireDate-"+n.cid+"-"+e;$(s).prop("checked")&&($(t).removeClass("hidden-visually"),$(a).removeClass("hasDatepicker"),$(a+" .ui-datepicker").hide())}}),!1!==this._menuOpen){var s=parseInt(this._menuOpen,10);if(!_.isNaN(s)){var i="li[data-share-id="+s+"]";OC.showMenu(null,this.$(i+" .sharingOptionsGroup .popovermenu"))}}return this._renderPermissionChange=!1,autosize(this.$el.find(".share-note-form .share-note")),this.delegateEvents(),this},template:function(e){var a=e.sharees;if(_.isArray(a))for(var t=0;t<a.length;t++)e.sharees[t].popoverMenu=this.popoverMenuTemplate(a[t]);return OC.Share.Templates.sharedialogshareelistview(e)},popoverMenuTemplate:function(e){return OC.Share.Templates.sharedialogshareelistview_popover_menu(e)},showNoteForm:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target).closest("li"),t=a.next("li.share-note-form");a.find(".share-note-delete").toggleClass("hidden"),t.toggleClass("hidden"),t.find("textarea").focus()},deleteNote:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=a.closest("li"),s=n.next("li.share-note-form");console.log(s.find(".share-note")),s.find(".share-note").val(""),s.addClass("hidden"),n.find(".share-note-delete").addClass("hidden"),this.sendNote("",t,n)},updateNote:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=a.closest("li.share-note-form"),s=n.prev("li"),i=n.find(".share-note").val().trim();i.length<1||this.sendNote(i,t,s)},sendNote:function(e,a,t){var n=t.next("li.share-note-form"),s=n.find("input.share-note-submit"),i=n.find("input.share-note-error");s.prop("disabled",!0),t.find(".icon-loading-small").removeClass("hidden"),t.find(".icon-edit").hide();$.ajax({method:"PUT",url:OC.linkToOCS("apps/files_sharing/api/v1/shares",2)+a+"?"+OC.buildQueryString({format:"json"}),data:{note:e},complete:function(){s.prop("disabled",!1),t.find(".icon-loading-small").addClass("hidden"),t.find(".icon-edit").show()},error:function(){i.show(),setTimeout(function(){i.hide()},3e3)}})},onUnshare:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target);a.is("a")||(a=a.closest("a"));var n=a.find(".icon-loading-small").eq(0);if(!n.hasClass("hidden"))return!1;n.removeClass("hidden");var s=a.closest("li[data-share-id]"),i=s.data("share-id");return this.model.removeShare(i).done(function(){s.remove()}).fail(function(){n.addClass("hidden"),OC.Notification.showTemporary(t("core","Could not unshare"))}),!1},onToggleMenu:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target).closest("li[data-share-id]"),t=a.find(".sharingOptionsGroup .popovermenu");OC.showMenu(null,t),this._menuOpen=a.data("share-id")},onExpireDateChange:function(e){var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=".expirationDateContainer-"+this.cid+"-"+t,s=$(n),i=a.prop("checked");s.toggleClass("hidden",!i),i?(a.closest("li").next("li").removeClass("hidden"),this.showDatePicker(e)):(a.closest("li").next("li").addClass("hidden"),this.setExpirationDate(t,""))},showDatePicker:function(e){var a=$(e.target).closest("li[data-share-id]").data("share-id"),t="#expirationDatePicker-"+this.cid+"-"+a,n=this;$(t).datepicker({dateFormat:"dd-mm-yy",onSelect:function(e){n.setExpirationDate(a,e)}}),$(t).focus()},setExpirationDate:function(e,a){this.model.updateShare(e,{expireDate:a},{})},onMailSharePasswordProtectChange:function(a){var t=$(a.target),n=t.closest("li[data-share-id]").data("share-id"),s=".passwordMenu-"+this.cid+"-"+n,i=$(s),l=this.$el.find(s+" .icon-loading-small"),r="#passwordField-"+this.cid+"-"+n,o=$(r),d=t.prop("checked"),h=$("#passwordByTalk-"+this.cid+"-"+n),c=h.prop("checked");if(d||c){if(d){if(c){this.model.updateShare(n,{sendPasswordByTalk:!1});var u=".passwordByTalkMenu-"+this.cid+"-"+n;$(u).addClass("hidden"),h.prop("checked",!1)}i.toggleClass("hidden",!d),o="#passwordField-"+this.cid+"-"+n,this.$(o).focus()}}else this.model.updateShare(n,{password:"",sendPasswordByTalk:!1}),o.attr("value",""),o.removeClass("error"),o.tooltip("hide"),l.addClass("hidden"),o.attr("placeholder",e),i.toggleClass("hidden",!d)},onMailSharePasswordProtectByTalkChange:function(a){var t=$(a.target),n=t.closest("li[data-share-id]").data("share-id"),s=".passwordByTalkMenu-"+this.cid+"-"+n,i=$(s),l=this.$el.find(s+" .icon-loading-small"),r="#passwordByTalkField-"+this.cid+"-"+n,o=$(r),d=t.prop("checked"),h=$("#password-"+this.cid+"-"+n),c=h.prop("checked");if(d){if(d){if(c){var u=".passwordMenu-"+this.cid+"-"+n;$(u).addClass("hidden"),h.prop("checked",!1)}i.toggleClass("hidden",!d),o="#passwordByTalkField-"+this.cid+"-"+n,this.$(o).focus()}}else this.model.updateShare(n,{password:"",sendPasswordByTalk:!1}),o.attr("value",""),o.removeClass("error"),o.tooltip("hide"),l.addClass("hidden"),o.attr("placeholder",e),i.toggleClass("hidden",!d)},onMailSharePasswordKeyUp:function(e){13===e.keyCode&&this.onMailSharePasswordEntered(e)},onMailSharePasswordEntered:function(a){var t,n=$(a.target),s=n.closest("li[data-share-id]").data("share-id"),i=".passwordMenu-"+this.cid+"-"+s,l=".passwordByTalkMenu-"+this.cid+"-"+s,r=n.attr("id").startsWith("passwordByTalk");if((t=r?this.$el.find(l+" .icon-loading-small"):this.$el.find(i+" .icon-loading-small")).hasClass("hidden")){n.removeClass("error");var o=n.val();""!==o&&"**********"!==o&&o!==e&&(t.removeClass("hidden").addClass("inlineblock"),this.model.updateShare(s,{password:o,sendPasswordByTalk:r},{error:function(e,a){n.tooltip("destroy"),t.removeClass("inlineblock").addClass("hidden"),n.addClass("error"),n.attr("title",a),n.tooltip({placement:"bottom",trigger:"manual"}),n.tooltip("show")},success:function(e,a){n.blur(),n.attr("value",""),n.attr("placeholder","**********"),t.removeClass("inlineblock").addClass("hidden")}}))}},onPermissionChange:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),n=a.closest("li[data-share-id]"),s=n.data("share-id"),i=OC.PERMISSION_READ;if(this.model.isFolder()){var l,r=$(".permissions",n).not('input[name="edit"]').not('input[name="share"]');if("edit"===a.attr("name"))l=a.is(":checked"),$(r).prop("checked",l),l&&(i|=OC.PERMISSION_CREATE|OC.PERMISSION_UPDATE|OC.PERMISSION_DELETE);else{var o=r.filter(":checked").length;l=o===r.length;var d=$('input[name="edit"]',n);d.prop("checked",l),d.prop("indeterminate",!l&&o>0)}}else"edit"===a.attr("name")&&a.is(":checked")&&(i|=OC.PERMISSION_UPDATE);$(".permissions",n).not('input[name="edit"]').filter(":checked").each(function(e,a){i|=$(a).data("permissions")}),n.find("input[type=checkbox]").prop("disabled",!0);var h=function(){n.find("input[type=checkbox]").prop("disabled",!1)};this.model.updateShare(s,{permissions:i},{error:function(e,a){OC.dialogs.alert(a,t("core","Error while sharing")),h()},success:h}),this._renderPermissionChange=s},onSecureDropChange:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),n=a.closest("li[data-share-id]"),s=n.data("share-id"),i=OC.PERMISSION_CREATE|OC.PERMISSION_UPDATE|OC.PERMISSION_DELETE|OC.PERMISSION_READ;a.is(":checked")&&(i=OC.PERMISSION_CREATE|OC.PERMISSION_UPDATE|OC.PERMISSION_DELETE),n.find("input[type=checkbox]").prop("disabled",!0);var l=function(){n.find("input[type=checkbox]").prop("disabled",!1)};this.model.updateShare(s,{permissions:i},{error:function(e,a){OC.dialogs.alert(a,t("core","Error while sharing")),l()},success:l}),this._renderPermissionChange=s}});OC.Share.ShareDialogShareeListView=a}()},function(e,a){!function(){OC.Share||(OC.Share={});var e=OC.Backbone.View.extend({_templates:{},_showLink:!0,_lookup:!1,_lookupAllowed:!1,tagName:"div",configModel:void 0,resharerInfoView:void 0,linkShareView:void 0,shareeListView:void 0,_lastSuggestions:void 0,_lastRecommendations:void 0,_pendingOperationsCount:0,events:{"focus .shareWithField":"onShareWithFieldFocus","input .shareWithField":"onShareWithFieldChanged","click .shareWithConfirm":"_confirmShare"},initialize:function(e){var a=this;if(this.model.on("fetchError",function(){OC.Notification.showTemporary(t("core","Share details could not be loaded for this item."))}),_.isUndefined(e.configModel))throw"missing OC.Share.ShareConfigModel";this.configModel=e.configModel,this.configModel.on("change:isRemoteShareAllowed",function(){a.render()}),this.configModel.on("change:isRemoteGroupShareAllowed",function(){a.render()}),this.model.on("change:permissions",function(){a.render()}),this.model.on("request",this._onRequest,this),this.model.on("sync",this._onEndRequest,this);var n={model:this.model,configModel:this.configModel},s={resharerInfoView:"ShareDialogResharerInfoView",linkShareView:"ShareDialogLinkShareView",shareeListView:"ShareDialogShareeListView"};for(var i in s){var l=s[i];this[i]=_.isUndefined(e[i])?new OC.Share[l](n):e[i]}_.bindAll(this,"autocompleteHandler","_onSelectRecipient","onShareWithFieldChanged","onShareWithFieldFocus"),OC.Plugins.attach("OC.Share.ShareDialogView",this)},onShareWithFieldChanged:function(){var e=this.$el.find(".shareWithField");e.val().length<2&&e.removeClass("error").tooltip("hide")},onShareWithFieldFocus:function(){var e=this.$el.find(".shareWithField");e.autocomplete("search",e.val())},_getSuggestions:function(e,a,n,s){if(this._lastSuggestions&&this._lastSuggestions.searchTerm===e&&this._lastSuggestions.lookup===s&&this._lastSuggestions.perPage===a&&this._lastSuggestions.model===n)return this._lastSuggestions.promise;var i=$.Deferred(),l=this;return $.get(OC.linkToOCS("apps/files_sharing/api/v1")+"sharees",{format:"json",search:e,lookup:s,perPage:a,itemType:n.get("itemType")},function(s){if(100===s.ocs.meta.statuscode){var r=function(e,a,t,s,i,l,r){var o,d,h,c,u,p,m,f,g;for(void 0===i&&(i=[]),void 0===l&&(l=[]),void 0===r&&(r=[]),o=e.length,f=0;f<o;f++)if(e[f].value.shareWith===OC.currentUser){e.splice(f,1);break}if(n.hasReshare())for(o=e.length,f=0;f<o;f++)if(e[f].value.shareWith===n.getReshareOwner()){e.splice(f,1);break}var v=n.get("shares"),S=v.length;for(f=0;f<S;f++){var C=v[f];if(C.share_type===OC.Share.SHARE_TYPE_USER){for(o=e.length,g=0;g<o;g++)if(e[g].value.shareWith===C.share_with){e.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_GROUP){for(d=a.length,g=0;g<d;g++)if(a[g].value.shareWith===C.share_with){a.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_REMOTE){for(h=t.length,g=0;g<h;g++)if(t[g].value.shareWith===C.share_with){t.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_REMOTE_GROUP){for(c=s.length,g=0;g<c;g++)if(s[g].value.shareWith===C.share_with){s.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_EMAIL){for(u=i.length,g=0;g<u;g++)if(i[g].value.shareWith===C.share_with){i.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_CIRCLE){for(p=l.length,g=0;g<p;g++)if(l[g].value.shareWith===C.share_with){l.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_ROOM)for(m=r.length,g=0;g<m;g++)if(r[g].value.shareWith===C.share_with){r.splice(g,1);break}}};r(s.ocs.data.exact.users,s.ocs.data.exact.groups,s.ocs.data.exact.remotes,s.ocs.data.exact.remote_groups,s.ocs.data.exact.emails,s.ocs.data.exact.circles,s.ocs.data.exact.rooms);var o=s.ocs.data.exact.users,d=s.ocs.data.exact.groups,h=s.ocs.data.exact.remotes,c=s.ocs.data.exact.remote_groups,u=[];void 0!==s.ocs.data.emails&&(u=s.ocs.data.exact.emails);var p=[];void 0!==s.ocs.data.circles&&(p=s.ocs.data.exact.circles);var m=[];void 0!==s.ocs.data.rooms&&(m=s.ocs.data.exact.rooms);var f=o.concat(d).concat(h).concat(c).concat(u).concat(p).concat(m);r(s.ocs.data.users,s.ocs.data.groups,s.ocs.data.remotes,s.ocs.data.remote_groups,s.ocs.data.emails,s.ocs.data.circles,s.ocs.data.rooms);var g=s.ocs.data.users,v=s.ocs.data.groups,S=s.ocs.data.remotes,C=s.ocs.data.remote_groups,w=s.ocs.data.lookup,b=s.ocs.data.lookupEnabled,P=[];void 0!==s.ocs.data.emails&&(P=s.ocs.data.emails);var _=[];void 0!==s.ocs.data.circles&&(_=s.ocs.data.circles);var E=[];void 0!==s.ocs.data.rooms&&(E=s.ocs.data.rooms);for(var k=f.concat(g).concat(v).concat(S).concat(C).concat(P).concat(_).concat(E).concat(w).sort((R="uuid",function(e,a){var t="",n="";return void 0!==e[R]&&(t=e[R]),void 0!==a[R]&&(n=a[R]),t<n?-1:t>n?1:0})),O=null,x=k.length,y=(s=[],0);y<x;y++)void 0!==k[y].uuid&&k[y].uuid===O&&(k[y].merged=!0),e!==k[y].name&&void 0!==k[y].merged||s.push(k[y]),O=k[y].uuid;var T=oc_config["sharing.maxAutocompleteResults"]>0&&Math.min(a,oc_config["sharing.maxAutocompleteResults"])<=Math.max(g.length+o.length,v.length+d.length,C.length+c.length,S.length+h.length,P.length+u.length,_.length+p.length,E.length+m.length,w.length);!l._lookup&&b&&s.push({label:t("core","Search globally"),value:{},lookup:!0}),i.resolve(s,f,T,b)}else i.reject(s.ocs.meta.message);var R}).fail(function(){i.reject()}),this._lastSuggestions={searchTerm:e,lookup:s,perPage:a,model:n,promise:i.promise()},this._lastSuggestions.promise},_getRecommendations:function(e){if(this._lastRecommendations&&this._lastRecommendations.model===e)return this._lastRecommendations.promise;var a=$.Deferred();return $.get(OC.linkToOCS("apps/files_sharing/api/v1")+"sharees_recommended",{format:"json",itemType:e.get("itemType")},function(t){if(100===t.ocs.meta.statuscode){var n=function(a,t,n,s,i,l,r){var o,d,h,c,u,p,m,f,g;for(void 0===i&&(i=[]),void 0===l&&(l=[]),void 0===r&&(r=[]),o=a.length,f=0;f<o;f++)if(a[f].value.shareWith===OC.currentUser){a.splice(f,1);break}if(e.hasReshare())for(o=a.length,f=0;f<o;f++)if(a[f].value.shareWith===e.getReshareOwner()){a.splice(f,1);break}var v=e.get("shares"),S=v.length;for(f=0;f<S;f++){var C=v[f];if(C.share_type===OC.Share.SHARE_TYPE_USER){for(o=a.length,g=0;g<o;g++)if(a[g].value.shareWith===C.share_with){a.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_GROUP){for(d=t.length,g=0;g<d;g++)if(t[g].value.shareWith===C.share_with){t.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_REMOTE){for(h=n.length,g=0;g<h;g++)if(n[g].value.shareWith===C.share_with){n.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_REMOTE_GROUP){for(c=s.length,g=0;g<c;g++)if(s[g].value.shareWith===C.share_with){s.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_EMAIL){for(u=i.length,g=0;g<u;g++)if(i[g].value.shareWith===C.share_with){i.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_CIRCLE){for(p=l.length,g=0;g<p;g++)if(l[g].value.shareWith===C.share_with){l.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_ROOM)for(m=r.length,g=0;g<m;g++)if(r[g].value.shareWith===C.share_with){r.splice(g,1);break}}};n(t.ocs.data.exact.users,t.ocs.data.exact.groups,t.ocs.data.exact.remotes,t.ocs.data.exact.remote_groups,t.ocs.data.exact.emails,t.ocs.data.exact.circles,t.ocs.data.exact.rooms);var s=t.ocs.data.exact.users,i=t.ocs.data.exact.groups,l=t.ocs.data.exact.remotes||[],r=t.ocs.data.exact.remote_groups||[],o=[];void 0!==t.ocs.data.emails&&(o=t.ocs.data.exact.emails);var d=[];void 0!==t.ocs.data.circles&&(d=t.ocs.data.exact.circles);var h=[];void 0!==t.ocs.data.rooms&&(h=t.ocs.data.exact.rooms);var c=s.concat(i).concat(l).concat(r).concat(o).concat(d).concat(h);n(t.ocs.data.users,t.ocs.data.groups,t.ocs.data.remotes,t.ocs.data.remote_groups,t.ocs.data.emails,t.ocs.data.circles,t.ocs.data.rooms);var u=t.ocs.data.users,p=t.ocs.data.groups,m=t.ocs.data.remotes||[],f=t.ocs.data.remote_groups||[],g=t.ocs.data.lookup||[],v=[];void 0!==t.ocs.data.emails&&(v=t.ocs.data.emails);var S=[];void 0!==t.ocs.data.circles&&(S=t.ocs.data.circles);var C=[];void 0!==t.ocs.data.rooms&&(C=t.ocs.data.rooms);for(var w=c.concat(u).concat(p).concat(m).concat(f).concat(v).concat(S).concat(C).concat(g).sort((k="uuid",function(e,a){var t="",n="";return void 0!==e[k]&&(t=e[k]),void 0!==a[k]&&(n=a[k]),t<n?-1:t>n?1:0})),b=null,P=w.length,_=(t=[],0);_<P;_++)void 0!==w[_].uuid&&w[_].uuid===b&&(w[_].merged=!0),void 0===w[_].merged&&t.push(w[_]),b=w[_].uuid;var E=oc_config["sharing.maxAutocompleteResults"]>0&&Math.min(perPage,oc_config["sharing.maxAutocompleteResults"])<=Math.max(u.length+s.length,p.length+i.length,f.length+r.length,m.length+l.length,v.length+o.length,S.length+d.length,C.length+h.length,g.length);a.resolve(t,c,E)}else a.reject(t.ocs.meta.message);var k}).fail(function(){a.reject()}),this._lastRecommendations={model:e,promise:a.promise()},this._lastRecommendations.promise},recommendationHandler:function(e){var a=$(".shareWithField");this._getRecommendations(this.model).done(function(t){console.info("recommendations",t),t.length>0?(a.autocomplete("option","autoFocus",!0),e(t)):(console.info("no sharing recommendations found"),e())}).fail(function(e){console.error("could not load recommendations",e)})},autocompleteHandler:function(e,a){if(0===e.term.length)return console.info(e.term,"empty search term -> using recommendations"),void this.recommendationHandler(a);var s=$(".shareWithField"),i=this,l=this.$el.find(".shareWithLoading"),r=this.$el.find(".shareWithConfirm"),o=oc_config["sharing.minSearchStringLength"];if(e.term.trim().length<o){var d=n("core","At least {count} character is needed for autocompletion","At least {count} characters are needed for autocompletion",o,{count:o});return s.addClass("error").attr("data-original-title",d).tooltip("hide").tooltip({placement:"bottom",trigger:"manual"}).tooltip("fixTitle").tooltip("show"),void a()}l.removeClass("hidden"),l.addClass("inlineblock"),r.addClass("hidden"),this._pendingOperationsCount++,s.removeClass("error").tooltip("hide");var h=parseInt(oc_config["sharing.maxAutocompleteResults"],10)||200;this._getSuggestions(e.term.trim(),h,i.model,i._lookup).done(function(e,n,o){if(i._pendingOperationsCount--,0===i._pendingOperationsCount&&(l.addClass("hidden"),l.removeClass("inlineblock"),r.removeClass("hidden")),e.length>0){if(s.autocomplete("option","autoFocus",!0),a(e),o){var d=t("core","This list is maybe truncated - please refine your search term to see more results.");$(".ui-autocomplete").append('<li class="autocomplete-note">'+d+"</li>")}}else{var h=t("core","No users or groups found for {search}",{search:s.val()});i.configModel.get("allowGroupSharing")||(h=t("core","No users found for {search}",{search:$(".shareWithField").val()})),s.addClass("error").attr("data-original-title",h).tooltip("hide").tooltip({placement:"top",trigger:"manual"}).tooltip("fixTitle").tooltip("show"),a()}}).fail(function(e){i._pendingOperationsCount--,0===i._pendingOperationsCount&&(l.addClass("hidden"),l.removeClass("inlineblock"),r.removeClass("hidden")),e?OC.Notification.showTemporary(t("core",'An error occurred ("{message}"). Please try again',{message:e})):OC.Notification.showTemporary(t("core","An error occurred. Please try again"))})},autocompleteRenderItem:function(e,a){var n="icon-user",s=escapeHTML(a.label),i="",l="";void 0!==a.type&&null!==a.type&&(l=function(e){switch(e){case"HOME":return t("core","Home");case"WORK":return t("core","Work");case"OTHER":return t("core","Other");default:return""+e}}(a.type)+" "),void 0!==a.name&&(s=escapeHTML(a.name)),a.value.shareType===OC.Share.SHARE_TYPE_GROUP?n="icon-contacts-dark":a.value.shareType===OC.Share.SHARE_TYPE_REMOTE?(n="icon-shared",i+=a.value.shareWith):a.value.shareType===OC.Share.SHARE_TYPE_REMOTE_GROUP?(s=t("core","{sharee} (remote group)",{sharee:s},void 0,{escape:!1}),n="icon-shared",i+=a.value.shareWith):a.value.shareType===OC.Share.SHARE_TYPE_EMAIL?(n="icon-mail",i+=a.value.shareWith):a.value.shareType===OC.Share.SHARE_TYPE_CIRCLE?(s=t("core","{sharee} ({type}, {owner})",{sharee:s,type:a.value.circleInfo,owner:a.value.circleOwner},void 0,{escape:!1}),n="icon-circle"):a.value.shareType===OC.Share.SHARE_TYPE_ROOM&&(n="icon-talk");var r=$("<div class='share-autocomplete-item'/>");if(a.merged)r.addClass("merged"),s=a.value.shareWith,i=l;else if(a.lookup)s=a.label,n=!1,r.append('<span class="icon icon-search search-globally"></span>');else{var o=$("<div class='avatardiv'></div>").appendTo(r);a.value.shareType===OC.Share.SHARE_TYPE_USER||a.value.shareType===OC.Share.SHARE_TYPE_CIRCLE?o.avatar(a.value.shareWith,32,void 0,void 0,void 0,a.label):(void 0===a.uuid&&(a.uuid=s),o.imageplaceholder(a.uuid,s,32)),i=l+i}return""!==i&&r.addClass("with-description"),$("<div class='autocomplete-item-text'></div>").html(s.replace(new RegExp(this.term,"gi"),"<span class='ui-state-highlight'>$&</span>")+'<span class="autocomplete-item-details">'+i+"</span>").appendTo(r),r.attr("title",a.value.shareWith),n&&r.append('<span class="icon '+n+'" title="'+s+'"></span>'),r=$("<a>").append(r),$("<li>").addClass(a.value.shareType===OC.Share.SHARE_TYPE_GROUP?"group":"user").append(r).appendTo(e)},_onSelectRecipient:function(e,a){var t=this;if(9==e.keyCode)return e.preventDefault(),void 0!==a.item.name?e.target.value=a.item.name:e.target.value=a.item.label,setTimeout(function(){$(e.target).attr("disabled",!1).autocomplete("search",$(e.target).val())},0),!1;if(a.item.lookup){this._lookup=!0;var n=this.$el.find(".shareWithField"),s=n.val();return setTimeout(function(){console.debug("searching again, but globally. search term: "+s),n.autocomplete("search",s)},0),!1}e.preventDefault(),e.stopImmediatePropagation(),$(e.target).attr("disabled",!0).val(a.item.label);var i=this.$el.find(".shareWithLoading"),l=this.$el.find(".shareWithConfirm");i.removeClass("hidden"),i.addClass("inlineblock"),l.addClass("hidden"),this._pendingOperationsCount++,this.model.addShare(a.item.value,{success:function(){t._lastSuggestions=void 0,$(e.target).val("").attr("disabled",!1),t._pendingOperationsCount--,0===t._pendingOperationsCount&&(i.addClass("hidden"),i.removeClass("inlineblock"),l.removeClass("hidden"))},error:function(a,n){OC.Notification.showTemporary(n),$(e.target).attr("disabled",!1).autocomplete("search",$(e.target).val()),t._pendingOperationsCount--,0===t._pendingOperationsCount&&(i.addClass("hidden"),i.removeClass("inlineblock"),l.removeClass("hidden"))}})},_confirmShare:function(){var e=this,a=$(".shareWithField"),t=this.$el.find(".shareWithLoading"),n=this.$el.find(".shareWithConfirm");t.removeClass("hidden"),t.addClass("inlineblock"),n.addClass("hidden"),this._pendingOperationsCount++,a.prop("disabled",!0),a.autocomplete("close"),a.autocomplete("disable");var s=function(){e._pendingOperationsCount--,0===e._pendingOperationsCount&&(t.addClass("hidden"),t.removeClass("inlineblock"),n.removeClass("hidden")),a.prop("disabled",!1),a.focus()},i=parseInt(oc_config["sharing.maxAutocompleteResults"],10)||200;this._getSuggestions(a.val(),i,this.model,this._lookup).done(function(t,n){if(0===t.length)return s(),void a.autocomplete("enable");if(1!==n.length)return s(),void a.autocomplete("enable");e.model.addShare(n[0].value,{success:function(){e._lastSuggestions=void 0,a.val(""),s(),a.autocomplete("enable")},error:function(e,t){s(),a.autocomplete("enable"),OC.Notification.showTemporary(t)}})}).fail(function(e){s(),a.autocomplete("enable")})},_toggleLoading:function(e){this._loading=e,this.$el.find(".subView").toggleClass("hidden",e),this.$el.find(".loading").toggleClass("hidden",!e)},_onRequest:function(){this._loadingOnce||this._toggleLoading(!0)},_onEndRequest:function(){var e=this;this._toggleLoading(!1),this._loadingOnce||(this._loadingOnce=!0,OC.Util.isIE()||_.defer(function(){e.$(".shareWithField").focus()}))},render:function(){var e=this,a=OC.Share.Templates.sharedialogview;this.$el.html(a({cid:this.cid,shareLabel:t("core","Share"),sharePlaceholder:this._renderSharePlaceholderPart(),isSharingAllowed:this.model.sharePermissionPossible()}));var n=this.$el.find(".shareWithField");if(n.length){n.autocomplete({minLength:0,delay:750,focus:function(e){e.preventDefault()},source:this.autocompleteHandler,select:this._onSelectRecipient,open:function(){var e=$(this).autocomplete("widget"),a=e.find("li").size();e.removeClass("item-count-1"),e.removeClass("item-count-2"),a<=2&&e.addClass("item-count-"+a)}}).data("ui-autocomplete")._renderItem=this.autocompleteRenderItem,n.on("keydown",null,function(a){return 13!==a.keyCode||(e._confirmShare(),!1)})}return this.resharerInfoView.$el=this.$el.find(".resharerInfoView"),this.resharerInfoView.render(),this.linkShareView.$el=this.$el.find(".linkShareView"),this.linkShareView.render(),this.shareeListView.$el=this.$el.find(".shareeListView"),this.shareeListView.render(),this.$el.find(".hasTooltip").tooltip(),this},setShowLink:function(e){this._showLink="boolean"!=typeof e||e,this.linkShareView.showLink=this._showLink},_renderSharePlaceholderPart:function(){var e=this.configModel.get("isRemoteShareAllowed"),a=this.configModel.get("isMailShareAllowed");return!e&&a?t("core","Name or email address..."):e&&!a?t("core","Name or federated cloud ID..."):e&&a?t("core","Name, federated cloud ID or email address..."):t("core","Name...")}});OC.Share.ShareDialogView=e}()},function(e,a){OC.Share=_.extend(OC.Share||{},{SHARE_TYPE_USER:0,SHARE_TYPE_GROUP:1,SHARE_TYPE_LINK:3,SHARE_TYPE_EMAIL:4,SHARE_TYPE_REMOTE:6,SHARE_TYPE_CIRCLE:7,SHARE_TYPE_GUEST:8,SHARE_TYPE_REMOTE_GROUP:9,SHARE_TYPE_ROOM:10,_REMOTE_OWNER_REGEXP:new RegExp("^([^@]*)@(([^@]*)@)?([^/]*)([/](.*)?)?$"),itemShares:[],statuses:{},currentShares:{},droppedDown:!1,loadIcons:function(e,a,t){var n=a.dirInfo.path;"/"===n&&(n=""),n+="/"+a.dirInfo.name,$.get(OC.linkToOCS("apps/files_sharing/api/v1",2)+"shares",{subfiles:"true",path:n,format:"json"},function(n){n&&200===n.ocs.meta.statuscode&&(OC.Share.statuses={},$.each(n.ocs.data,function(e,a){a.item_source in OC.Share.statuses||(OC.Share.statuses[a.item_source]={link:!1}),a.share_type===OC.Share.SHARE_TYPE_LINK&&(OC.Share.statuses[a.item_source]={link:!0})}),_.isFunction(t)?t(OC.Share.statuses):OC.Share.updateIcons(e,a))})},updateIcons:function(e,a){var n,s,i;for(n in!a&&OCA.Files&&(a=OCA.Files.App.fileList),a&&(s=a.$fileList,i=a.getCurrentDirectory()),OC.Share.statuses){var l="icon-shared",r=OC.Share.statuses[n],o=r.link;if(o&&(l="icon-public"),"file"!==e&&"folder"!==e)$('a.share[data-item="'+n+'"] .icon').removeClass("icon-shared icon-public").addClass(l);else{var d,h=s.find('tr[data-id="'+n+'"]'),c=OC.imagePath("core","filetypes/folder-shared");if(h.length>0)this.markFileAsShared(h,!0,o);else{var u=i;if(u.length>1)for(var p="",m=u;m!=p;){if(m===r.path&&!r.link){var f,g=s.find('.fileactions .action[data-action="Share"]'),v=s.find(".filename");for(f=0;f<g.length;f++)(d=$(g[f]).find("img")).attr("src")!==OC.imagePath("core","actions/public")&&(d.attr("src",image),$(g[f]).addClass("permanent"),$(g[f]).html("<span> "+t("core","Shared")+"</span>").prepend(d));for(f=0;f<v.length;f++)"dir"===$(v[f]).closest("tr").data("type")&&$(v[f]).find(".thumbnail").css("background-image","url("+c+")")}p=m,m=OC.Share.dirname(m)}}}}},updateIcon:function(e,a){var t=!1,n=!1,s="";if($.each(OC.Share.itemShares,function(e){if(OC.Share.itemShares[e])if(e==OC.Share.SHARE_TYPE_LINK){if(1==OC.Share.itemShares[e])return t=!0,s="icon-public",void(n=!0)}else OC.Share.itemShares[e].length>0&&(t=!0,s="icon-shared")}),"file"!=e&&"folder"!=e)$('a.share[data-item="'+a+'"] .icon').removeClass("icon-shared icon-public").addClass(s);else{var i=$("tr").filterAttr("data-id",String(a));i.length>0&&i.each(function(){OC.Share.markFileAsShared($(this),t,n)})}t?(OC.Share.statuses[a]=OC.Share.statuses[a]||{},OC.Share.statuses[a].link=n):delete OC.Share.statuses[a]},_formatRemoteShare:function(e,a,t){var n=this._REMOTE_OWNER_REGEXP.exec(e);if(!n)return'<span class="avatar" data-username="'+escapeHTML(e)+'" title="'+t+" "+escapeHTML(a)+'"></span>'+('<span class="hidden-visually">'+t+" "+escapeHTML(a)+"</span> ");var s=n[1],i=n[3],l=n[4],r=t+" "+s;i&&(r+="@"+i),l&&(i||(i="…"),r+="@"+l);var o='<span class="remoteAddress" title="'+escapeHTML(r)+'">';return o+='<span class="username">'+escapeHTML(s)+"</span>",i&&(o+='<span class="userDomain">@'+escapeHTML(i)+"</span>"),o+="</span> "},_formatShareList:function(e){var a=this;return(e=_.toArray(e)).sort(function(e,a){return e.shareWithDisplayName.localeCompare(a.shareWithDisplayName)}),$.map(e,function(e){return a._formatRemoteShare(e.shareWith,e.shareWithDisplayName,t("core","Shared with"))})},markFileAsShared:function(e,a,n){var s,i,l,r,o=e.find('.fileactions .action[data-action="Share"]'),d=e.data("type"),h=o.find(".icon"),c=e.attr("data-share-owner-id"),u=e.attr("data-share-owner"),p="icon-shared";if(o.removeClass("shared-style"),"dir"===d&&(a||n||c))r=n?OC.MimeType.getIconUrl("dir-public"):OC.MimeType.getIconUrl("dir-shared"),e.find(".filename .thumbnail").css("background-image","url("+r+")"),e.attr("data-icon",r);else if("dir"===d){var m=e.attr("data-e2eencrypted"),f=e.attr("data-mounttype");"true"===m?(r=OC.MimeType.getIconUrl("dir-encrypted"),e.attr("data-icon",r)):f&&0===f.indexOf("external")?(r=OC.MimeType.getIconUrl("dir-external"),e.attr("data-icon",r)):(r=OC.MimeType.getIconUrl("dir"),e.removeAttr("data-icon")),e.find(".filename .thumbnail").css("background-image","url("+r+")")}a||c?(i=e.data("share-recipient-data"),o.addClass("shared-style"),l="<span>"+t("core","Shared")+"</span>",c?(s=t("core","Shared by"),l=this._formatRemoteShare(c,u,s)):i&&(l=this._formatShareList(i)),o.html(l).prepend(h),(c||i)&&(o.find(".avatar").each(function(){$(this).avatar($(this).data("username"),32)}),o.find("span[title]").tooltip({placement:"top"}))):o.html('<span class="hidden-visually">'+t("core","Shared")+"</span>").prepend(h);n&&(p="icon-public"),h.removeClass("icon-shared icon-public").addClass(p)},showDropDown:function(e,a,t,n,s,i){var l=new OC.Share.ShareConfigModel,r={itemType:e,itemSource:a,possiblePermissions:s},o=new OC.Share.ShareItemModel(r,{configModel:l}),d=new OC.Share.ShareDialogView({id:"dropdown",model:o,configModel:l,className:"drop shareDropDown",attributes:{"data-item-source-name":i,"data-item-type":e,"data-item-source":a}});d.setShowLink(n);var h=d.render().$el;h.appendTo(t),h.slideDown(OC.menuSpeed,function(){OC.Share.droppedDown=!0}),o.fetch()},hideDropDown:function(e){OC.Share.currentShares=null,$("#dropdown").slideUp(OC.menuSpeed,function(){OC.Share.droppedDown=!1,$("#dropdown").remove(),"undefined"!=typeof FileActions&&$("tr").removeClass("mouseOver"),e&&e.call()})},dirname:function(e){return e.replace(/\\/g,"/").replace(/\/[^\/]*$/,"")}}),$(document).ready(function(){if("undefined"!=typeof monthNames){var e=new Date;e.setDate(e.getDate()+1),$.datepicker.setDefaults({monthNames:monthNames,monthNamesShort:monthNamesShort,dayNames:dayNames,dayNamesMin:dayNamesMin,dayNamesShort:dayNamesShort,firstDay:firstDay,minDate:e})}$(this).click(function(e){var a=$(e.target),t=!a.is(".drop, .ui-datepicker-next, .ui-datepicker-prev, .ui-icon")&&!a.closest("#ui-datepicker-div").length&&!a.closest(".ui-autocomplete").length;OC.Share&&OC.Share.droppedDown&&t&&0===$("#dropdown").has(e.target).length&&OC.Share.hideDropDown()})})}]);
+!function(){OC.Share||(OC.Share={}),OC.Share.Social={};var e=OC.Backbone.Model.extend({defaults:{key:null,url:null,name:null,iconClass:null,newWindow:!0}});OC.Share.Social.Model=e;var a=OC.Backbone.Collection.extend({model:OC.Share.Social.Model,comparator:"key"});OC.Share.Social.Collection=new a}()},function(e,a){!function(){OC.Share||(OC.Share={});var e=OC.Backbone.View.extend({id:"shareDialogResharerInfo",tagName:"div",className:"reshare",configModel:void 0,_template:void 0,initialize:function(e){var a=this;if(this.model.on("change:reshare",function(){a.render()}),_.isUndefined(e.configModel))throw"missing OC.Share.ShareConfigModel";this.configModel=e.configModel},render:function(){if(!this.model.hasReshare()||this.model.getReshareOwner()===OC.currentUser)return this.$el.empty(),this;var e=this.template(),a=this.model.getReshareOwnerDisplayname(),n=this.model.getReshareNote(),s="";return s=this.model.getReshareType()===OC.Share.SHARE_TYPE_GROUP?t("core","Shared with you and the group {group} by {owner}",{group:this.model.getReshareWithDisplayName(),owner:a},void 0,{escape:!1}):this.model.getReshareType()===OC.Share.SHARE_TYPE_CIRCLE?t("core","Shared with you and {circle} by {owner}",{circle:this.model.getReshareWithDisplayName(),owner:a},void 0,{escape:!1}):this.model.getReshareType()===OC.Share.SHARE_TYPE_ROOM?this.model.get("reshare").share_with_displayname?t("core","Shared with you and the conversation {conversation} by {owner}",{conversation:this.model.getReshareWithDisplayName(),owner:a},void 0,{escape:!1}):t("core","Shared with you in a conversation by {owner}",{owner:a},void 0,{escape:!1}):t("core","Shared with you by {owner}",{owner:a},void 0,{escape:!1}),this.$el.html(e({reshareOwner:this.model.getReshareOwner(),sharedByText:s,shareNote:n,hasShareNote:""!==n})),this.$el.find(".avatar").each(function(){var e=$(this);e.avatar(e.data("username"),32)}),this.$el.find(".reshare").contactsMenu(this.model.getReshareOwner(),OC.Share.SHARE_TYPE_USER,this.$el),this},template:function(){return OC.Share.Templates.sharedialogresharerinfoview}});OC.Share.ShareDialogResharerInfoView=e}()},function(e,a){!function(){OC.Share||(OC.Share={});var e=t("core","Choose a password for the public link"),a=t("core",'Choose a password for the public link or press the "Enter" key'),n=OC.Backbone.View.extend({id:"shareDialogLinkShare",configModel:void 0,showLink:!0,showPending:!1,password:"",newShareId:"new-share",events:{"click .share-menu .icon-more":"onToggleMenu","change .hideDownloadCheckbox":"onHideDownloadChange","click input.share-pass-submit":"onPasswordEntered","keyup input.linkPassText":"onPasswordKeyUp","change .showPasswordCheckbox":"onShowPasswordClick","change .passwordByTalkCheckbox":"onPasswordByTalkChange","change .publicEditingCheckbox":"onAllowPublicEditingChange","click .linkText":"onLinkTextClick","click .pop-up":"onPopUpClick","change .publicUploadRadio":"onPublicUploadChange","click .expireDate":"onExpireDateChange","change .datepicker":"onChangeExpirationDate","click .datepicker":"showDatePicker","click .share-add":"showNoteForm","click .share-note-delete":"deleteNote","click .share-note-submit":"updateNote","click .unshare":"onUnshare","click .new-share":"newShare","submit .enforcedPassForm":"enforcedPasswordSet"},initialize:function(e){var a=this;if(this.model.on("change:permissions",function(){a.render()}),this.model.on("change:itemType",function(){a.render()}),this.model.on("change:allowPublicUploadStatus",function(){a.render()}),this.model.on("change:hideFileListStatus",function(){a.render()}),this.model.on("change:linkShares",function(e,t){var n,s=e.previous("linkShares");if(s.length===t.length)for(n=0;n<t.length;n++){if(t[n].id!==s[n].id)return;if(t[n].password!==s[n].password)return void a.render()}}),_.isUndefined(e.configModel))throw"missing OC.Share.ShareConfigModel";this.configModel=e.configModel;var n=new Clipboard(".clipboard-button");n.on("success",function(e){var a=$(e.trigger);a.tooltip("hide").attr("data-original-title",t("core","Copied!")).tooltip("fixTitle").tooltip({placement:"bottom",trigger:"manual"}).tooltip("show"),_.delay(function(){a.tooltip("hide").attr("data-original-title",t("core","Copy link")).tooltip("fixTitle")},3e3)}),n.on("error",function(e){var a=$(e.trigger),n=a.next(".share-menu").find(".popovermenu"),s=n.find("li.linkTextMenu"),i=s.find(".linkText");a.closest("li[data-share-id]").data("share-id");OC.showMenu(null,n);var l="";l=/iPhone|iPad/i.test(navigator.userAgent)?t("core","Not supported!"):/Mac/i.test(navigator.userAgent)?t("core","Press ⌘-C to copy."):t("core","Press Ctrl-C to copy."),s.removeClass("hidden"),i.select(),i.tooltip("hide").attr("data-original-title",l).tooltip("fixTitle").tooltip({placement:"bottom",trigger:"manual"}).tooltip("show"),_.delay(function(){i.tooltip("hide"),i.attr("data-original-title",t("core","Copy")).tooltip("fixTitle")},3e3)})},newShare:function(e){var a=this,n=$(e.target).closest("li[data-share-id]"),s=n.data("share-id"),i=n.find(".share-menu > .icon-loading-small");if(!i.hasClass("hidden")&&""===this.password)return!1;n.find(".icon").addClass("hidden"),i.removeClass("hidden"),OC.hideMenus();var l={},r=this.configModel.get("enforcePasswordForPublicLink");if(this.configModel.get("isDefaultExpireDateEnforced")){var o=this.configModel.get("defaultExpireDate"),d=moment().add(o,"day").format("DD-MM-YYYY");l.expireDate=d}r&&""!==this.password&&(l.password=this.password);var h=!1;r&&!this.showPending&&""===this.password?(this.showPending=s,(a=this.render()).$el.find(".pending #enforcedPassText").focus()):$.when(this.model.saveLinkShare(l,{success:function(){if(i.addClass("hidden"),n.find(".icon").removeClass("hidden"),a.render(),h){var e=a.$el.find("li[data-share-id]"),t=a.$el.find('li[data-share-id="'+h+'"]');if(t&&1===e.length){var s=t.find(".popovermenu");OC.showMenu(null,s)}}},error:function(){}})).fail(function(e){if(a.password="",r&&e&&e.responseJSON&&e.responseJSON.ocs.meta&&e.responseJSON.ocs.meta.message){var s=a.$el.find(".pending #enforcedPassText");s.tooltip("destroy"),s.attr("title",e.responseJSON.ocs.meta.message),s.tooltip({placement:"bottom",trigger:"manual"}),s.tooltip("show")}else OC.Notification.showTemporary(t("core","Unable to create a link share")),i.addClass("hidden"),n.find(".icon").removeClass("hidden")}).then(function(e){h=e.ocs.data.id})},enforcedPasswordSet:function(e){e.preventDefault();var a=$(e.target).find("input.enforcedPassText");this.password=a.val(),this.showPending=!1,this.newShare(e)},onLinkTextClick:function(e){var a=$(e.target).closest("li[data-share-id]").find(".linkText");a.focus(),a.select()},onHideDownloadChange:function(e){var a=$(e.target).closest("li[data-share-id]"),n=a.data("share-id"),s=a.find(".hideDownloadCheckbox");s.siblings(".icon-loading-small").removeClass("hidden").addClass("inlineblock");var i=!1;s.is(":checked")&&(i=!0),this.model.saveLinkShare({hideDownload:i,cid:n},{success:function(){s.siblings(".icon-loading-small").addClass("hidden").removeClass("inlineblock")},error:function(e,a){OC.Notification.showTemporary(t("core","Unable to toggle this option")),s.siblings(".icon-loading-small").addClass("hidden").removeClass("inlineblock")}})},onShowPasswordClick:function(e){var a=$(e.target).closest("li[data-share-id]"),t=a.data("share-id");a.find(".linkPass").slideToggle(OC.menuSpeed),a.find(".linkPassMenu").toggleClass("hidden"),a.find(".showPasswordCheckbox").is(":checked")?OC.Util.isIE()||a.find(".linkPassText").focus():this.model.saveLinkShare({password:"",cid:t})},onPasswordKeyUp:function(e){13===e.keyCode&&this.onPasswordEntered(e)},onPasswordEntered:function(t){var n=$(t.target).closest("li[data-share-id]"),s=n.data("share-id"),i=n.find(".linkPassMenu .icon-loading-small");if(i.hasClass("hidden")){var l=n.find(".linkPassText");l.removeClass("error"),l.parent().find("input").removeClass("error");var r=l.val();if(n.find(".linkPassText").attr("placeholder")===a)r===a&&(r="");else if(""===r||"**********"===r||r===e)return;i.removeClass("hidden").addClass("inlineblock"),this.model.saveLinkShare({password:r,cid:s},{complete:function(e){i.removeClass("inlineblock").addClass("hidden")},error:function(e,a){l.parent().find("input").addClass("error");var t=l.parent();t.tooltip("destroy"),l.addClass("error"),t.attr("title",a),t.tooltip({placement:"bottom",trigger:"manual"}),t.tooltip("show")}})}},onPasswordByTalkChange:function(e){var a=$(e.target).closest("li[data-share-id]"),n=a.data("share-id"),s=a.find(".passwordByTalkCheckbox");s.siblings(".icon-loading-small").removeClass("hidden").addClass("inlineblock");var i=!1;s.is(":checked")&&(i=!0),this.model.saveLinkShare({sendPasswordByTalk:i,cid:n},{success:function(){s.siblings(".icon-loading-small").addClass("hidden").removeClass("inlineblock")},error:function(e,a){OC.Notification.showTemporary(t("core","Unable to toggle this option")),s.siblings(".icon-loading-small").addClass("hidden").removeClass("inlineblock")}})},onAllowPublicEditingChange:function(e){var a=$(e.target).closest("li[data-share-id]"),n=a.data("share-id"),s=a.find(".publicEditingCheckbox");s.siblings(".icon-loading-small").removeClass("hidden").addClass("inlineblock");var i=OC.PERMISSION_READ;s.is(":checked")&&(i=OC.PERMISSION_UPDATE|OC.PERMISSION_READ),this.model.saveLinkShare({permissions:i,cid:n},{success:function(){s.siblings(".icon-loading-small").addClass("hidden").removeClass("inlineblock")},error:function(e,a){OC.Notification.showTemporary(t("core","Unable to toggle this option")),s.siblings(".icon-loading-small").addClass("hidden").removeClass("inlineblock")}})},onPublicUploadChange:function(e){var a=$(e.target).closest("li[data-share-id]").data("share-id"),t=e.currentTarget.value;this.model.saveLinkShare({permissions:t,cid:a})},showNoteForm:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),t=(a.closest("li[data-share-id]"),a.closest("li")),n=t.next("li.share-note-form");t.find(".share-note-delete").toggleClass("hidden"),n.toggleClass("hidden"),n.find("textarea").focus()},deleteNote:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=a.closest("li"),s=n.next("li.share-note-form");s.find(".share-note").val(""),s.addClass("hidden"),n.find(".share-note-delete").addClass("hidden"),this.sendNote("",t,n)},updateNote:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=a.closest("li.share-note-form"),s=n.prev("li"),i=n.find(".share-note").val().trim();i.length<1||this.sendNote(i,t,s)},sendNote:function(e,a,t){var n=t.next("li.share-note-form"),s=n.find("input.share-note-submit"),i=n.find("input.share-note-error");s.prop("disabled",!0),t.find(".icon-loading-small").removeClass("hidden"),t.find(".icon-edit").hide();$.ajax({method:"PUT",url:OC.linkToOCS("apps/files_sharing/api/v1/shares",2)+a+"?"+OC.buildQueryString({format:"json"}),data:{note:e},complete:function(){s.prop("disabled",!1),t.find(".icon-loading-small").addClass("hidden"),t.find(".icon-edit").show()},error:function(){i.show(),setTimeout(function(){i.hide()},3e3)}})},render:function(){this.$el.find(".has-tooltip").tooltip(),this.password="";var n=this.template(),s=this.model.sharePermissionPossible();if(!s||!this.showLink||!this.configModel.isShareWithLinkAllowed()){var i={shareAllowed:!1};return s||(i.noSharingPlaceholder=t("core","Resharing is not allowed")),this.$el.html(n(i)),this}var l=this.model.isFolder()&&this.model.createPermissionPossible()&&this.configModel.isPublicUploadEnabled(),r="";this.model.isPublicEditingAllowed()&&(r='checked="checked"');var o=this.configModel.get("enforcePasswordForPublicLink"),d=(this.configModel.get("enableLinkPasswordByDefault"),this.configModel.get("enforcePasswordForPublicLink")?e:a),h=!this.model.isFolder()&&this.model.updatePermissionPossible(),c=this.configModel.get("isDefaultExpireDateEnforced"),u=new Date;u.setDate(u.getDate()+1),$.datepicker.setDefaults({minDate:u}),this.$el.find(".datepicker").datepicker({dateFormat:"dd-mm-yy"});var p=4;oc_capabilities.password_policy&&oc_capabilities.password_policy.minLength&&(p=oc_capabilities.password_policy.minLength);var m={urlLabel:t("core","Link"),hideDownloadLabel:t("core","Hide download"),enablePasswordLabel:o?t("core","Password protection enforced"):t("core","Password protect"),passwordLabel:t("core","Password"),passwordPlaceholderInitial:d,publicUpload:l,publicEditing:h,publicEditingChecked:r,publicEditingLabel:t("core","Allow editing"),mailPrivatePlaceholder:t("core","Email link to person"),mailButtonText:t("core","Send"),publicUploadRWLabel:t("core","Allow upload and editing"),publicUploadRLabel:t("core","Read only"),publicUploadWLabel:t("core","File drop (upload only)"),publicUploadRWValue:OC.PERMISSION_UPDATE|OC.PERMISSION_CREATE|OC.PERMISSION_READ|OC.PERMISSION_DELETE,publicUploadRValue:OC.PERMISSION_READ,publicUploadWValue:OC.PERMISSION_CREATE,expireDateLabel:c?t("core","Expiration date enforced"):t("core","Set expiration date"),expirationLabel:t("core","Expiration"),expirationDatePlaceholder:t("core","Expiration date"),isExpirationEnforced:c,isPasswordEnforced:o,defaultExpireDate:moment().add(1,"day").format("DD-MM-YYYY"),addNoteLabel:t("core","Note to recipient"),unshareLabel:t("core","Unshare"),unshareLinkLabel:t("core","Delete share link"),newShareLabel:t("core","Add another link")},f={isPasswordEnforced:o,enforcedPasswordLabel:t("core","Password protection for links is mandatory"),passwordPlaceholder:d,minPasswordLength:p},g=this.pendingPopoverMenuTemplate(_.extend({},f)),v=this.getShareeList();if(_.isArray(v))for(var S=0;S<v.length;S++){var C=[];OC.Share.Social.Collection.each(function(e){var a=e.get("url");a=a.replace("{{reference}}",v[S].shareLinkURL),C.push({url:a,label:t("core","Share to {name}",{name:e.get("name")}),name:e.get("name"),iconClass:e.get("iconClass"),newWindow:e.get("newWindow")})});var w=this.getPopoverObject(v[S]);v[S].popoverMenu=this.popoverMenuTemplate(_.extend({},m,w,{social:C})),v[S].pendingPopoverMenu=g}return this.$el.html(n({linkShares:v,shareAllowed:!0,nolinkShares:0===v.length,newShareLabel:t("core","Share link"),newShareTitle:t("core","New share link"),pendingPopoverMenu:g,showPending:this.showPending===this.newShareId,newShareId:this.newShareId})),this.delegateEvents(),autosize(this.$el.find(".share-note-form .share-note")),this},onToggleMenu:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target).closest("li[data-share-id]"),t=a.find(".sharingOptionsGroup .popovermenu");a.data("share-id");OC.showMenu(null,t);var n=!0===this.configModel.get("enableLinkPasswordByDefault");!(""!==t.find(".linkPassText").val())&&n&&t.find(".linkPassText").focus()},template:function(){return OC.Share.Templates.sharedialoglinkshareview},popoverMenuTemplate:function(e){return OC.Share.Templates.sharedialoglinkshareview_popover_menu(e)},pendingPopoverMenuTemplate:function(e){return OC.Share.Templates.sharedialoglinkshareview_popover_menu_pending(e)},onPopUpClick:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.currentTarget).data("url"),t=$(e.currentTarget).data("window");if($(e.currentTarget).tooltip("hide"),a)if(!0===t){var n=screen.width/2-300,s=screen.height/2-200;window.open(a,"name","width=600, height=400, top="+s+", left="+n)}else window.location.href=a},onExpireDateChange:function(e){var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=$("#expirationDateContainer-"+t),s=a.prop("checked");n.toggleClass("hidden",!s),s?(a.closest("li").next("li").removeClass("hidden"),this.showDatePicker(e)):(a.closest("li").next("li").addClass("hidden"),this.setExpirationDate("",t))},showDatePicker:function(e){var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=a.data("max-date"),s="#expirationDatePicker-"+t,i=this;$(s).datepicker({dateFormat:"dd-mm-yy",onSelect:function(e){i.setExpirationDate(e,t)},maxDate:n}),$(s).datepicker("show"),$(s).focus()},setExpirationDate:function(e,a){this.model.saveLinkShare({expireDate:e,cid:a})},onChangeExpirationDate:function(e){var a=$(e.target),t=a.val(),n=a.closest("li[data-share-id]").data("share-id"),s="#expirationDatePicker-"+n;this.setExpirationDate(t,n),$(s).datepicker("hide")},getShareeList:function(){var e=this.model.get("linkShares");if(!this.model.hasLinkShares())return[];for(var a=[],t=0;t<e.length;t++){var n=this.getShareeObject(t);a.push(_.extend({},n))}return a},getShareeObject:function(e){var a=this.model.get("linkShares")[e];return _.extend({},a,{cid:a.id,shareAllowed:!0,linkShareLabel:a.label?a.label:t("core","Share link"),popoverMenu:{},shareLinkURL:a.url,newShareTitle:t("core","New share link"),copyLabel:t("core","Copy link"),showPending:this.showPending===a.id,linkShareCreationDate:t("core","Created on {time}",{time:moment(1e3*a.stime).format("LLLL")})})},getPopoverObject:function(a){var n="",s="",i="";switch(this.model.linkSharePermissions(a.id)){case OC.PERMISSION_READ:s="checked";break;case OC.PERMISSION_CREATE:i="checked";break;case OC.PERMISSION_UPDATE|OC.PERMISSION_CREATE|OC.PERMISSION_READ|OC.PERMISSION_DELETE:n="checked"}var l,r=!!a.password,o=!0===this.configModel.get("enableLinkPasswordByDefault"),d=this.configModel.get("enforcePasswordForPublicLink"),h=this.configModel.get("isDefaultExpireDateEnforced"),c=this.configModel.get("defaultExpireDate"),u=!!a.expiration||h;u&&(l=moment(a.expiration,"YYYY-MM-DD").format("DD-MM-YYYY"));var p=void 0!==oc_appswebroots.spreed,m=a.sendPasswordByTalk,f=a.hideDownload,g=null;if(u&&h){var v=a.stime;_.isNumber(v)&&(v=new Date(1e3*v)),v||(v=new Date),v=OC.Util.stripTime(v).getTime(),g=new Date(v+24*c*3600*1e3)}return{cid:a.id,shareLinkURL:a.url,passwordPlaceholder:r?"**********":e,isPasswordSet:r||o||d,showPasswordByTalkCheckBox:p&&r,passwordByTalkLabel:t("core","Password protect by Talk"),isPasswordByTalkSet:m,publicUploadRWChecked:n,publicUploadRChecked:s,publicUploadWChecked:i,hasExpireDate:u,expireDate:l,shareNote:a.note,hasNote:""!==a.note,maxDate:g,hideDownload:f,isExpirationEnforced:h}},onUnshare:function(e){e.preventDefault(),e.stopPropagation();var a=this,n=$(e.target);n.is("a")||(n=n.closest("a"));var s=n.find(".icon-loading-small").eq(0);if(!s.hasClass("hidden"))return!1;s.removeClass("hidden");var i=n.closest("li[data-share-id]"),l=i.data("share-id");return a.model.removeShare(l,{success:function(){i.remove(),a.render()},error:function(){s.addClass("hidden"),OC.Notification.showTemporary(t("core","Could not unshare"))}}),!1}});OC.Share.ShareDialogLinkShareView=n}()},function(e,a){!function(){var e=t("core","Choose a password for the mail share");OC.Share||(OC.Share={});var a=OC.Backbone.View.extend({id:"shareDialogLinkShare",configModel:void 0,_menuOpen:!1,_renderPermissionChange:!1,events:{"click .unshare":"onUnshare","click .share-add":"showNoteForm","click .share-note-delete":"deleteNote","click .share-note-submit":"updateNote","click .share-menu .icon-more":"onToggleMenu","click .permissions":"onPermissionChange","click .expireDate":"onExpireDateChange","click .password":"onMailSharePasswordProtectChange","click .passwordByTalk":"onMailSharePasswordProtectByTalkChange","click .secureDrop":"onSecureDropChange","keyup input.passwordField":"onMailSharePasswordKeyUp","focusout input.passwordField":"onMailSharePasswordEntered","change .datepicker":"onChangeExpirationDate","click .datepicker":"showDatePicker"},initialize:function(e){if(_.isUndefined(e.configModel))throw"missing OC.Share.ShareConfigModel";this.configModel=e.configModel;var a=this;this.model.on("change:shares",function(){a.render()})},getShareeObject:function(a){var n=this.model.getShareWith(a),s=this.model.getShareWithDisplayName(a),i=this.model.getShareWithAvatar(a),l="",r=this.model.getShareType(a),o=this.model.getSharedBy(a),d=this.model.getSharedByDisplayName(a),h=this.model.getFileOwnerUid(a);if(r===OC.Share.SHARE_TYPE_GROUP?s=s+" ("+t("core","group")+")":r===OC.Share.SHARE_TYPE_REMOTE?s=s+" ("+t("core","remote")+")":r===OC.Share.SHARE_TYPE_REMOTE_GROUP?s=s+" ("+t("core","remote group")+")":r===OC.Share.SHARE_TYPE_EMAIL?s=s+" ("+t("core","email")+")":r===OC.Share.SHARE_TYPE_CIRCLE||r===OC.Share.SHARE_TYPE_ROOM&&(s=s+" ("+t("core","conversation")+")"),r===OC.Share.SHARE_TYPE_GROUP?l=n+" ("+t("core","group")+")":r===OC.Share.SHARE_TYPE_REMOTE?l=n+" ("+t("core","remote")+")":r===OC.Share.SHARE_TYPE_REMOTE_GROUP?l=n+" ("+t("core","remote group")+")":r===OC.Share.SHARE_TYPE_EMAIL?l=n+" ("+t("core","email")+")":r===OC.Share.SHARE_TYPE_CIRCLE&&(l=n,n="circle-"+a),o!==oc_current_user){var c=""===l;c||(l+=" ("),l+=t("core","shared by {sharer}",{sharer:d}),c||(l+=")")}var u=this.model.get("shares")[a],p=u.password,m=null!==p&&""!==p,f=u.send_password_by_talk,g=this.model.getNote(a);return _.extend({},{cid:this.cid,hasSharePermission:this.model.hasSharePermission(a),editPermissionState:this.model.editPermissionState(a),hasCreatePermission:this.model.hasCreatePermission(a),hasUpdatePermission:this.model.hasUpdatePermission(a),hasDeletePermission:this.model.hasDeletePermission(a),sharedBy:o,sharedByDisplayName:d,shareWith:n,shareWithDisplayName:s,shareWithAvatar:i,shareWithTitle:l,shareType:r,shareId:this.model.get("shares")[a].id,modSeed:i||r!==OC.Share.SHARE_TYPE_USER&&r!==OC.Share.SHARE_TYPE_CIRCLE&&r!==OC.Share.SHARE_TYPE_ROOM,owner:h,isShareWithCurrentUser:r===OC.Share.SHARE_TYPE_USER&&n===oc_current_user,canUpdateShareSettings:o===oc_current_user||h===oc_current_user,isRemoteShare:r===OC.Share.SHARE_TYPE_REMOTE,isRemoteGroupShare:r===OC.Share.SHARE_TYPE_REMOTE_GROUP,isNoteAvailable:r!==OC.Share.SHARE_TYPE_REMOTE&&r!==OC.Share.SHARE_TYPE_REMOTE_GROUP,isMailShare:r===OC.Share.SHARE_TYPE_EMAIL,isCircleShare:r===OC.Share.SHARE_TYPE_CIRCLE,isFileSharedByMail:r===OC.Share.SHARE_TYPE_EMAIL&&!this.model.isFolder(),isPasswordSet:m&&!f,isPasswordByTalkSet:m&&f,isTalkEnabled:void 0!==oc_appswebroots.spreed,secureDropMode:!this.model.hasReadPermission(a),hasExpireDate:null!==this.model.getExpireDate(a),shareNote:g,hasNote:""!==g,expireDate:moment(this.model.getExpireDate(a),"YYYY-MM-DD").format("DD-MM-YYYY"),passwordPlaceholder:m?"**********":e,passwordByTalkPlaceholder:m&&f?"**********":e})},getShareProperties:function(){return{unshareLabel:t("core","Unshare"),addNoteLabel:t("core","Note to recipient"),canShareLabel:t("core","Can reshare"),canEditLabel:t("core","Can edit"),createPermissionLabel:t("core","Can create"),updatePermissionLabel:t("core","Can change"),deletePermissionLabel:t("core","Can delete"),secureDropLabel:t("core","File drop (upload only)"),expireDateLabel:t("core","Set expiration date"),passwordLabel:t("core","Password protect"),passwordByTalkLabel:t("core","Password protect by Talk"),crudsLabel:t("core","Access control"),expirationDatePlaceholder:t("core","Expiration date"),defaultExpireDate:moment().add(1,"day").format("DD-MM-YYYY"),triangleSImage:OC.imagePath("core","actions/triangle-s"),isResharingAllowed:this.configModel.get("isResharingAllowed"),isPasswordForMailSharesRequired:this.configModel.get("isPasswordForMailSharesRequired"),sharePermissionPossible:this.model.sharePermissionPossible(),editPermissionPossible:this.model.editPermissionPossible(),createPermissionPossible:this.model.createPermissionPossible(),updatePermissionPossible:this.model.updatePermissionPossible(),deletePermissionPossible:this.model.deletePermissionPossible(),sharePermission:OC.PERMISSION_SHARE,createPermission:OC.PERMISSION_CREATE,updatePermission:OC.PERMISSION_UPDATE,deletePermission:OC.PERMISSION_DELETE,readPermission:OC.PERMISSION_READ,isFolder:this.model.isFolder()}},getShareeList:function(){var e=this.getShareProperties();if(!this.model.hasUserShares())return[];for(var a=this.model.get("shares"),t=[],n=0;n<a.length;n++){var s=this.getShareeObject(n);s.shareType!==OC.Share.SHARE_TYPE_LINK&&t.push(_.extend({},e,s))}return t},getLinkReshares:function(){var e={unshareLabel:t("core","Unshare")};if(!this.model.hasUserShares())return[];for(var a=this.model.get("shares"),n=[],s=0;s<a.length;s++){var i=this.getShareeObject(s);i.shareType===OC.Share.SHARE_TYPE_LINK&&n.push(_.extend({},e,i,{shareInitiator:a[s].uid_owner,shareInitiatorText:t("core","{shareInitiatorDisplayName} shared via link",{shareInitiatorDisplayName:a[s].displayname_owner})}))}return n},render:function(){if(this._renderPermissionChange){var e=parseInt(this._renderPermissionChange,10),a=this.model.findShareWithIndex(e),t=this.getShareeObject(a);$.extend(t,this.getShareProperties()),this.$("li[data-share-id="+e+"]").find(".sharingOptionsGroup .popovermenu").replaceWith(this.popoverMenuTemplate(t))}else this.$el.html(this.template({cid:this.cid,sharees:this.getShareeList(),linkReshares:this.getLinkReshares()})),this.$(".avatar").each(function(){var e=$(this);e.hasClass("imageplaceholderseed")?(e.css({width:32,height:32}),e.data("avatar")?(e.css("border-radius","0%"),e.css("background","url("+e.data("avatar")+") no-repeat"),e.css("background-size","31px")):e.imageplaceholder(e.data("seed"))):e.avatar(e.data("username"),32,void 0,void 0,void 0,e.data("displayname"))}),this.$(".has-tooltip").tooltip({placement:"bottom"}),this.$("ul.shareWithList > li").each(function(){var e=$(this),a=e.data("share-with"),t=e.data("share-type");e.find("div.avatar, span.username").contactsMenu(a,t,e)});var n=this;if(this.getShareeList().forEach(function(e){var a=n.$("#canEdit-"+n.cid+"-"+e.shareId);1===a.length&&(a.prop("checked","checked"===e.editPermissionState),e.isFolder&&a.prop("indeterminate","indeterminate"===e.editPermissionState))}),this.$(".popovermenu").on("afterHide",function(){n._menuOpen=!1}),this.$(".popovermenu").on("beforeHide",function(){var e=parseInt(n._menuOpen,10);if(!_.isNaN(e)){var a=".expirationDateContainer-"+n.cid+"-"+e,t="#expirationDatePicker-"+n.cid+"-"+e,s="#expireDate-"+n.cid+"-"+e;$(s).prop("checked")&&($(t).removeClass("hidden-visually"),$(a).removeClass("hasDatepicker"),$(a+" .ui-datepicker").hide())}}),!1!==this._menuOpen){var s=parseInt(this._menuOpen,10);if(!_.isNaN(s)){var i="li[data-share-id="+s+"]";OC.showMenu(null,this.$(i+" .sharingOptionsGroup .popovermenu"))}}return this._renderPermissionChange=!1,autosize(this.$el.find(".share-note-form .share-note")),this.delegateEvents(),this},template:function(e){var a=e.sharees;if(_.isArray(a))for(var t=0;t<a.length;t++)e.sharees[t].popoverMenu=this.popoverMenuTemplate(a[t]);return OC.Share.Templates.sharedialogshareelistview(e)},popoverMenuTemplate:function(e){return OC.Share.Templates.sharedialogshareelistview_popover_menu(e)},showNoteForm:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target).closest("li"),t=a.next("li.share-note-form");a.find(".share-note-delete").toggleClass("hidden"),t.toggleClass("hidden"),t.find("textarea").focus()},deleteNote:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=a.closest("li"),s=n.next("li.share-note-form");console.log(s.find(".share-note")),s.find(".share-note").val(""),s.addClass("hidden"),n.find(".share-note-delete").addClass("hidden"),this.sendNote("",t,n)},updateNote:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=a.closest("li.share-note-form"),s=n.prev("li"),i=n.find(".share-note").val().trim();i.length<1||this.sendNote(i,t,s)},sendNote:function(e,a,t){var n=t.next("li.share-note-form"),s=n.find("input.share-note-submit"),i=n.find("input.share-note-error");s.prop("disabled",!0),t.find(".icon-loading-small").removeClass("hidden"),t.find(".icon-edit").hide();$.ajax({method:"PUT",url:OC.linkToOCS("apps/files_sharing/api/v1/shares",2)+a+"?"+OC.buildQueryString({format:"json"}),data:{note:e},complete:function(){s.prop("disabled",!1),t.find(".icon-loading-small").addClass("hidden"),t.find(".icon-edit").show()},error:function(){i.show(),setTimeout(function(){i.hide()},3e3)}})},onUnshare:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target);a.is("a")||(a=a.closest("a"));var n=a.find(".icon-loading-small").eq(0);if(!n.hasClass("hidden"))return!1;n.removeClass("hidden");var s=a.closest("li[data-share-id]"),i=s.data("share-id");return this.model.removeShare(i).done(function(){s.remove()}).fail(function(){n.addClass("hidden"),OC.Notification.showTemporary(t("core","Could not unshare"))}),!1},onToggleMenu:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target).closest("li[data-share-id]"),t=a.find(".sharingOptionsGroup .popovermenu");OC.showMenu(null,t),this._menuOpen=a.data("share-id")},onExpireDateChange:function(e){var a=$(e.target),t=a.closest("li[data-share-id]").data("share-id"),n=".expirationDateContainer-"+this.cid+"-"+t,s=$(n),i=a.prop("checked");s.toggleClass("hidden",!i),i?(a.closest("li").next("li").removeClass("hidden"),this.showDatePicker(e)):(a.closest("li").next("li").addClass("hidden"),this.setExpirationDate(t,""))},showDatePicker:function(e){var a=$(e.target).closest("li[data-share-id]").data("share-id"),t="#expirationDatePicker-"+this.cid+"-"+a,n=this;$(t).datepicker({dateFormat:"dd-mm-yy",onSelect:function(e){n.setExpirationDate(a,e)}}),$(t).focus()},setExpirationDate:function(e,a){this.model.updateShare(e,{expireDate:a},{})},onMailSharePasswordProtectChange:function(a){var t=$(a.target),n=t.closest("li[data-share-id]").data("share-id"),s=".passwordMenu-"+this.cid+"-"+n,i=$(s),l=this.$el.find(s+" .icon-loading-small"),r="#passwordField-"+this.cid+"-"+n,o=$(r),d=t.prop("checked"),h=$("#passwordByTalk-"+this.cid+"-"+n),c=h.prop("checked");if(d||c){if(d){if(c){this.model.updateShare(n,{sendPasswordByTalk:!1});var u=".passwordByTalkMenu-"+this.cid+"-"+n;$(u).addClass("hidden"),h.prop("checked",!1)}i.toggleClass("hidden",!d),o="#passwordField-"+this.cid+"-"+n,this.$(o).focus()}}else this.model.updateShare(n,{password:"",sendPasswordByTalk:!1}),o.attr("value",""),o.removeClass("error"),o.tooltip("hide"),l.addClass("hidden"),o.attr("placeholder",e),i.toggleClass("hidden",!d)},onMailSharePasswordProtectByTalkChange:function(a){var t=$(a.target),n=t.closest("li[data-share-id]").data("share-id"),s=".passwordByTalkMenu-"+this.cid+"-"+n,i=$(s),l=this.$el.find(s+" .icon-loading-small"),r="#passwordByTalkField-"+this.cid+"-"+n,o=$(r),d=t.prop("checked"),h=$("#password-"+this.cid+"-"+n),c=h.prop("checked");if(d){if(d){if(c){var u=".passwordMenu-"+this.cid+"-"+n;$(u).addClass("hidden"),h.prop("checked",!1)}i.toggleClass("hidden",!d),o="#passwordByTalkField-"+this.cid+"-"+n,this.$(o).focus()}}else this.model.updateShare(n,{password:"",sendPasswordByTalk:!1}),o.attr("value",""),o.removeClass("error"),o.tooltip("hide"),l.addClass("hidden"),o.attr("placeholder",e),i.toggleClass("hidden",!d)},onMailSharePasswordKeyUp:function(e){13===e.keyCode&&this.onMailSharePasswordEntered(e)},onMailSharePasswordEntered:function(a){var t,n=$(a.target),s=n.closest("li[data-share-id]").data("share-id"),i=".passwordMenu-"+this.cid+"-"+s,l=".passwordByTalkMenu-"+this.cid+"-"+s,r=n.attr("id").startsWith("passwordByTalk");if((t=r?this.$el.find(l+" .icon-loading-small"):this.$el.find(i+" .icon-loading-small")).hasClass("hidden")){n.removeClass("error");var o=n.val();""!==o&&"**********"!==o&&o!==e&&(t.removeClass("hidden").addClass("inlineblock"),this.model.updateShare(s,{password:o,sendPasswordByTalk:r},{error:function(e,a){n.tooltip("destroy"),t.removeClass("inlineblock").addClass("hidden"),n.addClass("error"),n.attr("title",a),n.tooltip({placement:"bottom",trigger:"manual"}),n.tooltip("show")},success:function(e,a){n.blur(),n.attr("value",""),n.attr("placeholder","**********"),t.removeClass("inlineblock").addClass("hidden")}}))}},onPermissionChange:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),n=a.closest("li[data-share-id]"),s=n.data("share-id"),i=OC.PERMISSION_READ;if(this.model.isFolder()){var l,r=$(".permissions",n).not('input[name="edit"]').not('input[name="share"]');if("edit"===a.attr("name"))l=a.is(":checked"),$(r).prop("checked",l),l&&(i|=OC.PERMISSION_CREATE|OC.PERMISSION_UPDATE|OC.PERMISSION_DELETE);else{var o=r.filter(":checked").length;l=o===r.length;var d=$('input[name="edit"]',n);d.prop("checked",l),d.prop("indeterminate",!l&&o>0)}}else"edit"===a.attr("name")&&a.is(":checked")&&(i|=OC.PERMISSION_UPDATE);$(".permissions",n).not('input[name="edit"]').filter(":checked").each(function(e,a){i|=$(a).data("permissions")}),n.find("input[type=checkbox]").prop("disabled",!0);var h=function(){n.find("input[type=checkbox]").prop("disabled",!1)};this.model.updateShare(s,{permissions:i},{error:function(e,a){OC.dialogs.alert(a,t("core","Error while sharing")),h()},success:h}),this._renderPermissionChange=s},onSecureDropChange:function(e){e.preventDefault(),e.stopPropagation();var a=$(e.target),n=a.closest("li[data-share-id]"),s=n.data("share-id"),i=OC.PERMISSION_CREATE|OC.PERMISSION_UPDATE|OC.PERMISSION_DELETE|OC.PERMISSION_READ;a.is(":checked")&&(i=OC.PERMISSION_CREATE|OC.PERMISSION_UPDATE|OC.PERMISSION_DELETE),n.find("input[type=checkbox]").prop("disabled",!0);var l=function(){n.find("input[type=checkbox]").prop("disabled",!1)};this.model.updateShare(s,{permissions:i},{error:function(e,a){OC.dialogs.alert(a,t("core","Error while sharing")),l()},success:l}),this._renderPermissionChange=s}});OC.Share.ShareDialogShareeListView=a}()},function(e,a){!function(){OC.Share||(OC.Share={});var e=OC.Backbone.View.extend({_templates:{},_showLink:!0,_lookup:!1,_lookupAllowed:!1,tagName:"div",configModel:void 0,resharerInfoView:void 0,linkShareView:void 0,shareeListView:void 0,_lastSuggestions:void 0,_lastRecommendations:void 0,_pendingOperationsCount:0,events:{"focus .shareWithField":"onShareWithFieldFocus","input .shareWithField":"onShareWithFieldChanged","click .shareWithConfirm":"_confirmShare"},initialize:function(e){var a=this;if(this.model.on("fetchError",function(){OC.Notification.showTemporary(t("core","Share details could not be loaded for this item."))}),_.isUndefined(e.configModel))throw"missing OC.Share.ShareConfigModel";this.configModel=e.configModel,this.configModel.on("change:isRemoteShareAllowed",function(){a.render()}),this.configModel.on("change:isRemoteGroupShareAllowed",function(){a.render()}),this.model.on("change:permissions",function(){a.render()}),this.model.on("request",this._onRequest,this),this.model.on("sync",this._onEndRequest,this);var n={model:this.model,configModel:this.configModel},s={resharerInfoView:"ShareDialogResharerInfoView",linkShareView:"ShareDialogLinkShareView",shareeListView:"ShareDialogShareeListView"};for(var i in s){var l=s[i];this[i]=_.isUndefined(e[i])?new OC.Share[l](n):e[i]}_.bindAll(this,"autocompleteHandler","_onSelectRecipient","onShareWithFieldChanged","onShareWithFieldFocus"),OC.Plugins.attach("OC.Share.ShareDialogView",this)},onShareWithFieldChanged:function(){var e=this.$el.find(".shareWithField");e.val().length<2&&e.removeClass("error").tooltip("hide")},onShareWithFieldFocus:function(){var e=this.$el.find(".shareWithField");e.autocomplete("search",e.val())},_getSuggestions:function(e,a,n,s){if(this._lastSuggestions&&this._lastSuggestions.searchTerm===e&&this._lastSuggestions.lookup===s&&this._lastSuggestions.perPage===a&&this._lastSuggestions.model===n)return this._lastSuggestions.promise;var i=$.Deferred(),l=this;return $.get(OC.linkToOCS("apps/files_sharing/api/v1")+"sharees",{format:"json",search:e,lookup:s,perPage:a,itemType:n.get("itemType")},function(s){if(100===s.ocs.meta.statuscode){var r=function(e,a,t,s,i,l,r){var o,d,h,c,u,p,m,f,g;for(void 0===i&&(i=[]),void 0===l&&(l=[]),void 0===r&&(r=[]),o=e.length,f=0;f<o;f++)if(e[f].value.shareWith===OC.currentUser){e.splice(f,1);break}if(n.hasReshare())for(o=e.length,f=0;f<o;f++)if(e[f].value.shareWith===n.getReshareOwner()){e.splice(f,1);break}var v=n.get("shares"),S=v.length;for(f=0;f<S;f++){var C=v[f];if(C.share_type===OC.Share.SHARE_TYPE_USER){for(o=e.length,g=0;g<o;g++)if(e[g].value.shareWith===C.share_with){e.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_GROUP){for(d=a.length,g=0;g<d;g++)if(a[g].value.shareWith===C.share_with){a.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_REMOTE){for(h=t.length,g=0;g<h;g++)if(t[g].value.shareWith===C.share_with){t.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_REMOTE_GROUP){for(c=s.length,g=0;g<c;g++)if(s[g].value.shareWith===C.share_with){s.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_EMAIL){for(u=i.length,g=0;g<u;g++)if(i[g].value.shareWith===C.share_with){i.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_CIRCLE){for(p=l.length,g=0;g<p;g++)if(l[g].value.shareWith===C.share_with){l.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_ROOM)for(m=r.length,g=0;g<m;g++)if(r[g].value.shareWith===C.share_with){r.splice(g,1);break}}};r(s.ocs.data.exact.users,s.ocs.data.exact.groups,s.ocs.data.exact.remotes,s.ocs.data.exact.remote_groups,s.ocs.data.exact.emails,s.ocs.data.exact.circles,s.ocs.data.exact.rooms);var o=s.ocs.data.exact.users,d=s.ocs.data.exact.groups,h=s.ocs.data.exact.remotes,c=s.ocs.data.exact.remote_groups,u=[];void 0!==s.ocs.data.emails&&(u=s.ocs.data.exact.emails);var p=[];void 0!==s.ocs.data.circles&&(p=s.ocs.data.exact.circles);var m=[];void 0!==s.ocs.data.rooms&&(m=s.ocs.data.exact.rooms);var f=o.concat(d).concat(h).concat(c).concat(u).concat(p).concat(m);r(s.ocs.data.users,s.ocs.data.groups,s.ocs.data.remotes,s.ocs.data.remote_groups,s.ocs.data.emails,s.ocs.data.circles,s.ocs.data.rooms);var g=s.ocs.data.users,v=s.ocs.data.groups,S=s.ocs.data.remotes,C=s.ocs.data.remote_groups,w=s.ocs.data.lookup,b=s.ocs.data.lookupEnabled,P=[];void 0!==s.ocs.data.emails&&(P=s.ocs.data.emails);var _=[];void 0!==s.ocs.data.circles&&(_=s.ocs.data.circles);var E=[];void 0!==s.ocs.data.rooms&&(E=s.ocs.data.rooms);for(var k=f.concat(g).concat(v).concat(S).concat(C).concat(P).concat(_).concat(E).concat(w).sort((R="uuid",function(e,a){var t="",n="";return void 0!==e[R]&&(t=e[R]),void 0!==a[R]&&(n=a[R]),t<n?-1:t>n?1:0})),O=null,x=k.length,y=(s=[],0);y<x;y++)void 0!==k[y].uuid&&k[y].uuid===O&&(k[y].merged=!0),e!==k[y].name&&void 0!==k[y].merged||s.push(k[y]),O=k[y].uuid;var T=oc_config["sharing.maxAutocompleteResults"]>0&&Math.min(a,oc_config["sharing.maxAutocompleteResults"])<=Math.max(g.length+o.length,v.length+d.length,C.length+c.length,S.length+h.length,P.length+u.length,_.length+p.length,E.length+m.length,w.length);!l._lookup&&b&&s.push({label:t("core","Search globally"),value:{},lookup:!0}),i.resolve(s,f,T,b)}else i.reject(s.ocs.meta.message);var R}).fail(function(){i.reject()}),this._lastSuggestions={searchTerm:e,lookup:s,perPage:a,model:n,promise:i.promise()},this._lastSuggestions.promise},_getRecommendations:function(e){if(this._lastRecommendations&&this._lastRecommendations.model===e)return this._lastRecommendations.promise;var a=$.Deferred();return $.get(OC.linkToOCS("apps/files_sharing/api/v1")+"sharees_recommended",{format:"json",itemType:e.get("itemType")},function(t){if(100===t.ocs.meta.statuscode){var n=function(a,t,n,s,i,l,r){var o,d,h,c,u,p,m,f,g;for(void 0===i&&(i=[]),void 0===l&&(l=[]),void 0===r&&(r=[]),o=a.length,f=0;f<o;f++)if(a[f].value.shareWith===OC.currentUser){a.splice(f,1);break}if(e.hasReshare())for(o=a.length,f=0;f<o;f++)if(a[f].value.shareWith===e.getReshareOwner()){a.splice(f,1);break}var v=e.get("shares"),S=v.length;for(f=0;f<S;f++){var C=v[f];if(C.share_type===OC.Share.SHARE_TYPE_USER){for(o=a.length,g=0;g<o;g++)if(a[g].value.shareWith===C.share_with){a.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_GROUP){for(d=t.length,g=0;g<d;g++)if(t[g].value.shareWith===C.share_with){t.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_REMOTE){for(h=n.length,g=0;g<h;g++)if(n[g].value.shareWith===C.share_with){n.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_REMOTE_GROUP){for(c=s.length,g=0;g<c;g++)if(s[g].value.shareWith===C.share_with){s.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_EMAIL){for(u=i.length,g=0;g<u;g++)if(i[g].value.shareWith===C.share_with){i.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_CIRCLE){for(p=l.length,g=0;g<p;g++)if(l[g].value.shareWith===C.share_with){l.splice(g,1);break}}else if(C.share_type===OC.Share.SHARE_TYPE_ROOM)for(m=r.length,g=0;g<m;g++)if(r[g].value.shareWith===C.share_with){r.splice(g,1);break}}};n(t.ocs.data.exact.users,t.ocs.data.exact.groups,t.ocs.data.exact.remotes,t.ocs.data.exact.remote_groups,t.ocs.data.exact.emails,t.ocs.data.exact.circles,t.ocs.data.exact.rooms);var s=t.ocs.data.exact.users,i=t.ocs.data.exact.groups,l=t.ocs.data.exact.remotes||[],r=t.ocs.data.exact.remote_groups||[],o=[];void 0!==t.ocs.data.emails&&(o=t.ocs.data.exact.emails);var d=[];void 0!==t.ocs.data.circles&&(d=t.ocs.data.exact.circles);var h=[];void 0!==t.ocs.data.rooms&&(h=t.ocs.data.exact.rooms);var c=s.concat(i).concat(l).concat(r).concat(o).concat(d).concat(h);n(t.ocs.data.users,t.ocs.data.groups,t.ocs.data.remotes,t.ocs.data.remote_groups,t.ocs.data.emails,t.ocs.data.circles,t.ocs.data.rooms);var u=t.ocs.data.users,p=t.ocs.data.groups,m=t.ocs.data.remotes||[],f=t.ocs.data.remote_groups||[],g=t.ocs.data.lookup||[],v=[];void 0!==t.ocs.data.emails&&(v=t.ocs.data.emails);var S=[];void 0!==t.ocs.data.circles&&(S=t.ocs.data.circles);var C=[];void 0!==t.ocs.data.rooms&&(C=t.ocs.data.rooms);for(var w=c.concat(u).concat(p).concat(m).concat(f).concat(v).concat(S).concat(C).concat(g).sort((k="uuid",function(e,a){var t="",n="";return void 0!==e[k]&&(t=e[k]),void 0!==a[k]&&(n=a[k]),t<n?-1:t>n?1:0})),b=null,P=w.length,_=(t=[],0);_<P;_++)void 0!==w[_].uuid&&w[_].uuid===b&&(w[_].merged=!0),void 0===w[_].merged&&t.push(w[_]),b=w[_].uuid;var E=oc_config["sharing.maxAutocompleteResults"]>0&&Math.min(perPage,oc_config["sharing.maxAutocompleteResults"])<=Math.max(u.length+s.length,p.length+i.length,f.length+r.length,m.length+l.length,v.length+o.length,S.length+d.length,C.length+h.length,g.length);a.resolve(t,c,E)}else a.reject(t.ocs.meta.message);var k}).fail(function(){a.reject()}),this._lastRecommendations={model:e,promise:a.promise()},this._lastRecommendations.promise},recommendationHandler:function(e){var a=$(".shareWithField");this._getRecommendations(this.model).done(function(t){console.info("recommendations",t),t.length>0?(a.autocomplete("option","autoFocus",!0),e(t)):(console.info("no sharing recommendations found"),e())}).fail(function(e){console.error("could not load recommendations",e)})},autocompleteHandler:function(e,a){if(0===e.term.length)return console.info(e.term,"empty search term -> using recommendations"),void this.recommendationHandler(a);var s=$(".shareWithField"),i=this,l=this.$el.find(".shareWithLoading"),r=this.$el.find(".shareWithConfirm"),o=oc_config["sharing.minSearchStringLength"];if(e.term.trim().length<o){var d=n("core","At least {count} character is needed for autocompletion","At least {count} characters are needed for autocompletion",o,{count:o});return s.addClass("error").attr("data-original-title",d).tooltip("hide").tooltip({placement:"bottom",trigger:"manual"}).tooltip("fixTitle").tooltip("show"),void a()}l.removeClass("hidden"),l.addClass("inlineblock"),r.addClass("hidden"),this._pendingOperationsCount++,s.removeClass("error").tooltip("hide");var h=parseInt(oc_config["sharing.maxAutocompleteResults"],10)||200;this._getSuggestions(e.term.trim(),h,i.model,i._lookup).done(function(e,n,o){if(i._pendingOperationsCount--,0===i._pendingOperationsCount&&(l.addClass("hidden"),l.removeClass("inlineblock"),r.removeClass("hidden")),e.length>0){if(s.autocomplete("option","autoFocus",!0),a(e),o){var d=t("core","This list is maybe truncated - please refine your search term to see more results.");$(".ui-autocomplete").append('<li class="autocomplete-note">'+d+"</li>")}}else{var h=t("core","No users or groups found for {search}",{search:s.val()});i.configModel.get("allowGroupSharing")||(h=t("core","No users found for {search}",{search:$(".shareWithField").val()})),s.addClass("error").attr("data-original-title",h).tooltip("hide").tooltip({placement:"top",trigger:"manual"}).tooltip("fixTitle").tooltip("show"),a()}}).fail(function(e){i._pendingOperationsCount--,0===i._pendingOperationsCount&&(l.addClass("hidden"),l.removeClass("inlineblock"),r.removeClass("hidden")),e?OC.Notification.showTemporary(t("core",'An error occurred ("{message}"). Please try again',{message:e})):OC.Notification.showTemporary(t("core","An error occurred. Please try again"))})},autocompleteRenderItem:function(e,a){var n="icon-user",s=escapeHTML(a.label),i="",l="";void 0!==a.type&&null!==a.type&&(l=function(e){switch(e){case"HOME":return t("core","Home");case"WORK":return t("core","Work");case"OTHER":return t("core","Other");default:return""+e}}(a.type)+" "),void 0!==a.name&&(s=escapeHTML(a.name)),a.value.shareType===OC.Share.SHARE_TYPE_GROUP?n="icon-contacts-dark":a.value.shareType===OC.Share.SHARE_TYPE_REMOTE?(n="icon-shared",i+=a.value.shareWith):a.value.shareType===OC.Share.SHARE_TYPE_REMOTE_GROUP?(s=t("core","{sharee} (remote group)",{sharee:s},void 0,{escape:!1}),n="icon-shared",i+=a.value.shareWith):a.value.shareType===OC.Share.SHARE_TYPE_EMAIL?(n="icon-mail",i+=a.value.shareWith):a.value.shareType===OC.Share.SHARE_TYPE_CIRCLE?(s=t("core","{sharee} ({type}, {owner})",{sharee:s,type:a.value.circleInfo,owner:a.value.circleOwner},void 0,{escape:!1}),n="icon-circle"):a.value.shareType===OC.Share.SHARE_TYPE_ROOM&&(n="icon-talk");var r=$("<div class='share-autocomplete-item'/>");if(a.merged)r.addClass("merged"),s=a.value.shareWith,i=l;else if(a.lookup)s=a.label,n=!1,r.append('<span class="icon icon-search search-globally"></span>');else{var o=$("<div class='avatardiv'></div>").appendTo(r);a.value.shareType===OC.Share.SHARE_TYPE_USER||a.value.shareType===OC.Share.SHARE_TYPE_CIRCLE?o.avatar(a.value.shareWith,32,void 0,void 0,void 0,a.label):(void 0===a.uuid&&(a.uuid=s),o.imageplaceholder(a.uuid,s,32)),i=l+i}return""!==i&&r.addClass("with-description"),$("<div class='autocomplete-item-text'></div>").html(s.replace(new RegExp(this.term,"gi"),"<span class='ui-state-highlight'>$&</span>")+'<span class="autocomplete-item-details">'+i+"</span>").appendTo(r),r.attr("title",a.value.shareWith),n&&r.append('<span class="icon '+n+'" title="'+s+'"></span>'),r=$("<a>").append(r),$("<li>").addClass(a.value.shareType===OC.Share.SHARE_TYPE_GROUP?"group":"user").append(r).appendTo(e)},_onSelectRecipient:function(e,a){var t=this;if(9==e.keyCode)return e.preventDefault(),void 0!==a.item.name?e.target.value=a.item.name:e.target.value=a.item.label,setTimeout(function(){$(e.target).attr("disabled",!1).autocomplete("search",$(e.target).val())},0),!1;if(a.item.lookup){this._lookup=!0;var n=this.$el.find(".shareWithField"),s=n.val();return setTimeout(function(){console.debug("searching again, but globally. search term: "+s),n.autocomplete("search",s)},0),!1}e.preventDefault(),e.stopImmediatePropagation(),$(e.target).attr("disabled",!0).val(a.item.label);var i=this.$el.find(".shareWithLoading"),l=this.$el.find(".shareWithConfirm");i.removeClass("hidden"),i.addClass("inlineblock"),l.addClass("hidden"),this._pendingOperationsCount++,this.model.addShare(a.item.value,{success:function(){t._lastSuggestions=void 0,$(e.target).val("").attr("disabled",!1),t._pendingOperationsCount--,0===t._pendingOperationsCount&&(i.addClass("hidden"),i.removeClass("inlineblock"),l.removeClass("hidden"))},error:function(a,n){OC.Notification.showTemporary(n),$(e.target).attr("disabled",!1).autocomplete("search",$(e.target).val()),t._pendingOperationsCount--,0===t._pendingOperationsCount&&(i.addClass("hidden"),i.removeClass("inlineblock"),l.removeClass("hidden"))}})},_confirmShare:function(){var e=this,a=$(".shareWithField"),t=this.$el.find(".shareWithLoading"),n=this.$el.find(".shareWithConfirm");t.removeClass("hidden"),t.addClass("inlineblock"),n.addClass("hidden"),this._pendingOperationsCount++,a.prop("disabled",!0),a.autocomplete("close"),a.autocomplete("disable");var s=function(){e._pendingOperationsCount--,0===e._pendingOperationsCount&&(t.addClass("hidden"),t.removeClass("inlineblock"),n.removeClass("hidden")),a.prop("disabled",!1),a.focus()},i=parseInt(oc_config["sharing.maxAutocompleteResults"],10)||200;this._getSuggestions(a.val(),i,this.model,this._lookup).done(function(t,n){if(0===t.length)return s(),void a.autocomplete("enable");if(1!==n.length)return s(),void a.autocomplete("enable");e.model.addShare(n[0].value,{success:function(){e._lastSuggestions=void 0,a.val(""),s(),a.autocomplete("enable")},error:function(e,t){s(),a.autocomplete("enable"),OC.Notification.showTemporary(t)}})}).fail(function(e){s(),a.autocomplete("enable")})},_toggleLoading:function(e){this._loading=e,this.$el.find(".subView").toggleClass("hidden",e),this.$el.find(".loading").toggleClass("hidden",!e)},_onRequest:function(){this._loadingOnce||this._toggleLoading(!0)},_onEndRequest:function(){var e=this;this._toggleLoading(!1),this._loadingOnce||(this._loadingOnce=!0,OC.Util.isIE()||_.defer(function(){e.$(".shareWithField").focus()}))},render:function(){var e=this,a=OC.Share.Templates.sharedialogview;this.$el.html(a({cid:this.cid,shareLabel:t("core","Share"),sharePlaceholder:this._renderSharePlaceholderPart(),isSharingAllowed:this.model.sharePermissionPossible()}));var n=this.$el.find(".shareWithField");if(n.length){n.autocomplete({minLength:0,delay:750,focus:function(e){e.preventDefault()},source:this.autocompleteHandler,select:this._onSelectRecipient,open:function(){var e=$(this).autocomplete("widget"),a=e.find("li").size();e.removeClass("item-count-1"),e.removeClass("item-count-2"),a<=2&&e.addClass("item-count-"+a)}}).data("ui-autocomplete")._renderItem=this.autocompleteRenderItem,n.on("keydown",null,function(a){return 13!==a.keyCode||(e._confirmShare(),!1)})}return this.resharerInfoView.$el=this.$el.find(".resharerInfoView"),this.resharerInfoView.render(),this.linkShareView.$el=this.$el.find(".linkShareView"),this.linkShareView.render(),this.shareeListView.$el=this.$el.find(".shareeListView"),this.shareeListView.render(),this.$el.find(".hasTooltip").tooltip(),this},setShowLink:function(e){this._showLink="boolean"!=typeof e||e,this.linkShareView.showLink=this._showLink},_renderSharePlaceholderPart:function(){var e=this.configModel.get("isRemoteShareAllowed"),a=this.configModel.get("isMailShareAllowed");return!e&&a?t("core","Name or email address..."):e&&!a?t("core","Name or federated cloud ID..."):e&&a?t("core","Name, federated cloud ID or email address..."):t("core","Name...")}});OC.Share.ShareDialogView=e}()},function(e,a){OC.Share=_.extend(OC.Share||{},{SHARE_TYPE_USER:0,SHARE_TYPE_GROUP:1,SHARE_TYPE_LINK:3,SHARE_TYPE_EMAIL:4,SHARE_TYPE_REMOTE:6,SHARE_TYPE_CIRCLE:7,SHARE_TYPE_GUEST:8,SHARE_TYPE_REMOTE_GROUP:9,SHARE_TYPE_ROOM:10,_REMOTE_OWNER_REGEXP:new RegExp("^([^@]*)@(([^@]*)@)?([^/]*)([/](.*)?)?$"),itemShares:[],statuses:{},currentShares:{},droppedDown:!1,loadIcons:function(e,a,t){var n=a.dirInfo.path;"/"===n&&(n=""),n+="/"+a.dirInfo.name,$.get(OC.linkToOCS("apps/files_sharing/api/v1",2)+"shares",{subfiles:"true",path:n,format:"json"},function(n){n&&200===n.ocs.meta.statuscode&&(OC.Share.statuses={},$.each(n.ocs.data,function(e,a){a.item_source in OC.Share.statuses||(OC.Share.statuses[a.item_source]={link:!1}),a.share_type===OC.Share.SHARE_TYPE_LINK&&(OC.Share.statuses[a.item_source]={link:!0})}),_.isFunction(t)?t(OC.Share.statuses):OC.Share.updateIcons(e,a))})},updateIcons:function(e,a){var n,s,i;for(n in!a&&OCA.Files&&(a=OCA.Files.App.fileList),a&&(s=a.$fileList,i=a.getCurrentDirectory()),OC.Share.statuses){var l="icon-shared",r=OC.Share.statuses[n],o=r.link;if(o&&(l="icon-public"),"file"!==e&&"folder"!==e)$('a.share[data-item="'+n+'"] .icon').removeClass("icon-shared icon-public").addClass(l);else{var d,h=s.find('tr[data-id="'+n+'"]'),c=OC.imagePath("core","filetypes/folder-shared");if(h.length>0)this.markFileAsShared(h,!0,o);else{var u=i;if(u.length>1)for(var p="",m=u;m!=p;){if(m===r.path&&!r.link){var f,g=s.find('.fileactions .action[data-action="Share"]'),v=s.find(".filename");for(f=0;f<g.length;f++)(d=$(g[f]).find("img")).attr("src")!==OC.imagePath("core","actions/public")&&(d.attr("src",image),$(g[f]).addClass("permanent"),$(g[f]).html("<span> "+t("core","Shared")+"</span>").prepend(d));for(f=0;f<v.length;f++)"dir"===$(v[f]).closest("tr").data("type")&&$(v[f]).find(".thumbnail").css("background-image","url("+c+")")}p=m,m=OC.Share.dirname(m)}}}}},updateIcon:function(e,a){var t=!1,n=!1,s="";if($.each(OC.Share.itemShares,function(e){if(OC.Share.itemShares[e])if(e==OC.Share.SHARE_TYPE_LINK){if(1==OC.Share.itemShares[e])return t=!0,s="icon-public",void(n=!0)}else OC.Share.itemShares[e].length>0&&(t=!0,s="icon-shared")}),"file"!=e&&"folder"!=e)$('a.share[data-item="'+a+'"] .icon').removeClass("icon-shared icon-public").addClass(s);else{var i=$("tr").filterAttr("data-id",String(a));i.length>0&&i.each(function(){OC.Share.markFileAsShared($(this),t,n)})}t?(OC.Share.statuses[a]=OC.Share.statuses[a]||{},OC.Share.statuses[a].link=n):delete OC.Share.statuses[a]},_formatRemoteShare:function(e,a,t){var n=this._REMOTE_OWNER_REGEXP.exec(e);if(!n)return'<span class="avatar" data-username="'+escapeHTML(e)+'" title="'+t+" "+escapeHTML(a)+'"></span>'+('<span class="hidden-visually">'+t+" "+escapeHTML(a)+"</span> ");var s=n[1],i=n[3],l=n[4],r=t+" "+s;i&&(r+="@"+i),l&&(i||(i="…"),r+="@"+l);var o='<span class="remoteAddress" title="'+escapeHTML(r)+'">';return o+='<span class="username">'+escapeHTML(s)+"</span>",i&&(o+='<span class="userDomain">@'+escapeHTML(i)+"</span>"),o+="</span> "},_formatShareList:function(e){var a=this;return(e=_.toArray(e)).sort(function(e,a){return e.shareWithDisplayName.localeCompare(a.shareWithDisplayName)}),$.map(e,function(e){return a._formatRemoteShare(e.shareWith,e.shareWithDisplayName,t("core","Shared with"))})},markFileAsShared:function(e,a,n){var s,i,l,r,o=e.find('.fileactions .action[data-action="Share"]'),d=e.data("type"),h=o.find(".icon"),c=e.attr("data-share-owner-id"),u=e.attr("data-share-owner"),p="icon-shared";if(o.removeClass("shared-style"),"dir"===d&&(a||n||c))r=n?OC.MimeType.getIconUrl("dir-public"):OC.MimeType.getIconUrl("dir-shared"),e.find(".filename .thumbnail").css("background-image","url("+r+")"),e.attr("data-icon",r);else if("dir"===d){var m=e.attr("data-e2eencrypted"),f=e.attr("data-mounttype");"true"===m?(r=OC.MimeType.getIconUrl("dir-encrypted"),e.attr("data-icon",r)):f&&0===f.indexOf("external")?(r=OC.MimeType.getIconUrl("dir-external"),e.attr("data-icon",r)):(r=OC.MimeType.getIconUrl("dir"),e.removeAttr("data-icon")),e.find(".filename .thumbnail").css("background-image","url("+r+")")}a||c?(i=e.data("share-recipient-data"),o.addClass("shared-style"),l="<span>"+t("core","Shared")+"</span>",c?(s=t("core","Shared by"),l=this._formatRemoteShare(c,u,s)):i&&(l=this._formatShareList(i)),o.html(l).prepend(h),(c||i)&&(o.find(".avatar").each(function(){$(this).avatar($(this).data("username"),32)}),o.find("span[title]").tooltip({placement:"top"}))):o.html('<span class="hidden-visually">'+t("core","Shared")+"</span>").prepend(h);n&&(p="icon-public"),h.removeClass("icon-shared icon-public").addClass(p)},showDropDown:function(e,a,t,n,s,i){var l=new OC.Share.ShareConfigModel,r={itemType:e,itemSource:a,possiblePermissions:s},o=new OC.Share.ShareItemModel(r,{configModel:l}),d=new OC.Share.ShareDialogView({id:"dropdown",model:o,configModel:l,className:"drop shareDropDown",attributes:{"data-item-source-name":i,"data-item-type":e,"data-item-source":a}});d.setShowLink(n);var h=d.render().$el;h.appendTo(t),h.slideDown(OC.menuSpeed,function(){OC.Share.droppedDown=!0}),o.fetch()},hideDropDown:function(e){OC.Share.currentShares=null,$("#dropdown").slideUp(OC.menuSpeed,function(){OC.Share.droppedDown=!1,$("#dropdown").remove(),"undefined"!=typeof FileActions&&$("tr").removeClass("mouseOver"),e&&e.call()})},dirname:function(e){return e.replace(/\\/g,"/").replace(/\/[^\/]*$/,"")}}),$(document).ready(function(){if("undefined"!=typeof monthNames){var e=new Date;e.setDate(e.getDate()+1),$.datepicker.setDefaults({monthNames:monthNames,monthNamesShort:monthNamesShort,dayNames:dayNames,dayNamesMin:dayNamesMin,dayNamesShort:dayNamesShort,firstDay:firstDay,minDate:e})}$(this).click(function(e){var a=$(e.target),t=!a.is(".drop, .ui-datepicker-next, .ui-datepicker-prev, .ui-icon")&&!a.closest("#ui-datepicker-div").length&&!a.closest(".ui-autocomplete").length;OC.Share&&OC.Share.droppedDown&&t&&0===$("#dropdown").has(e.target).length&&OC.Share.hideDropDown()})})}]);
 //# sourceMappingURL=share_backend.js.map
\ No newline at end of file
index 24d996720f61eb9c583e648884a15c2a71b55ae9..4d6b7dbd9699958e856ec95e4ac5c71511883726 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./core/js/merged-share-backend.js","webpack:///./core/js/shareconfigmodel.js","webpack:///./core/js/sharetemplates.js","webpack:///./core/js/shareitemmodel.js","webpack:///./core/js/sharesocialmanager.js","webpack:///./core/js/sharedialogresharerinfoview.js","webpack:///./core/js/sharedialoglinkshareview.js","webpack:///./core/js/sharedialogshareelistview.js","webpack:///./core/js/sharedialogview.js","webpack:///./core/js/share.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","OC","Share","Types","ShareConfigModel","Backbone","Model","extend","defaults","publicUploadEnabled","enforcePasswordForPublicLink","oc_appconfig","core","enableLinkPasswordByDefault","isDefaultExpireDateEnforced","defaultExpireDateEnforced","isDefaultExpireDateEnabled","defaultExpireDateEnabled","isRemoteShareAllowed","remoteShareAllowed","isMailShareAllowed","undefined","shareByMailEnabled","defaultExpireDate","isResharingAllowed","resharingAllowed","isPasswordForMailSharesRequired","shareByMail","enforcePasswordProtection","allowGroupSharing","isPublicUploadEnabled","$","data","isShareWithLinkAllowed","val","getFederatedShareDocLink","federatedCloudShareDoc","getDefaultExpirationDateString","expireDateString","this","date","moment","utc","expireAfterDays","add","format","template","templates","Handlebars","Templates","1","container","depth0","helpers","partials","stack1","alias1","nullContext","nolinkShares","hash","fn","program","inverse","noop","each","linkShares","2","helper","alias2","helperMissing","alias4","escapeExpression","_typeof","newShareId","newShareLabel","showPending","newShareTitle","unless","3","5","pendingPopoverMenu","7","alias3","cid","linkShareCreationDate","linkShareLabel","shareLinkURL","copyLabel","8","popoverMenu","10","noSharingPlaceholder","11","compiler","main","shareAllowed","useData","publicUploadRValue","publicUploadRChecked","publicUploadRLabel","publicUploadRWValue","publicUploadRWChecked","publicUploadRWLabel","publicUploadWValue","publicUploadWChecked","publicUploadWLabel","publicEditingChecked","publicEditingLabel","9","isPasswordByTalkSet","passwordByTalkLabel","13","15","expireDate","17","19","21","url","newWindow","iconClass","label","publicUpload","publicEditing","hideDownload","hideDownloadLabel","isPasswordSet","isPasswordEnforced","enablePasswordLabel","passwordPlaceholder","showPasswordByTalkCheckBox","hasExpireDate","isExpirationEnforced","expireDateLabel","expirationDate","expirationLabel","expirationDatePlaceholder","maxDate","addNoteLabel","hasNote","shareNote","shareId","social","unshareLinkLabel","enforcedPasswordLabel","minPasswordLength","reshareOwner","sharedByText","hasShareNote","isShareWithCurrentUser","shareType","shareWith","modSeed","shareWithAvatar","shareWithDisplayName","shareWithTitle","canUpdateShareSettings","editPermissionPossible","canEditLabel","shareInitiator","shareInitiatorText","unshareLabel","sharees","linkReshares","sharePermissionPossible","isMailShare","hasSharePermission","sharePermission","canShareLabel","4","6","createPermissionPossible","updatePermissionPossible","deletePermissionPossible","hasCreatePermission","createPermission","createPermissionLabel","hasUpdatePermission","updatePermission","updatePermissionLabel","14","hasDeletePermission","deletePermission","deletePermissionLabel","16","passwordLabel","password","passwordValue","isTalkEnabled","secureDropMode","readPermission","secureDropLabel","20","22","24","passwordByTalkPlaceholder","26","28","30","isFolder","isNoteAvailable","shareLabel","sharePlaceholder","isSharingAllowed","SHARE_RESPONSE_INT_PROPS","ShareItemModel","_linkShareId","initialize","attributes","options","_","isUndefined","configModel","fileInfoModel","bindAll","allowPublicUploadStatus","permissions","saveLinkShare","expiration","shareIndex","findIndex","share","id","length","updateShare","passwordChanged","sendPasswordByTalk","PERMISSION_READ","SHARE_TYPE_LINK","addShare","defaultPermissions","getCapabilities","PERMISSION_ALL","possiblePermissions","PERMISSION_UPDATE","PERMISSION_CREATE","PERMISSION_DELETE","PERMISSION_SHARE","path","getFullPath","_addOrUpdateShare","type","_getUrl","dataType","attrs","encodeURIComponent","ajaxSettings","self","ajax","always","isFunction","complete","done","fetch","success","fail","xhr","msg","result","responseJSON","ocs","meta","message","error","dialogs","alert","removeShare","isPublicUploadAllowed","isPublicEditingAllowed","isHideFileListSet","isFile","hasReshare","reshare","isObject","uid_owner","hasUserShares","getSharesWithCurrentItem","hasLinkShares","getReshareOwner","getReshareOwnerDisplayname","displayname_owner","getReshareNote","note","getReshareWith","share_with","getReshareWithDisplayName","share_with_displayname","getReshareType","share_type","getExpireDate","_shareExpireDate","getNote","_shareNote","shares","fileId","filter","item_source","getShareWith","getShareWithDisplayName","getShareWithAvatar","share_with_avatar","getSharedBy","getSharedByDisplayName","getFileOwnerUid","uid_file_owner","findShareWithIndex","isArray","getShareType","_shareHasPermission","permission","getPermissions","hasReadPermission","editPermissionState","hcp","hup","hdp","linkSharePermissions","base","params","linkToOCS","buildQueryString","_fetchShares","reshares","_fetchReshare","_reshareFetched","Deferred","resolve","shared_with_me","_groupReshares","superShare","shift","combinedPermissions","SHARE_TYPE_USER","SHARE_TYPE_GROUP","model","trigger","deferred","when","data1","data2","sharesMap","shareItem","set","parse","_legacyFillCurrentShares","statuses","currentShares","itemShares","currentShareStatus","link","push","console","warn","currentUser","allowPublicEditingStatus","hideFileListStatus","map","prop","parseInt","reject","file_source","window","location","protocol","host","token","generateUrl","fullPath","isDirectory","linkTo","hide_download","send_password_by_talk","_parseTime","time","isString","isNaN","getShareTypes","pluck","uniq","Social","SocialModel","SocialCollection","Collection","comparator","ShareDialogResharerInfoView","View","tagName","className","_template","view","on","render","$el","empty","reshareTemplate","ownerDisplayName","group","owner","escape","SHARE_TYPE_CIRCLE","circle","SHARE_TYPE_ROOM","conversation","html","find","$this","avatar","contactsMenu","PASSWORD_PLACEHOLDER_MESSAGE","PASSWORD_PLACEHOLDER_MESSAGE_OPTIONAL","ShareDialogLinkShareView","showLink","events","click .share-menu .icon-more","change .hideDownloadCheckbox","click input.share-pass-submit","keyup input.linkPassText","change .showPasswordCheckbox","change .passwordByTalkCheckbox","change .publicEditingCheckbox","click .linkText","click .pop-up","change .publicUploadRadio","click .expireDate","change .datepicker","click .datepicker","click .share-add","click .share-note-delete","click .share-note-submit","click .unshare","click .new-share","submit .enforcedPassForm","previousLinkShares","previous","clipboard","Clipboard","e","$trigger","tooltip","attr","placement","delay","$menu","next","$linkTextMenu","$input","closest","showMenu","actionMsg","test","navigator","userAgent","removeClass","select","newShare","event","$li","target","$loading","hasClass","addClass","hideMenus","shareData","defaultExpireDays","focus","$newShare","response","Notification","showTemporary","then","enforcedPasswordSet","preventDefault","onLinkTextClick","onHideDownloadChange","$checkbox","siblings","is","obj","onShowPasswordClick","slideToggle","menuSpeed","toggleClass","Util","isIE","onPasswordKeyUp","keyCode","onPasswordEntered","$container","parent","onPasswordByTalkChange","onAllowPublicEditingChange","onPublicUploadChange","currentTarget","showNoteForm","stopPropagation","$element","$form","deleteNote","sendNote","updateNote","prev","trim","$submit","$error","hide","method","show","setTimeout","linkShareTemplate","templateData","passwordPlaceholderInitial","publicEditable","minDate","Date","setDate","getDate","datepicker","setDefaults","dateFormat","oc_capabilities","password_policy","minLength","popoverBase","urlLabel","mailPrivatePlaceholder","mailButtonText","pendingPopover","pendingPopoverMenuTemplate","getShareeList","replace","popover","getPopoverObject","popoverMenuTemplate","delegateEvents","autosize","onToggleMenu","isPasswordEnabledByDefault","onPopUpClick","left","screen","width","top","height","open","href","onExpireDateChange","datePicker","state","showDatePicker","setExpirationDate","expirationDatePicker","onSelect","onChangeExpirationDate","list","index","getShareeObject","stime","oc_appswebroots","shareTime","isNumber","stripTime","getTime","onUnshare","eq","remove","ShareDialogShareeListView","_menuOpen","_renderPermissionChange","click .permissions","click .password","click .passwordByTalk","click .secureDrop","keyup input.passwordField","focusout input.passwordField","sharedBy","sharedByDisplayName","fileOwnerUid","SHARE_TYPE_REMOTE","SHARE_TYPE_REMOTE_GROUP","SHARE_TYPE_EMAIL","oc_current_user","sharer","hasPassword","isRemoteShare","isRemoteGroupShare","isCircleShare","isFileSharedByMail","getShareProperties","crudsLabel","triangleSImage","imagePath","universal","getLinkReshares","shareInitiatorDisplayName","permissionChangeShareId","shareWithIndex","sharee","replaceWith","css","imageplaceholder","_this","forEach","$edit","datePickerClass","datePickerInput","expireDateCheckbox","liSelector","log","onMailSharePasswordProtectChange","element","passwordContainerClass","passwordContainer","loading","inputClass","passwordField","passwordByTalkElement","passwordByTalkState","passwordByTalkContainerClass","onMailSharePasswordProtectByTalkChange","passwordByTalkContainer","passwordByTalkField","passwordElement","passwordState","onMailSharePasswordKeyUp","onMailSharePasswordEntered","startsWith","blur","onPermissionChange","checked","$checkboxes","not","numberChecked","$editCb","checkbox","enableCb","elem","onSecureDropChange","ShareDialogView","_templates","_showLink","_lookup","_lookupAllowed","resharerInfoView","linkShareView","shareeListView","_lastSuggestions","_lastRecommendations","_pendingOperationsCount","focus .shareWithField","input .shareWithField","click .shareWithConfirm","_onRequest","_onEndRequest","subViewOptions","subViews","Plugins","attach","onShareWithFieldChanged","onShareWithFieldFocus","$shareWithField","autocomplete","_getSuggestions","searchTerm","perPage","lookup","promise","search","itemType","statuscode","users","groups","remotes","remote_groups","emails","circles","rooms","usersLength","groupsLength","remotesLength","remoteGroupsLength","emailsLength","circlesLength","roomsLength","j","splice","sharesLength","exact","exactUsers","exactGroups","exactRemotes","exactRemoteGroups","exactEmails","exactCircles","exactRooms","exactMatches","concat","remoteGroups","lookupEnabled","grouped","sort","a","b","aProperty","bProperty","previousUuid","groupedLength","uuid","merged","moreResultsAvailable","oc_config","Math","min","max","_getRecommendations","recommendationHandler","suggestions","info","autocompleteHandler","term","$confirm","count","title","append","autocompleteRenderItem","ul","item","icon","text","escapeHTML","description","getTranslatedType","circleInfo","circleOwner","insert","appendTo","RegExp","_onSelectRecipient","debug","stopImmediatePropagation","_confirmShare","restoreUI","_toggleLoading","_loading","_loadingOnce","defer","baseTemplate","_renderSharePlaceholderPart","$shareField","source","numberOfItems","size","_renderItem","setShowLink","allowRemoteSharing","allowMailSharing","SHARE_TYPE_GUEST","_REMOTE_OWNER_REGEXP","droppedDown","loadIcons","fileList","callback","dirInfo","subfiles","it","updateIcons","$fileList","currentDir","OCA","Files","App","getCurrentDirectory","hasLink","img","file","shareFolder","markFileAsShared","dir","last","actions","files","image","prepend","dirname","updateIcon","itemSource","$tr","filterAttr","String","_formatRemoteShare","parts","exec","userName","userDomain","server","_formatShareList","recipients","_parent","toArray","localeCompare","recipient","hasShares","avatars","shareFolderIcon","action","ownerId","MimeType","getIconUrl","isEncrypted","mountType","indexOf","removeAttr","showDropDown","filename","itemModel","dialogView","data-item-source-name","data-item-type","data-item-source","$dialog","slideDown","hideDropDown","slideUp","FileActions","document","ready","monthNames","monthNamesShort","dayNames","dayNamesMin","dayNamesShort","firstDay","click","isMatched","has"],"mappings":"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","file":"share_backend.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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import './shareconfigmodel.js';\nimport './sharetemplates.js';\nimport './shareitemmodel.js';\nimport './sharesocialmanager.js';\nimport './sharedialogresharerinfoview.js';\nimport './sharedialoglinkshareview.js';\nimport './sharedialogshareelistview.js';\nimport './sharedialogview.js';\nimport './share.js';\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global moment, oc_appconfig, oc_config */\n\n(function() {\n\tif (!OC.Share) {\n\t\tOC.Share = {};\n\t\tOC.Share.Types = {};\n\t}\n\n\t// FIXME: the config model should populate its own model attributes based on\n\t// the old DOM-based config\n\tvar ShareConfigModel = OC.Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\tpublicUploadEnabled: false,\n\t\t\tenforcePasswordForPublicLink: oc_appconfig.core.enforcePasswordForPublicLink,\n\t\t\tenableLinkPasswordByDefault: oc_appconfig.core.enableLinkPasswordByDefault,\n\t\t\tisDefaultExpireDateEnforced: oc_appconfig.core.defaultExpireDateEnforced === true,\n\t\t\tisDefaultExpireDateEnabled: oc_appconfig.core.defaultExpireDateEnabled === true,\n\t\t\tisRemoteShareAllowed: oc_appconfig.core.remoteShareAllowed,\n\t\t\tisMailShareAllowed: oc_appconfig.shareByMailEnabled !== undefined,\n\t\t\tdefaultExpireDate: oc_appconfig.core.defaultExpireDate,\n\t\t\tisResharingAllowed: oc_appconfig.core.resharingAllowed,\n\t\t\tisPasswordForMailSharesRequired: (oc_appconfig.shareByMail === undefined) ? false : oc_appconfig.shareByMail.enforcePasswordProtection,\n\t\t\tallowGroupSharing: oc_appconfig.core.allowGroupSharing\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tisPublicUploadEnabled: function() {\n\t\t\tvar publicUploadEnabled = $('#filestable').data('allow-public-upload');\n\t\t\treturn publicUploadEnabled === 'yes';\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tisShareWithLinkAllowed: function() {\n\t\t\treturn $('#allowShareWithLink').val() === 'yes';\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t */\n\t\tgetFederatedShareDocLink: function() {\n\t\t\treturn oc_appconfig.core.federatedCloudShareDoc;\n\t\t},\n\n\t\tgetDefaultExpirationDateString: function () {\n\t\t\tvar expireDateString = '';\n\t\t\tif (this.get('isDefaultExpireDateEnabled')) {\n\t\t\t\tvar date = moment.utc();\n\t\t\t\tvar expireAfterDays = this.get('defaultExpireDate');\n\t\t\t\tdate.add(expireAfterDays, 'days');\n\t\t\t\texpireDateString = date.format('YYYY-MM-DD 00:00:00');\n\t\t\t}\n\t\t\treturn expireDateString;\n\t\t}\n\t});\n\n\n\tOC.Share.ShareConfigModel = ShareConfigModel;\n})();\n","(function() {\n  var template = Handlebars.template, templates = OC.Share.Templates = OC.Share.Templates || {};\ntemplates['sharedialoglinkshareview'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n  return \"<ul class=\\\"shareWithList\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.nolinkShares : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.linkShares : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"</ul>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t<li data-share-id=\\\"\"\n    + alias4(((helper = (helper = helpers.newShareId || (depth0 != null ? depth0.newShareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newShareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t<div class=\\\"avatar icon-public-white\\\"></div>\\n\t\t\t<span class=\\\"username\\\">\"\n    + alias4(((helper = (helper = helpers.newShareLabel || (depth0 != null ? depth0.newShareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newShareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t<span class=\\\"sharingOptionsGroup\\\">\\n\t\t\t\t<div class=\\\"share-menu\\\">\\n\t\t\t\t\t<a href=\\\"#\\\" class=\\\"icon icon-add new-share has-tooltip \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.showPending : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" title=\\\"\"\n    + alias4(((helper = (helper = helpers.newShareTitle || (depth0 != null ? depth0.newShareTitle : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newShareTitle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"></a>\\n\t\t\t\t\t<span class=\\\"icon icon-loading-small \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.showPending : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\"></span>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.showPending : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t</div>\\n\t\t\t</span>\\n\t\t</li>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"hidden\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.pendingPopoverMenu || (depth0 != null ? depth0.pendingPopoverMenu : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"pendingPopoverMenu\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t<li data-share-id=\\\"\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t<div class=\\\"avatar icon-public-white\\\"></div>\\n\t\t\t<span class=\\\"username\\\" title=\\\"\"\n    + alias4(((helper = (helper = helpers.linkShareCreationDate || (depth0 != null ? depth0.linkShareCreationDate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"linkShareCreationDate\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.linkShareLabel || (depth0 != null ? depth0.linkShareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"linkShareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t\\n\t\t\t<span class=\\\"sharingOptionsGroup\\\">\\n\t\t\t\t<a href=\\\"#\\\" class=\\\"clipboard-button icon icon-clippy has-tooltip\\\" data-clipboard-text=\\\"\"\n    + alias4(((helper = (helper = helpers.shareLinkURL || (depth0 != null ? depth0.shareLinkURL : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareLinkURL\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" title=\\\"\"\n    + alias4(((helper = (helper = helpers.copyLabel || (depth0 != null ? depth0.copyLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"copyLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"></a>\\n\t\t\t\t<div class=\\\"share-menu\\\">\\n\t\t\t\t\t<a href=\\\"#\\\" class=\\\"icon icon-more \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.showPending : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\"></a>\\n\t\t\t\t\t<span class=\\\"icon icon-loading-small \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.showPending : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\"></span>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.showPending : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.program(8, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t</div>\\n\t\t\t</span>\\n\t\t</li>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.popoverMenu || (depth0 != null ? depth0.popoverMenu : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"popoverMenu\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.noSharingPlaceholder : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"<input id=\\\"shareWith-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"shareWithField\\\" type=\\\"text\\\" placeholder=\\\"\"\n    + alias4(((helper = (helper = helpers.noSharingPlaceholder || (depth0 != null ? depth0.noSharingPlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"noSharingPlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" disabled=\\\"disabled\\\" />\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.shareAllowed : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(10, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true});\ntemplates['sharedialoglinkshareview_popover_menu'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<input type=\\\"radio\\\" name=\\\"publicUpload\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.publicUploadRValue || (depth0 != null ? depth0.publicUploadRValue : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadRValue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" id=\\\"sharingDialogAllowPublicUpload-r-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"radio publicUploadRadio\\\" \"\n    + ((stack1 = ((helper = (helper = helpers.publicUploadRChecked || (depth0 != null ? depth0.publicUploadRChecked : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadRChecked\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t<label for=\\\"sharingDialogAllowPublicUpload-r-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.publicUploadRLabel || (depth0 != null ? depth0.publicUploadRLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadRLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<input type=\\\"radio\\\" name=\\\"publicUpload\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.publicUploadRWValue || (depth0 != null ? depth0.publicUploadRWValue : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadRWValue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" id=\\\"sharingDialogAllowPublicUpload-rw-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"radio publicUploadRadio\\\" \"\n    + ((stack1 = ((helper = (helper = helpers.publicUploadRWChecked || (depth0 != null ? depth0.publicUploadRWChecked : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadRWChecked\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t<label for=\\\"sharingDialogAllowPublicUpload-rw-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.publicUploadRWLabel || (depth0 != null ? depth0.publicUploadRWLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadRWLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<input type=\\\"radio\\\" name=\\\"publicUpload\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.publicUploadWValue || (depth0 != null ? depth0.publicUploadWValue : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadWValue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" id=\\\"sharingDialogAllowPublicUpload-w-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"radio publicUploadRadio\\\" \"\n    + ((stack1 = ((helper = (helper = helpers.publicUploadWChecked || (depth0 != null ? depth0.publicUploadWChecked : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadWChecked\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t<label for=\\\"sharingDialogAllowPublicUpload-w-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.publicUploadWLabel || (depth0 != null ? depth0.publicUploadWLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadWLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t<li id=\\\"allowPublicEditingWrapper\\\">\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<input type=\\\"checkbox\\\" name=\\\"allowPublicEditing\\\" id=\\\"sharingDialogAllowPublicEditing-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"checkbox publicEditingCheckbox\\\" \"\n    + ((stack1 = ((helper = (helper = helpers.publicEditingChecked || (depth0 != null ? depth0.publicEditingChecked : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicEditingChecked\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t<label for=\\\"sharingDialogAllowPublicEditing-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.publicEditingLabel || (depth0 != null ? depth0.publicEditingLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicEditingLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    return \"checked=\\\"checked\\\"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    return \"disabled=\\\"disabled\\\"\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n    return \"hidden\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t<li>\\n\t\t\t\t<span class=\\\"shareOption menuitem\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<input type=\\\"checkbox\\\" name=\\\"passwordByTalk\\\" id=\\\"passwordByTalk-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"checkbox passwordByTalkCheckbox\\\"\\n\t\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isPasswordByTalkSet : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t<label for=\\\"passwordByTalk-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.passwordByTalkLabel || (depth0 != null ? depth0.passwordByTalkLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordByTalkLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n    return \"datepicker\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.expireDate || (depth0 != null ? depth0.expireDate : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"expireDate\",\"hash\":{},\"data\":data}) : helper)));\n},\"17\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.defaultExpireDate || (depth0 != null ? depth0.defaultExpireDate : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"defaultExpireDate\",\"hash\":{},\"data\":data}) : helper)));\n},\"19\":function(container,depth0,helpers,partials,data) {\n    return \"readonly\";\n},\"21\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t<li>\\n\t\t\t\t<a href=\\\"#\\\" class=\\\"menuitem pop-up\\\" data-url=\\\"\"\n    + alias4(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"url\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-window=\\\"\"\n    + alias4(((helper = (helper = helpers.newWindow || (depth0 != null ? depth0.newWindow : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newWindow\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t\t\t<span class=\\\"icon \"\n    + alias4(((helper = (helper = helpers.iconClass || (depth0 != null ? depth0.iconClass : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"iconClass\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"></span>\\n\t\t\t\t\t<span>\"\n    + alias4(((helper = (helper = helpers.label || (depth0 != null ? depth0.label : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"label\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t\t</a>\\n\t\t\t</li>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"<div class=\\\"popovermenu menu\\\">\\n\t<ul>\\n\t\t<li class=\\\"hidden linkTextMenu\\\">\\n\t\t\t<span class=\\\"menuitem icon-link-text\\\">\\n\t\t\t\t<input id=\\\"linkText-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"linkText\\\" type=\\\"text\\\" readonly=\\\"readonly\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.shareLinkURL || (depth0 != null ? depth0.shareLinkURL : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareLinkURL\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" />\\n\t\t\t</span>\\n\t\t</li>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.publicUpload : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.publicEditing : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<input type=\\\"checkbox\\\" name=\\\"hideDownload\\\" id=\\\"sharingDialogHideDownload-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"checkbox hideDownloadCheckbox\\\"\\n\t\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hideDownload : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t<label for=\\\"sharingDialogHideDownload-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.hideDownloadLabel || (depth0 != null ? depth0.hideDownloadLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"hideDownloadLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<input type=\\\"checkbox\\\" name=\\\"showPassword\\\" id=\\\"showPassword-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"checkbox showPasswordCheckbox\\\"\\n\t\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isPasswordSet : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isPasswordEnforced : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" value=\\\"1\\\" />\\n\t\t\t\t\t<label for=\\\"showPassword-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.enablePasswordLabel || (depth0 != null ? depth0.enablePasswordLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"enablePasswordLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\t\t\t<li class=\\\"\"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.isPasswordSet : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" linkPassMenu\\\">\\n\t\t\t\t<span class=\\\"menuitem icon-share-pass\\\">\\n\t\t\t\t\t<input id=\\\"linkPassText-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"linkPassText\\\" type=\\\"password\\\" placeholder=\\\"\"\n    + alias4(((helper = (helper = helpers.passwordPlaceholder || (depth0 != null ? depth0.passwordPlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordPlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" autocomplete=\\\"new-password\\\" />\\n\t\t\t\t\t<input type=\\\"submit\\\" class=\\\"icon-confirm share-pass-submit\\\" value=\\\"\\\" />\\n\t\t\t\t\t<span class=\\\"icon icon-loading-small hidden\\\"></span>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.showPasswordByTalkCheckBox : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<li>\\n\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t<input id=\\\"expireDate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"expirationDate\\\" class=\\\"expireDate checkbox\\\"\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasExpireDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isExpirationEnforced : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t<label for=\\\"expireDate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.expireDateLabel || (depth0 != null ? depth0.expireDateLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expireDateLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t</span>\\n\t\t</li>\\n\t\t<li class=\\\"\"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasExpireDate : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t<span class=\\\"menuitem icon-expiredate expirationDateContainer-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t\t<label for=\\\"expirationDatePicker-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"hidden-visually\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.expirationDate || (depth0 != null ? depth0.expirationDate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expirationDate\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.expirationLabel || (depth0 != null ? depth0.expirationLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expirationLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t<!-- do not use the datepicker if enforced -->\\n\t\t\t\t<input id=\\\"expirationDatePicker-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"\"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.isExpirationEnforced : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" type=\\\"text\\\"\\n\t\t\t\t\tplaceholder=\\\"\"\n    + alias4(((helper = (helper = helpers.expirationDatePlaceholder || (depth0 != null ? depth0.expirationDatePlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expirationDatePlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" value=\\\"\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasExpireDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.program(17, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\"\\n\t\t\t\t\tdata-max-date=\\\"\"\n    + alias4(((helper = (helper = helpers.maxDate || (depth0 != null ? depth0.maxDate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"maxDate\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isExpirationEnforced : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(19, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t</span>\\n\t\t\t</li>\\n\t\t<li>\\n\t\t\t<a href=\\\"#\\\" class=\\\"share-add\\\">\\n\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t<span class=\\\"icon icon-edit\\\"></span>\\n\t\t\t\t<span>\"\n    + alias4(((helper = (helper = helpers.addNoteLabel || (depth0 != null ? depth0.addNoteLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"addNoteLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t\t<input type=\\\"button\\\" class=\\\"share-note-delete icon-delete \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasNote : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t</a>\\n\t\t</li>\\n\t\t<li class=\\\"share-note-form share-note-link \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasNote : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t<span class=\\\"menuitem icon-note\\\">\\n\t\t\t\t<textarea class=\\\"share-note\\\">\"\n    + alias4(((helper = (helper = helpers.shareNote || (depth0 != null ? depth0.shareNote : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareNote\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</textarea>\\n\t\t\t\t<input type=\\\"submit\\\" class=\\\"icon-confirm share-note-submit\\\" value=\\\"\\\" id=\\\"add-note-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" />\\n\t\t\t</span>\\n\t\t</li>\\n\"\n    + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.social : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(21, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<li>\\n\t\t\t<a href=\\\"#\\\" class=\\\"unshare\\\"><span class=\\\"icon-loading-small hidden\\\"></span><span class=\\\"icon icon-delete\\\"></span><span>\"\n    + alias4(((helper = (helper = helpers.unshareLinkLabel || (depth0 != null ? depth0.unshareLinkLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"unshareLinkLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span></a>\\n\t\t</li>\\n\t\t<li>\\n\t\t\t<a href=\\\"#\\\" class=\\\"new-share\\\">\\n\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t<span class=\\\"icon icon-add\\\"></span>\\n\t\t\t\t<span>\"\n    + alias4(((helper = (helper = helpers.newShareLabel || (depth0 != null ? depth0.newShareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newShareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t</a>\\n\t\t</li>\\n\t</ul>\\n</div>\\n\";\n},\"useData\":true});\ntemplates['sharedialoglinkshareview_popover_menu_pending'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem icon-info\\\">\\n\t\t\t\t\t<p>\"\n    + alias4(((helper = (helper = helpers.enforcedPasswordLabel || (depth0 != null ? depth0.enforcedPasswordLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"enforcedPasswordLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</p>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\t\t\t<li class=\\\"linkPassMenu\\\">\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<form autocomplete=\\\"off\\\" class=\\\"enforcedPassForm\\\">\\n\t\t\t\t\t\t<input id=\\\"enforcedPassText\\\" required class=\\\"enforcedPassText\\\" type=\\\"password\\\"\\n\t\t\t\t\t\t\tplaceholder=\\\"\"\n    + alias4(((helper = (helper = helpers.passwordPlaceholder || (depth0 != null ? depth0.passwordPlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordPlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" autocomplete=\\\"enforcedPassText\\\" minlength=\\\"\"\n    + alias4(((helper = (helper = helpers.minPasswordLength || (depth0 != null ? depth0.minPasswordLength : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"minPasswordLength\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" />\\n\t\t\t\t\t\t<input type=\\\"submit\\\" value=\\\" \\\" class=\\\"primary icon-checkmark-white\\\">\\n\t\t\t\t\t</form>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"popovermenu open menu pending\\\">\\n\t<ul>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isPasswordEnforced : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t</ul>\\n</div>\\n\";\n},\"useData\":true});\ntemplates['sharedialogresharerinfoview'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"share-note\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.shareNote || (depth0 != null ? depth0.shareNote : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"shareNote\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</div>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"<span class=\\\"reshare\\\">\\n\t<div class=\\\"avatar\\\" data-userName=\\\"\"\n    + alias4(((helper = (helper = helpers.reshareOwner || (depth0 != null ? depth0.reshareOwner : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"reshareOwner\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"></div>\\n\t\"\n    + alias4(((helper = (helper = helpers.sharedByText || (depth0 != null ? depth0.sharedByText : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"sharedByText\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\n</span>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasShareNote : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"useData\":true});\ntemplates['sharedialogshareelistview'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.unless.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isShareWithCurrentUser : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t<li data-share-id=\\\"\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-share-type=\\\"\"\n    + alias4(((helper = (helper = helpers.shareType || (depth0 != null ? depth0.shareType : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareType\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-share-with=\\\"\"\n    + alias4(((helper = (helper = helpers.shareWith || (depth0 != null ? depth0.shareWith : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWith\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t<div class=\\\"avatar \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.modSeed : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" data-username=\\\"\"\n    + alias4(((helper = (helper = helpers.shareWith || (depth0 != null ? depth0.shareWith : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWith\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-avatar=\\\"\"\n    + alias4(((helper = (helper = helpers.shareWithAvatar || (depth0 != null ? depth0.shareWithAvatar : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWithAvatar\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-displayname=\\\"\"\n    + alias4(((helper = (helper = helpers.shareWithDisplayName || (depth0 != null ? depth0.shareWithDisplayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWithDisplayName\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.modSeed : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"></div>\\n\t\t\t<span class=\\\"username\\\" title=\\\"\"\n    + alias4(((helper = (helper = helpers.shareWithTitle || (depth0 != null ? depth0.shareWithTitle : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWithTitle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.shareWithDisplayName || (depth0 != null ? depth0.shareWithDisplayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWithDisplayName\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.canUpdateShareSettings : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t</li>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"imageplaceholderseed\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"data-seed=\\\"\"\n    + alias4(((helper = (helper = helpers.shareWith || (depth0 != null ? depth0.shareWith : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWith\",\"hash\":{},\"data\":data}) : helper)))\n    + \" \"\n    + alias4(((helper = (helper = helpers.shareType || (depth0 != null ? depth0.shareType : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareType\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n  return \"\t\t\t<span class=\\\"sharingOptionsGroup\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.editPermissionPossible : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t<div tabindex=\\\"0\\\" class=\\\"share-menu\\\"><span class=\\\"icon icon-more\\\"></span>\\n\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.popoverMenu || (depth0 != null ? depth0.popoverMenu : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"popoverMenu\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t</div>\\n\t\t\t</span>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t\t\t<span>\\n\t\t\t\t\t\t<input id=\\\"canEdit-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"edit\\\" class=\\\"permissions checkbox\\\" />\\n\t\t\t\t\t\t<label for=\\\"canEdit-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.canEditLabel || (depth0 != null ? depth0.canEditLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"canEditLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t</span>\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t<li data-share-id=\\\"\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-share-type=\\\"\"\n    + alias4(((helper = (helper = helpers.shareType || (depth0 != null ? depth0.shareType : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareType\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t<div class=\\\"avatar\\\" data-username=\\\"\"\n    + alias4(((helper = (helper = helpers.shareInitiator || (depth0 != null ? depth0.shareInitiator : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareInitiator\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"></div>\\n\t\t\t<span class=\\\"has-tooltip username\\\" title=\\\"\"\n    + alias4(((helper = (helper = helpers.shareInitiator || (depth0 != null ? depth0.shareInitiator : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareInitiator\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.shareInitiatorText || (depth0 != null ? depth0.shareInitiatorText : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareInitiatorText\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t<span class=\\\"sharingOptionsGroup\\\">\\n\t\t\t\t<a href=\\\"#\\\" class=\\\"unshare\\\"><span class=\\\"icon-loading-small hidden\\\"></span><span class=\\\"icon icon-delete\\\"></span><span class=\\\"hidden-visually\\\">\"\n    + alias4(((helper = (helper = helpers.unshareLabel || (depth0 != null ? depth0.unshareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"unshareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span></a>\\n\t\t\t</span>\\n\t\t</li>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n  return \"<ul id=\\\"shareWithList\\\" class=\\\"shareWithList\\\">\\n\"\n    + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.sharees : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.linkReshares : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"</ul>\\n\";\n},\"useData\":true});\ntemplates['sharedialogshareelistview_popover_menu'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.sharePermissionPossible : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" \";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \" \"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isMailShare : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" \";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\\n\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<input id=\\\"canShare-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"share\\\" class=\\\"permissions checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasSharePermission : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" data-permissions=\\\"\"\n    + alias4(((helper = (helper = helpers.sharePermission || (depth0 != null ? depth0.sharePermission : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"sharePermission\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" />\\n\t\t\t\t\t<label for=\\\"canShare-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.canShareLabel || (depth0 != null ? depth0.canShareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"canShareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t\t</li>\\n\t\t\t\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    return \"checked=\\\"checked\\\"\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n  return \"\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.createPermissionPossible : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.updatePermissionPossible : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.deletePermissionPossible : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.unless.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isMailShare : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\\n\t\t\t\t<li>\\n\t\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t\t<input id=\\\"canCreate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"create\\\" class=\\\"permissions checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasCreatePermission : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" data-permissions=\\\"\"\n    + alias4(((helper = (helper = helpers.createPermission || (depth0 != null ? depth0.createPermission : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"createPermission\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"/>\\n\t\t\t\t\t\t<label for=\\\"canCreate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.createPermissionLabel || (depth0 != null ? depth0.createPermissionLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"createPermissionLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t</span>\\n\t\t\t\t</li>\\n\t\t\t\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.unless.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isMailShare : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\\n\t\t\t\t<li>\\n\t\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t\t<input id=\\\"canUpdate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"update\\\" class=\\\"permissions checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasUpdatePermission : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" data-permissions=\\\"\"\n    + alias4(((helper = (helper = helpers.updatePermission || (depth0 != null ? depth0.updatePermission : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"updatePermission\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"/>\\n\t\t\t\t\t\t<label for=\\\"canUpdate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.updatePermissionLabel || (depth0 != null ? depth0.updatePermissionLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"updatePermissionLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t</span>\\n\t\t\t\t</li>\\n\t\t\t\t\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.unless.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isMailShare : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(14, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"14\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\\n\t\t\t\t<li>\\n\t\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t\t<input id=\\\"canDelete-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"delete\\\" class=\\\"permissions checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasDeletePermission : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" data-permissions=\\\"\"\n    + alias4(((helper = (helper = helpers.deletePermission || (depth0 != null ? depth0.deletePermission : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"deletePermission\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"/>\\n\t\t\t\t\t\t<label for=\\\"canDelete-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.deletePermissionLabel || (depth0 != null ? depth0.deletePermissionLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"deletePermissionLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t</span>\\n\t\t\t\t</li>\\n\t\t\t\t\";\n},\"16\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasCreatePermission : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(17, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<input id=\\\"password-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"password\\\" class=\\\"password checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isPasswordSet : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isPasswordSet : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(19, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" />\\n\t\t\t\t\t<label for=\\\"password-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.passwordLabel || (depth0 != null ? depth0.passwordLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\t\t\t<li class=\\\"passwordMenu-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \" \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.isPasswordSet : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(22, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t\t<span class=\\\"passwordContainer-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \" icon-passwordmail menuitem\\\">\\n\t\t\t\t\t<label for=\\\"passwordField-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"hidden-visually\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.password || (depth0 != null ? depth0.password : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"password\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.passwordLabel || (depth0 != null ? depth0.passwordLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t<input id=\\\"passwordField-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"passwordField\\\" type=\\\"password\\\" placeholder=\\\"\"\n    + alias4(((helper = (helper = helpers.passwordPlaceholder || (depth0 != null ? depth0.passwordPlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordPlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.passwordValue || (depth0 != null ? depth0.passwordValue : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordValue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" autocomplete=\\\"new-password\\\" />\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isTalkEnabled : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(24, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"17\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t\t<li>\\n\t\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t\t<input id=\\\"secureDrop-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"secureDrop\\\" class=\\\"checkbox secureDrop\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.secureDropMode : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" data-permissions=\\\"\"\n    + alias4(((helper = (helper = helpers.readPermission || (depth0 != null ? depth0.readPermission : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"readPermission\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"/>\\n\t\t\t\t\t\t<label for=\\\"secureDrop-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.secureDropLabel || (depth0 != null ? depth0.secureDropLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"secureDropLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t</span>\\n\t\t\t\t</li>\\n\";\n},\"19\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isPasswordForMailSharesRequired : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(20, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"20\":function(container,depth0,helpers,partials,data) {\n    return \"disabled=\\\"\\\"\";\n},\"22\":function(container,depth0,helpers,partials,data) {\n    return \"hidden\";\n},\"24\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t\t<li>\\n\t\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t\t<input id=\\\"passwordByTalk-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"passwordByTalk\\\" class=\\\"passwordByTalk checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isPasswordByTalkSet : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t\t<label for=\\\"passwordByTalk-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.passwordByTalkLabel || (depth0 != null ? depth0.passwordByTalkLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordByTalkLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t</span>\\n\t\t\t\t</li>\\n\t\t\t\t<li class=\\\"passwordByTalkMenu-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \" \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.isPasswordByTalkSet : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(22, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t\t\t<span class=\\\"passwordByTalkContainer-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \" icon-passwordtalk menuitem\\\">\\n\t\t\t\t\t\t<label for=\\\"passwordByTalkField-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"hidden-visually\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.password || (depth0 != null ? depth0.password : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"password\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.passwordByTalkLabel || (depth0 != null ? depth0.passwordByTalkLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordByTalkLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t\t<input id=\\\"passwordByTalkField-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"passwordField\\\" type=\\\"password\\\" placeholder=\\\"\"\n    + alias4(((helper = (helper = helpers.passwordByTalkPlaceholder || (depth0 != null ? depth0.passwordByTalkPlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordByTalkPlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.passwordValue || (depth0 != null ? depth0.passwordValue : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordValue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" autocomplete=\\\"new-password\\\" />\\n\t\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t</span>\\n\t\t\t\t</li>\\n\";\n},\"26\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.expireDate || (depth0 != null ? depth0.expireDate : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"expireDate\",\"hash\":{},\"data\":data}) : helper)));\n},\"28\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.defaultExpireDate || (depth0 != null ? depth0.defaultExpireDate : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"defaultExpireDate\",\"hash\":{},\"data\":data}) : helper)));\n},\"30\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t<li>\\n\t\t\t\t<a href=\\\"#\\\" class=\\\"share-add\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<span class=\\\"icon icon-edit\\\"></span>\\n\t\t\t\t\t<span>\"\n    + alias4(((helper = (helper = helpers.addNoteLabel || (depth0 != null ? depth0.addNoteLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"addNoteLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t\t\t<input type=\\\"button\\\" class=\\\"share-note-delete icon-delete \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasNote : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(22, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t\t</a>\\n\t\t\t</li>\\n\t\t\t<li class=\\\"share-note-form \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasNote : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(22, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t\t<span class=\\\"menuitem icon-note\\\">\\n\t\t\t\t\t<textarea class=\\\"share-note\\\">\"\n    + alias4(((helper = (helper = helpers.shareNote || (depth0 != null ? depth0.shareNote : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareNote\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</textarea>\\n\t\t\t\t\t<input type=\\\"submit\\\" class=\\\"icon-confirm share-note-submit\\\" value=\\\"\\\" id=\\\"add-note-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" />\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"<div class=\\\"popovermenu bubble hidden menu\\\">\\n\t<ul>\\n\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isResharingAllowed : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isFolder : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isMailShare : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(16, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<li>\\n\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t<input id=\\\"expireDate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"expirationDate\\\" class=\\\"expireDate checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasExpireDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" />\\n\t\t\t\t<label for=\\\"expireDate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.expireDateLabel || (depth0 != null ? depth0.expireDateLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expireDateLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t</span>\\n\t\t</li>\\n\t\t<li class=\\\"expirationDateMenu-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \" \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasExpireDate : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(22, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t<span class=\\\"expirationDateContainer-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \" icon-expiredate menuitem\\\">\\n\t\t\t\t<label for=\\\"expirationDatePicker-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"hidden-visually\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.expirationDate || (depth0 != null ? depth0.expirationDate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expirationDate\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.expirationLabel || (depth0 != null ? depth0.expirationLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expirationLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t<input id=\\\"expirationDatePicker-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"datepicker\\\" type=\\\"text\\\" placeholder=\\\"\"\n    + alias4(((helper = (helper = helpers.expirationDatePlaceholder || (depth0 != null ? depth0.expirationDatePlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expirationDatePlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" value=\\\"\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasExpireDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(26, data, 0),\"inverse\":container.program(28, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" />\\n\t\t\t</span>\\n\t\t</li>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isNoteAvailable : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(30, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<li>\\n\t\t\t<a href=\\\"#\\\" class=\\\"unshare\\\"><span class=\\\"icon-loading-small hidden\\\"></span><span class=\\\"icon icon-delete\\\"></span><span>\"\n    + alias4(((helper = (helper = helpers.unshareLabel || (depth0 != null ? depth0.unshareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"unshareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span></a>\\n\t\t</li>\\n\t</ul>\\n</div>\\n\";\n},\"useData\":true});\ntemplates['sharedialogview'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t<label for=\\\"shareWith-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"hidden-visually\\\">\"\n    + alias4(((helper = (helper = helpers.shareLabel || (depth0 != null ? depth0.shareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t<div class=\\\"oneline\\\">\\n\t\t<input id=\\\"shareWith-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"shareWithField\\\" type=\\\"text\\\" placeholder=\\\"\"\n    + alias4(((helper = (helper = helpers.sharePlaceholder || (depth0 != null ? depth0.sharePlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"sharePlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" />\\n\t\t<span class=\\\"shareWithLoading icon-loading-small hidden\\\"></span>\\n\t\t<span class=\\\"shareWithConfirm icon icon-confirm\\\"></span>\\n\t</div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"resharerInfoView subView\\\"></div>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isSharingAllowed : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<div class=\\\"linkShareView subView\\\"></div>\\n<div class=\\\"shareeListView subView\\\"></div>\\n<div class=\\\"loading hidden\\\" style=\\\"height: 50px\\\"></div>\\n\";\n},\"useData\":true});\n})();","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function() {\n\tif(!OC.Share) {\n\t\tOC.Share = {};\n\t\tOC.Share.Types = {};\n\t}\n\n\t/**\n\t * @typedef {object} OC.Share.Types.LinkShareInfo\n\t * @property {string} token\n\t * @property {bool} hideDownload\n\t * @property {string|null} password\n\t * @property {bool} sendPasswordByTalk\n\t * @property {number} permissions\n\t * @property {Date} expiration\n\t * @property {number} stime share time\n\t */\n\n\t/**\n\t * @typedef {object} OC.Share.Types.Reshare\n\t * @property {string} uid_owner\n\t * @property {number} share_type\n\t * @property {string} share_with\n\t * @property {string} displayname_owner\n\t * @property {number} permissions\n\t */\n\n\t/**\n\t * @typedef {object} OC.Share.Types.ShareInfo\n\t * @property {number} share_type\n\t * @property {number} permissions\n\t * @property {number} file_source optional\n\t * @property {number} item_source\n\t * @property {string} token\n\t * @property {string} share_with\n\t * @property {string} share_with_displayname\n\t * @property {string} share_with_avatar\n\t * @property {string} mail_send\n\t * @property {Date} expiration optional?\n\t * @property {number} stime optional?\n\t * @property {string} uid_owner\n\t * @property {string} displayname_owner\n\t */\n\n\t/**\n\t * @typedef {object} OC.Share.Types.ShareItemInfo\n\t * @property {OC.Share.Types.Reshare} reshare\n\t * @property {OC.Share.Types.ShareInfo[]} shares\n\t * @property {OC.Share.Types.LinkShareInfo|undefined} linkShare\n\t */\n\n\t/**\n\t * These properties are sometimes returned by the server as strings instead\n\t * of integers, so we need to convert them accordingly...\n\t */\n\tvar SHARE_RESPONSE_INT_PROPS = [\n\t\t'id', 'file_parent', 'mail_send', 'file_source', 'item_source', 'permissions',\n\t\t'storage', 'share_type', 'parent', 'stime'\n\t];\n\n\t/**\n\t * @class OCA.Share.ShareItemModel\n\t * @classdesc\n\t *\n\t * Represents the GUI of the share dialogue\n\t *\n\t * // FIXME: use OC Share API once #17143 is done\n\t *\n\t * // TODO: this really should be a collection of share item models instead,\n\t * where the link share is one of them\n\t */\n\tvar ShareItemModel = OC.Backbone.Model.extend({\n\t\t/**\n\t\t * share id of the link share, if applicable\n\t\t */\n\t\t_linkShareId: null,\n\n\t\tinitialize: function(attributes, options) {\n\t\t\tif(!_.isUndefined(options.configModel)) {\n\t\t\t\tthis.configModel = options.configModel;\n\t\t\t}\n\t\t\tif(!_.isUndefined(options.fileInfoModel)) {\n\t\t\t\t/** @type {OC.Files.FileInfo} **/\n\t\t\t\tthis.fileInfoModel = options.fileInfoModel;\n\t\t\t}\n\n\t\t\t_.bindAll(this, 'addShare');\n\t\t},\n\n\t\tdefaults: {\n\t\t\tallowPublicUploadStatus: false,\n\t\t\tpermissions: 0,\n\t\t\tlinkShares: []\n\t\t},\n\n\t\t/**\n\t\t * Saves the current link share information.\n\t\t *\n\t\t * This will trigger an ajax call and, if successful, refetch the model\n\t\t * afterwards. Callbacks \"success\", \"error\" and \"complete\" can be given\n\t\t * in the options object; \"success\" is called after a successful save\n\t\t * once the model is refetch, \"error\" is called after a failed save, and\n\t\t * \"complete\" is called both after a successful save and after a failed\n\t\t * save. Note that \"complete\" is called before \"success\" and \"error\" are\n\t\t * called (unlike in jQuery, in which it is called after them); this\n\t\t * ensures that \"complete\" is called even if refetching the model fails.\n\t\t *\n\t\t * TODO: this should be a separate model\n\t\t */\n\t\tsaveLinkShare: function(attributes, options) {\n\t\t\toptions = options || {};\n\t\t\tattributes = _.extend({}, attributes);\n\n\t\t\tvar shareId = null;\n\t\t\tvar call;\n\n\t\t\t// oh yeah...\n\t\t\tif (attributes.expiration) {\n\t\t\t\tattributes.expireDate = attributes.expiration;\n\t\t\t\tdelete attributes.expiration;\n\t\t\t}\n\n\t\t\tvar linkShares = this.get('linkShares');\n\t\t\tvar shareIndex = _.findIndex(linkShares, function(share) {return share.id === attributes.cid})\n\n\t\t\tif (linkShares.length > 0 && shareIndex !== -1) {\n\t\t\t\tshareId = linkShares[shareIndex].id;\n\n\t\t\t\t// note: update can only update a single value at a time\n\t\t\t\tcall = this.updateShare(shareId, attributes, options);\n\t\t\t} else {\n\t\t\t\tattributes = _.defaults(attributes, {\n\t\t\t\t\thideDownload: false,\n\t\t\t\t\tpassword: '',\n\t\t\t\t\tpasswordChanged: false,\n\t\t\t\t\tsendPasswordByTalk: false,\n\t\t\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\t\t\texpireDate: this.configModel.getDefaultExpirationDateString(),\n\t\t\t\t\tshareType: OC.Share.SHARE_TYPE_LINK\n\t\t\t\t});\n\n\t\t\t\tcall = this.addShare(attributes, options);\n\t\t\t}\n\n\t\t\treturn call;\n\t\t},\n\n\t\taddShare: function(attributes, options) {\n\t\t\tvar shareType = attributes.shareType;\n\t\t\tattributes = _.extend({}, attributes);\n\n\t\t\t// get default permissions\n\t\t\tvar defaultPermissions = OC.getCapabilities()['files_sharing']['default_permissions'] || OC.PERMISSION_ALL;\n\t\t\tvar possiblePermissions = OC.PERMISSION_READ;\n\n\t\t\tif (this.updatePermissionPossible()) {\n\t\t\t\tpossiblePermissions = possiblePermissions | OC.PERMISSION_UPDATE;\n\t\t\t}\n\t\t\tif (this.createPermissionPossible()) {\n\t\t\t\tpossiblePermissions = possiblePermissions | OC.PERMISSION_CREATE;\n\t\t\t}\n\t\t\tif (this.deletePermissionPossible()) {\n\t\t\t\tpossiblePermissions = possiblePermissions | OC.PERMISSION_DELETE;\n\t\t\t}\n\t\t\tif (this.configModel.get('isResharingAllowed') && (this.sharePermissionPossible())) {\n\t\t\t\tpossiblePermissions = possiblePermissions | OC.PERMISSION_SHARE;\n\t\t\t}\n\n\t\t\tattributes.permissions = defaultPermissions & possiblePermissions;\n\t\t\tif (_.isUndefined(attributes.path)) {\n\t\t\t\tattributes.path = this.fileInfoModel.getFullPath();\n\t\t\t}\n\n\t\t\treturn this._addOrUpdateShare({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: this._getUrl('shares'),\n\t\t\t\tdata: attributes,\n\t\t\t\tdataType: 'json'\n\t\t\t}, options);\n\t\t},\n\n\t\tupdateShare: function(shareId, attrs, options) {\n\t\t\treturn this._addOrUpdateShare({\n\t\t\t\ttype: 'PUT',\n\t\t\t\turl: this._getUrl('shares/' + encodeURIComponent(shareId)),\n\t\t\t\tdata: attrs,\n\t\t\t\tdataType: 'json'\n\t\t\t}, options);\n\t\t},\n\n\t\t_addOrUpdateShare: function(ajaxSettings, options) {\n\t\t\tvar self = this;\n\t\t\toptions = options || {};\n\n\t\t\treturn $.ajax(\n\t\t\t\tajaxSettings\n\t\t\t).always(function() {\n\t\t\t\tif (_.isFunction(options.complete)) {\n\t\t\t\t\toptions.complete(self);\n\t\t\t\t}\n\t\t\t}).done(function() {\n\t\t\t\tself.fetch().done(function() {\n\t\t\t\t\tif (_.isFunction(options.success)) {\n\t\t\t\t\t\toptions.success(self);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}).fail(function(xhr) {\n\t\t\t\tvar msg = t('core', 'Error');\n\t\t\t\tvar result = xhr.responseJSON;\n\t\t\t\tif (result && result.ocs && result.ocs.meta) {\n\t\t\t\t\tmsg = result.ocs.meta.message;\n\t\t\t\t}\n\n\t\t\t\tif (_.isFunction(options.error)) {\n\t\t\t\t\toptions.error(self, msg);\n\t\t\t\t} else {\n\t\t\t\t\tOC.dialogs.alert(msg, t('core', 'Error while sharing'));\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Deletes the share with the given id\n\t\t *\n\t\t * @param {int} shareId share id\n\t\t * @return {jQuery}\n\t\t */\n\t\tremoveShare: function(shareId, options) {\n\t\t\tvar self = this;\n\t\t\toptions = options || {};\n\t\t\treturn $.ajax({\n\t\t\t\ttype: 'DELETE',\n\t\t\t\turl: this._getUrl('shares/' + encodeURIComponent(shareId)),\n\t\t\t}).done(function() {\n\t\t\t\tself.fetch({\n\t\t\t\t\tsuccess: function() {\n\t\t\t\t\t\tif (_.isFunction(options.success)) {\n\t\t\t\t\t\t\toptions.success(self);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}).fail(function(xhr) {\n\t\t\t\tvar msg = t('core', 'Error');\n\t\t\t\tvar result = xhr.responseJSON;\n\t\t\t\tif (result.ocs && result.ocs.meta) {\n\t\t\t\t\tmsg = result.ocs.meta.message;\n\t\t\t\t}\n\n\t\t\t\tif (_.isFunction(options.error)) {\n\t\t\t\t\toptions.error(self, msg);\n\t\t\t\t} else {\n\t\t\t\t\tOC.dialogs.alert(msg, t('core', 'Error removing share'));\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tisPublicUploadAllowed: function() {\n\t\t\treturn this.get('allowPublicUploadStatus');\n\t\t},\n\n\t\tisPublicEditingAllowed: function() {\n\t\t\treturn this.get('allowPublicEditingStatus');\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tisHideFileListSet: function() {\n\t\t\treturn this.get('hideFileListStatus');\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tisFolder: function() {\n\t\t\treturn this.get('itemType') === 'folder';\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tisFile: function() {\n\t\t\treturn this.get('itemType') === 'file';\n\t\t},\n\n\t\t/**\n\t\t * whether this item has reshare information\n\t\t * @returns {boolean}\n\t\t */\n\t\thasReshare: function() {\n\t\t\tvar reshare = this.get('reshare');\n\t\t\treturn _.isObject(reshare) && !_.isUndefined(reshare.uid_owner);\n\t\t},\n\n\t\t/**\n\t\t * whether this item has user share information\n\t\t * @returns {boolean}\n\t\t */\n\t\thasUserShares: function() {\n\t\t\treturn this.getSharesWithCurrentItem().length > 0;\n\t\t},\n\n\t\t/**\n\t\t * Returns whether this item has link shares\n\t\t *\n\t\t * @return {bool} true if a link share exists, false otherwise\n\t\t */\n\t\thasLinkShares: function() {\n\t\t\tvar linkShares = this.get('linkShares');\n\t\t\tif (linkShares && linkShares.length > 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t */\n\t\tgetReshareOwner: function() {\n\t\t\treturn this.get('reshare').uid_owner;\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t */\n\t\tgetReshareOwnerDisplayname: function() {\n\t\t\treturn this.get('reshare').displayname_owner;\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t */\n\t\tgetReshareNote: function() {\n\t\t\treturn this.get('reshare').note;\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t */\n\t\tgetReshareWith: function() {\n\t\t\treturn this.get('reshare').share_with;\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t */\n\t\tgetReshareWithDisplayName: function() {\n\t\t\tvar reshare = this.get('reshare');\n\t\t\treturn reshare.share_with_displayname || reshare.share_with;\n\t\t},\n\n\t\t/**\n\t\t * @returns {number}\n\t\t */\n\t\tgetReshareType: function() {\n\t\t\treturn this.get('reshare').share_type;\n\t\t},\n\n\t\tgetExpireDate: function(shareIndex) {\n\t\t\treturn this._shareExpireDate(shareIndex);\n\t\t},\n\n\t\tgetNote: function(shareIndex) {\n\t\t\treturn this._shareNote(shareIndex);\n\t\t},\n\n\t\t/**\n\t\t * Returns all share entries that only apply to the current item\n\t\t * (file/folder)\n\t\t *\n\t\t * @return {Array.<OC.Share.Types.ShareInfo>}\n\t\t */\n\t\tgetSharesWithCurrentItem: function() {\n\t\t\tvar shares = this.get('shares') || [];\n\t\t\tvar fileId = this.fileInfoModel.get('id');\n\t\t\treturn _.filter(shares, function(share) {\n\t\t\t\treturn share.item_source === fileId;\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @param shareIndex\n\t\t * @returns {string}\n\t\t */\n\t\tgetShareWith: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.share_with;\n\t\t},\n\n\t\t/**\n\t\t * @param shareIndex\n\t\t * @returns {string}\n\t\t */\n\t\tgetShareWithDisplayName: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.share_with_displayname;\n\t\t},\n\n\n\t\t/**\n\t\t * @param shareIndex\n\t\t * @returns {string}\n\t\t */\n\t\tgetShareWithAvatar: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.share_with_avatar;\n\t\t},\n\n\t\t/**\n\t\t * @param shareIndex\n\t\t * @returns {string}\n\t\t */\n\t\tgetSharedBy: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.uid_owner;\n\t\t},\n\n\t\t/**\n\t\t * @param shareIndex\n\t\t * @returns {string}\n\t\t */\n\t\tgetSharedByDisplayName: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.displayname_owner;\n\t\t},\n\n\t\t/**\n\t\t * @param shareIndex\n\t\t * @returns {string}\n\t\t */\n\t\tgetFileOwnerUid: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.uid_file_owner;\n\t\t},\n\n\t\t/**\n\t\t * returns the array index of a sharee for a provided shareId\n\t\t *\n\t\t * @param shareId\n\t\t * @returns {number}\n\t\t */\n\t\tfindShareWithIndex: function(shareId) {\n\t\t\tvar shares = this.get('shares');\n\t\t\tif(!_.isArray(shares)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\tfor(var i = 0; i < shares.length; i++) {\n\t\t\t\tvar shareWith = shares[i];\n\t\t\t\tif(shareWith.id === shareId) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow \"Unknown Sharee\";\n\t\t},\n\n\t\tgetShareType: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.share_type;\n\t\t},\n\n\t\t/**\n\t\t * whether a share from shares has the requested permission\n\t\t *\n\t\t * @param {number} shareIndex\n\t\t * @param {number} permission\n\t\t * @returns {boolean}\n\t\t * @private\n\t\t */\n\t\t_shareHasPermission: function(shareIndex, permission) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn (share.permissions & permission) === permission;\n\t\t},\n\n\n\t\t_shareExpireDate: function(shareIndex) {\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\tvar date2 = share.expiration;\n\t\t\treturn date2;\n\t\t},\n\n\n\t\t_shareNote: function(shareIndex) {\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.note;\n\t\t},\n\n\t\t/**\n\t\t * @return {int}\n\t\t */\n\t\tgetPermissions: function() {\n\t\t\treturn this.get('permissions');\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tsharePermissionPossible: function() {\n\t\t\treturn (this.get('permissions') & OC.PERMISSION_SHARE) === OC.PERMISSION_SHARE;\n\t\t},\n\n\t\t/**\n\t\t * @param {number} shareIndex\n\t\t * @returns {boolean}\n\t\t */\n\t\thasSharePermission: function(shareIndex) {\n\t\t\treturn this._shareHasPermission(shareIndex, OC.PERMISSION_SHARE);\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tcreatePermissionPossible: function() {\n\t\t\treturn (this.get('permissions') & OC.PERMISSION_CREATE) === OC.PERMISSION_CREATE;\n\t\t},\n\n\t\t/**\n\t\t * @param {number} shareIndex\n\t\t * @returns {boolean}\n\t\t */\n\t\thasCreatePermission: function(shareIndex) {\n\t\t\treturn this._shareHasPermission(shareIndex, OC.PERMISSION_CREATE);\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tupdatePermissionPossible: function() {\n\t\t\treturn (this.get('permissions') & OC.PERMISSION_UPDATE) === OC.PERMISSION_UPDATE;\n\t\t},\n\n\t\t/**\n\t\t * @param {number} shareIndex\n\t\t * @returns {boolean}\n\t\t */\n\t\thasUpdatePermission: function(shareIndex) {\n\t\t\treturn this._shareHasPermission(shareIndex, OC.PERMISSION_UPDATE);\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tdeletePermissionPossible: function() {\n\t\t\treturn (this.get('permissions') & OC.PERMISSION_DELETE) === OC.PERMISSION_DELETE;\n\t\t},\n\n\t\t/**\n\t\t * @param {number} shareIndex\n\t\t * @returns {boolean}\n\t\t */\n\t\thasDeletePermission: function(shareIndex) {\n\t\t\treturn this._shareHasPermission(shareIndex, OC.PERMISSION_DELETE);\n\t\t},\n\n\t\thasReadPermission: function(shareIndex) {\n\t\t\treturn this._shareHasPermission(shareIndex, OC.PERMISSION_READ);\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\teditPermissionPossible: function() {\n\t\t\treturn    this.createPermissionPossible()\n\t\t\t\t   || this.updatePermissionPossible()\n\t\t\t\t   || this.deletePermissionPossible();\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t *     The state that the 'can edit' permission checkbox should have.\n\t\t *     Possible values:\n\t\t *     - empty string: no permission\n\t\t *     - 'checked': all applicable permissions\n\t\t *     - 'indeterminate': some but not all permissions\n\t\t */\n\t\teditPermissionState: function(shareIndex) {\n\t\t\tvar hcp = this.hasCreatePermission(shareIndex);\n\t\t\tvar hup = this.hasUpdatePermission(shareIndex);\n\t\t\tvar hdp = this.hasDeletePermission(shareIndex);\n\t\t\tif (this.isFile()) {\n\t\t\t\tif (hcp || hup || hdp) {\n\t\t\t\t\treturn 'checked';\n\t\t\t\t}\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tif (!hcp && !hup && !hdp) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tif (   (this.createPermissionPossible() && !hcp)\n\t\t\t\t|| (this.updatePermissionPossible() && !hup)\n\t\t\t\t|| (this.deletePermissionPossible() && !hdp)   ) {\n\t\t\t\treturn 'indeterminate';\n\t\t\t}\n\t\t\treturn 'checked';\n\t\t},\n\n\t\t/**\n\t\t * @returns {int}\n\t\t */\n\t\tlinkSharePermissions: function(shareId) {\n\t\t\tvar linkShares = this.get('linkShares');\n\t\t\tvar shareIndex = _.findIndex(linkShares, function(share) {return share.id === shareId})\n\n\t\t\tif (!this.hasLinkShares()) {\n\t\t\t\treturn -1;\n\t\t\t} else if (linkShares.length > 0 && shareIndex !== -1) {\n\t\t\t\treturn linkShares[shareIndex].permissions;\n\t\t\t}\n\t\t\treturn -1;\n\t\t},\n\n\t\t_getUrl: function(base, params) {\n\t\t\tparams = _.extend({format: 'json'}, params || {});\n\t\t\treturn OC.linkToOCS('apps/files_sharing/api/v1', 2) + base + '?' + OC.buildQueryString(params);\n\t\t},\n\n\t\t_fetchShares: function() {\n\t\t\tvar path = this.fileInfoModel.getFullPath();\n\t\t\treturn $.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: this._getUrl('shares', {path: path, reshares: true})\n\t\t\t});\n\t\t},\n\n\t\t_fetchReshare: function() {\n\t\t\t// only fetch original share once\n\t\t\tif (!this._reshareFetched) {\n\t\t\t\tvar path = this.fileInfoModel.getFullPath();\n\t\t\t\tthis._reshareFetched = true;\n\t\t\t\treturn $.ajax({\n\t\t\t\t\ttype: 'GET',\n\t\t\t\t\turl: this._getUrl('shares', {path: path, shared_with_me: true})\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn $.Deferred().resolve([{\n\t\t\t\t\tocs: {\n\t\t\t\t\t\tdata: [this.get('reshare')]\n\t\t\t\t\t}\n\t\t\t\t}]);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Group reshares into a single super share element.\n\t\t * Does this by finding the most precise share and\n\t\t * combines the permissions to be the most permissive.\n\t\t *\n\t\t * @param {Array} reshares\n\t\t * @return {Object} reshare\n\t\t */\n\t\t_groupReshares: function(reshares) {\n\t\t\tif (!reshares || !reshares.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar superShare = reshares.shift();\n\t\t\tvar combinedPermissions = superShare.permissions;\n\t\t\t_.each(reshares, function(reshare) {\n\t\t\t\t// use share have higher priority than group share\n\t\t\t\tif (reshare.share_type === OC.Share.SHARE_TYPE_USER && superShare.share_type === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\t\tsuperShare = reshare;\n\t\t\t\t}\n\t\t\t\tcombinedPermissions |= reshare.permissions;\n\t\t\t});\n\n\t\t\tsuperShare.permissions = combinedPermissions;\n\t\t\treturn superShare;\n\t\t},\n\n\t\tfetch: function(options) {\n\t\t\tvar model = this;\n\t\t\tthis.trigger('request', this);\n\n\t\t\tvar deferred = $.when(\n\t\t\t\tthis._fetchShares(),\n\t\t\t\tthis._fetchReshare()\n\t\t\t);\n\t\t\tdeferred.done(function(data1, data2) {\n\t\t\t\tmodel.trigger('sync', 'GET', this);\n\t\t\t\tvar sharesMap = {};\n\t\t\t\t_.each(data1[0].ocs.data, function(shareItem) {\n\t\t\t\t\tsharesMap[shareItem.id] = shareItem;\n\t\t\t\t});\n\n\t\t\t\tvar reshare = false;\n\t\t\t\tif (data2[0].ocs.data.length) {\n\t\t\t\t\treshare = model._groupReshares(data2[0].ocs.data);\n\t\t\t\t}\n\n\t\t\t\tmodel.set(model.parse({\n\t\t\t\t\tshares: sharesMap,\n\t\t\t\t\treshare: reshare\n\t\t\t\t}));\n\n\t\t\t\tif(!_.isUndefined(options) && _.isFunction(options.success)) {\n\t\t\t\t\toptions.success();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn deferred;\n\t\t},\n\n\t\t/**\n\t\t * Updates OC.Share.itemShares and OC.Share.statuses.\n\t\t *\n\t\t * This is required in case the user navigates away and comes back,\n\t\t * the share statuses from the old arrays are still used to fill in the icons\n\t\t * in the file list.\n\t\t */\n\t\t_legacyFillCurrentShares: function(shares) {\n\t\t\tvar fileId = this.fileInfoModel.get('id');\n\t\t\tif (!shares || !shares.length) {\n\t\t\t\tdelete OC.Share.statuses[fileId];\n\t\t\t\tOC.Share.currentShares = {};\n\t\t\t\tOC.Share.itemShares = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar currentShareStatus = OC.Share.statuses[fileId];\n\t\t\tif (!currentShareStatus) {\n\t\t\t\tcurrentShareStatus = {link: false};\n\t\t\t\tOC.Share.statuses[fileId] = currentShareStatus;\n\t\t\t}\n\t\t\tcurrentShareStatus.link = false;\n\n\t\t\tOC.Share.currentShares = {};\n\t\t\tOC.Share.itemShares = [];\n\t\t\t_.each(shares,\n\t\t\t\t/**\n\t\t\t\t * @param {OC.Share.Types.ShareInfo} share\n\t\t\t\t */\n\t\t\t\tfunction(share) {\n\t\t\t\t\tif (share.share_type === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\tOC.Share.itemShares[share.share_type] = true;\n\t\t\t\t\t\tcurrentShareStatus.link = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!OC.Share.itemShares[share.share_type]) {\n\t\t\t\t\t\t\tOC.Share.itemShares[share.share_type] = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tOC.Share.itemShares[share.share_type].push(share.share_with);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\tparse: function(data) {\n\t\t\tif(data === false) {\n\t\t\t\tconsole.warn('no data was returned');\n\t\t\t\tthis.trigger('fetchError');\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tvar permissions = this.fileInfoModel.get('permissions');\n\t\t\tif(!_.isUndefined(data.reshare) && !_.isUndefined(data.reshare.permissions) && data.reshare.uid_owner !== OC.currentUser) {\n\t\t\t\tpermissions = permissions & data.reshare.permissions;\n\t\t\t}\n\n\t\t\tvar allowPublicUploadStatus = false;\n\t\t\tif(!_.isUndefined(data.shares)) {\n\t\t\t\t$.each(data.shares, function (key, value) {\n\t\t\t\t\tif (value.share_type === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\tallowPublicUploadStatus = (value.permissions & OC.PERMISSION_CREATE) ? true : false;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar allowPublicEditingStatus = true;\n\t\t\tif(!_.isUndefined(data.shares)) {\n\t\t\t\t$.each(data.shares, function (key, value) {\n\t\t\t\t\tif (value.share_type === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\tallowPublicEditingStatus = (value.permissions & OC.PERMISSION_UPDATE) ? true : false;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\n\t\t\tvar hideFileListStatus = false;\n\t\t\tif(!_.isUndefined(data.shares)) {\n\t\t\t\t$.each(data.shares, function (key, value) {\n\t\t\t\t\tif (value.share_type === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\thideFileListStatus = (value.permissions & OC.PERMISSION_READ) ? false : true;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t/** @type {OC.Share.Types.ShareInfo[]} **/\n\t\t\tvar shares = _.map(data.shares, function(share) {\n\t\t\t\t// properly parse some values because sometimes the server\n\t\t\t\t// returns integers as string...\n\t\t\t\tvar i;\n\t\t\t\tfor (i = 0; i < SHARE_RESPONSE_INT_PROPS.length; i++) {\n\t\t\t\t\tvar prop = SHARE_RESPONSE_INT_PROPS[i];\n\t\t\t\t\tif (!_.isUndefined(share[prop])) {\n\t\t\t\t\t\tshare[prop] = parseInt(share[prop], 10);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn share;\n\t\t\t});\n\n\t\t\tthis._legacyFillCurrentShares(shares);\n\n\t\t\tvar linkShares =  [];\n\t\t\t// filter out the share by link\n\t\t\tshares = _.reject(shares,\n\t\t\t\t/**\n\t\t\t\t * @param {OC.Share.Types.ShareInfo} share\n\t\t\t\t */\n\t\t\t\tfunction(share) {\n\t\t\t\t\tvar isShareLink =\n\t\t\t\t\t\tshare.share_type === OC.Share.SHARE_TYPE_LINK\n\t\t\t\t\t\t&& (   share.file_source === this.get('itemSource')\n\t\t\t\t\t\t|| share.item_source === this.get('itemSource'));\n\n\t\t\t\t\tif (isShareLink) {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Ignore reshared link shares for now\n\t\t\t\t\t\t * FIXME: Find a way to display properly\n\t\t\t\t\t\t */\n\t\t\t\t\t\tif (share.uid_owner !== OC.currentUser) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar link = window.location.protocol + '//' + window.location.host;\n\t\t\t\t\t\tif (!share.token) {\n\t\t\t\t\t\t\t// pre-token link\n\t\t\t\t\t\t\tvar fullPath = this.fileInfoModel.get('path') + '/' +\n\t\t\t\t\t\t\t\tthis.fileInfoModel.get('name');\n\t\t\t\t\t\t\tvar location = '/' + OC.currentUser + '/files' + fullPath;\n\t\t\t\t\t\t\tvar type = this.fileInfoModel.isDirectory() ? 'folder' : 'file';\n\t\t\t\t\t\t\tlink += OC.linkTo('', 'public.php') + '?service=files&' +\n\t\t\t\t\t\t\t\ttype + '=' + encodeURIComponent(location);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlink += OC.generateUrl('/s/') + share.token;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlinkShares.push(_.extend({}, share, {\n\t\t\t\t\t\t\t// hide_download is returned as an int, so force it\n\t\t\t\t\t\t\t// to a boolean\n\t\t\t\t\t\t\thideDownload: !!share.hide_download,\n\t\t\t\t\t\t\tpassword: share.share_with,\n\t\t\t\t\t\t\tsendPasswordByTalk: share.send_password_by_talk\n\t\t\t\t\t\t}));\n\n\t\t\t\t\t\treturn share;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\treshare: data.reshare,\n\t\t\t\tshares: shares,\n\t\t\t\tlinkShares: linkShares,\n\t\t\t\tpermissions: permissions,\n\t\t\t\tallowPublicUploadStatus: allowPublicUploadStatus,\n\t\t\t\tallowPublicEditingStatus: allowPublicEditingStatus,\n\t\t\t\thideFileListStatus: hideFileListStatus\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Parses a string to an valid integer (unix timestamp)\n\t\t * @param time\n\t\t * @returns {*}\n\t\t * @internal Only used to work around a bug in the backend\n\t\t */\n\t\t_parseTime: function(time) {\n\t\t\tif (_.isString(time)) {\n\t\t\t\t// skip empty strings and hex values\n\t\t\t\tif (time === '' || (time.length > 1 && time[0] === '0' && time[1] === 'x')) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\ttime = parseInt(time, 10);\n\t\t\t\tif(isNaN(time)) {\n\t\t\t\t\ttime = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn time;\n\t\t},\n\n\t\t/**\n\t\t * Returns a list of share types from the existing shares.\n\t\t *\n\t\t * @return {Array.<int>} array of share types\n\t\t */\n\t\tgetShareTypes: function() {\n\t\t\tvar result;\n\t\t\tresult = _.pluck(this.getSharesWithCurrentItem(), 'share_type');\n\t\t\tif (this.hasLinkShares()) {\n\t\t\t\tresult.push(OC.Share.SHARE_TYPE_LINK);\n\t\t\t}\n\t\t\treturn _.uniq(result);\n\t\t}\n\t});\n\n\tOC.Share.ShareItemModel = ShareItemModel;\n})();\n","/**\n * @copyright 2017, Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\tif (!OC.Share) {\n\t\tOC.Share = {};\n\t}\n\n\tOC.Share.Social = {};\n\n\tvar SocialModel = OC.Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\t/** used for sorting social buttons */\n\t\t\tkey: null,\n\t\t\t/** url to open, {{reference}} will be replaced with the link */\n\t\t\turl: null,\n\t\t\t/** Name to show in the tooltip */\n\t\t\tname: null,\n\t\t\t/** Icon class to display */\n\t\t\ticonClass: null,\n\t\t\t/** Open in new windows */\n\t\t\tnewWindow: true\n\t\t}\n\t});\n\n\tOC.Share.Social.Model = SocialModel;\n\n\tvar SocialCollection = OC.Backbone.Collection.extend({\n\t\tmodel: OC.Share.Social.Model,\n\n\t\tcomparator: 'key'\n\t});\n\n\n\tOC.Share.Social.Collection = new SocialCollection;\n})();\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* globals Handlebars */\n\n(function() {\n\tif (!OC.Share) {\n\t\tOC.Share = {};\n\t}\n\n\t/**\n\t * @class OCA.Share.ShareDialogView\n\t * @member {OC.Share.ShareItemModel} model\n\t * @member {jQuery} $el\n\t * @memberof OCA.Sharing\n\t * @classdesc\n\t *\n\t * Represents the GUI of the share dialogue\n\t *\n\t */\n\tvar ShareDialogResharerInfoView = OC.Backbone.View.extend({\n\t\t/** @type {string} **/\n\t\tid: 'shareDialogResharerInfo',\n\n\t\t/** @type {string} **/\n\t\ttagName: 'div',\n\n\t\t/** @type {string} **/\n\t\tclassName: 'reshare',\n\n\t\t/** @type {OC.Share.ShareConfigModel} **/\n\t\tconfigModel: undefined,\n\n\t\t/** @type {Function} **/\n\t\t_template: undefined,\n\n\t\tinitialize: function(options) {\n\t\t\tvar view = this;\n\n\t\t\tthis.model.on('change:reshare', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\n\t\t\tif(!_.isUndefined(options.configModel)) {\n\t\t\t\tthis.configModel = options.configModel;\n\t\t\t} else {\n\t\t\t\tthrow 'missing OC.Share.ShareConfigModel';\n\t\t\t}\n\t\t},\n\n\t\trender: function() {\n\t\t\tif (!this.model.hasReshare()\n\t\t\t\t|| this.model.getReshareOwner() === OC.currentUser)\n\t\t\t{\n\t\t\t\tthis.$el.empty();\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tvar reshareTemplate = this.template();\n\t\t\tvar ownerDisplayName = this.model.getReshareOwnerDisplayname();\n\t\t\tvar shareNote = this.model.getReshareNote();\n\t\t\t\n\t\t\tvar sharedByText = '';\n\n\t\t\tif (this.model.getReshareType() === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\tsharedByText = t(\n\t\t\t\t\t'core',\n\t\t\t\t\t'Shared with you and the group {group} by {owner}',\n\t\t\t\t\t{\n\t\t\t\t\t\tgroup: this.model.getReshareWithDisplayName(),\n\t\t\t\t\t\towner: ownerDisplayName\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t{escape: false}\n\t\t\t\t);\n\t\t\t} else if (this.model.getReshareType() === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\tsharedByText = t(\n\t\t\t\t\t'core',\n\t\t\t\t\t'Shared with you and {circle} by {owner}',\n\t\t\t\t\t{\n\t\t\t\t\t\tcircle: this.model.getReshareWithDisplayName(),\n\t\t\t\t\t\towner: ownerDisplayName\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t{escape: false}\n\t\t\t\t);\n\t\t\t} else if (this.model.getReshareType() === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\tif (this.model.get('reshare').share_with_displayname) {\n\t\t\t\t\tsharedByText = t(\n\t\t\t\t\t\t'core',\n\t\t\t\t\t\t'Shared with you and the conversation {conversation} by {owner}',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconversation: this.model.getReshareWithDisplayName(),\n\t\t\t\t\t\t\towner: ownerDisplayName\n\t\t\t\t\t\t},\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{escape: false}\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tsharedByText = t(\n\t\t\t\t\t\t'core',\n\t\t\t\t\t\t'Shared with you in a conversation by {owner}',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\towner: ownerDisplayName\n\t\t\t\t\t\t},\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{escape: false}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsharedByText = t(\n\t\t\t\t\t'core',\n\t\t\t\t\t'Shared with you by {owner}',\n\t\t\t\t\t{ owner: ownerDisplayName },\n\t\t\t\t\tundefined,\n\t\t\t\t\t{escape: false}\n\t\t\t\t);\n\t\t\t}\n\n\n\n\t\t\tthis.$el.html(reshareTemplate({\n\t\t\t\treshareOwner: this.model.getReshareOwner(),\n\t\t\t\tsharedByText: sharedByText,\n\t\t\t\tshareNote: shareNote,\n\t\t\t\thasShareNote: shareNote !== ''\n\t\t\t}));\n\n\t\t\tthis.$el.find('.avatar').each(function() {\n\t\t\t\tvar $this = $(this);\n\t\t\t\t$this.avatar($this.data('username'), 32);\n\t\t\t});\n\n\t\t\tthis.$el.find('.reshare').contactsMenu(\n\t\t\t\tthis.model.getReshareOwner(),\n\t\t\t\tOC.Share.SHARE_TYPE_USER,\n\t\t\t\tthis.$el);\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * @returns {Function} from Handlebars\n\t\t * @private\n\t\t */\n\t\ttemplate: function () {\n\t\t\treturn OC.Share.Templates['sharedialogresharerinfoview'];\n\t\t}\n\n\t});\n\n\tOC.Share.ShareDialogResharerInfoView = ShareDialogResharerInfoView;\n\n})();\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* globals Clipboard, Handlebars */\n\n(function() {\n\tif (!OC.Share) {\n\t\tOC.Share = {};\n\t}\n\n\tvar PASSWORD_PLACEHOLDER = '**********';\n\tvar PASSWORD_PLACEHOLDER_MESSAGE = t('core', 'Choose a password for the public link');\n\tvar PASSWORD_PLACEHOLDER_MESSAGE_OPTIONAL = t('core', 'Choose a password for the public link or press the \"Enter\" key');\n\n\t/**\n\t * @class OCA.Share.ShareDialogLinkShareView\n\t * @member {OC.Share.ShareItemModel} model\n\t * @member {jQuery} $el\n\t * @memberof OCA.Sharing\n\t * @classdesc\n\t *\n\t * Represents the GUI of the share dialogue\n\t *\n\t */\n\tvar ShareDialogLinkShareView = OC.Backbone.View.extend({\n\t\t/** @type {string} **/\n\t\tid: 'shareDialogLinkShare',\n\n\t\t/** @type {OC.Share.ShareConfigModel} **/\n\t\tconfigModel: undefined,\n\n\t\t/** @type {boolean} **/\n\t\tshowLink: true,\n\n\t\t/** @type {boolean} **/\n\t\tshowPending: false,\n\n\t\t/** @type {string} **/\n\t\tpassword: '',\n\n\t\t/** @type {string} **/\n\t\tnewShareId: 'new-share',\n\n\t\tevents: {\n\t\t\t// open menu\n\t\t\t'click .share-menu .icon-more': 'onToggleMenu',\n\t\t\t// hide download\n\t\t\t'change .hideDownloadCheckbox': 'onHideDownloadChange',\n\t\t\t// password\n\t\t\t'click input.share-pass-submit': 'onPasswordEntered', \n\t\t\t'keyup input.linkPassText': 'onPasswordKeyUp', // check for the enter key\n\t\t\t'change .showPasswordCheckbox': 'onShowPasswordClick',\n\t\t\t'change .passwordByTalkCheckbox': 'onPasswordByTalkChange',\n\t\t\t'change .publicEditingCheckbox': 'onAllowPublicEditingChange',\n\t\t\t// copy link url\n\t\t\t'click .linkText': 'onLinkTextClick',\n\t\t\t// social\n\t\t\t'click .pop-up': 'onPopUpClick',\n\t\t\t// permission change\n\t\t\t'change .publicUploadRadio': 'onPublicUploadChange',\n\t\t\t// expire date\n\t\t\t'click .expireDate' : 'onExpireDateChange',\n\t\t\t'change .datepicker': 'onChangeExpirationDate',\n\t\t\t'click .datepicker' : 'showDatePicker',\n\t\t\t// note\n\t\t\t'click .share-add': 'showNoteForm',\n\t\t\t'click .share-note-delete': 'deleteNote',\n\t\t\t'click .share-note-submit': 'updateNote',\n\t\t\t// remove\n\t\t\t'click .unshare': 'onUnshare',\n\t\t\t// new share\n\t\t\t'click .new-share': 'newShare',\n\t\t\t// enforced pass set\n\t\t\t'submit .enforcedPassForm': 'enforcedPasswordSet',\n\t\t},\n\n\t\tinitialize: function(options) {\n\t\t\tvar view = this;\n\n\t\t\tthis.model.on('change:permissions', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\n\t\t\tthis.model.on('change:itemType', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\n\t\t\tthis.model.on('change:allowPublicUploadStatus', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\n\t\t\tthis.model.on('change:hideFileListStatus', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\n\t\t\tthis.model.on('change:linkShares', function(model, linkShares) {\n\t\t\t\t// The \"Password protect by Talk\" item is shown only when there\n\t\t\t\t// is a password. Unfortunately there is no fine grained\n\t\t\t\t// rendering of items in the link shares, so the whole view\n\t\t\t\t// needs to be rendered again when the password of a share\n\t\t\t\t// changes.\n\t\t\t\t// Note that this event handler is concerned only about password\n\t\t\t\t// changes; other changes in the link shares does not trigger\n\t\t\t\t// a rendering, so the view must be rendered again as needed in\n\t\t\t\t// those cases (for example, when a link share is removed).\n\t\t\t\t\n\t\t\t\tvar previousLinkShares = model.previous('linkShares');\n\t\t\t\tif (previousLinkShares.length !== linkShares.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar i;\n\t\t\t\tfor (i = 0; i < linkShares.length; i++) {\n\t\t\t\t\tif (linkShares[i].id !== previousLinkShares[i].id) {\n\t\t\t\t\t\t// A resorting should never happen, but just in case.\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (linkShares[i].password !== previousLinkShares[i].password) {\n\t\t\t\t\t\tview.render();\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif(!_.isUndefined(options.configModel)) {\n\t\t\t\tthis.configModel = options.configModel;\n\t\t\t} else {\n\t\t\t\tthrow 'missing OC.Share.ShareConfigModel';\n\t\t\t}\n\n\t\t\tvar clipboard = new Clipboard('.clipboard-button');\n\t\t\tclipboard.on('success', function(e) {\n\t\t\t\tvar $trigger = $(e.trigger);\n\n\t\t\t\t$trigger.tooltip('hide')\n\t\t\t\t\t.attr('data-original-title', t('core', 'Copied!'))\n\t\t\t\t\t.tooltip('fixTitle')\n\t\t\t\t\t.tooltip({placement: 'bottom', trigger: 'manual'})\n\t\t\t\t\t.tooltip('show');\n\t\t\t\t_.delay(function() {\n\t\t\t\t\t$trigger.tooltip('hide')\n\t\t\t\t\t\t.attr('data-original-title', t('core', 'Copy link'))\n\t\t\t\t\t\t.tooltip('fixTitle')\n\t\t\t\t}, 3000);\n\t\t\t});\n\t\t\tclipboard.on('error', function (e) {\n\t\t\t\tvar $trigger = $(e.trigger);\n\t\t\t\tvar $menu = $trigger.next('.share-menu').find('.popovermenu');\n\t\t\t\tvar $linkTextMenu = $menu.find('li.linkTextMenu');\n\t\t\t\tvar $input = $linkTextMenu.find('.linkText');\n\n\t\t\t\tvar $li = $trigger.closest('li[data-share-id]');\n\t\t\t\tvar shareId = $li.data('share-id');\n\n\t\t\t\t// show menu\n\t\t\t\tOC.showMenu(null, $menu);\n\n\t\t\t\tvar actionMsg = '';\n\t\t\t\tif (/iPhone|iPad/i.test(navigator.userAgent)) {\n\t\t\t\t\tactionMsg = t('core', 'Not supported!');\n\t\t\t\t} else if (/Mac/i.test(navigator.userAgent)) {\n\t\t\t\t\tactionMsg = t('core', 'Press ⌘-C to copy.');\n\t\t\t\t} else {\n\t\t\t\t\tactionMsg = t('core', 'Press Ctrl-C to copy.');\n\t\t\t\t}\n\n\t\t\t\t$linkTextMenu.removeClass('hidden');\n\t\t\t\t$input.select();\n\t\t\t\t$input.tooltip('hide')\n\t\t\t\t\t.attr('data-original-title', actionMsg)\n\t\t\t\t\t.tooltip('fixTitle')\n\t\t\t\t\t.tooltip({placement: 'bottom', trigger: 'manual'})\n\t\t\t\t\t.tooltip('show');\n\t\t\t\t_.delay(function () {\n\t\t\t\t\t$input.tooltip('hide');\n\t\t\t\t\t$input.attr('data-original-title', t('core', 'Copy'))\n\t\t\t\t\t\t  .tooltip('fixTitle');\n\t\t\t\t}, 3000);\n\t\t\t});\n\t\t},\n\n\t\tnewShare: function(event) {\n\t\t\tvar self = this;\n\t\t\tvar $target = $(event.target);\n\t\t\tvar $li = $target.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $loading = $li.find('.share-menu > .icon-loading-small');\n\n\t\t\tif(!$loading.hasClass('hidden') && this.password === '') {\n\t\t\t\t// in process\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// hide all icons and show loading\n\t\t\t$li.find('.icon').addClass('hidden');\n\t\t\t$loading.removeClass('hidden');\n\n\t\t\t// hide menu\n\t\t\tOC.hideMenus();\n\n\t\t\tvar shareData = {}\n\n\t\t\tvar isPasswordEnforced = this.configModel.get('enforcePasswordForPublicLink');\n\t\t\tvar isExpirationEnforced = this.configModel.get('isDefaultExpireDateEnforced');\n\n\t\t\t// set default expire date\n\t\t\tif (isExpirationEnforced) {\n\t\t\t\tvar defaultExpireDays = this.configModel.get('defaultExpireDate');\n\t\t\t\tvar expireDate = moment().add(defaultExpireDays, 'day').format('DD-MM-YYYY')\n\t\t\t\tshareData.expireDate = expireDate;\n\t\t\t}\n\n\t\t\t// if password is set, add to data\n\t\t\tif (isPasswordEnforced && this.password !== '') {\n\t\t\t\tshareData.password = this.password\n\t\t\t}\n\n\t\t\tvar newShareId = false;\n\n\t\t\t// We need a password before the share creation\n\t\t\tif (isPasswordEnforced && !this.showPending && this.password === '') {\n\t\t\t\tthis.showPending = shareId;\n\t\t\t\tvar self = this.render();\n\t\t\t\tself.$el.find('.pending #enforcedPassText').focus();\n\t\t\t} else {\n\t\t\t\t// else, we have a password or it is not enforced\n\t\t\t\t$.when(this.model.saveLinkShare(shareData, {\n\t\t\t\t\tsuccess: function() {\n\t\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t\t$li.find('.icon').removeClass('hidden');\n\t\t\t\t\t\tself.render();\n\t\t\t\t\t\t// open the menu by default\n\t\t\t\t\t\t// we can only do that after the render\n\t\t\t\t\t\tif (newShareId) {\n\t\t\t\t\t\t\tvar shares = self.$el.find('li[data-share-id]');\n\t\t\t\t\t\t\tvar $newShare = self.$el.find('li[data-share-id=\"'+newShareId+'\"]');\n\t\t\t\t\t\t\t// only open the menu by default if this is the first share\n\t\t\t\t\t\t\tif ($newShare && shares.length === 1) {\n\t\t\t\t\t\t\t\tvar $menu = $newShare.find('.popovermenu');\n\t\t\t\t\t\t\t\tOC.showMenu(null, $menu);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror: function() {\n\t\t\t\t\t\t// empty function to override the default Dialog warning\n\t\t\t\t\t}\n\t\t\t\t})).fail(function(response) {\n\t\t\t\t\t// password failure? Show error\n\t\t\t\t\tself.password = ''\n\t\t\t\t\tif (isPasswordEnforced && response && response.responseJSON && response.responseJSON.ocs.meta && response.responseJSON.ocs.meta.message) {\n\t\t\t\t\t\tvar $input = self.$el.find('.pending #enforcedPassText')\n\t\t\t\t\t\t$input.tooltip('destroy');\n\t\t\t\t\t\t$input.attr('title', response.responseJSON.ocs.meta.message);\n\t\t\t\t\t\t$input.tooltip({placement: 'bottom', trigger: 'manual'});\n\t\t\t\t\t\t$input.tooltip('show');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tOC.Notification.showTemporary(t('core', 'Unable to create a link share'));\n\t\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t\t$li.find('.icon').removeClass('hidden');\n\t\t\t\t\t}\n\t\t\t\t}).then(function(response) {\n\t\t\t\t\t// resolve before success\n\t\t\t\t\tnewShareId = response.ocs.data.id\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tenforcedPasswordSet: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tvar $form = $(event.target);\n\t\t\tvar $input = $form.find('input.enforcedPassText');\n\t\t\tthis.password = $input.val();\n\t\t\tthis.showPending = false;\n\t\t\tthis.newShare(event);\n\t\t},\n\n\t\tonLinkTextClick: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar $el = $li.find('.linkText');\n\t\t\t$el.focus();\n\t\t\t$el.select();\n\t\t},\n\n\t\tonHideDownloadChange: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $checkbox = $li.find('.hideDownloadCheckbox');\n\t\t\t$checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock');\n\n\t\t\tvar hideDownload = false;\n\t\t\tif($checkbox.is(':checked')) {\n\t\t\t\thideDownload = true;\n\t\t\t}\n\n\t\t\tthis.model.saveLinkShare({\n\t\t\t\thideDownload: hideDownload,\n\t\t\t\tcid: shareId\n\t\t\t}, {\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t$checkbox.siblings('.icon-loading-small').addClass('hidden').removeClass('inlineblock');\n\t\t\t\t},\n\t\t\t\terror: function(obj, msg) {\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'Unable to toggle this option'));\n\t\t\t\t\t$checkbox.siblings('.icon-loading-small').addClass('hidden').removeClass('inlineblock');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tonShowPasswordClick: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\t$li.find('.linkPass').slideToggle(OC.menuSpeed);\n\t\t\t$li.find('.linkPassMenu').toggleClass('hidden');\n\t\t\tif(!$li.find('.showPasswordCheckbox').is(':checked')) {\n\t\t\t\tthis.model.saveLinkShare({\n\t\t\t\t\tpassword: '',\n\t\t\t\t\tcid: shareId\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (!OC.Util.isIE()) {\n\t\t\t\t\t$li.find('.linkPassText').focus();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tonPasswordKeyUp: function(event) {\n\t\t\tif(event.keyCode === 13) {\n\t\t\t\tthis.onPasswordEntered(event);\n\t\t\t}\n\t\t},\n\n\t\tonPasswordEntered: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $loading = $li.find('.linkPassMenu .icon-loading-small');\n\t\t\tif (!$loading.hasClass('hidden')) {\n\t\t\t\t// still in process\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar $input = $li.find('.linkPassText');\n\t\t\t$input.removeClass('error');\n\t\t\tvar password = $input.val();\n\n\t\t\tif ($li.find('.linkPassText').attr('placeholder') === PASSWORD_PLACEHOLDER_MESSAGE_OPTIONAL) {\n\n\t\t\t\t// in IE9 the password might be the placeholder due to bugs in the placeholders polyfill\n\t\t\t\tif(password === PASSWORD_PLACEHOLDER_MESSAGE_OPTIONAL) {\n\t\t\t\t\tpassword = '';\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// in IE9 the password might be the placeholder due to bugs in the placeholders polyfill\n\t\t\t\tif(password === '' || password === PASSWORD_PLACEHOLDER || password === PASSWORD_PLACEHOLDER_MESSAGE) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$loading\n\t\t\t\t.removeClass('hidden')\n\t\t\t\t.addClass('inlineblock');\n\n\t\t\tthis.model.saveLinkShare({\n\t\t\t\tpassword: password,\n\t\t\t\tcid: shareId\n\t\t\t}, {\n\t\t\t\tcomplete: function(model) {\n\t\t\t\t\t$loading.removeClass('inlineblock').addClass('hidden');\n\t\t\t\t},\n\t\t\t\terror: function(model, msg) {\n\t\t\t\t\t// destroy old tooltips\n\t\t\t\t\tvar $container = $input.parent();\n\t\t\t\t\t$container.tooltip('destroy');\n\t\t\t\t\t$input.addClass('error');\n\t\t\t\t\t$container.attr('title', msg);\n\t\t\t\t\t$container.tooltip({placement: 'bottom', trigger: 'manual'});\n\t\t\t\t\t$container.tooltip('show');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tonPasswordByTalkChange: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $checkbox = $li.find('.passwordByTalkCheckbox');\n\t\t\t$checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock');\n\n\t\t\tvar sendPasswordByTalk = false;\n\t\t\tif($checkbox.is(':checked')) {\n\t\t\t\tsendPasswordByTalk = true;\n\t\t\t}\n\n\t\t\tthis.model.saveLinkShare({\n\t\t\t\tsendPasswordByTalk: sendPasswordByTalk,\n\t\t\t\tcid: shareId\n\t\t\t}, {\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t$checkbox.siblings('.icon-loading-small').addClass('hidden').removeClass('inlineblock');\n\t\t\t\t},\n\t\t\t\terror: function(obj, msg) {\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'Unable to toggle this option'));\n\t\t\t\t\t$checkbox.siblings('.icon-loading-small').addClass('hidden').removeClass('inlineblock');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tonAllowPublicEditingChange: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $checkbox = $li.find('.publicEditingCheckbox');\n\t\t\t$checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock');\n\n\t\t\tvar permissions = OC.PERMISSION_READ;\n\t\t\tif($checkbox.is(':checked')) {\n\t\t\t\tpermissions = OC.PERMISSION_UPDATE | OC.PERMISSION_READ;\n\t\t\t}\n\n\t\t\tthis.model.saveLinkShare({\n\t\t\t\tpermissions: permissions,\n\t\t\t\tcid: shareId\n\t\t\t}, {\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t$checkbox.siblings('.icon-loading-small').addClass('hidden').removeClass('inlineblock');\n\t\t\t\t},\n\t\t\t\terror: function(obj, msg) {\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'Unable to toggle this option'));\n\t\t\t\t\t$checkbox.siblings('.icon-loading-small').addClass('hidden').removeClass('inlineblock');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\tonPublicUploadChange: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar permissions = event.currentTarget.value;\n\t\t\tthis.model.saveLinkShare({\n\t\t\t\tpermissions: permissions,\n\t\t\t\tcid: shareId\n\t\t\t});\n\t\t},\n\n\t\tshowNoteForm: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar $menu = $element.closest('li');\n\t\t\tvar $form = $menu.next('li.share-note-form');\n\n\t\t\t// show elements\n\t\t\t$menu.find('.share-note-delete').toggleClass('hidden');\n\t\t\t$form.toggleClass('hidden');\n\t\t\t$form.find('textarea').focus();\n\t\t},\n\n\t\tdeleteNote: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $menu = $element.closest('li');\n\t\t\tvar $form = $menu.next('li.share-note-form');\n\n\t\t\t$form.find('.share-note').val('');\n\n\t\t\t$form.addClass('hidden');\n\t\t\t$menu.find('.share-note-delete').addClass('hidden');\n\n\t\t\tself.sendNote('', shareId, $menu);\n\t\t},\n\n\t\tupdateNote: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $form = $element.closest('li.share-note-form');\n\t\t\tvar $menu = $form.prev('li');\n\t\t\tvar message = $form.find('.share-note').val().trim();\n\n\t\t\tif (message.length < 1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tself.sendNote(message, shareId, $menu);\n\t\t},\n\n\t\tsendNote: function(note, shareId, $menu) {\n\t\t\tvar $form = $menu.next('li.share-note-form');\n\t\t\tvar $submit = $form.find('input.share-note-submit');\n\t\t\tvar $error = $form.find('input.share-note-error');\n\n\t\t\t$submit.prop('disabled', true);\n\t\t\t$menu.find('.icon-loading-small').removeClass('hidden');\n\t\t\t$menu.find('.icon-edit').hide();\n\n\t\t\tvar complete = function() {\n\t\t\t\t$submit.prop('disabled', false);\n\t\t\t\t$menu.find('.icon-loading-small').addClass('hidden');\n\t\t\t\t$menu.find('.icon-edit').show();\n\t\t\t};\n\t\t\tvar error = function() {\n\t\t\t\t$error.show();\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t$error.hide();\n\t\t\t\t}, 3000);\n\t\t\t};\n\n\t\t\t// send data\n\t\t\t$.ajax({\n\t\t\t\tmethod: 'PUT',\n\t\t\t\turl: OC.linkToOCS('apps/files_sharing/api/v1/shares',2) + shareId + '?' + OC.buildQueryString({format: 'json'}),\n\t\t\t\tdata: { note: note },\n\t\t\t\tcomplete : complete,\n\t\t\t\terror: error\n\t\t\t});\n\t\t},\n\n\t\trender: function() {\n\t\t\tthis.$el.find('.has-tooltip').tooltip();\n\n\t\t\t// reset previously set passwords\n\t\t\tthis.password = '';\n\n\t\t\tvar linkShareTemplate = this.template();\n\t\t\tvar resharingAllowed = this.model.sharePermissionPossible();\n\n\t\t\tif(!resharingAllowed\n\t\t\t\t|| !this.showLink\n\t\t\t\t|| !this.configModel.isShareWithLinkAllowed())\n\t\t\t{\n\t\t\t\tvar templateData = {shareAllowed: false};\n\t\t\t\tif (!resharingAllowed) {\n\t\t\t\t\t// add message\n\t\t\t\t\ttemplateData.noSharingPlaceholder = t('core', 'Resharing is not allowed');\n\t\t\t\t}\n\t\t\t\tthis.$el.html(linkShareTemplate(templateData));\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tvar publicUpload =\n\t\t\t\tthis.model.isFolder()\n\t\t\t\t&& this.model.createPermissionPossible()\n\t\t\t\t&& this.configModel.isPublicUploadEnabled();\n\n\n\t\t\tvar publicEditingChecked = '';\n\t\t\tif(this.model.isPublicEditingAllowed()) {\n\t\t\t\tpublicEditingChecked = 'checked=\"checked\"';\n\t\t\t}\n\n\t\t\tvar isPasswordEnforced = this.configModel.get('enforcePasswordForPublicLink');\n\t\t\tvar isPasswordEnabledByDefault = this.configModel.get('enableLinkPasswordByDefault') === true;\n\t\t\tvar passwordPlaceholderInitial = this.configModel.get('enforcePasswordForPublicLink')\n\t\t\t\t? PASSWORD_PLACEHOLDER_MESSAGE : PASSWORD_PLACEHOLDER_MESSAGE_OPTIONAL;\n\n\t\t\tvar publicEditable =\n\t\t\t\t!this.model.isFolder()\n\t\t\t\t&& this.model.updatePermissionPossible();\n\n\t\t\tvar isExpirationEnforced = this.configModel.get('isDefaultExpireDateEnforced');\n\n\t\t\t// what if there is another date picker on that page?\n\t\t\tvar minDate = new Date();\n\t\t\t// min date should always be the next day\n\t\t\tminDate.setDate(minDate.getDate()+1);\n\n\t\t\t$.datepicker.setDefaults({\n\t\t\t\tminDate: minDate\n\t\t\t});\n\n\t\t\tthis.$el.find('.datepicker').datepicker({dateFormat : 'dd-mm-yy'});\n\n\t\t\tvar minPasswordLength = 4\n\t\t\t// password policy?\n\t\t\tif(oc_capabilities.password_policy && oc_capabilities.password_policy.minLength) {\n\t\t\t\tminPasswordLength = oc_capabilities.password_policy.minLength;\n\t\t\t}\n\n\t\t\tvar popoverBase = {\n\t\t\t\turlLabel: t('core', 'Link'),\n\t\t\t\thideDownloadLabel: t('core', 'Hide download'),\n\t\t\t\tenablePasswordLabel: isPasswordEnforced ? t('core', 'Password protection enforced') : t('core', 'Password protect'),\n\t\t\t\tpasswordLabel: t('core', 'Password'),\n\t\t\t\tpasswordPlaceholderInitial: passwordPlaceholderInitial,\n\t\t\t\tpublicUpload: publicUpload,\n\t\t\t\tpublicEditing: publicEditable,\n\t\t\t\tpublicEditingChecked: publicEditingChecked,\n\t\t\t\tpublicEditingLabel: t('core', 'Allow editing'),\n\t\t\t\tmailPrivatePlaceholder: t('core', 'Email link to person'),\n\t\t\t\tmailButtonText: t('core', 'Send'),\n\t\t\t\tpublicUploadRWLabel: t('core', 'Allow upload and editing'),\n\t\t\t\tpublicUploadRLabel: t('core', 'Read only'),\n\t\t\t\tpublicUploadWLabel: t('core', 'File drop (upload only)'),\n\t\t\t\tpublicUploadRWValue: OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_READ | OC.PERMISSION_DELETE,\n\t\t\t\tpublicUploadRValue: OC.PERMISSION_READ,\n\t\t\t\tpublicUploadWValue: OC.PERMISSION_CREATE,\n\t\t\t\texpireDateLabel: isExpirationEnforced ? t('core', 'Expiration date enforced') : t('core', 'Set expiration date'),\n\t\t\t\texpirationLabel: t('core', 'Expiration'),\n\t\t\t\texpirationDatePlaceholder: t('core', 'Expiration date'),\n\t\t\t\tisExpirationEnforced: isExpirationEnforced,\n\t\t\t\tisPasswordEnforced: isPasswordEnforced,\n\t\t\t\tdefaultExpireDate: moment().add(1, 'day').format('DD-MM-YYYY'), // Can't expire today\n\t\t\t\taddNoteLabel: t('core', 'Note to recipient'),\n\t\t\t\tunshareLabel: t('core', 'Unshare'),\n\t\t\t\tunshareLinkLabel: t('core', 'Delete share link'),\n\t\t\t\tnewShareLabel: t('core', 'Add another link'),\n\t\t\t};\n\n\t\t\tvar pendingPopover = {\n\t\t\t\tisPasswordEnforced: isPasswordEnforced,\n\t\t\t\tenforcedPasswordLabel: t('core', 'Password protection for links is mandatory'),\n\t\t\t\tpasswordPlaceholder: passwordPlaceholderInitial,\n\t\t\t\tminPasswordLength: minPasswordLength,\n\t\t\t};\n\t\t\tvar pendingPopoverMenu = this.pendingPopoverMenuTemplate(_.extend({}, pendingPopover))\n\n\t\t\tvar linkShares = this.getShareeList();\n\t\t\tif(_.isArray(linkShares)) {\n\t\t\t\tfor (var i = 0; i < linkShares.length; i++) {\n\t\t\t\t\tvar social = [];\n\t\t\t\t\tOC.Share.Social.Collection.each(function (model) {\n\t\t\t\t\t\tvar url = model.get('url');\n\t\t\t\t\t\turl = url.replace('{{reference}}', linkShares[i].shareLinkURL);\n\t\t\t\t\t\tsocial.push({\n\t\t\t\t\t\t\turl: url,\n\t\t\t\t\t\t\tlabel: t('core', 'Share to {name}', {name: model.get('name')}),\n\t\t\t\t\t\t\tname: model.get('name'),\n\t\t\t\t\t\t\ticonClass: model.get('iconClass'),\n\t\t\t\t\t\t\tnewWindow: model.get('newWindow')\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tvar popover = this.getPopoverObject(linkShares[i])\n\t\t\t\t\tlinkShares[i].popoverMenu = this.popoverMenuTemplate(_.extend({}, popoverBase, popover, {social: social}));\n\t\t\t\t\tlinkShares[i].pendingPopoverMenu = pendingPopoverMenu\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.$el.html(linkShareTemplate({\n\t\t\t\tlinkShares: linkShares,\n\t\t\t\tshareAllowed: true,\n\t\t\t\tnolinkShares: linkShares.length === 0,\n\t\t\t\tnewShareLabel: t('core', 'Share link'),\n\t\t\t\tnewShareTitle: t('core', 'New share link'),\n\t\t\t\tpendingPopoverMenu: pendingPopoverMenu,\n\t\t\t\tshowPending: this.showPending === this.newShareId,\n\t\t\t\tnewShareId: this.newShareId,\n\t\t\t}));\n\n\t\t\tthis.delegateEvents();\n\n\t\t\t// new note autosize\n\t\t\tautosize(this.$el.find('.share-note-form .share-note'));\n\n\t\t\treturn this;\n\t\t},\n\n\t\tonToggleMenu: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar $menu = $li.find('.sharingOptionsGroup .popovermenu');\n\t\t\tvar shareId = $li.data('share-id');\n\n\t\t\tOC.showMenu(null, $menu);\n\n\t\t\t// focus the password if not set and enforced\n\t\t\tvar isPasswordEnabledByDefault = this.configModel.get('enableLinkPasswordByDefault') === true;\n\t\t\tvar haspassword = $menu.find('.linkPassText').val() !== '';\n\n\t\t\tif (!haspassword && isPasswordEnabledByDefault) {\n\t\t\t\t$menu.find('.linkPassText').focus();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @returns {Function} from Handlebars\n\t\t * @private\n\t\t */\n\t\ttemplate: function () {\n\t\t\treturn OC.Share.Templates['sharedialoglinkshareview'];\n\t\t},\n\n\t\t/**\n\t\t * renders the popover template and returns the resulting HTML\n\t\t *\n\t\t * @param {Object} data\n\t\t * @returns {string}\n\t\t */\n\t\tpopoverMenuTemplate: function(data) {\n\t\t\treturn OC.Share.Templates['sharedialoglinkshareview_popover_menu'](data);\n\t\t},\n\n\t\t/**\n\t\t * renders the pending popover template and returns the resulting HTML\n\t\t *\n\t\t * @param {Object} data\n\t\t * @returns {string}\n\t\t */\n\t\tpendingPopoverMenuTemplate: function(data) {\n\t\t\treturn OC.Share.Templates['sharedialoglinkshareview_popover_menu_pending'](data);\n\t\t},\n\n\t\tonPopUpClick: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\n\t\t\tvar url = $(event.currentTarget).data('url');\n\t\t\tvar newWindow = $(event.currentTarget).data('window');\n\t\t\t$(event.currentTarget).tooltip('hide');\n\t\t\tif (url) {\n\t\t\t\tif (newWindow === true) {\n\t\t\t\t\tvar width = 600;\n\t\t\t\t\tvar height = 400;\n\t\t\t\t\tvar left = (screen.width / 2) - (width / 2);\n\t\t\t\t\tvar top = (screen.height / 2) - (height / 2);\n\n\t\t\t\t\twindow.open(url, 'name', 'width=' + width + ', height=' + height + ', top=' + top + ', left=' + left);\n\t\t\t\t} else {\n\t\t\t\t\twindow.location.href = url;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tonExpireDateChange: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar expirationDatePicker = '#expirationDateContainer-' + shareId;\n\t\t\tvar datePicker = $(expirationDatePicker);\n\t\t\tvar state = $element.prop('checked');\n\t\t\tdatePicker.toggleClass('hidden', !state);\n\n\t\t\tif (!state) {\n\t\t\t\t// disabled, let's hide the input and\n\t\t\t\t// set the expireDate to nothing\n\t\t\t\t$element.closest('li').next('li').addClass('hidden');\n\t\t\t\tthis.setExpirationDate('', shareId);\n\t\t\t} else {\n\t\t\t\t// enabled, show the input and the datepicker\n\t\t\t\t$element.closest('li').next('li').removeClass('hidden');\n\t\t\t\tthis.showDatePicker(event);\n\n\t\t\t}\n\t\t},\n\n\t\tshowDatePicker: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar maxDate = $element.data('max-date');\n\t\t\tvar expirationDatePicker = '#expirationDatePicker-' + shareId;\n\t\t\tvar self = this;\n\n\t\t\t$(expirationDatePicker).datepicker({\n\t\t\t\tdateFormat : 'dd-mm-yy',\n\t\t\t\tonSelect: function (expireDate) {\n\t\t\t\t\tself.setExpirationDate(expireDate, shareId);\n\t\t\t\t},\n\t\t\t\tmaxDate: maxDate\n\t\t\t});\n\t\t\t$(expirationDatePicker).datepicker('show');\n\t\t\t$(expirationDatePicker).focus();\n\n\t\t},\n\n\t\tsetExpirationDate: function(expireDate, shareId) {\n\t\t\tthis.model.saveLinkShare({expireDate: expireDate, cid: shareId});\n\t\t},\n\n\t\tonChangeExpirationDate: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar expireDate = $element.val();\n\t\t\tvar li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar expirationDatePicker = '#expirationDatePicker-' + shareId;\n\n\t\t\tthis.setExpirationDate(expireDate, shareId);\n\t\t\t$(expirationDatePicker).datepicker('hide');\n\t\t},\n\n\t\t/**\n\t\t * get an array of sharees' share properties\n\t\t *\n\t\t * @returns {Array}\n\t\t */\n\t\tgetShareeList: function() {\n\t\t\tvar shares = this.model.get('linkShares');\n\n\t\t\tif(!this.model.hasLinkShares()) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tvar list = [];\n\t\t\tfor(var index = 0; index < shares.length; index++) {\n\t\t\t\tvar share = this.getShareeObject(index);\n\t\t\t\t// first empty {} is necessary, otherwise we get in trouble\n\t\t\t\t// with references\n\t\t\t\tlist.push(_.extend({}, share));\n\t\t\t}\n\n\t\t\treturn list;\n\t\t},\n\n\t\t/**\n\t\t *\n\t\t * @param {OC.Share.Types.ShareInfo} shareInfo\n\t\t * @returns {object}\n\t\t */\n\t\tgetShareeObject: function(shareIndex) {\n\t\t\tvar share = this.model.get('linkShares')[shareIndex];\n\n\t\t\treturn _.extend({}, share, {\n\t\t\t\tcid: share.id,\n\t\t\t\tshareAllowed: true,\n\t\t\t\tlinkShareLabel: share.label ? share.label : t('core', 'Share link'),\n\t\t\t\tpopoverMenu: {},\n\t\t\t\tshareLinkURL: share.url,\n\t\t\t\tnewShareTitle: t('core', 'New share link'),\n\t\t\t\tcopyLabel: t('core', 'Copy link'),\n\t\t\t\tshowPending: this.showPending === share.id,\n\t\t\t\tlinkShareCreationDate: t('core', 'Created on {time}', { time: moment(share.stime * 1000).format('LLLL') })\n\t\t\t})\n\t\t},\n\n\t\tgetPopoverObject: function(share) {\n\t\t\tvar publicUploadRWChecked = '';\n\t\t\tvar publicUploadRChecked = '';\n\t\t\tvar publicUploadWChecked = '';\n\n\t\t\tswitch (this.model.linkSharePermissions(share.id)) {\n\t\t\t\tcase OC.PERMISSION_READ:\n\t\t\t\t\tpublicUploadRChecked = 'checked';\n\t\t\t\t\tbreak;\n\t\t\t\tcase OC.PERMISSION_CREATE:\n\t\t\t\t\tpublicUploadWChecked = 'checked';\n\t\t\t\t\tbreak;\n\t\t\t\tcase OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_READ | OC.PERMISSION_DELETE:\n\t\t\t\t\tpublicUploadRWChecked = 'checked';\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar isPasswordSet = !!share.password;\n\t\t\tvar isPasswordEnabledByDefault = this.configModel.get('enableLinkPasswordByDefault') === true;\n\t\t\tvar isPasswordEnforced = this.configModel.get('enforcePasswordForPublicLink');\n\t\t\tvar isExpirationEnforced = this.configModel.get('isDefaultExpireDateEnforced');\n\t\t\tvar defaultExpireDays = this.configModel.get('defaultExpireDate');\n\t\t\tvar hasExpireDate = !!share.expiration || isExpirationEnforced;\n\n\t\t\tvar expireDate;\n\t\t\tif (hasExpireDate) {\n\t\t\t\texpireDate = moment(share.expiration, 'YYYY-MM-DD').format('DD-MM-YYYY');\n\t\t\t}\n\n\t\t\tvar isTalkEnabled = oc_appswebroots['spreed'] !== undefined;\n\t\t\tvar sendPasswordByTalk = share.sendPasswordByTalk;\n\n\t\t\tvar hideDownload = share.hideDownload;\n\n\t\t\tvar maxDate = null;\n\n\t\t\tif(hasExpireDate) {\n\t\t\t\tif(isExpirationEnforced) {\n\t\t\t\t\t// TODO: hack: backend returns string instead of integer\n\t\t\t\t\tvar shareTime = share.stime;\n\t\t\t\t\tif (_.isNumber(shareTime)) {\n\t\t\t\t\t\tshareTime = new Date(shareTime * 1000);\n\t\t\t\t\t}\n\t\t\t\t\tif (!shareTime) {\n\t\t\t\t\t\tshareTime = new Date(); // now\n\t\t\t\t\t}\n\t\t\t\t\tshareTime = OC.Util.stripTime(shareTime).getTime();\n\t\t\t\t\tmaxDate = new Date(shareTime + defaultExpireDays * 24 * 3600 * 1000);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcid: share.id,\n\t\t\t\tshareLinkURL: share.url,\n\t\t\t\tpasswordPlaceholder: isPasswordSet ? PASSWORD_PLACEHOLDER : PASSWORD_PLACEHOLDER_MESSAGE,\n\t\t\t\tisPasswordSet: isPasswordSet || isPasswordEnabledByDefault || isPasswordEnforced,\n\t\t\t\tshowPasswordByTalkCheckBox: isTalkEnabled && isPasswordSet,\n\t\t\t\tpasswordByTalkLabel: t('core', 'Password protect by Talk'),\n\t\t\t\tisPasswordByTalkSet: sendPasswordByTalk,\n\t\t\t\tpublicUploadRWChecked: publicUploadRWChecked,\n\t\t\t\tpublicUploadRChecked: publicUploadRChecked,\n\t\t\t\tpublicUploadWChecked: publicUploadWChecked,\n\t\t\t\thasExpireDate: hasExpireDate,\n\t\t\t\texpireDate: expireDate,\n\t\t\t\tshareNote: share.note,\n\t\t\t\thasNote: share.note !== '',\n\t\t\t\tmaxDate: maxDate,\n\t\t\t\thideDownload: hideDownload,\n\t\t\t\tisExpirationEnforced: isExpirationEnforced,\n\t\t\t}\n\t\t},\n\n\t\tonUnshare: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tif (!$element.is('a')) {\n\t\t\t\t$element = $element.closest('a');\n\t\t\t}\n\n\t\t\tvar $loading = $element.find('.icon-loading-small').eq(0);\n\t\t\tif(!$loading.hasClass('hidden')) {\n\t\t\t\t// in process\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t$loading.removeClass('hidden');\n\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\n\t\t\tvar shareId = $li.data('share-id');\n\n\t\t\tself.model.removeShare(shareId, {\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t$li.remove();\n\t\t\t\t\tself.render()\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'Could not unshare'));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn false;\n\t\t},\n\n\n\t});\n\n\tOC.Share.ShareDialogLinkShareView = ShareDialogLinkShareView;\n\n})();\n","/* global OC, Handlebars */\n\n/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* globals Handlebars */\n\n(function() {\n\n\tvar PASSWORD_PLACEHOLDER = '**********';\n\tvar PASSWORD_PLACEHOLDER_MESSAGE = t('core', 'Choose a password for the mail share');\n\n\tif (!OC.Share) {\n\t\tOC.Share = {};\n\t}\n\n\t/**\n\t * @class OCA.Share.ShareDialogShareeListView\n\t * @member {OC.Share.ShareItemModel} model\n\t * @member {jQuery} $el\n\t * @memberof OCA.Sharing\n\t * @classdesc\n\t *\n\t * Represents the sharee list part in the GUI of the share dialogue\n\t *\n\t */\n\tvar ShareDialogShareeListView = OC.Backbone.View.extend({\n\t\t/** @type {string} **/\n\t\tid: 'shareDialogLinkShare',\n\n\t\t/** @type {OC.Share.ShareConfigModel} **/\n\t\tconfigModel: undefined,\n\n\t\t_menuOpen: false,\n\n\t\t/** @type {boolean|number} **/\n\t\t_renderPermissionChange: false,\n\n\t\tevents: {\n\t\t\t'click .unshare': 'onUnshare',\n\t\t\t'click .share-add': 'showNoteForm',\n\t\t\t'click .share-note-delete': 'deleteNote',\n\t\t\t'click .share-note-submit': 'updateNote',\n\t\t\t'click .share-menu .icon-more': 'onToggleMenu',\n\t\t\t'click .permissions': 'onPermissionChange',\n\t\t\t'click .expireDate' : 'onExpireDateChange',\n\t\t\t'click .password' : 'onMailSharePasswordProtectChange',\n\t\t\t'click .passwordByTalk' : 'onMailSharePasswordProtectByTalkChange',\n\t\t\t'click .secureDrop' : 'onSecureDropChange',\n\t\t\t'keyup input.passwordField': 'onMailSharePasswordKeyUp',\n\t\t\t'focusout input.passwordField': 'onMailSharePasswordEntered',\n\t\t\t'change .datepicker': 'onChangeExpirationDate',\n\t\t\t'click .datepicker' : 'showDatePicker'\n\t\t},\n\n\t\tinitialize: function(options) {\n\t\t\tif(!_.isUndefined(options.configModel)) {\n\t\t\t\tthis.configModel = options.configModel;\n\t\t\t} else {\n\t\t\t\tthrow 'missing OC.Share.ShareConfigModel';\n\t\t\t}\n\n\t\t\tvar view = this;\n\t\t\tthis.model.on('change:shares', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t *\n\t\t * @param {OC.Share.Types.ShareInfo} shareInfo\n\t\t * @returns {object}\n\t\t */\n\t\tgetShareeObject: function(shareIndex) {\n\t\t\tvar shareWith = this.model.getShareWith(shareIndex);\n\t\t\tvar shareWithDisplayName = this.model.getShareWithDisplayName(shareIndex);\n\t\t\tvar shareWithAvatar = this.model.getShareWithAvatar(shareIndex);\n\t\t\tvar shareWithTitle = '';\n\t\t\tvar shareType = this.model.getShareType(shareIndex);\n\t\t\tvar sharedBy = this.model.getSharedBy(shareIndex);\n\t\t\tvar sharedByDisplayName = this.model.getSharedByDisplayName(shareIndex);\n\t\t\tvar fileOwnerUid = this.model.getFileOwnerUid(shareIndex);\n\n\t\t\tvar hasPermissionOverride = {};\n\t\t\tif (shareType === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\tshareWithDisplayName = shareWithDisplayName + \" (\" + t('core', 'group') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\tshareWithDisplayName = shareWithDisplayName + \" (\" + t('core', 'remote') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_REMOTE_GROUP) {\n\t\t\t\tshareWithDisplayName = shareWithDisplayName + \" (\" + t('core', 'remote group') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\tshareWithDisplayName = shareWithDisplayName + \" (\" + t('core', 'email') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\tshareWithDisplayName = shareWithDisplayName + \" (\" + t('core', 'conversation') + ')';\n\t\t\t}\n\n\t\t\tif (shareType === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\tshareWithTitle = shareWith + \" (\" + t('core', 'group') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\tshareWithTitle = shareWith + \" (\" + t('core', 'remote') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_REMOTE_GROUP) {\n\t\t\t\tshareWithTitle = shareWith + \" (\" + t('core', 'remote group') + ')';\n\t\t\t}\n\t\t\telse if (shareType === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\tshareWithTitle = shareWith + \" (\" + t('core', 'email') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\tshareWithTitle = shareWith;\n\t\t\t\t// Force \"shareWith\" in the template to a safe value, as the\n\t\t\t\t// original \"shareWith\" returned by the model may contain\n\t\t\t\t// problematic characters like \"'\".\n\t\t\t\tshareWith = 'circle-' + shareIndex;\n\t\t\t}\n\n\t\t\tif (sharedBy !== oc_current_user) {\n\t\t\t\tvar empty = shareWithTitle === '';\n\t\t\t\tif (!empty) {\n\t\t\t\t\tshareWithTitle += ' (';\n\t\t\t\t}\n\t\t\t\tshareWithTitle += t('core', 'shared by {sharer}', {sharer: sharedByDisplayName});\n\t\t\t\tif (!empty) {\n\t\t\t\t\tshareWithTitle += ')';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar share = this.model.get('shares')[shareIndex];\n\t\t\tvar password = share.password;\n\t\t\tvar hasPassword = password !== null && password !== '';\n\t\t\tvar sendPasswordByTalk = share.send_password_by_talk;\n\n\t\t\tvar shareNote = this.model.getNote(shareIndex);\n\n\t\t\treturn _.extend(hasPermissionOverride, {\n\t\t\t\tcid: this.cid,\n\t\t\t\thasSharePermission: this.model.hasSharePermission(shareIndex),\n\t\t\t\teditPermissionState: this.model.editPermissionState(shareIndex),\n\t\t\t\thasCreatePermission: this.model.hasCreatePermission(shareIndex),\n\t\t\t\thasUpdatePermission: this.model.hasUpdatePermission(shareIndex),\n\t\t\t\thasDeletePermission: this.model.hasDeletePermission(shareIndex),\n\t\t\t\tsharedBy: sharedBy,\n\t\t\t\tsharedByDisplayName: sharedByDisplayName,\n\t\t\t\tshareWith: shareWith,\n\t\t\t\tshareWithDisplayName: shareWithDisplayName,\n\t\t\t\tshareWithAvatar: shareWithAvatar,\n\t\t\t\tshareWithTitle: shareWithTitle,\n\t\t\t\tshareType: shareType,\n\t\t\t\tshareId: this.model.get('shares')[shareIndex].id,\n\t\t\t\tmodSeed: shareWithAvatar || (shareType !== OC.Share.SHARE_TYPE_USER && shareType !== OC.Share.SHARE_TYPE_CIRCLE && shareType !== OC.Share.SHARE_TYPE_ROOM),\n\t\t\t\towner: fileOwnerUid,\n\t\t\t\tisShareWithCurrentUser: (shareType === OC.Share.SHARE_TYPE_USER && shareWith === oc_current_user),\n\t\t\t\tcanUpdateShareSettings: (sharedBy === oc_current_user || fileOwnerUid === oc_current_user),\n\t\t\t\tisRemoteShare: shareType === OC.Share.SHARE_TYPE_REMOTE,\n\t\t\t\tisRemoteGroupShare: shareType === OC.Share.SHARE_TYPE_REMOTE_GROUP,\n\t\t\t\tisNoteAvailable: shareType !== OC.Share.SHARE_TYPE_REMOTE && shareType !== OC.Share.SHARE_TYPE_REMOTE_GROUP,\n\t\t\t\tisMailShare: shareType === OC.Share.SHARE_TYPE_EMAIL,\n\t\t\t\tisCircleShare: shareType === OC.Share.SHARE_TYPE_CIRCLE,\n\t\t\t\tisFileSharedByMail: shareType === OC.Share.SHARE_TYPE_EMAIL && !this.model.isFolder(),\n\t\t\t\tisPasswordSet: hasPassword && !sendPasswordByTalk,\n\t\t\t\tisPasswordByTalkSet: hasPassword && sendPasswordByTalk,\n\t\t\t\tisTalkEnabled: oc_appswebroots['spreed'] !== undefined,\n\t\t\t\tsecureDropMode: !this.model.hasReadPermission(shareIndex),\n\t\t\t\thasExpireDate: this.model.getExpireDate(shareIndex) !== null,\n\t\t\t\tshareNote: shareNote,\n\t\t\t\thasNote: shareNote !== '',\n\t\t\t\texpireDate: moment(this.model.getExpireDate(shareIndex), 'YYYY-MM-DD').format('DD-MM-YYYY'),\n\t\t\t\t// The password placeholder does not take into account if\n\t\t\t\t// sending the password by Talk is enabled or not; when\n\t\t\t\t// switching from sending the password by Talk to sending the\n\t\t\t\t// password by email the password is reused and the share\n\t\t\t\t// updated, so the placeholder already shows the password in the\n\t\t\t\t// brief time between disabling sending the password by email\n\t\t\t\t// and receiving the updated share.\n\t\t\t\tpasswordPlaceholder: hasPassword ? PASSWORD_PLACEHOLDER : PASSWORD_PLACEHOLDER_MESSAGE,\n\t\t\t\tpasswordByTalkPlaceholder: (hasPassword && sendPasswordByTalk)? PASSWORD_PLACEHOLDER : PASSWORD_PLACEHOLDER_MESSAGE,\n\t\t\t});\n\t\t},\n\n\t\tgetShareProperties: function() {\n\t\t\treturn {\n\t\t\t\tunshareLabel: t('core', 'Unshare'),\n\t\t\t\taddNoteLabel: t('core', 'Note to recipient'),\n\t\t\t\tcanShareLabel: t('core', 'Can reshare'),\n\t\t\t\tcanEditLabel: t('core', 'Can edit'),\n\t\t\t\tcreatePermissionLabel: t('core', 'Can create'),\n\t\t\t\tupdatePermissionLabel: t('core', 'Can change'),\n\t\t\t\tdeletePermissionLabel: t('core', 'Can delete'),\n\t\t\t\tsecureDropLabel: t('core', 'File drop (upload only)'),\n\t\t\t\texpireDateLabel: t('core', 'Set expiration date'),\n\t\t\t\tpasswordLabel: t('core', 'Password protect'),\n\t\t\t\tpasswordByTalkLabel: t('core', 'Password protect by Talk'),\n\t\t\t\tcrudsLabel: t('core', 'Access control'),\n\t\t\t\texpirationDatePlaceholder: t('core', 'Expiration date'),\n\t\t\t\tdefaultExpireDate: moment().add(1, 'day').format('DD-MM-YYYY'), // Can't expire today\n\t\t\t\ttriangleSImage: OC.imagePath('core', 'actions/triangle-s'),\n\t\t\t\tisResharingAllowed: this.configModel.get('isResharingAllowed'),\n\t\t\t\tisPasswordForMailSharesRequired: this.configModel.get('isPasswordForMailSharesRequired'),\n\t\t\t\tsharePermissionPossible: this.model.sharePermissionPossible(),\n\t\t\t\teditPermissionPossible: this.model.editPermissionPossible(),\n\t\t\t\tcreatePermissionPossible: this.model.createPermissionPossible(),\n\t\t\t\tupdatePermissionPossible: this.model.updatePermissionPossible(),\n\t\t\t\tdeletePermissionPossible: this.model.deletePermissionPossible(),\n\t\t\t\tsharePermission: OC.PERMISSION_SHARE,\n\t\t\t\tcreatePermission: OC.PERMISSION_CREATE,\n\t\t\t\tupdatePermission: OC.PERMISSION_UPDATE,\n\t\t\t\tdeletePermission: OC.PERMISSION_DELETE,\n\t\t\t\treadPermission: OC.PERMISSION_READ,\n\t\t\t\tisFolder: this.model.isFolder()\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * get an array of sharees' share properties\n\t\t *\n\t\t * @returns {Array}\n\t\t */\n\t\tgetShareeList: function() {\n\t\t\tvar universal = this.getShareProperties();\n\n\t\t\tif(!this.model.hasUserShares()) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tvar shares = this.model.get('shares');\n\t\t\tvar list = [];\n\t\t\tfor(var index = 0; index < shares.length; index++) {\n\t\t\t\tvar share = this.getShareeObject(index);\n\n\t\t\t\tif (share.shareType === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t// first empty {} is necessary, otherwise we get in trouble\n\t\t\t\t// with references\n\t\t\t\tlist.push(_.extend({}, universal, share));\n\t\t\t}\n\n\t\t\treturn list;\n\t\t},\n\n\t\tgetLinkReshares: function() {\n\t\t\tvar universal = {\n\t\t\t\tunshareLabel: t('core', 'Unshare'),\n\t\t\t};\n\n\t\t\tif(!this.model.hasUserShares()) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tvar shares = this.model.get('shares');\n\t\t\tvar list = [];\n\t\t\tfor(var index = 0; index < shares.length; index++) {\n\t\t\t\tvar share = this.getShareeObject(index);\n\n\t\t\t\tif (share.shareType !== OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t// first empty {} is necessary, otherwise we get in trouble\n\t\t\t\t// with references\n\t\t\t\tlist.push(_.extend({}, universal, share, {\n\t\t\t\t\tshareInitiator: shares[index].uid_owner,\n\t\t\t\t\tshareInitiatorText: t('core', '{shareInitiatorDisplayName} shared via link', {shareInitiatorDisplayName: shares[index].displayname_owner})\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\treturn list;\n\t\t},\n\n\t\trender: function() {\n\t\t\tif(!this._renderPermissionChange) {\n\t\t\t\tthis.$el.html(this.template({\n\t\t\t\t\tcid: this.cid,\n\t\t\t\t\tsharees: this.getShareeList(),\n\t\t\t\t\tlinkReshares: this.getLinkReshares()\n\t\t\t\t}));\n\n\t\t\t\tthis.$('.avatar').each(function () {\n\t\t\t\t\tvar $this = $(this);\n\n\t\t\t\t\tif ($this.hasClass('imageplaceholderseed')) {\n\t\t\t\t\t\t$this.css({width: 32, height: 32});\n\t\t\t\t\t\tif ($this.data('avatar')) {\n\t\t\t\t\t\t\t$this.css('border-radius', '0%');\n\t\t\t\t\t\t\t$this.css('background', 'url(' + $this.data('avatar') + ') no-repeat');\n\t\t\t\t\t\t\t$this.css('background-size', '31px');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$this.imageplaceholder($this.data('seed'));\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//                         user,   size,  ie8fix, hidedefault,  callback, displayname\n\t\t\t\t\t\t$this.avatar($this.data('username'), 32, undefined, undefined, undefined, $this.data('displayname'));\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tthis.$('.has-tooltip').tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\n\t\t\t\tthis.$('ul.shareWithList > li').each(function() {\n\t\t\t\t\tvar $this = $(this);\n\n\t\t\t\t\tvar shareWith = $this.data('share-with');\n\t\t\t\t\tvar shareType = $this.data('share-type');\n\n\t\t\t\t\t$this.find('div.avatar, span.username').contactsMenu(shareWith, shareType, $this);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tvar permissionChangeShareId = parseInt(this._renderPermissionChange, 10);\n\t\t\t\tvar shareWithIndex = this.model.findShareWithIndex(permissionChangeShareId);\n\t\t\t\tvar sharee = this.getShareeObject(shareWithIndex);\n\t\t\t\t$.extend(sharee, this.getShareProperties());\n\t\t\t\tvar $li = this.$('li[data-share-id=' + permissionChangeShareId + ']');\n\t\t\t\t$li.find('.sharingOptionsGroup .popovermenu').replaceWith(this.popoverMenuTemplate(sharee));\n\t\t\t}\n\n\t\t\tvar _this = this;\n\t\t\tthis.getShareeList().forEach(function(sharee) {\n\t\t\t\tvar $edit = _this.$('#canEdit-' + _this.cid + '-' + sharee.shareId);\n\t\t\t\tif($edit.length === 1) {\n\t\t\t\t\t$edit.prop('checked', sharee.editPermissionState === 'checked');\n\t\t\t\t\tif (sharee.isFolder) {\n\t\t\t\t\t\t$edit.prop('indeterminate', sharee.editPermissionState === 'indeterminate');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.$('.popovermenu').on('afterHide', function() {\n\t\t\t\t_this._menuOpen = false;\n\t\t\t});\n\t\t\tthis.$('.popovermenu').on('beforeHide', function() {\n\t\t\t\tvar shareId = parseInt(_this._menuOpen, 10);\n\t\t\t\tif(!_.isNaN(shareId)) {\n\t\t\t\t\tvar datePickerClass = '.expirationDateContainer-' + _this.cid + '-' + shareId;\n\t\t\t\t\tvar datePickerInput = '#expirationDatePicker-' + _this.cid + '-' + shareId;\n\t\t\t\t\tvar expireDateCheckbox = '#expireDate-' + _this.cid + '-' + shareId;\n\t\t\t\t\tif ($(expireDateCheckbox).prop('checked')) {\n\t\t\t\t\t\t$(datePickerInput).removeClass('hidden-visually');\n\t\t\t\t\t\t$(datePickerClass).removeClass('hasDatepicker');\n\t\t\t\t\t\t$(datePickerClass + ' .ui-datepicker').hide();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (this._menuOpen !== false) {\n\t\t\t\t// Open menu again if it was opened before\n\t\t\t\tvar shareId = parseInt(this._menuOpen, 10);\n\t\t\t\tif(!_.isNaN(shareId)) {\n\t\t\t\t\tvar liSelector = 'li[data-share-id=' + shareId + ']';\n\t\t\t\t\tOC.showMenu(null, this.$(liSelector + ' .sharingOptionsGroup .popovermenu'));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._renderPermissionChange = false;\n\n\t\t\t// new note autosize\n\t\t\tautosize(this.$el.find('.share-note-form .share-note'));\n\n\t\t\tthis.delegateEvents();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * @returns {Function} from Handlebars\n\t\t * @private\n\t\t */\n\t\ttemplate: function (data) {\n\t\t\tvar sharees = data.sharees;\n\t\t\tif(_.isArray(sharees)) {\n\t\t\t\tfor (var i = 0; i < sharees.length; i++) {\n\t\t\t\t\tdata.sharees[i].popoverMenu = this.popoverMenuTemplate(sharees[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn OC.Share.Templates['sharedialogshareelistview'](data);\n\t\t},\n\n\t\t/**\n\t\t * renders the popover template and returns the resulting HTML\n\t\t *\n\t\t * @param {Object} data\n\t\t * @returns {string}\n\t\t */\n\t\tpopoverMenuTemplate: function(data) {\n\t\t\treturn OC.Share.Templates['sharedialogshareelistview_popover_menu'](data);\n\t\t},\n\n\t\tshowNoteForm: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $menu = $element.closest('li');\n\t\t\tvar $form = $menu.next('li.share-note-form');\n\n\t\t\t// show elements\n\t\t\t$menu.find('.share-note-delete').toggleClass('hidden');\n\t\t\t$form.toggleClass('hidden');\n\t\t\t$form.find('textarea').focus();\n\t\t},\n\n\t\tdeleteNote: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $menu = $element.closest('li');\n\t\t\tvar $form = $menu.next('li.share-note-form');\n\n\t\t\tconsole.log($form.find('.share-note'));\n\t\t\t$form.find('.share-note').val('');\n\t\t\t\n\t\t\t$form.addClass('hidden');\n\t\t\t$menu.find('.share-note-delete').addClass('hidden');\n\n\t\t\tself.sendNote('', shareId, $menu);\n\t\t},\n\n\t\tupdateNote: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $form = $element.closest('li.share-note-form');\n\t\t\tvar $menu = $form.prev('li');\n\t\t\tvar message = $form.find('.share-note').val().trim();\n\n\t\t\tif (message.length < 1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tself.sendNote(message, shareId, $menu);\n\n\t\t},\n\n\t\tsendNote: function(note, shareId, $menu) {\n\t\t\tvar $form = $menu.next('li.share-note-form');\n\t\t\tvar $submit = $form.find('input.share-note-submit');\n\t\t\tvar $error = $form.find('input.share-note-error');\n\n\t\t\t$submit.prop('disabled', true);\n\t\t\t$menu.find('.icon-loading-small').removeClass('hidden');\n\t\t\t$menu.find('.icon-edit').hide();\n\n\t\t\tvar complete = function() {\n\t\t\t\t$submit.prop('disabled', false);\n\t\t\t\t$menu.find('.icon-loading-small').addClass('hidden');\n\t\t\t\t$menu.find('.icon-edit').show();\n\t\t\t};\n\t\t\tvar error = function() {\n\t\t\t\t$error.show();\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t$error.hide();\n\t\t\t\t}, 3000);\n\t\t\t};\n\n\t\t\t// send data\n\t\t\t$.ajax({\n\t\t\t\tmethod: 'PUT',\n\t\t\t\turl: OC.linkToOCS('apps/files_sharing/api/v1/shares',2) + shareId + '?' + OC.buildQueryString({format: 'json'}),\n\t\t\t\tdata: { note: note },\n\t\t\t\tcomplete : complete,\n\t\t\t\terror: error\n\t\t\t});\n\t\t},\n\n\t\tonUnshare: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tif (!$element.is('a')) {\n\t\t\t\t$element = $element.closest('a');\n\t\t\t}\n\n\t\t\tvar $loading = $element.find('.icon-loading-small').eq(0);\n\t\t\tif(!$loading.hasClass('hidden')) {\n\t\t\t\t// in process\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t$loading.removeClass('hidden');\n\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\n\t\t\tvar shareId = $li.data('share-id');\n\n\t\t\tself.model.removeShare(shareId)\n\t\t\t\t.done(function() {\n\t\t\t\t\t$li.remove();\n\t\t\t\t})\n\t\t\t\t.fail(function() {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'Could not unshare'));\n\t\t\t\t});\n\t\t\treturn false;\n\t\t},\n\n\t\tonToggleMenu: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar $menu = $li.find('.sharingOptionsGroup .popovermenu');\n\n\t\t\tOC.showMenu(null, $menu);\n\t\t\tthis._menuOpen = $li.data('share-id');\n\t\t},\n\n\t\tonExpireDateChange: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar datePickerClass = '.expirationDateContainer-' + this.cid + '-' + shareId;\n\t\t\tvar datePicker = $(datePickerClass);\n\t\t\tvar state = $element.prop('checked');\n\t\t\tdatePicker.toggleClass('hidden', !state);\n\t\t\tif (!state) {\n\t\t\t\t// disabled, let's hide the input and\n\t\t\t\t// set the expireDate to nothing\n\t\t\t\t$element.closest('li').next('li').addClass('hidden');\n\t\t\t\tthis.setExpirationDate(shareId, '');\n\t\t\t} else {\n\t\t\t\t// enabled, show the input and the datepicker\n\t\t\t\t$element.closest('li').next('li').removeClass('hidden');\n\t\t\t\tthis.showDatePicker(event);\n\n\t\t\t}\n\t\t},\n\n\t\tshowDatePicker: function(event) {\n\t\t\tvar element = $(event.target);\n\t\t\tvar li = element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar expirationDatePicker = '#expirationDatePicker-' + this.cid + '-' + shareId;\n\t\t\tvar view = this;\n\t\t\t$(expirationDatePicker).datepicker({\n\t\t\t\tdateFormat : 'dd-mm-yy',\n\t\t\t\tonSelect: function (expireDate) {\n\t\t\t\t\tview.setExpirationDate(shareId, expireDate);\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(expirationDatePicker).focus();\n\n\t\t},\n\n\t\tsetExpirationDate: function(shareId, expireDate) {\n\t\t\tthis.model.updateShare(shareId, {expireDate: expireDate}, {});\n\t\t},\n\n\t\tonMailSharePasswordProtectChange: function(event) {\n\t\t\tvar element = $(event.target);\n\t\t\tvar li = element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar passwordContainerClass = '.passwordMenu-' + this.cid + '-' + shareId;\n\t\t\tvar passwordContainer = $(passwordContainerClass);\n\t\t\tvar loading = this.$el.find(passwordContainerClass + ' .icon-loading-small');\n\t\t\tvar inputClass = '#passwordField-' + this.cid + '-' + shareId;\n\t\t\tvar passwordField = $(inputClass);\n\t\t\tvar state = element.prop('checked');\n\t\t\tvar passwordByTalkElement = $('#passwordByTalk-' + this.cid + '-' + shareId);\n\t\t\tvar passwordByTalkState = passwordByTalkElement.prop('checked');\n\t\t\tif (!state && !passwordByTalkState) {\n\t\t\t\tthis.model.updateShare(shareId, {password: '', sendPasswordByTalk: false});\n\t\t\t\tpasswordField.attr('value', '');\n\t\t\t\tpasswordField.removeClass('error');\n\t\t\t\tpasswordField.tooltip('hide');\n\t\t\t\tloading.addClass('hidden');\n\t\t\t\tpasswordField.attr('placeholder', PASSWORD_PLACEHOLDER_MESSAGE);\n\t\t\t\t// We first need to reset the password field before we hide it\n\t\t\t\tpasswordContainer.toggleClass('hidden', !state);\n\t\t\t} else if (state) {\n\t\t\t\tif (passwordByTalkState) {\n\t\t\t\t\t// Switching from sending the password by Talk to sending\n\t\t\t\t\t// the password by mail can be done keeping the previous\n\t\t\t\t\t// password sent by Talk.\n\t\t\t\t\tthis.model.updateShare(shareId, {sendPasswordByTalk: false});\n\n\t\t\t\t\tvar passwordByTalkContainerClass = '.passwordByTalkMenu-' + this.cid + '-' + shareId;\n\t\t\t\t\tvar passwordByTalkContainer = $(passwordByTalkContainerClass);\n\t\t\t\t\tpasswordByTalkContainer.addClass('hidden');\n\t\t\t\t\tpasswordByTalkElement.prop('checked', false);\n\t\t\t\t}\n\n\t\t\t\tpasswordContainer.toggleClass('hidden', !state);\n\t\t\t\tpasswordField = '#passwordField-' + this.cid + '-' + shareId;\n\t\t\t\tthis.$(passwordField).focus();\n\t\t\t}\n\t\t},\n\n\t\tonMailSharePasswordProtectByTalkChange: function(event) {\n\t\t\tvar element = $(event.target);\n\t\t\tvar li = element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar passwordByTalkContainerClass = '.passwordByTalkMenu-' + this.cid + '-' + shareId;\n\t\t\tvar passwordByTalkContainer = $(passwordByTalkContainerClass);\n\t\t\tvar loading = this.$el.find(passwordByTalkContainerClass + ' .icon-loading-small');\n\t\t\tvar inputClass = '#passwordByTalkField-' + this.cid + '-' + shareId;\n\t\t\tvar passwordByTalkField = $(inputClass);\n\t\t\tvar state = element.prop('checked');\n\t\t\tvar passwordElement = $('#password-' + this.cid + '-' + shareId);\n\t\t\tvar passwordState = passwordElement.prop('checked');\n\t\t\tif (!state) {\n\t\t\t\tthis.model.updateShare(shareId, {password: '', sendPasswordByTalk: false});\n\t\t\t\tpasswordByTalkField.attr('value', '');\n\t\t\t\tpasswordByTalkField.removeClass('error');\n\t\t\t\tpasswordByTalkField.tooltip('hide');\n\t\t\t\tloading.addClass('hidden');\n\t\t\t\tpasswordByTalkField.attr('placeholder', PASSWORD_PLACEHOLDER_MESSAGE);\n\t\t\t\t// We first need to reset the password field before we hide it\n\t\t\t\tpasswordByTalkContainer.toggleClass('hidden', !state);\n\t\t\t} else if (state) {\n\t\t\t\tif (passwordState) {\n\t\t\t\t\t// Enabling sending the password by Talk requires a new\n\t\t\t\t\t// password to be given (the one sent by mail is not reused,\n\t\t\t\t\t// as it would defeat the purpose of checking the identity\n\t\t\t\t\t// of the sharee by Talk if it was already sent by mail), so\n\t\t\t\t\t// the share is not updated until the user explicitly gives\n\t\t\t\t\t// the new password.\n\n\t\t\t\t\tvar passwordContainerClass = '.passwordMenu-' + this.cid + '-' + shareId;\n\t\t\t\t\tvar passwordContainer = $(passwordContainerClass);\n\t\t\t\t\tpasswordContainer.addClass('hidden');\n\t\t\t\t\tpasswordElement.prop('checked', false);\n\t\t\t\t}\n\n\t\t\t\tpasswordByTalkContainer.toggleClass('hidden', !state);\n\t\t\t\tpasswordByTalkField = '#passwordByTalkField-' + this.cid + '-' + shareId;\n\t\t\t\tthis.$(passwordByTalkField).focus();\n\t\t\t}\n\t\t},\n\n\t\tonMailSharePasswordKeyUp: function(event) {\n\t\t\tif(event.keyCode === 13) {\n\t\t\t\tthis.onMailSharePasswordEntered(event);\n\t\t\t}\n\t\t},\n\n\t\tonMailSharePasswordEntered: function(event) {\n\t\t\tvar passwordField = $(event.target);\n\t\t\tvar li = passwordField.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar passwordContainerClass = '.passwordMenu-' + this.cid + '-' + shareId;\n\t\t\tvar passwordByTalkContainerClass = '.passwordByTalkMenu-' + this.cid + '-' + shareId;\n\t\t\tvar sendPasswordByTalk = passwordField.attr('id').startsWith('passwordByTalk');\n\t\t\tvar loading;\n\t\t\tif (sendPasswordByTalk) {\n\t\t\t\tloading = this.$el.find(passwordByTalkContainerClass + ' .icon-loading-small');\n\t\t\t} else {\n\t\t\t\tloading = this.$el.find(passwordContainerClass + ' .icon-loading-small');\n\t\t\t}\n\t\t\tif (!loading.hasClass('hidden')) {\n\t\t\t\t// still in process\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tpasswordField.removeClass('error');\n\t\t\tvar password = passwordField.val();\n\t\t\t// in IE9 the password might be the placeholder due to bugs in the placeholders polyfill\n\t\t\tif(password === '' || password === PASSWORD_PLACEHOLDER || password === PASSWORD_PLACEHOLDER_MESSAGE) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tloading\n\t\t\t\t.removeClass('hidden')\n\t\t\t\t.addClass('inlineblock');\n\n\n\t\t\tthis.model.updateShare(shareId, {\n\t\t\t\tpassword: password,\n\t\t\t\tsendPasswordByTalk: sendPasswordByTalk\n\t\t\t}, {\n\t\t\t\terror: function(model, msg) {\n\t\t\t\t\t// destroy old tooltips\n\t\t\t\t\tpasswordField.tooltip('destroy');\n\t\t\t\t\tloading.removeClass('inlineblock').addClass('hidden');\n\t\t\t\t\tpasswordField.addClass('error');\n\t\t\t\t\tpasswordField.attr('title', msg);\n\t\t\t\t\tpasswordField.tooltip({placement: 'bottom', trigger: 'manual'});\n\t\t\t\t\tpasswordField.tooltip('show');\n\t\t\t\t},\n\t\t\t\tsuccess: function(model, msg) {\n\t\t\t\t\tpasswordField.blur();\n\t\t\t\t\tpasswordField.attr('value', '');\n\t\t\t\t\tpasswordField.attr('placeholder', PASSWORD_PLACEHOLDER);\n\t\t\t\t\tloading.removeClass('inlineblock').addClass('hidden');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tonPermissionChange: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\n\t\t\tvar permissions = OC.PERMISSION_READ;\n\n\t\t\tif (this.model.isFolder()) {\n\t\t\t\t// adjust checkbox states\n\t\t\t\tvar $checkboxes = $('.permissions', $li).not('input[name=\"edit\"]').not('input[name=\"share\"]');\n\t\t\t\tvar checked;\n\t\t\t\tif ($element.attr('name') === 'edit') {\n\t\t\t\t\tchecked = $element.is(':checked');\n\t\t\t\t\t// Check/uncheck Create, Update, and Delete checkboxes if Edit is checked/unck\n\t\t\t\t\t$($checkboxes).prop('checked', checked);\n\t\t\t\t\tif (checked) {\n\t\t\t\t\t\tpermissions |= OC.PERMISSION_CREATE | OC.PERMISSION_UPDATE | OC.PERMISSION_DELETE;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar numberChecked = $checkboxes.filter(':checked').length;\n\t\t\t\t\tchecked = numberChecked === $checkboxes.length;\n\t\t\t\t\tvar $editCb = $('input[name=\"edit\"]', $li);\n\t\t\t\t\t$editCb.prop('checked', checked);\n\t\t\t\t\t$editCb.prop('indeterminate', !checked && numberChecked > 0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($element.attr('name') === 'edit' && $element.is(':checked')) {\n\t\t\t\t\tpermissions |= OC.PERMISSION_UPDATE;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$('.permissions', $li).not('input[name=\"edit\"]').filter(':checked').each(function(index, checkbox) {\n\t\t\t\tpermissions |= $(checkbox).data('permissions');\n\t\t\t});\n\n\n\t\t\t/** disable checkboxes during save operation to avoid race conditions **/\n\t\t\t$li.find('input[type=checkbox]').prop('disabled', true);\n\t\t\tvar enableCb = function() {\n\t\t\t\t$li.find('input[type=checkbox]').prop('disabled', false);\n\t\t\t};\n\t\t\tvar errorCb = function(elem, msg) {\n\t\t\t\tOC.dialogs.alert(msg, t('core', 'Error while sharing'));\n\t\t\t\tenableCb();\n\t\t\t};\n\n\t\t\tthis.model.updateShare(shareId, {permissions: permissions}, {error: errorCb, success: enableCb});\n\n\t\t\tthis._renderPermissionChange = shareId;\n\t\t},\n\n\t\tonSecureDropChange: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\n\t\t\tvar permissions = OC.PERMISSION_CREATE | OC.PERMISSION_UPDATE | OC.PERMISSION_DELETE | OC.PERMISSION_READ;\n\t\t\tif ($element.is(':checked')) {\n\t\t\t\tpermissions = OC.PERMISSION_CREATE | OC.PERMISSION_UPDATE | OC.PERMISSION_DELETE;\n\t\t\t}\n\n\t\t\t/** disable checkboxes during save operation to avoid race conditions **/\n\t\t\t$li.find('input[type=checkbox]').prop('disabled', true);\n\t\t\tvar enableCb = function() {\n\t\t\t\t$li.find('input[type=checkbox]').prop('disabled', false);\n\t\t\t};\n\t\t\tvar errorCb = function(elem, msg) {\n\t\t\t\tOC.dialogs.alert(msg, t('core', 'Error while sharing'));\n\t\t\t\tenableCb();\n\t\t\t};\n\n\t\t\tthis.model.updateShare(shareId, {permissions: permissions}, {error: errorCb, success: enableCb});\n\n\t\t\tthis._renderPermissionChange = shareId;\n\t\t}\n\n\t});\n\n\tOC.Share.ShareDialogShareeListView = ShareDialogShareeListView;\n\n})();\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* globals Handlebars */\n\n(function() {\n\tif(!OC.Share) {\n\t\tOC.Share = {};\n\t}\n\n\t/**\n\t * @class OCA.Share.ShareDialogView\n\t * @member {OC.Share.ShareItemModel} model\n\t * @member {jQuery} $el\n\t * @memberof OCA.Sharing\n\t * @classdesc\n\t *\n\t * Represents the GUI of the share dialogue\n\t *\n\t */\n\tvar ShareDialogView = OC.Backbone.View.extend({\n\t\t/** @type {Object} **/\n\t\t_templates: {},\n\n\t\t/** @type {boolean} **/\n\t\t_showLink: true,\n\n\t\t_lookup: false,\n\n\t\t_lookupAllowed: false,\n\n\t\t/** @type {string} **/\n\t\ttagName: 'div',\n\n\t\t/** @type {OC.Share.ShareConfigModel} **/\n\t\tconfigModel: undefined,\n\n\t\t/** @type {object} **/\n\t\tresharerInfoView: undefined,\n\n\t\t/** @type {object} **/\n\t\tlinkShareView: undefined,\n\n\t\t/** @type {object} **/\n\t\tshareeListView: undefined,\n\n\t\t/** @type {object} **/\n\t\t_lastSuggestions: undefined,\n\n\t\t/** @type {object} **/\n\t\t_lastRecommendations: undefined,\n\n\t\t/** @type {int} **/\n\t\t_pendingOperationsCount: 0,\n\n\t\tevents: {\n\t\t\t'focus .shareWithField': 'onShareWithFieldFocus',\n\t\t\t'input .shareWithField': 'onShareWithFieldChanged',\n\t\t\t'click .shareWithConfirm': '_confirmShare'\n\t\t},\n\n\t\tinitialize: function(options) {\n\t\t\tvar view = this;\n\n\t\t\tthis.model.on('fetchError', function() {\n\t\t\t\tOC.Notification.showTemporary(t('core', 'Share details could not be loaded for this item.'));\n\t\t\t});\n\n\t\t\tif(!_.isUndefined(options.configModel)) {\n\t\t\t\tthis.configModel = options.configModel;\n\t\t\t} else {\n\t\t\t\tthrow 'missing OC.Share.ShareConfigModel';\n\t\t\t}\n\n\t\t\tthis.configModel.on('change:isRemoteShareAllowed', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\t\t\tthis.configModel.on('change:isRemoteGroupShareAllowed', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\t\t\tthis.model.on('change:permissions', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\n\t\t\tthis.model.on('request', this._onRequest, this);\n\t\t\tthis.model.on('sync', this._onEndRequest, this);\n\n\t\t\tvar subViewOptions = {\n\t\t\t\tmodel: this.model,\n\t\t\t\tconfigModel: this.configModel\n\t\t\t};\n\n\t\t\tvar subViews = {\n\t\t\t\tresharerInfoView: 'ShareDialogResharerInfoView',\n\t\t\t\tlinkShareView: 'ShareDialogLinkShareView',\n\t\t\t\tshareeListView: 'ShareDialogShareeListView'\n\t\t\t};\n\n\t\t\tfor(var name in subViews) {\n\t\t\t\tvar className = subViews[name];\n\t\t\t\tthis[name] = _.isUndefined(options[name])\n\t\t\t\t\t? new OC.Share[className](subViewOptions)\n\t\t\t\t\t: options[name];\n\t\t\t}\n\n\t\t\t_.bindAll(this,\n\t\t\t\t'autocompleteHandler',\n\t\t\t\t'_onSelectRecipient',\n\t\t\t\t'onShareWithFieldChanged',\n\t\t\t\t'onShareWithFieldFocus'\n\t\t\t);\n\n\t\t\tOC.Plugins.attach('OC.Share.ShareDialogView', this);\n\t\t},\n\n\t\tonShareWithFieldChanged: function() {\n\t\t\tvar $el = this.$el.find('.shareWithField');\n\t\t\tif ($el.val().length < 2) {\n\t\t\t\t$el.removeClass('error').tooltip('hide');\n\t\t\t}\n\t\t},\n\n\t\t/* trigger search after the field was re-selected */\n\t\tonShareWithFieldFocus: function() {\n\t\t\tvar $shareWithField = this.$el.find('.shareWithField');\n\t\t\t$shareWithField.autocomplete(\"search\", $shareWithField.val());\n\t\t},\n\n\t\t_getSuggestions: function(searchTerm, perPage, model, lookup) {\n\t\t\tif (this._lastSuggestions &&\n\t\t\t\tthis._lastSuggestions.searchTerm === searchTerm &&\n\t\t\t\tthis._lastSuggestions.lookup === lookup &&\n\t\t\t\tthis._lastSuggestions.perPage === perPage &&\n\t\t\t\tthis._lastSuggestions.model === model) {\n\t\t\t\treturn this._lastSuggestions.promise;\n\t\t\t}\n\n\t\t\tvar deferred = $.Deferred();\n\t\t\tvar view = this;\n\n\t\t\t$.get(\n\t\t\t\tOC.linkToOCS('apps/files_sharing/api/v1') + 'sharees',\n\t\t\t\t{\n\t\t\t\t\tformat: 'json',\n\t\t\t\t\tsearch: searchTerm,\n\t\t\t\t\tlookup: lookup,\n\t\t\t\t\tperPage: perPage,\n\t\t\t\t\titemType: model.get('itemType')\n\t\t\t\t},\n\t\t\t\tfunction (result) {\n\t\t\t\t\tif (result.ocs.meta.statuscode === 100) {\n\t\t\t\t\t\tvar filter = function(users, groups, remotes, remote_groups, emails, circles, rooms) {\n\t\t\t\t\t\t\tif (typeof(emails) === 'undefined') {\n\t\t\t\t\t\t\t\temails = [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof(circles) === 'undefined') {\n\t\t\t\t\t\t\t\tcircles = [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof(rooms) === 'undefined') {\n\t\t\t\t\t\t\t\trooms = [];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar usersLength;\n\t\t\t\t\t\t\tvar groupsLength;\n\t\t\t\t\t\t\tvar remotesLength;\n\t\t\t\t\t\t\tvar remoteGroupsLength;\n\t\t\t\t\t\t\tvar emailsLength;\n\t\t\t\t\t\t\tvar circlesLength;\n\t\t\t\t\t\t\tvar roomsLength;\n\n\t\t\t\t\t\t\tvar i, j;\n\n\t\t\t\t\t\t\t//Filter out the current user\n\t\t\t\t\t\t\tusersLength = users.length;\n\t\t\t\t\t\t\tfor (i = 0; i < usersLength; i++) {\n\t\t\t\t\t\t\t\tif (users[i].value.shareWith === OC.currentUser) {\n\t\t\t\t\t\t\t\t\tusers.splice(i, 1);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Filter out the owner of the share\n\t\t\t\t\t\t\tif (model.hasReshare()) {\n\t\t\t\t\t\t\t\tusersLength = users.length;\n\t\t\t\t\t\t\t\tfor (i = 0 ; i < usersLength; i++) {\n\t\t\t\t\t\t\t\t\tif (users[i].value.shareWith === model.getReshareOwner()) {\n\t\t\t\t\t\t\t\t\t\tusers.splice(i, 1);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar shares = model.get('shares');\n\t\t\t\t\t\t\tvar sharesLength = shares.length;\n\n\t\t\t\t\t\t\t// Now filter out all sharees that are already shared with\n\t\t\t\t\t\t\tfor (i = 0; i < sharesLength; i++) {\n\t\t\t\t\t\t\t\tvar share = shares[i];\n\n\t\t\t\t\t\t\t\tif (share.share_type === OC.Share.SHARE_TYPE_USER) {\n\t\t\t\t\t\t\t\t\tusersLength = users.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < usersLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (users[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tusers.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\t\t\t\t\t\tgroupsLength = groups.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < groupsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (groups[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tgroups.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\t\t\t\t\t\tremotesLength = remotes.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < remotesLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (remotes[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tremotes.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_REMOTE_GROUP) {\n\t\t\t\t\t\t\t\t\tremoteGroupsLength = remote_groups.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < remoteGroupsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (remote_groups[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tremote_groups.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\t\t\t\t\t\temailsLength = emails.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < emailsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (emails[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\temails.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\t\t\t\t\t\tcirclesLength = circles.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < circlesLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (circles[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tcircles.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\t\t\t\t\t\troomsLength = rooms.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < roomsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (rooms[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\trooms.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tfilter(\n\t\t\t\t\t\t\tresult.ocs.data.exact.users,\n\t\t\t\t\t\t\tresult.ocs.data.exact.groups,\n\t\t\t\t\t\t\tresult.ocs.data.exact.remotes,\n\t\t\t\t\t\t\tresult.ocs.data.exact.remote_groups,\n\t\t\t\t\t\t\tresult.ocs.data.exact.emails,\n\t\t\t\t\t\t\tresult.ocs.data.exact.circles,\n\t\t\t\t\t\t\tresult.ocs.data.exact.rooms\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tvar exactUsers   = result.ocs.data.exact.users;\n\t\t\t\t\t\tvar exactGroups  = result.ocs.data.exact.groups;\n\t\t\t\t\t\tvar exactRemotes = result.ocs.data.exact.remotes;\n\t\t\t\t\t\tvar exactRemoteGroups = result.ocs.data.exact.remote_groups;\n\t\t\t\t\t\tvar exactEmails = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.emails) !== 'undefined') {\n\t\t\t\t\t\t\texactEmails = result.ocs.data.exact.emails;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar exactCircles = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.circles) !== 'undefined') {\n\t\t\t\t\t\t\texactCircles = result.ocs.data.exact.circles;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar exactRooms = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.rooms) !== 'undefined') {\n\t\t\t\t\t\t\texactRooms = result.ocs.data.exact.rooms;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar exactMatches = exactUsers.concat(exactGroups).concat(exactRemotes).concat(exactRemoteGroups).concat(exactEmails).concat(exactCircles).concat(exactRooms);\n\n\t\t\t\t\t\tfilter(\n\t\t\t\t\t\t\tresult.ocs.data.users,\n\t\t\t\t\t\t\tresult.ocs.data.groups,\n\t\t\t\t\t\t\tresult.ocs.data.remotes,\n\t\t\t\t\t\t\tresult.ocs.data.remote_groups,\n\t\t\t\t\t\t\tresult.ocs.data.emails,\n\t\t\t\t\t\t\tresult.ocs.data.circles,\n\t\t\t\t\t\t\tresult.ocs.data.rooms\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tvar users   = result.ocs.data.users;\n\t\t\t\t\t\tvar groups  = result.ocs.data.groups;\n\t\t\t\t\t\tvar remotes = result.ocs.data.remotes;\n\t\t\t\t\t\tvar remoteGroups = result.ocs.data.remote_groups;\n\t\t\t\t\t\tvar lookup = result.ocs.data.lookup;\n\t\t\t\t\t\tvar lookupEnabled = result.ocs.data.lookupEnabled;\n\t\t\t\t\t\tvar emails = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.emails) !== 'undefined') {\n\t\t\t\t\t\t\temails = result.ocs.data.emails;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar circles = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.circles) !== 'undefined') {\n\t\t\t\t\t\t\tcircles = result.ocs.data.circles;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar rooms = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.rooms) !== 'undefined') {\n\t\t\t\t\t\t\trooms = result.ocs.data.rooms;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar suggestions = exactMatches.concat(users).concat(groups).concat(remotes).concat(remoteGroups).concat(emails).concat(circles).concat(rooms).concat(lookup);\n\n\t\t\t\t\t\tfunction dynamicSort(property) {\n\t\t\t\t\t\t\treturn function (a,b) {\n\t\t\t\t\t\t\t\tvar aProperty = '';\n\t\t\t\t\t\t\t\tvar bProperty = '';\n\t\t\t\t\t\t\t\tif (typeof a[property] !== 'undefined') {\n\t\t\t\t\t\t\t\t\taProperty = a[property];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (typeof b[property] !== 'undefined') {\n\t\t\t\t\t\t\t\t\tbProperty = b[property];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn (aProperty < bProperty) ? -1 : (aProperty > bProperty) ? 1 : 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Sort share entries by uuid to properly group them\n\t\t\t\t\t\t */\n\t\t\t\t\t\tvar grouped = suggestions.sort(dynamicSort('uuid'));\n\n\t\t\t\t\t\tvar previousUuid = null;\n\t\t\t\t\t\tvar groupedLength = grouped.length;\n\t\t\t\t\t\tvar result = [];\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * build the result array that only contains all contact entries from\n\t\t\t\t\t\t * merged contacts, if the search term matches its contact name\n\t\t\t\t\t\t */\n\t\t\t\t\t\tfor (var i = 0; i < groupedLength; i++) {\n\t\t\t\t\t\t\tif (typeof grouped[i].uuid !== 'undefined' && grouped[i].uuid === previousUuid) {\n\t\t\t\t\t\t\t\tgrouped[i].merged = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (searchTerm === grouped[i].name || typeof grouped[i].merged === 'undefined') {\n\t\t\t\t\t\t\t\tresult.push(grouped[i]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpreviousUuid = grouped[i].uuid;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar moreResultsAvailable =\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\toc_config['sharing.maxAutocompleteResults'] > 0\n\t\t\t\t\t\t\t\t&& Math.min(perPage, oc_config['sharing.maxAutocompleteResults'])\n\t\t\t\t\t\t\t\t\t<= Math.max(\n\t\t\t\t\t\t\t\t\t\tusers.length + exactUsers.length,\n\t\t\t\t\t\t\t\t\t\tgroups.length + exactGroups.length,\n\t\t\t\t\t\t\t\t\t\tremoteGroups.length + exactRemoteGroups.length,\n\t\t\t\t\t\t\t\t\t\tremotes.length + exactRemotes.length,\n\t\t\t\t\t\t\t\t\t\temails.length + exactEmails.length,\n\t\t\t\t\t\t\t\t\t\tcircles.length + exactCircles.length,\n\t\t\t\t\t\t\t\t\t\trooms.length + exactRooms.length,\n\t\t\t\t\t\t\t\t\t\tlookup.length\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\tif (!view._lookup && lookupEnabled) {\n\t\t\t\t\t\t\tresult.push(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: t('core', 'Search globally'),\n\t\t\t\t\t\t\t\t\tvalue: {},\n\t\t\t\t\t\t\t\t\tlookup: true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdeferred.resolve(result, exactMatches, moreResultsAvailable, lookupEnabled);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdeferred.reject(result.ocs.meta.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t).fail(function() {\n\t\t\t\tdeferred.reject();\n\t\t\t});\n\n\t\t\tthis._lastSuggestions = {\n\t\t\t\tsearchTerm: searchTerm,\n\t\t\t\tlookup: lookup,\n\t\t\t\tperPage: perPage,\n\t\t\t\tmodel: model,\n\t\t\t\tpromise: deferred.promise()\n\t\t\t};\n\n\t\t\treturn this._lastSuggestions.promise;\n\t\t},\n\n\t\t_getRecommendations: function(model) {\n\t\t\tif (this._lastRecommendations &&\n\t\t\t\tthis._lastRecommendations.model === model) {\n\t\t\t\treturn this._lastRecommendations.promise;\n\t\t\t}\n\n\t\t\tvar deferred = $.Deferred();\n\n\t\t\t$.get(\n\t\t\t\tOC.linkToOCS('apps/files_sharing/api/v1') + 'sharees_recommended',\n\t\t\t\t{\n\t\t\t\t\tformat: 'json',\n\t\t\t\t\titemType: model.get('itemType')\n\t\t\t\t},\n\t\t\t\tfunction (result) {\n\t\t\t\t\tif (result.ocs.meta.statuscode === 100) {\n\t\t\t\t\t\tvar filter = function(users, groups, remotes, remote_groups, emails, circles, rooms) {\n\t\t\t\t\t\t\tif (typeof(emails) === 'undefined') {\n\t\t\t\t\t\t\t\temails = [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof(circles) === 'undefined') {\n\t\t\t\t\t\t\t\tcircles = [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof(rooms) === 'undefined') {\n\t\t\t\t\t\t\t\trooms = [];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar usersLength;\n\t\t\t\t\t\t\tvar groupsLength;\n\t\t\t\t\t\t\tvar remotesLength;\n\t\t\t\t\t\t\tvar remoteGroupsLength;\n\t\t\t\t\t\t\tvar emailsLength;\n\t\t\t\t\t\t\tvar circlesLength;\n\t\t\t\t\t\t\tvar roomsLength;\n\n\t\t\t\t\t\t\tvar i, j;\n\n\t\t\t\t\t\t\t//Filter out the current user\n\t\t\t\t\t\t\tusersLength = users.length;\n\t\t\t\t\t\t\tfor (i = 0; i < usersLength; i++) {\n\t\t\t\t\t\t\t\tif (users[i].value.shareWith === OC.currentUser) {\n\t\t\t\t\t\t\t\t\tusers.splice(i, 1);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Filter out the owner of the share\n\t\t\t\t\t\t\tif (model.hasReshare()) {\n\t\t\t\t\t\t\t\tusersLength = users.length;\n\t\t\t\t\t\t\t\tfor (i = 0 ; i < usersLength; i++) {\n\t\t\t\t\t\t\t\t\tif (users[i].value.shareWith === model.getReshareOwner()) {\n\t\t\t\t\t\t\t\t\t\tusers.splice(i, 1);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar shares = model.get('shares');\n\t\t\t\t\t\t\tvar sharesLength = shares.length;\n\n\t\t\t\t\t\t\t// Now filter out all sharees that are already shared with\n\t\t\t\t\t\t\tfor (i = 0; i < sharesLength; i++) {\n\t\t\t\t\t\t\t\tvar share = shares[i];\n\n\t\t\t\t\t\t\t\tif (share.share_type === OC.Share.SHARE_TYPE_USER) {\n\t\t\t\t\t\t\t\t\tusersLength = users.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < usersLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (users[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tusers.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\t\t\t\t\t\tgroupsLength = groups.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < groupsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (groups[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tgroups.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\t\t\t\t\t\tremotesLength = remotes.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < remotesLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (remotes[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tremotes.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_REMOTE_GROUP) {\n\t\t\t\t\t\t\t\t\tremoteGroupsLength = remote_groups.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < remoteGroupsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (remote_groups[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tremote_groups.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\t\t\t\t\t\temailsLength = emails.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < emailsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (emails[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\temails.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\t\t\t\t\t\tcirclesLength = circles.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < circlesLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (circles[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tcircles.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\t\t\t\t\t\troomsLength = rooms.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < roomsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (rooms[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\trooms.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tfilter(\n\t\t\t\t\t\t\tresult.ocs.data.exact.users,\n\t\t\t\t\t\t\tresult.ocs.data.exact.groups,\n\t\t\t\t\t\t\tresult.ocs.data.exact.remotes,\n\t\t\t\t\t\t\tresult.ocs.data.exact.remote_groups,\n\t\t\t\t\t\t\tresult.ocs.data.exact.emails,\n\t\t\t\t\t\t\tresult.ocs.data.exact.circles,\n\t\t\t\t\t\t\tresult.ocs.data.exact.rooms\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tvar exactUsers   = result.ocs.data.exact.users;\n\t\t\t\t\t\tvar exactGroups  = result.ocs.data.exact.groups;\n\t\t\t\t\t\tvar exactRemotes = result.ocs.data.exact.remotes || [];\n\t\t\t\t\t\tvar exactRemoteGroups = result.ocs.data.exact.remote_groups || [];\n\t\t\t\t\t\tvar exactEmails = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.emails) !== 'undefined') {\n\t\t\t\t\t\t\texactEmails = result.ocs.data.exact.emails;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar exactCircles = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.circles) !== 'undefined') {\n\t\t\t\t\t\t\texactCircles = result.ocs.data.exact.circles;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar exactRooms = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.rooms) !== 'undefined') {\n\t\t\t\t\t\t\texactRooms = result.ocs.data.exact.rooms;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar exactMatches = exactUsers.concat(exactGroups).concat(exactRemotes).concat(exactRemoteGroups).concat(exactEmails).concat(exactCircles).concat(exactRooms);\n\n\t\t\t\t\t\tfilter(\n\t\t\t\t\t\t\tresult.ocs.data.users,\n\t\t\t\t\t\t\tresult.ocs.data.groups,\n\t\t\t\t\t\t\tresult.ocs.data.remotes,\n\t\t\t\t\t\t\tresult.ocs.data.remote_groups,\n\t\t\t\t\t\t\tresult.ocs.data.emails,\n\t\t\t\t\t\t\tresult.ocs.data.circles,\n\t\t\t\t\t\t\tresult.ocs.data.rooms\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tvar users   = result.ocs.data.users;\n\t\t\t\t\t\tvar groups  = result.ocs.data.groups;\n\t\t\t\t\t\tvar remotes = result.ocs.data.remotes || [];\n\t\t\t\t\t\tvar remoteGroups = result.ocs.data.remote_groups || [];\n\t\t\t\t\t\tvar lookup = result.ocs.data.lookup || [];\n\t\t\t\t\t\tvar emails = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.emails) !== 'undefined') {\n\t\t\t\t\t\t\temails = result.ocs.data.emails;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar circles = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.circles) !== 'undefined') {\n\t\t\t\t\t\t\tcircles = result.ocs.data.circles;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar rooms = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.rooms) !== 'undefined') {\n\t\t\t\t\t\t\trooms = result.ocs.data.rooms;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar suggestions = exactMatches.concat(users).concat(groups).concat(remotes).concat(remoteGroups).concat(emails).concat(circles).concat(rooms).concat(lookup);\n\n\t\t\t\t\t\tfunction dynamicSort(property) {\n\t\t\t\t\t\t\treturn function (a,b) {\n\t\t\t\t\t\t\t\tvar aProperty = '';\n\t\t\t\t\t\t\t\tvar bProperty = '';\n\t\t\t\t\t\t\t\tif (typeof a[property] !== 'undefined') {\n\t\t\t\t\t\t\t\t\taProperty = a[property];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (typeof b[property] !== 'undefined') {\n\t\t\t\t\t\t\t\t\tbProperty = b[property];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn (aProperty < bProperty) ? -1 : (aProperty > bProperty) ? 1 : 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Sort share entries by uuid to properly group them\n\t\t\t\t\t\t */\n\t\t\t\t\t\tvar grouped = suggestions.sort(dynamicSort('uuid'));\n\n\t\t\t\t\t\tvar previousUuid = null;\n\t\t\t\t\t\tvar groupedLength = grouped.length;\n\t\t\t\t\t\tvar result = [];\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * build the result array that only contains all contact entries from\n\t\t\t\t\t\t * merged contacts, if the search term matches its contact name\n\t\t\t\t\t\t */\n\t\t\t\t\t\tfor (var i = 0; i < groupedLength; i++) {\n\t\t\t\t\t\t\tif (typeof grouped[i].uuid !== 'undefined' && grouped[i].uuid === previousUuid) {\n\t\t\t\t\t\t\t\tgrouped[i].merged = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof grouped[i].merged === 'undefined') {\n\t\t\t\t\t\t\t\tresult.push(grouped[i]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpreviousUuid = grouped[i].uuid;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar moreResultsAvailable =\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\toc_config['sharing.maxAutocompleteResults'] > 0\n\t\t\t\t\t\t\t\t&& Math.min(perPage, oc_config['sharing.maxAutocompleteResults'])\n\t\t\t\t\t\t\t\t<= Math.max(\n\t\t\t\t\t\t\t\t\tusers.length + exactUsers.length,\n\t\t\t\t\t\t\t\t\tgroups.length + exactGroups.length,\n\t\t\t\t\t\t\t\t\tremoteGroups.length + exactRemoteGroups.length,\n\t\t\t\t\t\t\t\t\tremotes.length + exactRemotes.length,\n\t\t\t\t\t\t\t\t\temails.length + exactEmails.length,\n\t\t\t\t\t\t\t\t\tcircles.length + exactCircles.length,\n\t\t\t\t\t\t\t\t\trooms.length + exactRooms.length,\n\t\t\t\t\t\t\t\t\tlookup.length\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\tdeferred.resolve(result, exactMatches, moreResultsAvailable);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdeferred.reject(result.ocs.meta.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t).fail(function() {\n\t\t\t\tdeferred.reject();\n\t\t\t});\n\n\t\t\tthis._lastRecommendations = {\n\t\t\t\tmodel: model,\n\t\t\t\tpromise: deferred.promise()\n\t\t\t};\n\n\t\t\treturn this._lastRecommendations.promise;\n\t\t},\n\n\t\trecommendationHandler: function (response) {\n\t\t\tvar view = this;\n\t\t\tvar $shareWithField = $('.shareWithField');\n\t\t\tthis._getRecommendations(\n\t\t\t\tview.model\n\t\t\t).done(function(suggestions) {\n\t\t\t\tconsole.info('recommendations', suggestions);\n\t\t\t\tif (suggestions.length > 0) {\n\t\t\t\t\t$shareWithField\n\t\t\t\t\t\t.autocomplete(\"option\", \"autoFocus\", true);\n\n\t\t\t\t\tresponse(suggestions);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.info('no sharing recommendations found');\n\t\t\t\t\tresponse();\n\t\t\t\t}\n\t\t\t}).fail(function(message) {\n\t\t\t\tconsole.error('could not load recommendations', message)\n\t\t\t});\n\t\t},\n\n\t\tautocompleteHandler: function (search, response) {\n\t\t\t// If nothing is entered we show recommendations instead of search\n\t\t\t// results\n\t\t\tif (search.term.length === 0) {\n\t\t\t\tconsole.info(search.term, 'empty search term -> using recommendations');\n\t\t\t\tthis.recommendationHandler(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar $shareWithField = $('.shareWithField'),\n\t\t\t\tview = this,\n\t\t\t\t$loading = this.$el.find('.shareWithLoading'),\n\t\t\t\t$confirm = this.$el.find('.shareWithConfirm');\n\n\t\t\tvar count = oc_config['sharing.minSearchStringLength'];\n\t\t\tif (search.term.trim().length < count) {\n\t\t\t\tvar title = n('core',\n\t\t\t\t\t'At least {count} character is needed for autocompletion',\n\t\t\t\t\t'At least {count} characters are needed for autocompletion',\n\t\t\t\t\tcount,\n\t\t\t\t\t{ count: count }\n\t\t\t\t);\n\t\t\t\t$shareWithField.addClass('error')\n\t\t\t\t\t.attr('data-original-title', title)\n\t\t\t\t\t.tooltip('hide')\n\t\t\t\t\t.tooltip({\n\t\t\t\t\t\tplacement: 'bottom',\n\t\t\t\t\t\ttrigger: 'manual'\n\t\t\t\t\t})\n\t\t\t\t\t.tooltip('fixTitle')\n\t\t\t\t\t.tooltip('show');\n\t\t\t\tresponse();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$loading.removeClass('hidden');\n\t\t\t$loading.addClass('inlineblock');\n\t\t\t$confirm.addClass('hidden');\n\t\t\tthis._pendingOperationsCount++;\n\n\t\t\t$shareWithField.removeClass('error')\n\t\t\t\t.tooltip('hide');\n\n\t\t\tvar perPage = parseInt(oc_config['sharing.maxAutocompleteResults'], 10) || 200;\n\t\t\tthis._getSuggestions(\n\t\t\t\tsearch.term.trim(),\n\t\t\t\tperPage,\n\t\t\t\tview.model,\n\t\t\t\tview._lookup\n\t\t\t).done(function(suggestions, exactMatches, moreResultsAvailable) {\n\t\t\t\tview._pendingOperationsCount--;\n\t\t\t\tif (view._pendingOperationsCount === 0) {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$loading.removeClass('inlineblock');\n\t\t\t\t\t$confirm.removeClass('hidden');\n\t\t\t\t}\n\n\t\t\t\tif (suggestions.length > 0) {\n\t\t\t\t\t$shareWithField\n\t\t\t\t\t\t.autocomplete(\"option\", \"autoFocus\", true);\n\n\t\t\t\t\tresponse(suggestions);\n\n\t\t\t\t\t// show a notice that the list is truncated\n\t\t\t\t\t// this is the case if one of the search results is at least as long as the max result config option\n\t\t\t\t\tif(moreResultsAvailable) {\n\t\t\t\t\t\tvar message = t('core', 'This list is maybe truncated - please refine your search term to see more results.');\n\t\t\t\t\t\t$('.ui-autocomplete').append('<li class=\"autocomplete-note\">' + message + '</li>');\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\tvar title = t('core', 'No users or groups found for {search}', {search: $shareWithField.val()});\n\t\t\t\t\tif (!view.configModel.get('allowGroupSharing')) {\n\t\t\t\t\t\ttitle = t('core', 'No users found for {search}', {search: $('.shareWithField').val()});\n\t\t\t\t\t}\n\t\t\t\t\t$shareWithField.addClass('error')\n\t\t\t\t\t\t.attr('data-original-title', title)\n\t\t\t\t\t\t.tooltip('hide')\n\t\t\t\t\t\t.tooltip({\n\t\t\t\t\t\t\tplacement: 'top',\n\t\t\t\t\t\t\ttrigger: 'manual'\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.tooltip('fixTitle')\n\t\t\t\t\t\t.tooltip('show');\n\t\t\t\t\tresponse();\n\t\t\t\t}\n\t\t\t}).fail(function(message) {\n\t\t\t\tview._pendingOperationsCount--;\n\t\t\t\tif (view._pendingOperationsCount === 0) {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$loading.removeClass('inlineblock');\n\t\t\t\t\t$confirm.removeClass('hidden');\n\t\t\t\t}\n\n\t\t\t\tif (message) {\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'An error occurred (\"{message}\"). Please try again', { message: message }));\n\t\t\t\t} else {\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'An error occurred. Please try again'));\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tautocompleteRenderItem: function(ul, item) {\n\t\t\tvar icon = 'icon-user';\n\t\t\tvar text = escapeHTML(item.label);\n\t\t\tvar description = '';\n\t\t\tvar type = '';\n\t\t\tvar getTranslatedType = function(type) {\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase 'HOME':\n\t\t\t\t\t\treturn t('core', 'Home');\n\t\t\t\t\tcase 'WORK':\n\t\t\t\t\t\treturn t('core', 'Work');\n\t\t\t\t\tcase 'OTHER':\n\t\t\t\t\t\treturn t('core', 'Other');\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn '' + type;\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (typeof item.type !== 'undefined' && item.type !== null) {\n\t\t\t\ttype = getTranslatedType(item.type) + ' ';\n\t\t\t}\n\n\t\t\tif (typeof item.name !== 'undefined') {\n\t\t\t\ttext = escapeHTML(item.name);\n\t\t\t}\n\t\t\tif (item.value.shareType === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\ticon = 'icon-contacts-dark';\n\t\t\t} else if (item.value.shareType === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\ticon = 'icon-shared';\n\t\t\t\tdescription += item.value.shareWith;\n\t\t\t} else if (item.value.shareType === OC.Share.SHARE_TYPE_REMOTE_GROUP) {\n\t\t\t\ttext = t('core', '{sharee} (remote group)', { sharee: text }, undefined, { escape: false });\n\t\t\t\ticon = 'icon-shared';\n\t\t\t\tdescription += item.value.shareWith;\n\t\t\t} else if (item.value.shareType === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\ticon = 'icon-mail';\n\t\t\t\tdescription += item.value.shareWith;\n\t\t\t} else if (item.value.shareType === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\ttext = t('core', '{sharee} ({type}, {owner})', {sharee: text, type: item.value.circleInfo, owner: item.value.circleOwner}, undefined, {escape: false});\n\t\t\t\ticon = 'icon-circle';\n\t\t\t} else if (item.value.shareType === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\ticon = 'icon-talk';\n\t\t\t}\n\n\t\t\tvar insert = $(\"<div class='share-autocomplete-item'/>\");\n\t\t\tif (item.merged) {\n\t\t\t\tinsert.addClass('merged');\n\t\t\t\ttext = item.value.shareWith;\n\t\t\t\tdescription = type;\n\t\t\t} else if (item.lookup) {\n\t\t\t\ttext = item.label;\n\t\t\t\ticon = false;\n\t\t\t\tinsert.append('<span class=\"icon icon-search search-globally\"></span>');\n\t\t\t} else {\n\t\t\t\tvar avatar = $(\"<div class='avatardiv'></div>\").appendTo(insert);\n\t\t\t\tif (item.value.shareType === OC.Share.SHARE_TYPE_USER || item.value.shareType === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\t\tavatar.avatar(item.value.shareWith, 32, undefined, undefined, undefined, item.label);\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof item.uuid === 'undefined') {\n\t\t\t\t\t\titem.uuid = text;\n\t\t\t\t\t}\n\t\t\t\t\tavatar.imageplaceholder(item.uuid, text, 32);\n\t\t\t\t}\n\t\t\t\tdescription = type + description;\n\t\t\t}\n\t\t\tif (description !== '') {\n\t\t\t\tinsert.addClass('with-description');\n\t\t\t}\n\n\t\t\t$(\"<div class='autocomplete-item-text'></div>\")\n\t\t\t\t.html(\n\t\t\t\t\ttext.replace(\n\t\t\t\t\tnew RegExp(this.term, \"gi\"),\n\t\t\t\t\t\"<span class='ui-state-highlight'>$&</span>\")\n\t\t\t\t\t+ '<span class=\"autocomplete-item-details\">' + description + '</span>'\n\t\t\t\t)\n\t\t\t\t.appendTo(insert);\n\t\t\tinsert.attr('title', item.value.shareWith);\n\t\t\tif (icon) {\n\t\t\t\tinsert.append('<span class=\"icon ' + icon + '\" title=\"' + text + '\"></span>');\n\t\t\t}\n\t\t\tinsert = $(\"<a>\")\n\t\t\t\t.append(insert);\n\t\t\treturn $(\"<li>\")\n\t\t\t\t.addClass((item.value.shareType === OC.Share.SHARE_TYPE_GROUP) ? 'group' : 'user')\n\t\t\t\t.append(insert)\n\t\t\t\t.appendTo(ul);\n\t\t},\n\n\t\t_onSelectRecipient: function(e, s) {\n\t\t\tvar self = this;\n\n\t\t\tif (e.keyCode == 9) {\n\t\t\t\te.preventDefault();\n\t\t\t\tif (typeof s.item.name !== 'undefined') {\n\t\t\t\t\te.target.value = s.item.name;\n\t\t\t\t} else {\n\t\t\t\t\te.target.value = s.item.label;\n\t\t\t\t}\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t$(e.target).attr('disabled', false)\n\t\t\t\t\t\t.autocomplete('search', $(e.target).val());\n\t\t\t\t}, 0);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (s.item.lookup) {\n\t\t\t\t// Retrigger search but with global lookup this time\n\t\t\t\tthis._lookup = true;\n\t\t\t\tvar $shareWithField = this.$el.find('.shareWithField');\n\t\t\t\tvar val = $shareWithField.val();\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tconsole.debug('searching again, but globally. search term: ' + val);\n\t\t\t\t\t$shareWithField.autocomplete(\"search\", val);\n\t\t\t\t}, 0);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t\t// Ensure that the keydown handler for the input field is not\n\t\t\t// called; otherwise it would try to add the recipient again, which\n\t\t\t// would fail.\n\t\t\te.stopImmediatePropagation();\n\t\t\t$(e.target).attr('disabled', true)\n\t\t\t\t.val(s.item.label);\n\n\t\t\tvar $loading = this.$el.find('.shareWithLoading');\n\t\t\tvar $confirm = this.$el.find('.shareWithConfirm');\n\n\t\t\t$loading.removeClass('hidden');\n\t\t\t$loading.addClass('inlineblock');\n\t\t\t$confirm.addClass('hidden');\n\t\t\tthis._pendingOperationsCount++;\n\n\t\t\tthis.model.addShare(s.item.value, {success: function() {\n\t\t\t\t// Adding a share changes the suggestions.\n\t\t\t\tself._lastSuggestions = undefined;\n\n\t\t\t\t$(e.target).val('')\n\t\t\t\t\t.attr('disabled', false);\n\n\t\t\t\tself._pendingOperationsCount--;\n\t\t\t\tif (self._pendingOperationsCount === 0) {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$loading.removeClass('inlineblock');\n\t\t\t\t\t$confirm.removeClass('hidden');\n\t\t\t\t}\n\t\t\t}, error: function(obj, msg) {\n\t\t\t\tOC.Notification.showTemporary(msg);\n\t\t\t\t$(e.target).attr('disabled', false)\n\t\t\t\t\t.autocomplete('search', $(e.target).val());\n\n\t\t\t\tself._pendingOperationsCount--;\n\t\t\t\tif (self._pendingOperationsCount === 0) {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$loading.removeClass('inlineblock');\n\t\t\t\t\t$confirm.removeClass('hidden');\n\t\t\t\t}\n\t\t\t}});\n\t\t},\n\n\t\t_confirmShare: function() {\n\t\t\tvar self = this;\n\t\t\tvar $shareWithField = $('.shareWithField');\n\t\t\tvar $loading = this.$el.find('.shareWithLoading');\n\t\t\tvar $confirm = this.$el.find('.shareWithConfirm');\n\n\t\t\t$loading.removeClass('hidden');\n\t\t\t$loading.addClass('inlineblock');\n\t\t\t$confirm.addClass('hidden');\n\t\t\tthis._pendingOperationsCount++;\n\n\t\t\t$shareWithField.prop('disabled', true);\n\n\t\t\t// Disabling the autocompletion does not clear its search timeout;\n\t\t\t// removing the focus from the input field does, but only if the\n\t\t\t// autocompletion is not disabled when the field loses the focus.\n\t\t\t// Thus, the field has to be disabled before disabling the\n\t\t\t// autocompletion to prevent an old pending search result from\n\t\t\t// appearing once the field is enabled again.\n\t\t\t$shareWithField.autocomplete('close');\n\t\t\t$shareWithField.autocomplete('disable');\n\n\t\t\tvar restoreUI = function() {\n\t\t\t\tself._pendingOperationsCount--;\n\t\t\t\tif (self._pendingOperationsCount === 0) {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$loading.removeClass('inlineblock');\n\t\t\t\t\t$confirm.removeClass('hidden');\n\t\t\t\t}\n\n\t\t\t\t$shareWithField.prop('disabled', false);\n\t\t\t\t$shareWithField.focus();\n\t\t\t};\n\n\t\t\tvar perPage = parseInt(oc_config['sharing.maxAutocompleteResults'], 10) || 200;\n\t\t\tthis._getSuggestions(\n\t\t\t\t$shareWithField.val(),\n\t\t\t\tperPage,\n\t\t\t\tthis.model,\n\t\t\t\tthis._lookup\n\t\t\t).done(function(suggestions, exactMatches) {\n\t\t\t\tif (suggestions.length === 0) {\n\t\t\t\t\trestoreUI();\n\n\t\t\t\t\t$shareWithField.autocomplete('enable');\n\n\t\t\t\t\t// There is no need to show an error message here; it will\n\t\t\t\t\t// be automatically shown when the autocomplete is activated\n\t\t\t\t\t// again (due to the focus on the field) and it finds no\n\t\t\t\t\t// matches.\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (exactMatches.length !== 1) {\n\t\t\t\t\trestoreUI();\n\n\t\t\t\t\t$shareWithField.autocomplete('enable');\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar actionSuccess = function() {\n\t\t\t\t\t// Adding a share changes the suggestions.\n\t\t\t\t\tself._lastSuggestions = undefined;\n\n\t\t\t\t\t$shareWithField.val('');\n\n\t\t\t\t\trestoreUI();\n\n\t\t\t\t\t$shareWithField.autocomplete('enable');\n\t\t\t\t};\n\n\t\t\t\tvar actionError = function(obj, msg) {\n\t\t\t\t\trestoreUI();\n\n\t\t\t\t\t$shareWithField.autocomplete('enable');\n\n\t\t\t\t\tOC.Notification.showTemporary(msg);\n\t\t\t\t};\n\n\t\t\t\tself.model.addShare(exactMatches[0].value, {\n\t\t\t\t\tsuccess: actionSuccess,\n\t\t\t\t\terror: actionError\n\t\t\t\t});\n\t\t\t}).fail(function(message) {\n\t\t\t\trestoreUI();\n\n\t\t\t\t$shareWithField.autocomplete('enable');\n\n\t\t\t\t// There is no need to show an error message here; it will be\n\t\t\t\t// automatically shown when the autocomplete is activated again\n\t\t\t\t// (due to the focus on the field) and getting the suggestions\n\t\t\t\t// fail.\n\t\t\t});\n\t\t},\n\n\t\t_toggleLoading: function(state) {\n\t\t\tthis._loading = state;\n\t\t\tthis.$el.find('.subView').toggleClass('hidden', state);\n\t\t\tthis.$el.find('.loading').toggleClass('hidden', !state);\n\t\t},\n\n\t\t_onRequest: function() {\n\t\t\t// only show the loading spinner for the first request (for now)\n\t\t\tif (!this._loadingOnce) {\n\t\t\t\tthis._toggleLoading(true);\n\t\t\t}\n\t\t},\n\n\t\t_onEndRequest: function() {\n\t\t\tvar self = this;\n\t\t\tthis._toggleLoading(false);\n\t\t\tif (!this._loadingOnce) {\n\t\t\t\tthis._loadingOnce = true;\n\t\t\t\t// the first time, focus on the share field after the spinner disappeared\n\t\t\t\tif (!OC.Util.isIE()) {\n\t\t\t\t\t_.defer(function () {\n\t\t\t\t\t\tself.$('.shareWithField').focus();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\trender: function() {\n\t\t\tvar self = this;\n\t\t\tvar baseTemplate = OC.Share.Templates['sharedialogview'];\n\n\t\t\tthis.$el.html(baseTemplate({\n\t\t\t\tcid: this.cid,\n\t\t\t\tshareLabel: t('core', 'Share'),\n\t\t\t\tsharePlaceholder: this._renderSharePlaceholderPart(),\n\t\t\t\tisSharingAllowed: this.model.sharePermissionPossible()\n\t\t\t}));\n\n\t\t\tvar $shareField = this.$el.find('.shareWithField');\n\t\t\tif ($shareField.length) {\n\t\t\t\tvar shareFieldKeydownHandler = function(event) {\n\t\t\t\t\tif (event.keyCode !== 13) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\tself._confirmShare();\n\n\t\t\t\t\treturn false;\n\t\t\t\t};\n\n\t\t\t\t$shareField.autocomplete({\n\t\t\t\t\tminLength: 0,\n\t\t\t\t\tdelay: 750,\n\t\t\t\t\tfocus: function(event) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t},\n\t\t\t\t\tsource: this.autocompleteHandler,\n\t\t\t\t\tselect: this._onSelectRecipient,\n\t\t\t\t\topen: function() {\n\t\t\t\t\t\tvar autocomplete = $(this).autocomplete('widget');\n\t\t\t\t\t\tvar numberOfItems = autocomplete.find('li').size();\n\t\t\t\t\t\tautocomplete.removeClass('item-count-1');\n\t\t\t\t\t\tautocomplete.removeClass('item-count-2');\n\t\t\t\t\t\tif (numberOfItems <= 2) {\n\t\t\t\t\t\t\tautocomplete.addClass('item-count-' + numberOfItems);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}).data('ui-autocomplete')._renderItem = this.autocompleteRenderItem;\n\n\t\t\t\t$shareField.on('keydown', null, shareFieldKeydownHandler);\n\t\t\t}\n\n\t\t\tthis.resharerInfoView.$el = this.$el.find('.resharerInfoView');\n\t\t\tthis.resharerInfoView.render();\n\n\t\t\tthis.linkShareView.$el = this.$el.find('.linkShareView');\n\t\t\tthis.linkShareView.render();\n\n\t\t\tthis.shareeListView.$el = this.$el.find('.shareeListView');\n\t\t\tthis.shareeListView.render();\n\n\t\t\tthis.$el.find('.hasTooltip').tooltip();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * sets whether share by link should be displayed or not. Default is\n\t\t * true.\n\t\t *\n\t\t * @param {bool} showLink\n\t\t */\n\t\tsetShowLink: function(showLink) {\n\t\t\tthis._showLink = (typeof showLink === 'boolean') ? showLink : true;\n\t\t\tthis.linkShareView.showLink = this._showLink;\n\t\t},\n\n\t\t_renderSharePlaceholderPart: function () {\n\t\t\tvar allowRemoteSharing = this.configModel.get('isRemoteShareAllowed');\n\t\t\tvar allowMailSharing = this.configModel.get('isMailShareAllowed');\n\n\t\t\tif (!allowRemoteSharing && allowMailSharing) {\n\t\t\t\treturn t('core', 'Name or email address...');\n\t\t\t}\n\t\t\tif (allowRemoteSharing && !allowMailSharing) {\n\t\t\t\treturn t('core', 'Name or federated cloud ID...');\n\t\t\t}\n\t\t\tif (allowRemoteSharing && allowMailSharing) {\n\t\t\t\treturn t('core', 'Name, federated cloud ID or email address...');\n\t\t\t}\n\n\t\t\treturn \tt('core', 'Name...');\n\t\t},\n\n\t});\n\n\tOC.Share.ShareDialogView = ShareDialogView;\n\n})();\n","/* global escapeHTML */\n\n/**\n * @namespace\n */\nOC.Share = _.extend(OC.Share || {}, {\n\tSHARE_TYPE_USER:0,\n\tSHARE_TYPE_GROUP:1,\n\tSHARE_TYPE_LINK:3,\n\tSHARE_TYPE_EMAIL:4,\n\tSHARE_TYPE_REMOTE:6,\n\tSHARE_TYPE_CIRCLE:7,\n\tSHARE_TYPE_GUEST:8,\n\tSHARE_TYPE_REMOTE_GROUP:9,\n\tSHARE_TYPE_ROOM:10,\n\n\t/**\n\t * Regular expression for splitting parts of remote share owners:\n\t * \"user@example.com/path/to/owncloud\"\n\t * \"user@anotherexample.com@example.com/path/to/owncloud\n\t */\n\t_REMOTE_OWNER_REGEXP: new RegExp(\"^([^@]*)@(([^@]*)@)?([^/]*)([/](.*)?)?$\"),\n\n\t/**\n\t * @deprecated use OC.Share.currentShares instead\n\t */\n\titemShares:[],\n\t/**\n\t * Full list of all share statuses\n\t */\n\tstatuses:{},\n\t/**\n\t * Shares for the currently selected file.\n\t * (for which the dropdown is open)\n\t *\n\t * Key is item type and value is an array or\n\t * shares of the given item type.\n\t */\n\tcurrentShares: {},\n\t/**\n\t * Whether the share dropdown is opened.\n\t */\n\tdroppedDown:false,\n\t/**\n\t * Loads ALL share statuses from server, stores them in\n\t * OC.Share.statuses then calls OC.Share.updateIcons() to update the\n\t * files \"Share\" icon to \"Shared\" according to their share status and\n\t * share type.\n\t *\n\t * If a callback is specified, the update step is skipped.\n\t *\n\t * @param itemType item type\n\t * @param fileList file list instance, defaults to OCA.Files.App.fileList\n\t * @param callback function to call after the shares were loaded\n\t */\n\tloadIcons:function(itemType, fileList, callback) {\n\t\tvar path = fileList.dirInfo.path;\n\t\tif (path === '/') {\n\t\t\tpath = '';\n\t\t}\n\t\tpath += '/' + fileList.dirInfo.name;\n\n\t\t// Load all share icons\n\t\t$.get(\n\t\t\tOC.linkToOCS('apps/files_sharing/api/v1', 2) + 'shares',\n\t\t\t{\n\t\t\t\tsubfiles: 'true',\n\t\t\t\tpath: path,\n\t\t\t\tformat: 'json'\n\t\t\t}, function(result) {\n\t\t\t\tif (result && result.ocs.meta.statuscode === 200) {\n\t\t\t\t\tOC.Share.statuses = {};\n\t\t\t\t\t$.each(result.ocs.data, function(it, share) {\n\t\t\t\t\t\tif (!(share.item_source in OC.Share.statuses)) {\n\t\t\t\t\t\t\tOC.Share.statuses[share.item_source] = {link: false};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (share.share_type === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\t\tOC.Share.statuses[share.item_source] = {link: true};\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif (_.isFunction(callback)) {\n\t\t\t\t\t\tcallback(OC.Share.statuses);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tOC.Share.updateIcons(itemType, fileList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t},\n\t/**\n\t * Updates the files' \"Share\" icons according to the known\n\t * sharing states stored in OC.Share.statuses.\n\t * (not reloaded from server)\n\t *\n\t * @param itemType item type\n\t * @param fileList file list instance\n\t * defaults to OCA.Files.App.fileList\n\t */\n\tupdateIcons:function(itemType, fileList){\n\t\tvar item;\n\t\tvar $fileList;\n\t\tvar currentDir;\n\t\tif (!fileList && OCA.Files) {\n\t\t\tfileList = OCA.Files.App.fileList;\n\t\t}\n\t\t// fileList is usually only defined in the files app\n\t\tif (fileList) {\n\t\t\t$fileList = fileList.$fileList;\n\t\t\tcurrentDir = fileList.getCurrentDirectory();\n\t\t}\n\t\t// TODO: iterating over the files might be more efficient\n\t\tfor (item in OC.Share.statuses){\n\t\t\tvar iconClass = 'icon-shared';\n\t\t\tvar data = OC.Share.statuses[item];\n\t\t\tvar hasLink = data.link;\n\t\t\t// Links override shared in terms of icon display\n\t\t\tif (hasLink) {\n\t\t\t\ticonClass = 'icon-public';\n\t\t\t}\n\t\t\tif (itemType !== 'file' && itemType !== 'folder') {\n\t\t\t\t$('a.share[data-item=\"'+item+'\"] .icon').removeClass('icon-shared icon-public').addClass(iconClass);\n\t\t\t} else {\n\t\t\t\t// TODO: ultimately this part should be moved to files_sharing app\n\t\t\t\tvar file = $fileList.find('tr[data-id=\"'+item+'\"]');\n\t\t\t\tvar shareFolder = OC.imagePath('core', 'filetypes/folder-shared');\n\t\t\t\tvar img;\n\t\t\t\tif (file.length > 0) {\n\t\t\t\t\tthis.markFileAsShared(file, true, hasLink);\n\t\t\t\t} else {\n\t\t\t\t\tvar dir = currentDir;\n\t\t\t\t\tif (dir.length > 1) {\n\t\t\t\t\t\tvar last = '';\n\t\t\t\t\t\tvar path = dir;\n\t\t\t\t\t\t// Search for possible parent folders that are shared\n\t\t\t\t\t\twhile (path != last) {\n\t\t\t\t\t\t\tif (path === data.path && !data.link) {\n\t\t\t\t\t\t\t\tvar actions = $fileList.find('.fileactions .action[data-action=\"Share\"]');\n\t\t\t\t\t\t\t\tvar files = $fileList.find('.filename');\n\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\tfor (i = 0; i < actions.length; i++) {\n\t\t\t\t\t\t\t\t\t// TODO: use this.markFileAsShared()\n\t\t\t\t\t\t\t\t\timg = $(actions[i]).find('img');\n\t\t\t\t\t\t\t\t\tif (img.attr('src') !== OC.imagePath('core', 'actions/public')) {\n\t\t\t\t\t\t\t\t\t\timg.attr('src', image);\n\t\t\t\t\t\t\t\t\t\t$(actions[i]).addClass('permanent');\n\t\t\t\t\t\t\t\t\t\t$(actions[i]).html('<span> '+t('core', 'Shared')+'</span>').prepend(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tfor(i = 0; i < files.length; i++) {\n\t\t\t\t\t\t\t\t\tif ($(files[i]).closest('tr').data('type') === 'dir') {\n\t\t\t\t\t\t\t\t\t\t$(files[i]).find('.thumbnail').css('background-image', 'url('+shareFolder+')');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlast = path;\n\t\t\t\t\t\t\tpath = OC.Share.dirname(path);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tupdateIcon:function(itemType, itemSource) {\n\t\tvar shares = false;\n\t\tvar link = false;\n\t\tvar iconClass = '';\n\t\t$.each(OC.Share.itemShares, function(index) {\n\t\t\tif (OC.Share.itemShares[index]) {\n\t\t\t\tif (index == OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\tif (OC.Share.itemShares[index] == true) {\n\t\t\t\t\t\tshares = true;\n\t\t\t\t\t\ticonClass = 'icon-public';\n\t\t\t\t\t\tlink = true;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t} else if (OC.Share.itemShares[index].length > 0) {\n\t\t\t\t\tshares = true;\n\t\t\t\t\ticonClass = 'icon-shared';\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tif (itemType != 'file' && itemType != 'folder') {\n\t\t\t$('a.share[data-item=\"'+itemSource+'\"] .icon').removeClass('icon-shared icon-public').addClass(iconClass);\n\t\t} else {\n\t\t\tvar $tr = $('tr').filterAttr('data-id', String(itemSource));\n\t\t\tif ($tr.length > 0) {\n\t\t\t\t// it might happen that multiple lists exist in the DOM\n\t\t\t\t// with the same id\n\t\t\t\t$tr.each(function() {\n\t\t\t\t\tOC.Share.markFileAsShared($(this), shares, link);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (shares) {\n\t\t\tOC.Share.statuses[itemSource] = OC.Share.statuses[itemSource] || {};\n\t\t\tOC.Share.statuses[itemSource].link = link;\n\t\t} else {\n\t\t\tdelete OC.Share.statuses[itemSource];\n\t\t}\n\t},\n\t/**\n\t * Format a remote address\n\t *\n\t * @param {String} shareWith userid, full remote share, or whatever\n\t * @param {String} shareWithDisplayName\n\t * @param {String} message\n\t * @return {String} HTML code to display\n\t */\n\t_formatRemoteShare: function(shareWith, shareWithDisplayName, message) {\n\t\tvar parts = this._REMOTE_OWNER_REGEXP.exec(shareWith);\n\t\tif (!parts) {\n\t\t\t// display avatar of the user\n\t\t\tvar avatar = '<span class=\"avatar\" data-username=\"' + escapeHTML(shareWith) + '\" title=\"' + message + \" \" + escapeHTML(shareWithDisplayName) + '\"></span>';\n\t\t\tvar hidden = '<span class=\"hidden-visually\">' + message + ' ' + escapeHTML(shareWithDisplayName) + '</span> ';\n\t\t\treturn avatar + hidden;\n\t\t}\n\n\t\tvar userName = parts[1];\n\t\tvar userDomain = parts[3];\n\t\tvar server = parts[4];\n\t\tvar tooltip = message + ' ' + userName;\n\t\tif (userDomain) {\n\t\t\ttooltip += '@' + userDomain;\n\t\t}\n\t\tif (server) {\n\t\t\tif (!userDomain) {\n\t\t\t\tuserDomain = '…';\n\t\t\t}\n\t\t\ttooltip += '@' + server;\n\t\t}\n\n\t\tvar html = '<span class=\"remoteAddress\" title=\"' + escapeHTML(tooltip) + '\">';\n\t\thtml += '<span class=\"username\">' + escapeHTML(userName) + '</span>';\n\t\tif (userDomain) {\n\t\t\thtml += '<span class=\"userDomain\">@' + escapeHTML(userDomain) + '</span>';\n\t\t}\n\t\thtml += '</span> ';\n\t\treturn html;\n\t},\n\t/**\n\t * Loop over all recipients in the list and format them using\n\t * all kind of fancy magic.\n\t *\n\t * @param {Object} recipients array of all the recipients\n\t * @return {String[]} modified list of recipients\n\t */\n\t_formatShareList: function(recipients) {\n\t\tvar _parent = this;\n\t\trecipients = _.toArray(recipients);\n\t\trecipients.sort(function(a, b) {\n\t\t\treturn a.shareWithDisplayName.localeCompare(b.shareWithDisplayName);\n\t\t});\n\t\treturn $.map(recipients, function(recipient) {\n\t\t\treturn _parent._formatRemoteShare(recipient.shareWith, recipient.shareWithDisplayName, t('core', 'Shared with'));\n\t\t});\n\t},\n\t/**\n\t * Marks/unmarks a given file as shared by changing its action icon\n\t * and folder icon.\n\t *\n\t * @param $tr file element to mark as shared\n\t * @param hasShares whether shares are available\n\t * @param hasLink whether link share is available\n\t */\n\tmarkFileAsShared: function($tr, hasShares, hasLink) {\n\t\tvar action = $tr.find('.fileactions .action[data-action=\"Share\"]');\n\t\tvar type = $tr.data('type');\n\t\tvar icon = action.find('.icon');\n\t\tvar message, recipients, avatars;\n\t\tvar ownerId = $tr.attr('data-share-owner-id');\n\t\tvar owner = $tr.attr('data-share-owner');\n\t\tvar shareFolderIcon;\n\t\tvar iconClass = 'icon-shared';\n\t\taction.removeClass('shared-style');\n\t\t// update folder icon\n\t\tif (type === 'dir' && (hasShares || hasLink || ownerId)) {\n\t\t\tif (hasLink) {\n\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-public');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-shared');\n\t\t\t}\n\t\t\t$tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')');\n\t\t\t$tr.attr('data-icon', shareFolderIcon);\n\t\t} else if (type === 'dir') {\n\t\t\tvar isEncrypted = $tr.attr('data-e2eencrypted');\n\t\t\tvar mountType = $tr.attr('data-mounttype');\n\t\t\t// FIXME: duplicate of FileList._createRow logic for external folder,\n\t\t\t// need to refactor the icon logic into a single code path eventually\n\t\t\tif (isEncrypted === 'true') {\n\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-encrypted');\n\t\t\t\t$tr.attr('data-icon', shareFolderIcon);\n\t\t\t} else if (mountType && mountType.indexOf('external') === 0) {\n\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-external');\n\t\t\t\t$tr.attr('data-icon', shareFolderIcon);\n\t\t\t} else {\n\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir');\n\t\t\t\t// back to default\n\t\t\t\t$tr.removeAttr('data-icon');\n\t\t\t}\n\t\t\t$tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')');\n\t\t}\n\t\t// update share action text / icon\n\t\tif (hasShares || ownerId) {\n\t\t\trecipients = $tr.data('share-recipient-data');\n\t\t\taction.addClass('shared-style');\n\n\t\t\tavatars = '<span>' + t('core', 'Shared') + '</span>';\n\t\t\t// even if reshared, only show \"Shared by\"\n\t\t\tif (ownerId) {\n\t\t\t\tmessage = t('core', 'Shared by');\n\t\t\t\tavatars = this._formatRemoteShare(ownerId, owner, message);\n\t\t\t} else if (recipients) {\n\t\t\t\tavatars = this._formatShareList(recipients);\n\t\t\t}\n\t\t\taction.html(avatars).prepend(icon);\n\n\t\t\tif (ownerId || recipients) {\n\t\t\t\tvar avatarElement = action.find('.avatar');\n\t\t\t\tavatarElement.each(function () {\n\t\t\t\t\t$(this).avatar($(this).data('username'), 32);\n\t\t\t\t});\n\t\t\t\taction.find('span[title]').tooltip({placement: 'top'});\n\t\t\t}\n\t\t} else {\n\t\t\taction.html('<span class=\"hidden-visually\">' + t('core', 'Shared') + '</span>').prepend(icon);\n\t\t}\n\t\tif (hasLink) {\n\t\t\ticonClass = 'icon-public';\n\t\t}\n\t\ticon.removeClass('icon-shared icon-public').addClass(iconClass);\n\t},\n\tshowDropDown:function(itemType, itemSource, appendTo, link, possiblePermissions, filename) {\n\t\tvar configModel = new OC.Share.ShareConfigModel();\n\t\tvar attributes = {itemType: itemType, itemSource: itemSource, possiblePermissions: possiblePermissions};\n\t\tvar itemModel = new OC.Share.ShareItemModel(attributes, {configModel: configModel});\n\t\tvar dialogView = new OC.Share.ShareDialogView({\n\t\t\tid: 'dropdown',\n\t\t\tmodel: itemModel,\n\t\t\tconfigModel: configModel,\n\t\t\tclassName: 'drop shareDropDown',\n\t\t\tattributes: {\n\t\t\t\t'data-item-source-name': filename,\n\t\t\t\t'data-item-type': itemType,\n\t\t\t\t'data-item-source': itemSource\n\t\t\t}\n\t\t});\n\t\tdialogView.setShowLink(link);\n\t\tvar $dialog = dialogView.render().$el;\n\t\t$dialog.appendTo(appendTo);\n\t\t$dialog.slideDown(OC.menuSpeed, function() {\n\t\t\tOC.Share.droppedDown = true;\n\t\t});\n\t\titemModel.fetch();\n\t},\n\thideDropDown:function(callback) {\n\t\tOC.Share.currentShares = null;\n\t\t$('#dropdown').slideUp(OC.menuSpeed, function() {\n\t\t\tOC.Share.droppedDown = false;\n\t\t\t$('#dropdown').remove();\n\t\t\tif (typeof FileActions !== 'undefined') {\n\t\t\t\t$('tr').removeClass('mouseOver');\n\t\t\t}\n\t\t\tif (callback) {\n\t\t\t\tcallback.call();\n\t\t\t}\n\t\t});\n\t},\n\tdirname:function(path) {\n\t\treturn path.replace(/\\\\/g,'/').replace(/\\/[^\\/]*$/, '');\n\t}\n});\n\n$(document).ready(function() {\n\tif(typeof monthNames != 'undefined'){\n\t\t// min date should always be the next day\n\t\tvar minDate = new Date();\n\t\tminDate.setDate(minDate.getDate()+1);\n\t\t$.datepicker.setDefaults({\n\t\t\tmonthNames: monthNames,\n\t\t\tmonthNamesShort: monthNamesShort,\n\t\t\tdayNames: dayNames,\n\t\t\tdayNamesMin: dayNamesMin,\n\t\t\tdayNamesShort: dayNamesShort,\n\t\t\tfirstDay: firstDay,\n\t\t\tminDate : minDate\n\t\t});\n\t}\n\n\t$(this).click(function(event) {\n\t\tvar target = $(event.target);\n\t\tvar isMatched = !target.is('.drop, .ui-datepicker-next, .ui-datepicker-prev, .ui-icon')\n\t\t\t&& !target.closest('#ui-datepicker-div').length && !target.closest('.ui-autocomplete').length;\n\t\tif (OC.Share && OC.Share.droppedDown && isMatched && $('#dropdown').has(event.target).length === 0) {\n\t\t\tOC.Share.hideDropDown();\n\t\t}\n\t});\n\n\n\n});\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./core/js/merged-share-backend.js","webpack:///./core/js/shareconfigmodel.js","webpack:///./core/js/sharetemplates.js","webpack:///./core/js/shareitemmodel.js","webpack:///./core/js/sharesocialmanager.js","webpack:///./core/js/sharedialogresharerinfoview.js","webpack:///./core/js/sharedialoglinkshareview.js","webpack:///./core/js/sharedialogshareelistview.js","webpack:///./core/js/sharedialogview.js","webpack:///./core/js/share.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","OC","Share","Types","ShareConfigModel","Backbone","Model","extend","defaults","publicUploadEnabled","enforcePasswordForPublicLink","oc_appconfig","core","enableLinkPasswordByDefault","isDefaultExpireDateEnforced","defaultExpireDateEnforced","isDefaultExpireDateEnabled","defaultExpireDateEnabled","isRemoteShareAllowed","remoteShareAllowed","isMailShareAllowed","undefined","shareByMailEnabled","defaultExpireDate","isResharingAllowed","resharingAllowed","isPasswordForMailSharesRequired","shareByMail","enforcePasswordProtection","allowGroupSharing","isPublicUploadEnabled","$","data","isShareWithLinkAllowed","val","getFederatedShareDocLink","federatedCloudShareDoc","getDefaultExpirationDateString","expireDateString","this","date","moment","utc","expireAfterDays","add","format","template","templates","Handlebars","Templates","1","container","depth0","helpers","partials","stack1","alias1","nullContext","nolinkShares","hash","fn","program","inverse","noop","each","linkShares","2","helper","alias2","helperMissing","alias4","escapeExpression","_typeof","newShareId","newShareLabel","showPending","newShareTitle","unless","3","5","pendingPopoverMenu","7","alias3","cid","linkShareCreationDate","linkShareLabel","shareLinkURL","copyLabel","8","popoverMenu","10","noSharingPlaceholder","11","compiler","main","shareAllowed","useData","publicUploadRValue","publicUploadRChecked","publicUploadRLabel","publicUploadRWValue","publicUploadRWChecked","publicUploadRWLabel","publicUploadWValue","publicUploadWChecked","publicUploadWLabel","publicEditingChecked","publicEditingLabel","9","isPasswordByTalkSet","passwordByTalkLabel","13","15","expireDate","17","19","21","url","newWindow","iconClass","label","publicUpload","publicEditing","hideDownload","hideDownloadLabel","isPasswordSet","isPasswordEnforced","enablePasswordLabel","passwordPlaceholder","showPasswordByTalkCheckBox","hasExpireDate","isExpirationEnforced","expireDateLabel","expirationDate","expirationLabel","expirationDatePlaceholder","maxDate","addNoteLabel","hasNote","shareNote","shareId","social","unshareLinkLabel","enforcedPasswordLabel","minPasswordLength","reshareOwner","sharedByText","hasShareNote","isShareWithCurrentUser","shareType","shareWith","modSeed","shareWithAvatar","shareWithDisplayName","shareWithTitle","canUpdateShareSettings","editPermissionPossible","canEditLabel","shareInitiator","shareInitiatorText","unshareLabel","sharees","linkReshares","sharePermissionPossible","isMailShare","hasSharePermission","sharePermission","canShareLabel","4","6","createPermissionPossible","updatePermissionPossible","deletePermissionPossible","hasCreatePermission","createPermission","createPermissionLabel","hasUpdatePermission","updatePermission","updatePermissionLabel","14","hasDeletePermission","deletePermission","deletePermissionLabel","16","passwordLabel","password","passwordValue","isTalkEnabled","secureDropMode","readPermission","secureDropLabel","20","22","24","passwordByTalkPlaceholder","26","28","30","isFolder","isNoteAvailable","shareLabel","sharePlaceholder","isSharingAllowed","SHARE_RESPONSE_INT_PROPS","ShareItemModel","_linkShareId","initialize","attributes","options","_","isUndefined","configModel","fileInfoModel","bindAll","allowPublicUploadStatus","permissions","saveLinkShare","expiration","shareIndex","findIndex","share","id","length","updateShare","passwordChanged","sendPasswordByTalk","PERMISSION_READ","SHARE_TYPE_LINK","addShare","defaultPermissions","getCapabilities","PERMISSION_ALL","possiblePermissions","PERMISSION_UPDATE","PERMISSION_CREATE","PERMISSION_DELETE","PERMISSION_SHARE","path","getFullPath","_addOrUpdateShare","type","_getUrl","dataType","attrs","encodeURIComponent","ajaxSettings","self","ajax","always","isFunction","complete","done","fetch","success","fail","xhr","msg","result","responseJSON","ocs","meta","message","error","dialogs","alert","removeShare","isPublicUploadAllowed","isPublicEditingAllowed","isHideFileListSet","isFile","hasReshare","reshare","isObject","uid_owner","hasUserShares","getSharesWithCurrentItem","hasLinkShares","getReshareOwner","getReshareOwnerDisplayname","displayname_owner","getReshareNote","note","getReshareWith","share_with","getReshareWithDisplayName","share_with_displayname","getReshareType","share_type","getExpireDate","_shareExpireDate","getNote","_shareNote","shares","fileId","filter","item_source","getShareWith","getShareWithDisplayName","getShareWithAvatar","share_with_avatar","getSharedBy","getSharedByDisplayName","getFileOwnerUid","uid_file_owner","findShareWithIndex","isArray","getShareType","_shareHasPermission","permission","getPermissions","hasReadPermission","editPermissionState","hcp","hup","hdp","linkSharePermissions","base","params","linkToOCS","buildQueryString","_fetchShares","reshares","_fetchReshare","_reshareFetched","Deferred","resolve","shared_with_me","_groupReshares","superShare","shift","combinedPermissions","SHARE_TYPE_USER","SHARE_TYPE_GROUP","model","trigger","deferred","when","data1","data2","sharesMap","shareItem","set","parse","_legacyFillCurrentShares","statuses","currentShares","itemShares","currentShareStatus","link","push","console","warn","currentUser","allowPublicEditingStatus","hideFileListStatus","map","prop","parseInt","reject","file_source","window","location","protocol","host","token","generateUrl","fullPath","isDirectory","linkTo","hide_download","send_password_by_talk","_parseTime","time","isString","isNaN","getShareTypes","pluck","uniq","Social","SocialModel","SocialCollection","Collection","comparator","ShareDialogResharerInfoView","View","tagName","className","_template","view","on","render","$el","empty","reshareTemplate","ownerDisplayName","group","owner","escape","SHARE_TYPE_CIRCLE","circle","SHARE_TYPE_ROOM","conversation","html","find","$this","avatar","contactsMenu","PASSWORD_PLACEHOLDER_MESSAGE","PASSWORD_PLACEHOLDER_MESSAGE_OPTIONAL","ShareDialogLinkShareView","showLink","events","click .share-menu .icon-more","change .hideDownloadCheckbox","click input.share-pass-submit","keyup input.linkPassText","change .showPasswordCheckbox","change .passwordByTalkCheckbox","change .publicEditingCheckbox","click .linkText","click .pop-up","change .publicUploadRadio","click .expireDate","change .datepicker","click .datepicker","click .share-add","click .share-note-delete","click .share-note-submit","click .unshare","click .new-share","submit .enforcedPassForm","previousLinkShares","previous","clipboard","Clipboard","e","$trigger","tooltip","attr","placement","delay","$menu","next","$linkTextMenu","$input","closest","showMenu","actionMsg","test","navigator","userAgent","removeClass","select","newShare","event","$li","target","$loading","hasClass","addClass","hideMenus","shareData","defaultExpireDays","focus","$newShare","response","Notification","showTemporary","then","enforcedPasswordSet","preventDefault","onLinkTextClick","onHideDownloadChange","$checkbox","siblings","is","obj","onShowPasswordClick","slideToggle","menuSpeed","toggleClass","Util","isIE","onPasswordKeyUp","keyCode","onPasswordEntered","parent","$container","onPasswordByTalkChange","onAllowPublicEditingChange","onPublicUploadChange","currentTarget","showNoteForm","stopPropagation","$element","$form","deleteNote","sendNote","updateNote","prev","trim","$submit","$error","hide","method","show","setTimeout","linkShareTemplate","templateData","passwordPlaceholderInitial","publicEditable","minDate","Date","setDate","getDate","datepicker","setDefaults","dateFormat","oc_capabilities","password_policy","minLength","popoverBase","urlLabel","mailPrivatePlaceholder","mailButtonText","pendingPopover","pendingPopoverMenuTemplate","getShareeList","replace","popover","getPopoverObject","popoverMenuTemplate","delegateEvents","autosize","onToggleMenu","isPasswordEnabledByDefault","onPopUpClick","left","screen","width","top","height","open","href","onExpireDateChange","datePicker","state","showDatePicker","setExpirationDate","expirationDatePicker","onSelect","onChangeExpirationDate","list","index","getShareeObject","stime","oc_appswebroots","shareTime","isNumber","stripTime","getTime","onUnshare","eq","remove","ShareDialogShareeListView","_menuOpen","_renderPermissionChange","click .permissions","click .password","click .passwordByTalk","click .secureDrop","keyup input.passwordField","focusout input.passwordField","sharedBy","sharedByDisplayName","fileOwnerUid","SHARE_TYPE_REMOTE","SHARE_TYPE_REMOTE_GROUP","SHARE_TYPE_EMAIL","oc_current_user","sharer","hasPassword","isRemoteShare","isRemoteGroupShare","isCircleShare","isFileSharedByMail","getShareProperties","crudsLabel","triangleSImage","imagePath","universal","getLinkReshares","shareInitiatorDisplayName","permissionChangeShareId","shareWithIndex","sharee","replaceWith","css","imageplaceholder","_this","forEach","$edit","datePickerClass","datePickerInput","expireDateCheckbox","liSelector","log","onMailSharePasswordProtectChange","element","passwordContainerClass","passwordContainer","loading","inputClass","passwordField","passwordByTalkElement","passwordByTalkState","passwordByTalkContainerClass","onMailSharePasswordProtectByTalkChange","passwordByTalkContainer","passwordByTalkField","passwordElement","passwordState","onMailSharePasswordKeyUp","onMailSharePasswordEntered","startsWith","blur","onPermissionChange","checked","$checkboxes","not","numberChecked","$editCb","checkbox","enableCb","elem","onSecureDropChange","ShareDialogView","_templates","_showLink","_lookup","_lookupAllowed","resharerInfoView","linkShareView","shareeListView","_lastSuggestions","_lastRecommendations","_pendingOperationsCount","focus .shareWithField","input .shareWithField","click .shareWithConfirm","_onRequest","_onEndRequest","subViewOptions","subViews","Plugins","attach","onShareWithFieldChanged","onShareWithFieldFocus","$shareWithField","autocomplete","_getSuggestions","searchTerm","perPage","lookup","promise","search","itemType","statuscode","users","groups","remotes","remote_groups","emails","circles","rooms","usersLength","groupsLength","remotesLength","remoteGroupsLength","emailsLength","circlesLength","roomsLength","j","splice","sharesLength","exact","exactUsers","exactGroups","exactRemotes","exactRemoteGroups","exactEmails","exactCircles","exactRooms","exactMatches","concat","remoteGroups","lookupEnabled","grouped","sort","a","b","aProperty","bProperty","previousUuid","groupedLength","uuid","merged","moreResultsAvailable","oc_config","Math","min","max","_getRecommendations","recommendationHandler","suggestions","info","autocompleteHandler","term","$confirm","count","title","append","autocompleteRenderItem","ul","item","icon","text","escapeHTML","description","getTranslatedType","circleInfo","circleOwner","insert","appendTo","RegExp","_onSelectRecipient","debug","stopImmediatePropagation","_confirmShare","restoreUI","_toggleLoading","_loading","_loadingOnce","defer","baseTemplate","_renderSharePlaceholderPart","$shareField","source","numberOfItems","size","_renderItem","setShowLink","allowRemoteSharing","allowMailSharing","SHARE_TYPE_GUEST","_REMOTE_OWNER_REGEXP","droppedDown","loadIcons","fileList","callback","dirInfo","subfiles","it","updateIcons","$fileList","currentDir","OCA","Files","App","getCurrentDirectory","hasLink","img","file","shareFolder","markFileAsShared","dir","last","actions","files","image","prepend","dirname","updateIcon","itemSource","$tr","filterAttr","String","_formatRemoteShare","parts","exec","userName","userDomain","server","_formatShareList","recipients","_parent","toArray","localeCompare","recipient","hasShares","avatars","shareFolderIcon","action","ownerId","MimeType","getIconUrl","isEncrypted","mountType","indexOf","removeAttr","showDropDown","filename","itemModel","dialogView","data-item-source-name","data-item-type","data-item-source","$dialog","slideDown","hideDropDown","slideUp","FileActions","document","ready","monthNames","monthNamesShort","dayNames","dayNamesMin","dayNamesShort","firstDay","click","isMatched","has"],"mappings":"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","file":"share_backend.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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import './shareconfigmodel.js';\nimport './sharetemplates.js';\nimport './shareitemmodel.js';\nimport './sharesocialmanager.js';\nimport './sharedialogresharerinfoview.js';\nimport './sharedialoglinkshareview.js';\nimport './sharedialogshareelistview.js';\nimport './sharedialogview.js';\nimport './share.js';\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* global moment, oc_appconfig, oc_config */\n\n(function() {\n\tif (!OC.Share) {\n\t\tOC.Share = {};\n\t\tOC.Share.Types = {};\n\t}\n\n\t// FIXME: the config model should populate its own model attributes based on\n\t// the old DOM-based config\n\tvar ShareConfigModel = OC.Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\tpublicUploadEnabled: false,\n\t\t\tenforcePasswordForPublicLink: oc_appconfig.core.enforcePasswordForPublicLink,\n\t\t\tenableLinkPasswordByDefault: oc_appconfig.core.enableLinkPasswordByDefault,\n\t\t\tisDefaultExpireDateEnforced: oc_appconfig.core.defaultExpireDateEnforced === true,\n\t\t\tisDefaultExpireDateEnabled: oc_appconfig.core.defaultExpireDateEnabled === true,\n\t\t\tisRemoteShareAllowed: oc_appconfig.core.remoteShareAllowed,\n\t\t\tisMailShareAllowed: oc_appconfig.shareByMailEnabled !== undefined,\n\t\t\tdefaultExpireDate: oc_appconfig.core.defaultExpireDate,\n\t\t\tisResharingAllowed: oc_appconfig.core.resharingAllowed,\n\t\t\tisPasswordForMailSharesRequired: (oc_appconfig.shareByMail === undefined) ? false : oc_appconfig.shareByMail.enforcePasswordProtection,\n\t\t\tallowGroupSharing: oc_appconfig.core.allowGroupSharing\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tisPublicUploadEnabled: function() {\n\t\t\tvar publicUploadEnabled = $('#filestable').data('allow-public-upload');\n\t\t\treturn publicUploadEnabled === 'yes';\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tisShareWithLinkAllowed: function() {\n\t\t\treturn $('#allowShareWithLink').val() === 'yes';\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t */\n\t\tgetFederatedShareDocLink: function() {\n\t\t\treturn oc_appconfig.core.federatedCloudShareDoc;\n\t\t},\n\n\t\tgetDefaultExpirationDateString: function () {\n\t\t\tvar expireDateString = '';\n\t\t\tif (this.get('isDefaultExpireDateEnabled')) {\n\t\t\t\tvar date = moment.utc();\n\t\t\t\tvar expireAfterDays = this.get('defaultExpireDate');\n\t\t\t\tdate.add(expireAfterDays, 'days');\n\t\t\t\texpireDateString = date.format('YYYY-MM-DD 00:00:00');\n\t\t\t}\n\t\t\treturn expireDateString;\n\t\t}\n\t});\n\n\n\tOC.Share.ShareConfigModel = ShareConfigModel;\n})();\n","(function() {\n  var template = Handlebars.template, templates = OC.Share.Templates = OC.Share.Templates || {};\ntemplates['sharedialoglinkshareview'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n  return \"<ul class=\\\"shareWithList\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.nolinkShares : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.linkShares : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"</ul>\\n\";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t<li data-share-id=\\\"\"\n    + alias4(((helper = (helper = helpers.newShareId || (depth0 != null ? depth0.newShareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newShareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t<div class=\\\"avatar icon-public-white\\\"></div>\\n\t\t\t<span class=\\\"username\\\">\"\n    + alias4(((helper = (helper = helpers.newShareLabel || (depth0 != null ? depth0.newShareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newShareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t<span class=\\\"sharingOptionsGroup\\\">\\n\t\t\t\t<div class=\\\"share-menu\\\">\\n\t\t\t\t\t<a href=\\\"#\\\" class=\\\"icon icon-add new-share has-tooltip \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.showPending : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" title=\\\"\"\n    + alias4(((helper = (helper = helpers.newShareTitle || (depth0 != null ? depth0.newShareTitle : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newShareTitle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"></a>\\n\t\t\t\t\t<span class=\\\"icon icon-loading-small \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.showPending : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\"></span>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.showPending : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t</div>\\n\t\t\t</span>\\n\t\t</li>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"hidden\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.pendingPopoverMenu || (depth0 != null ? depth0.pendingPopoverMenu : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"pendingPopoverMenu\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t<li data-share-id=\\\"\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t<div class=\\\"avatar icon-public-white\\\"></div>\\n\t\t\t<span class=\\\"username\\\" title=\\\"\"\n    + alias4(((helper = (helper = helpers.linkShareCreationDate || (depth0 != null ? depth0.linkShareCreationDate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"linkShareCreationDate\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.linkShareLabel || (depth0 != null ? depth0.linkShareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"linkShareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t\\n\t\t\t<span class=\\\"sharingOptionsGroup\\\">\\n\t\t\t\t<a href=\\\"#\\\" class=\\\"clipboard-button icon icon-clippy has-tooltip\\\" data-clipboard-text=\\\"\"\n    + alias4(((helper = (helper = helpers.shareLinkURL || (depth0 != null ? depth0.shareLinkURL : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareLinkURL\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" title=\\\"\"\n    + alias4(((helper = (helper = helpers.copyLabel || (depth0 != null ? depth0.copyLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"copyLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"></a>\\n\t\t\t\t<div class=\\\"share-menu\\\">\\n\t\t\t\t\t<a href=\\\"#\\\" class=\\\"icon icon-more \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.showPending : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\"></a>\\n\t\t\t\t\t<span class=\\\"icon icon-loading-small \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.showPending : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\"></span>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.showPending : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.program(8, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t</div>\\n\t\t\t</span>\\n\t\t</li>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper;\n\n  return \"\t\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.popoverMenu || (depth0 != null ? depth0.popoverMenu : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"popoverMenu\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.noSharingPlaceholder : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"<input id=\\\"shareWith-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"shareWithField\\\" type=\\\"text\\\" placeholder=\\\"\"\n    + alias4(((helper = (helper = helpers.noSharingPlaceholder || (depth0 != null ? depth0.noSharingPlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"noSharingPlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" disabled=\\\"disabled\\\" />\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.shareAllowed : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.program(10, data, 0),\"data\":data})) != null ? stack1 : \"\");\n},\"useData\":true});\ntemplates['sharedialoglinkshareview_popover_menu'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<input type=\\\"radio\\\" name=\\\"publicUpload\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.publicUploadRValue || (depth0 != null ? depth0.publicUploadRValue : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadRValue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" id=\\\"sharingDialogAllowPublicUpload-r-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"radio publicUploadRadio\\\" \"\n    + ((stack1 = ((helper = (helper = helpers.publicUploadRChecked || (depth0 != null ? depth0.publicUploadRChecked : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadRChecked\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t<label for=\\\"sharingDialogAllowPublicUpload-r-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.publicUploadRLabel || (depth0 != null ? depth0.publicUploadRLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadRLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<input type=\\\"radio\\\" name=\\\"publicUpload\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.publicUploadRWValue || (depth0 != null ? depth0.publicUploadRWValue : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadRWValue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" id=\\\"sharingDialogAllowPublicUpload-rw-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"radio publicUploadRadio\\\" \"\n    + ((stack1 = ((helper = (helper = helpers.publicUploadRWChecked || (depth0 != null ? depth0.publicUploadRWChecked : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadRWChecked\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t<label for=\\\"sharingDialogAllowPublicUpload-rw-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.publicUploadRWLabel || (depth0 != null ? depth0.publicUploadRWLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadRWLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<input type=\\\"radio\\\" name=\\\"publicUpload\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.publicUploadWValue || (depth0 != null ? depth0.publicUploadWValue : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadWValue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" id=\\\"sharingDialogAllowPublicUpload-w-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"radio publicUploadRadio\\\" \"\n    + ((stack1 = ((helper = (helper = helpers.publicUploadWChecked || (depth0 != null ? depth0.publicUploadWChecked : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadWChecked\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t<label for=\\\"sharingDialogAllowPublicUpload-w-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.publicUploadWLabel || (depth0 != null ? depth0.publicUploadWLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicUploadWLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t<li id=\\\"allowPublicEditingWrapper\\\">\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<input type=\\\"checkbox\\\" name=\\\"allowPublicEditing\\\" id=\\\"sharingDialogAllowPublicEditing-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"checkbox publicEditingCheckbox\\\" \"\n    + ((stack1 = ((helper = (helper = helpers.publicEditingChecked || (depth0 != null ? depth0.publicEditingChecked : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicEditingChecked\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t<label for=\\\"sharingDialogAllowPublicEditing-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.publicEditingLabel || (depth0 != null ? depth0.publicEditingLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"publicEditingLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    return \"checked=\\\"checked\\\"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    return \"disabled=\\\"disabled\\\"\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n    return \"hidden\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t<li>\\n\t\t\t\t<span class=\\\"shareOption menuitem\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<input type=\\\"checkbox\\\" name=\\\"passwordByTalk\\\" id=\\\"passwordByTalk-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"checkbox passwordByTalkCheckbox\\\"\\n\t\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isPasswordByTalkSet : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t<label for=\\\"passwordByTalk-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.passwordByTalkLabel || (depth0 != null ? depth0.passwordByTalkLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordByTalkLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n    return \"datepicker\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.expireDate || (depth0 != null ? depth0.expireDate : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"expireDate\",\"hash\":{},\"data\":data}) : helper)));\n},\"17\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.defaultExpireDate || (depth0 != null ? depth0.defaultExpireDate : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"defaultExpireDate\",\"hash\":{},\"data\":data}) : helper)));\n},\"19\":function(container,depth0,helpers,partials,data) {\n    return \"readonly\";\n},\"21\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t<li>\\n\t\t\t\t<a href=\\\"#\\\" class=\\\"menuitem pop-up\\\" data-url=\\\"\"\n    + alias4(((helper = (helper = helpers.url || (depth0 != null ? depth0.url : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"url\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-window=\\\"\"\n    + alias4(((helper = (helper = helpers.newWindow || (depth0 != null ? depth0.newWindow : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newWindow\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t\t\t<span class=\\\"icon \"\n    + alias4(((helper = (helper = helpers.iconClass || (depth0 != null ? depth0.iconClass : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"iconClass\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"></span>\\n\t\t\t\t\t<span>\"\n    + alias4(((helper = (helper = helpers.label || (depth0 != null ? depth0.label : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"label\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t\t</a>\\n\t\t\t</li>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"<div class=\\\"popovermenu menu\\\">\\n\t<ul>\\n\t\t<li class=\\\"hidden linkTextMenu\\\">\\n\t\t\t<span class=\\\"menuitem icon-link-text\\\">\\n\t\t\t\t<input id=\\\"linkText-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"linkText\\\" type=\\\"text\\\" readonly=\\\"readonly\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.shareLinkURL || (depth0 != null ? depth0.shareLinkURL : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareLinkURL\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" />\\n\t\t\t</span>\\n\t\t</li>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.publicUpload : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.publicEditing : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<input type=\\\"checkbox\\\" name=\\\"hideDownload\\\" id=\\\"sharingDialogHideDownload-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"checkbox hideDownloadCheckbox\\\"\\n\t\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hideDownload : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t<label for=\\\"sharingDialogHideDownload-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.hideDownloadLabel || (depth0 != null ? depth0.hideDownloadLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"hideDownloadLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<input type=\\\"checkbox\\\" name=\\\"showPassword\\\" id=\\\"showPassword-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"checkbox showPasswordCheckbox\\\"\\n\t\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isPasswordSet : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isPasswordEnforced : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" value=\\\"1\\\" />\\n\t\t\t\t\t<label for=\\\"showPassword-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.enablePasswordLabel || (depth0 != null ? depth0.enablePasswordLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"enablePasswordLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\t\t\t<li class=\\\"\"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.isPasswordSet : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" linkPassMenu\\\">\\n\t\t\t\t<span class=\\\"menuitem icon-share-pass\\\">\\n\t\t\t\t\t<input id=\\\"linkPassText-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"linkPassText\\\" type=\\\"password\\\" placeholder=\\\"\"\n    + alias4(((helper = (helper = helpers.passwordPlaceholder || (depth0 != null ? depth0.passwordPlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordPlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" autocomplete=\\\"new-password\\\" />\\n\t\t\t\t\t<input type=\\\"submit\\\" class=\\\"icon-confirm share-pass-submit\\\" value=\\\"\\\" />\\n\t\t\t\t\t<span class=\\\"icon icon-loading-small hidden\\\"></span>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.showPasswordByTalkCheckBox : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<li>\\n\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t<input id=\\\"expireDate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"expirationDate\\\" class=\\\"expireDate checkbox\\\"\\n\t\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasExpireDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isExpirationEnforced : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t<label for=\\\"expireDate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.expireDateLabel || (depth0 != null ? depth0.expireDateLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expireDateLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t</span>\\n\t\t</li>\\n\t\t<li class=\\\"\"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasExpireDate : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t<span class=\\\"menuitem icon-expiredate expirationDateContainer-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t\t<label for=\\\"expirationDatePicker-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"hidden-visually\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.expirationDate || (depth0 != null ? depth0.expirationDate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expirationDate\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.expirationLabel || (depth0 != null ? depth0.expirationLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expirationLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t<!-- do not use the datepicker if enforced -->\\n\t\t\t\t<input id=\\\"expirationDatePicker-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"\"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.isExpirationEnforced : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" type=\\\"text\\\"\\n\t\t\t\t\tplaceholder=\\\"\"\n    + alias4(((helper = (helper = helpers.expirationDatePlaceholder || (depth0 != null ? depth0.expirationDatePlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expirationDatePlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" value=\\\"\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasExpireDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(15, data, 0),\"inverse\":container.program(17, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\"\\n\t\t\t\t\tdata-max-date=\\\"\"\n    + alias4(((helper = (helper = helpers.maxDate || (depth0 != null ? depth0.maxDate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"maxDate\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isExpirationEnforced : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(19, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t</span>\\n\t\t\t</li>\\n\t\t<li>\\n\t\t\t<a href=\\\"#\\\" class=\\\"share-add\\\">\\n\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t<span class=\\\"icon icon-edit\\\"></span>\\n\t\t\t\t<span>\"\n    + alias4(((helper = (helper = helpers.addNoteLabel || (depth0 != null ? depth0.addNoteLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"addNoteLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t\t<input type=\\\"button\\\" class=\\\"share-note-delete icon-delete \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasNote : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t</a>\\n\t\t</li>\\n\t\t<li class=\\\"share-note-form share-note-link \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasNote : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(9, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t<span class=\\\"menuitem icon-note\\\">\\n\t\t\t\t<textarea class=\\\"share-note\\\">\"\n    + alias4(((helper = (helper = helpers.shareNote || (depth0 != null ? depth0.shareNote : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareNote\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</textarea>\\n\t\t\t\t<input type=\\\"submit\\\" class=\\\"icon-confirm share-note-submit\\\" value=\\\"\\\" id=\\\"add-note-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" />\\n\t\t\t</span>\\n\t\t</li>\\n\"\n    + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.social : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(21, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<li>\\n\t\t\t<a href=\\\"#\\\" class=\\\"unshare\\\"><span class=\\\"icon-loading-small hidden\\\"></span><span class=\\\"icon icon-delete\\\"></span><span>\"\n    + alias4(((helper = (helper = helpers.unshareLinkLabel || (depth0 != null ? depth0.unshareLinkLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"unshareLinkLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span></a>\\n\t\t</li>\\n\t\t<li>\\n\t\t\t<a href=\\\"#\\\" class=\\\"new-share\\\">\\n\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t<span class=\\\"icon icon-add\\\"></span>\\n\t\t\t\t<span>\"\n    + alias4(((helper = (helper = helpers.newShareLabel || (depth0 != null ? depth0.newShareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"newShareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t</a>\\n\t\t</li>\\n\t</ul>\\n</div>\\n\";\n},\"useData\":true});\ntemplates['sharedialoglinkshareview_popover_menu_pending'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem icon-info\\\">\\n\t\t\t\t\t<p>\"\n    + alias4(((helper = (helper = helpers.enforcedPasswordLabel || (depth0 != null ? depth0.enforcedPasswordLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"enforcedPasswordLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</p>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\t\t\t<li class=\\\"linkPassMenu\\\">\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<form autocomplete=\\\"off\\\" class=\\\"enforcedPassForm\\\">\\n\t\t\t\t\t\t<input id=\\\"enforcedPassText\\\" required class=\\\"enforcedPassText\\\" type=\\\"password\\\"\\n\t\t\t\t\t\t\tplaceholder=\\\"\"\n    + alias4(((helper = (helper = helpers.passwordPlaceholder || (depth0 != null ? depth0.passwordPlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordPlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" autocomplete=\\\"enforcedPassText\\\" minlength=\\\"\"\n    + alias4(((helper = (helper = helpers.minPasswordLength || (depth0 != null ? depth0.minPasswordLength : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"minPasswordLength\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" />\\n\t\t\t\t\t\t<input type=\\\"submit\\\" value=\\\" \\\" class=\\\"primary icon-checkmark-white\\\">\\n\t\t\t\t\t</form>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"popovermenu open menu pending\\\">\\n\t<ul>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isPasswordEnforced : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t</ul>\\n</div>\\n\";\n},\"useData\":true});\ntemplates['sharedialogresharerinfoview'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return \"<div class=\\\"share-note\\\">\"\n    + container.escapeExpression(((helper = (helper = helpers.shareNote || (depth0 != null ? depth0.shareNote : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"shareNote\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</div>\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"<span class=\\\"reshare\\\">\\n\t<div class=\\\"avatar\\\" data-userName=\\\"\"\n    + alias4(((helper = (helper = helpers.reshareOwner || (depth0 != null ? depth0.reshareOwner : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"reshareOwner\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"></div>\\n\t\"\n    + alias4(((helper = (helper = helpers.sharedByText || (depth0 != null ? depth0.sharedByText : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"sharedByText\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\n</span>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasShareNote : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"useData\":true});\ntemplates['sharedialogshareelistview'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.unless.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isShareWithCurrentUser : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t<li data-share-id=\\\"\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-share-type=\\\"\"\n    + alias4(((helper = (helper = helpers.shareType || (depth0 != null ? depth0.shareType : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareType\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-share-with=\\\"\"\n    + alias4(((helper = (helper = helpers.shareWith || (depth0 != null ? depth0.shareWith : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWith\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t<div class=\\\"avatar \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.modSeed : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" data-username=\\\"\"\n    + alias4(((helper = (helper = helpers.shareWith || (depth0 != null ? depth0.shareWith : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWith\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-avatar=\\\"\"\n    + alias4(((helper = (helper = helpers.shareWithAvatar || (depth0 != null ? depth0.shareWithAvatar : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWithAvatar\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-displayname=\\\"\"\n    + alias4(((helper = (helper = helpers.shareWithDisplayName || (depth0 != null ? depth0.shareWithDisplayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWithDisplayName\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.modSeed : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(5, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"></div>\\n\t\t\t<span class=\\\"username\\\" title=\\\"\"\n    + alias4(((helper = (helper = helpers.shareWithTitle || (depth0 != null ? depth0.shareWithTitle : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWithTitle\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.shareWithDisplayName || (depth0 != null ? depth0.shareWithDisplayName : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWithDisplayName\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.canUpdateShareSettings : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t</li>\\n\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    return \"imageplaceholderseed\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"data-seed=\\\"\"\n    + alias4(((helper = (helper = helpers.shareWith || (depth0 != null ? depth0.shareWith : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareWith\",\"hash\":{},\"data\":data}) : helper)))\n    + \" \"\n    + alias4(((helper = (helper = helpers.shareType || (depth0 != null ? depth0.shareType : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareType\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n  return \"\t\t\t<span class=\\\"sharingOptionsGroup\\\">\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.editPermissionPossible : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t\t<div tabindex=\\\"0\\\" class=\\\"share-menu\\\"><span class=\\\"icon icon-more\\\"></span>\\n\t\t\t\t\t\"\n    + ((stack1 = ((helper = (helper = helpers.popoverMenu || (depth0 != null ? depth0.popoverMenu : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(alias1,{\"name\":\"popoverMenu\",\"hash\":{},\"data\":data}) : helper))) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\t</div>\\n\t\t\t</span>\\n\";\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t\t\t<span>\\n\t\t\t\t\t\t<input id=\\\"canEdit-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"edit\\\" class=\\\"permissions checkbox\\\" />\\n\t\t\t\t\t\t<label for=\\\"canEdit-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.canEditLabel || (depth0 != null ? depth0.canEditLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"canEditLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t</span>\\n\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t<li data-share-id=\\\"\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" data-share-type=\\\"\"\n    + alias4(((helper = (helper = helpers.shareType || (depth0 != null ? depth0.shareType : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareType\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\\n\t\t\t<div class=\\\"avatar\\\" data-username=\\\"\"\n    + alias4(((helper = (helper = helpers.shareInitiator || (depth0 != null ? depth0.shareInitiator : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareInitiator\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"></div>\\n\t\t\t<span class=\\\"has-tooltip username\\\" title=\\\"\"\n    + alias4(((helper = (helper = helpers.shareInitiator || (depth0 != null ? depth0.shareInitiator : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareInitiator\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.shareInitiatorText || (depth0 != null ? depth0.shareInitiatorText : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareInitiatorText\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t<span class=\\\"sharingOptionsGroup\\\">\\n\t\t\t\t<a href=\\\"#\\\" class=\\\"unshare\\\"><span class=\\\"icon-loading-small hidden\\\"></span><span class=\\\"icon icon-delete\\\"></span><span class=\\\"hidden-visually\\\">\"\n    + alias4(((helper = (helper = helpers.unshareLabel || (depth0 != null ? depth0.unshareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"unshareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span></a>\\n\t\t\t</span>\\n\t\t</li>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n  return \"<ul id=\\\"shareWithList\\\" class=\\\"shareWithList\\\">\\n\"\n    + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.sharees : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.linkReshares : depth0),{\"name\":\"each\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"</ul>\\n\";\n},\"useData\":true});\ntemplates['sharedialogshareelistview_popover_menu'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \" \"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.sharePermissionPossible : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(2, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" \";\n},\"2\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \" \"\n    + ((stack1 = helpers.unless.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isMailShare : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(3, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" \";\n},\"3\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\\n\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<input id=\\\"canShare-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"share\\\" class=\\\"permissions checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasSharePermission : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" data-permissions=\\\"\"\n    + alias4(((helper = (helper = helpers.sharePermission || (depth0 != null ? depth0.sharePermission : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"sharePermission\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" />\\n\t\t\t\t\t<label for=\\\"canShare-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.canShareLabel || (depth0 != null ? depth0.canShareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"canShareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t\t</li>\\n\t\t\t\";\n},\"4\":function(container,depth0,helpers,partials,data) {\n    return \"checked=\\\"checked\\\"\";\n},\"6\":function(container,depth0,helpers,partials,data) {\n    var stack1, alias1=depth0 != null ? depth0 : (container.nullContext || {});\n\n  return \"\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.createPermissionPossible : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(7, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.updatePermissionPossible : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(10, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\t\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.deletePermissionPossible : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(13, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.unless.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isMailShare : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(8, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"8\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\\n\t\t\t\t<li>\\n\t\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t\t<input id=\\\"canCreate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"create\\\" class=\\\"permissions checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasCreatePermission : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" data-permissions=\\\"\"\n    + alias4(((helper = (helper = helpers.createPermission || (depth0 != null ? depth0.createPermission : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"createPermission\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"/>\\n\t\t\t\t\t\t<label for=\\\"canCreate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.createPermissionLabel || (depth0 != null ? depth0.createPermissionLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"createPermissionLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t</span>\\n\t\t\t\t</li>\\n\t\t\t\";\n},\"10\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.unless.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isMailShare : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(11, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"11\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\\n\t\t\t\t<li>\\n\t\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t\t<input id=\\\"canUpdate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"update\\\" class=\\\"permissions checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasUpdatePermission : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" data-permissions=\\\"\"\n    + alias4(((helper = (helper = helpers.updatePermission || (depth0 != null ? depth0.updatePermission : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"updatePermission\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"/>\\n\t\t\t\t\t\t<label for=\\\"canUpdate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.updatePermissionLabel || (depth0 != null ? depth0.updatePermissionLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"updatePermissionLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t</span>\\n\t\t\t\t</li>\\n\t\t\t\t\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers.unless.call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isMailShare : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(14, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"14\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\\n\t\t\t\t<li>\\n\t\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t\t<input id=\\\"canDelete-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"delete\\\" class=\\\"permissions checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasDeletePermission : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" data-permissions=\\\"\"\n    + alias4(((helper = (helper = helpers.deletePermission || (depth0 != null ? depth0.deletePermission : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"deletePermission\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"/>\\n\t\t\t\t\t\t<label for=\\\"canDelete-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.deletePermissionLabel || (depth0 != null ? depth0.deletePermissionLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"deletePermissionLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t</span>\\n\t\t\t\t</li>\\n\t\t\t\t\";\n},\"16\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasCreatePermission : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(17, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t\t<li>\\n\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t<input id=\\\"password-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"password\\\" class=\\\"password checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isPasswordSet : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isPasswordSet : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(19, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" />\\n\t\t\t\t\t<label for=\\\"password-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.passwordLabel || (depth0 != null ? depth0.passwordLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\t\t\t<li class=\\\"passwordMenu-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \" \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.isPasswordSet : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(22, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t\t<span class=\\\"passwordContainer-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \" icon-passwordmail menuitem\\\">\\n\t\t\t\t\t<label for=\\\"passwordField-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"hidden-visually\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.password || (depth0 != null ? depth0.password : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"password\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.passwordLabel || (depth0 != null ? depth0.passwordLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t<input id=\\\"passwordField-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"passwordField\\\" type=\\\"password\\\" placeholder=\\\"\"\n    + alias4(((helper = (helper = helpers.passwordPlaceholder || (depth0 != null ? depth0.passwordPlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordPlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.passwordValue || (depth0 != null ? depth0.passwordValue : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordValue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" autocomplete=\\\"new-password\\\" />\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isTalkEnabled : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(24, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"17\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t\t<li>\\n\t\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t\t<input id=\\\"secureDrop-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"secureDrop\\\" class=\\\"checkbox secureDrop\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.secureDropMode : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" data-permissions=\\\"\"\n    + alias4(((helper = (helper = helpers.readPermission || (depth0 != null ? depth0.readPermission : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"readPermission\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\"/>\\n\t\t\t\t\t\t<label for=\\\"secureDrop-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.secureDropLabel || (depth0 != null ? depth0.secureDropLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"secureDropLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t</span>\\n\t\t\t\t</li>\\n\";\n},\"19\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isPasswordForMailSharesRequired : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(20, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\");\n},\"20\":function(container,depth0,helpers,partials,data) {\n    return \"disabled=\\\"\\\"\";\n},\"22\":function(container,depth0,helpers,partials,data) {\n    return \"hidden\";\n},\"24\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t\t<li>\\n\t\t\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t\t\t<input id=\\\"passwordByTalk-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"passwordByTalk\\\" class=\\\"passwordByTalk checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isPasswordByTalkSet : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \" />\\n\t\t\t\t\t\t<label for=\\\"passwordByTalk-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.passwordByTalkLabel || (depth0 != null ? depth0.passwordByTalkLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordByTalkLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t</span>\\n\t\t\t\t</li>\\n\t\t\t\t<li class=\\\"passwordByTalkMenu-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \" \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.isPasswordByTalkSet : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(22, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t\t\t<span class=\\\"passwordByTalkContainer-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \" icon-passwordtalk menuitem\\\">\\n\t\t\t\t\t\t<label for=\\\"passwordByTalkField-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"hidden-visually\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.password || (depth0 != null ? depth0.password : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"password\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.passwordByTalkLabel || (depth0 != null ? depth0.passwordByTalkLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordByTalkLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t\t\t<input id=\\\"passwordByTalkField-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"passwordField\\\" type=\\\"password\\\" placeholder=\\\"\"\n    + alias4(((helper = (helper = helpers.passwordByTalkPlaceholder || (depth0 != null ? depth0.passwordByTalkPlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordByTalkPlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.passwordValue || (depth0 != null ? depth0.passwordValue : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"passwordValue\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" autocomplete=\\\"new-password\\\" />\\n\t\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t</span>\\n\t\t\t\t</li>\\n\";\n},\"26\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.expireDate || (depth0 != null ? depth0.expireDate : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"expireDate\",\"hash\":{},\"data\":data}) : helper)));\n},\"28\":function(container,depth0,helpers,partials,data) {\n    var helper;\n\n  return container.escapeExpression(((helper = (helper = helpers.defaultExpireDate || (depth0 != null ? depth0.defaultExpireDate : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"defaultExpireDate\",\"hash\":{},\"data\":data}) : helper)));\n},\"30\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t\t\t<li>\\n\t\t\t\t<a href=\\\"#\\\" class=\\\"share-add\\\">\\n\t\t\t\t\t<span class=\\\"icon-loading-small hidden\\\"></span>\\n\t\t\t\t\t<span class=\\\"icon icon-edit\\\"></span>\\n\t\t\t\t\t<span>\"\n    + alias4(((helper = (helper = helpers.addNoteLabel || (depth0 != null ? depth0.addNoteLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"addNoteLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span>\\n\t\t\t\t\t<input type=\\\"button\\\" class=\\\"share-note-delete icon-delete \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasNote : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(22, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t\t</a>\\n\t\t\t</li>\\n\t\t\t<li class=\\\"share-note-form \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasNote : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(22, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t\t<span class=\\\"menuitem icon-note\\\">\\n\t\t\t\t\t<textarea class=\\\"share-note\\\">\"\n    + alias4(((helper = (helper = helpers.shareNote || (depth0 != null ? depth0.shareNote : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareNote\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</textarea>\\n\t\t\t\t\t<input type=\\\"submit\\\" class=\\\"icon-confirm share-note-submit\\\" value=\\\"\\\" id=\\\"add-note-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" />\\n\t\t\t\t</span>\\n\t\t\t</li>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"<div class=\\\"popovermenu bubble hidden menu\\\">\\n\t<ul>\\n\t\t\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isResharingAllowed : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isFolder : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(6, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isMailShare : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(16, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<li>\\n\t\t\t<span class=\\\"menuitem\\\">\\n\t\t\t\t<input id=\\\"expireDate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" type=\\\"checkbox\\\" name=\\\"expirationDate\\\" class=\\\"expireDate checkbox\\\" \"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasExpireDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(4, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" />\\n\t\t\t\t<label for=\\\"expireDate-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.expireDateLabel || (depth0 != null ? depth0.expireDateLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expireDateLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t</span>\\n\t\t</li>\\n\t\t<li class=\\\"expirationDateMenu-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \" \"\n    + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.hasExpireDate : depth0),{\"name\":\"unless\",\"hash\":{},\"fn\":container.program(22, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\">\\n\t\t\t<span class=\\\"expirationDateContainer-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \" icon-expiredate menuitem\\\">\\n\t\t\t\t<label for=\\\"expirationDatePicker-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"hidden-visually\\\" value=\\\"\"\n    + alias4(((helper = (helper = helpers.expirationDate || (depth0 != null ? depth0.expirationDate : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expirationDate\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\">\"\n    + alias4(((helper = (helper = helpers.expirationLabel || (depth0 != null ? depth0.expirationLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expirationLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t\t\t\t<input id=\\\"expirationDatePicker-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"-\"\n    + alias4(((helper = (helper = helpers.shareId || (depth0 != null ? depth0.shareId : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareId\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"datepicker\\\" type=\\\"text\\\" placeholder=\\\"\"\n    + alias4(((helper = (helper = helpers.expirationDatePlaceholder || (depth0 != null ? depth0.expirationDatePlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"expirationDatePlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" value=\\\"\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.hasExpireDate : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(26, data, 0),\"inverse\":container.program(28, data, 0),\"data\":data})) != null ? stack1 : \"\")\n    + \"\\\" />\\n\t\t\t</span>\\n\t\t</li>\\n\"\n    + ((stack1 = helpers[\"if\"].call(alias1,(depth0 != null ? depth0.isNoteAvailable : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(30, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"\t\t<li>\\n\t\t\t<a href=\\\"#\\\" class=\\\"unshare\\\"><span class=\\\"icon-loading-small hidden\\\"></span><span class=\\\"icon icon-delete\\\"></span><span>\"\n    + alias4(((helper = (helper = helpers.unshareLabel || (depth0 != null ? depth0.unshareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"unshareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</span></a>\\n\t\t</li>\\n\t</ul>\\n</div>\\n\";\n},\"useData\":true});\ntemplates['sharedialogview'] = template({\"1\":function(container,depth0,helpers,partials,data) {\n    var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3=\"function\", alias4=container.escapeExpression;\n\n  return \"\t<label for=\\\"shareWith-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"hidden-visually\\\">\"\n    + alias4(((helper = (helper = helpers.shareLabel || (depth0 != null ? depth0.shareLabel : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"shareLabel\",\"hash\":{},\"data\":data}) : helper)))\n    + \"</label>\\n\t<div class=\\\"oneline\\\">\\n\t\t<input id=\\\"shareWith-\"\n    + alias4(((helper = (helper = helpers.cid || (depth0 != null ? depth0.cid : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"cid\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" class=\\\"shareWithField\\\" type=\\\"text\\\" placeholder=\\\"\"\n    + alias4(((helper = (helper = helpers.sharePlaceholder || (depth0 != null ? depth0.sharePlaceholder : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"sharePlaceholder\",\"hash\":{},\"data\":data}) : helper)))\n    + \"\\\" />\\n\t\t<span class=\\\"shareWithLoading icon-loading-small hidden\\\"></span>\\n\t\t<span class=\\\"shareWithConfirm icon icon-confirm\\\"></span>\\n\t</div>\\n\";\n},\"compiler\":[7,\">= 4.0.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n    var stack1;\n\n  return \"<div class=\\\"resharerInfoView subView\\\"></div>\\n\"\n    + ((stack1 = helpers[\"if\"].call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? depth0.isSharingAllowed : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(1, data, 0),\"inverse\":container.noop,\"data\":data})) != null ? stack1 : \"\")\n    + \"<div class=\\\"linkShareView subView\\\"></div>\\n<div class=\\\"shareeListView subView\\\"></div>\\n<div class=\\\"loading hidden\\\" style=\\\"height: 50px\\\"></div>\\n\";\n},\"useData\":true});\n})();","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n(function() {\n\tif(!OC.Share) {\n\t\tOC.Share = {};\n\t\tOC.Share.Types = {};\n\t}\n\n\t/**\n\t * @typedef {object} OC.Share.Types.LinkShareInfo\n\t * @property {string} token\n\t * @property {bool} hideDownload\n\t * @property {string|null} password\n\t * @property {bool} sendPasswordByTalk\n\t * @property {number} permissions\n\t * @property {Date} expiration\n\t * @property {number} stime share time\n\t */\n\n\t/**\n\t * @typedef {object} OC.Share.Types.Reshare\n\t * @property {string} uid_owner\n\t * @property {number} share_type\n\t * @property {string} share_with\n\t * @property {string} displayname_owner\n\t * @property {number} permissions\n\t */\n\n\t/**\n\t * @typedef {object} OC.Share.Types.ShareInfo\n\t * @property {number} share_type\n\t * @property {number} permissions\n\t * @property {number} file_source optional\n\t * @property {number} item_source\n\t * @property {string} token\n\t * @property {string} share_with\n\t * @property {string} share_with_displayname\n\t * @property {string} share_with_avatar\n\t * @property {string} mail_send\n\t * @property {Date} expiration optional?\n\t * @property {number} stime optional?\n\t * @property {string} uid_owner\n\t * @property {string} displayname_owner\n\t */\n\n\t/**\n\t * @typedef {object} OC.Share.Types.ShareItemInfo\n\t * @property {OC.Share.Types.Reshare} reshare\n\t * @property {OC.Share.Types.ShareInfo[]} shares\n\t * @property {OC.Share.Types.LinkShareInfo|undefined} linkShare\n\t */\n\n\t/**\n\t * These properties are sometimes returned by the server as strings instead\n\t * of integers, so we need to convert them accordingly...\n\t */\n\tvar SHARE_RESPONSE_INT_PROPS = [\n\t\t'id', 'file_parent', 'mail_send', 'file_source', 'item_source', 'permissions',\n\t\t'storage', 'share_type', 'parent', 'stime'\n\t];\n\n\t/**\n\t * @class OCA.Share.ShareItemModel\n\t * @classdesc\n\t *\n\t * Represents the GUI of the share dialogue\n\t *\n\t * // FIXME: use OC Share API once #17143 is done\n\t *\n\t * // TODO: this really should be a collection of share item models instead,\n\t * where the link share is one of them\n\t */\n\tvar ShareItemModel = OC.Backbone.Model.extend({\n\t\t/**\n\t\t * share id of the link share, if applicable\n\t\t */\n\t\t_linkShareId: null,\n\n\t\tinitialize: function(attributes, options) {\n\t\t\tif(!_.isUndefined(options.configModel)) {\n\t\t\t\tthis.configModel = options.configModel;\n\t\t\t}\n\t\t\tif(!_.isUndefined(options.fileInfoModel)) {\n\t\t\t\t/** @type {OC.Files.FileInfo} **/\n\t\t\t\tthis.fileInfoModel = options.fileInfoModel;\n\t\t\t}\n\n\t\t\t_.bindAll(this, 'addShare');\n\t\t},\n\n\t\tdefaults: {\n\t\t\tallowPublicUploadStatus: false,\n\t\t\tpermissions: 0,\n\t\t\tlinkShares: []\n\t\t},\n\n\t\t/**\n\t\t * Saves the current link share information.\n\t\t *\n\t\t * This will trigger an ajax call and, if successful, refetch the model\n\t\t * afterwards. Callbacks \"success\", \"error\" and \"complete\" can be given\n\t\t * in the options object; \"success\" is called after a successful save\n\t\t * once the model is refetch, \"error\" is called after a failed save, and\n\t\t * \"complete\" is called both after a successful save and after a failed\n\t\t * save. Note that \"complete\" is called before \"success\" and \"error\" are\n\t\t * called (unlike in jQuery, in which it is called after them); this\n\t\t * ensures that \"complete\" is called even if refetching the model fails.\n\t\t *\n\t\t * TODO: this should be a separate model\n\t\t */\n\t\tsaveLinkShare: function(attributes, options) {\n\t\t\toptions = options || {};\n\t\t\tattributes = _.extend({}, attributes);\n\n\t\t\tvar shareId = null;\n\t\t\tvar call;\n\n\t\t\t// oh yeah...\n\t\t\tif (attributes.expiration) {\n\t\t\t\tattributes.expireDate = attributes.expiration;\n\t\t\t\tdelete attributes.expiration;\n\t\t\t}\n\n\t\t\tvar linkShares = this.get('linkShares');\n\t\t\tvar shareIndex = _.findIndex(linkShares, function(share) {return share.id === attributes.cid})\n\n\t\t\tif (linkShares.length > 0 && shareIndex !== -1) {\n\t\t\t\tshareId = linkShares[shareIndex].id;\n\n\t\t\t\t// note: update can only update a single value at a time\n\t\t\t\tcall = this.updateShare(shareId, attributes, options);\n\t\t\t} else {\n\t\t\t\tattributes = _.defaults(attributes, {\n\t\t\t\t\thideDownload: false,\n\t\t\t\t\tpassword: '',\n\t\t\t\t\tpasswordChanged: false,\n\t\t\t\t\tsendPasswordByTalk: false,\n\t\t\t\t\tpermissions: OC.PERMISSION_READ,\n\t\t\t\t\texpireDate: this.configModel.getDefaultExpirationDateString(),\n\t\t\t\t\tshareType: OC.Share.SHARE_TYPE_LINK\n\t\t\t\t});\n\n\t\t\t\tcall = this.addShare(attributes, options);\n\t\t\t}\n\n\t\t\treturn call;\n\t\t},\n\n\t\taddShare: function(attributes, options) {\n\t\t\tvar shareType = attributes.shareType;\n\t\t\tattributes = _.extend({}, attributes);\n\n\t\t\t// get default permissions\n\t\t\tvar defaultPermissions = OC.getCapabilities()['files_sharing']['default_permissions'] || OC.PERMISSION_ALL;\n\t\t\tvar possiblePermissions = OC.PERMISSION_READ;\n\n\t\t\tif (this.updatePermissionPossible()) {\n\t\t\t\tpossiblePermissions = possiblePermissions | OC.PERMISSION_UPDATE;\n\t\t\t}\n\t\t\tif (this.createPermissionPossible()) {\n\t\t\t\tpossiblePermissions = possiblePermissions | OC.PERMISSION_CREATE;\n\t\t\t}\n\t\t\tif (this.deletePermissionPossible()) {\n\t\t\t\tpossiblePermissions = possiblePermissions | OC.PERMISSION_DELETE;\n\t\t\t}\n\t\t\tif (this.configModel.get('isResharingAllowed') && (this.sharePermissionPossible())) {\n\t\t\t\tpossiblePermissions = possiblePermissions | OC.PERMISSION_SHARE;\n\t\t\t}\n\n\t\t\tattributes.permissions = defaultPermissions & possiblePermissions;\n\t\t\tif (_.isUndefined(attributes.path)) {\n\t\t\t\tattributes.path = this.fileInfoModel.getFullPath();\n\t\t\t}\n\n\t\t\treturn this._addOrUpdateShare({\n\t\t\t\ttype: 'POST',\n\t\t\t\turl: this._getUrl('shares'),\n\t\t\t\tdata: attributes,\n\t\t\t\tdataType: 'json'\n\t\t\t}, options);\n\t\t},\n\n\t\tupdateShare: function(shareId, attrs, options) {\n\t\t\treturn this._addOrUpdateShare({\n\t\t\t\ttype: 'PUT',\n\t\t\t\turl: this._getUrl('shares/' + encodeURIComponent(shareId)),\n\t\t\t\tdata: attrs,\n\t\t\t\tdataType: 'json'\n\t\t\t}, options);\n\t\t},\n\n\t\t_addOrUpdateShare: function(ajaxSettings, options) {\n\t\t\tvar self = this;\n\t\t\toptions = options || {};\n\n\t\t\treturn $.ajax(\n\t\t\t\tajaxSettings\n\t\t\t).always(function() {\n\t\t\t\tif (_.isFunction(options.complete)) {\n\t\t\t\t\toptions.complete(self);\n\t\t\t\t}\n\t\t\t}).done(function() {\n\t\t\t\tself.fetch().done(function() {\n\t\t\t\t\tif (_.isFunction(options.success)) {\n\t\t\t\t\t\toptions.success(self);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}).fail(function(xhr) {\n\t\t\t\tvar msg = t('core', 'Error');\n\t\t\t\tvar result = xhr.responseJSON;\n\t\t\t\tif (result && result.ocs && result.ocs.meta) {\n\t\t\t\t\tmsg = result.ocs.meta.message;\n\t\t\t\t}\n\n\t\t\t\tif (_.isFunction(options.error)) {\n\t\t\t\t\toptions.error(self, msg);\n\t\t\t\t} else {\n\t\t\t\t\tOC.dialogs.alert(msg, t('core', 'Error while sharing'));\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * Deletes the share with the given id\n\t\t *\n\t\t * @param {int} shareId share id\n\t\t * @return {jQuery}\n\t\t */\n\t\tremoveShare: function(shareId, options) {\n\t\t\tvar self = this;\n\t\t\toptions = options || {};\n\t\t\treturn $.ajax({\n\t\t\t\ttype: 'DELETE',\n\t\t\t\turl: this._getUrl('shares/' + encodeURIComponent(shareId)),\n\t\t\t}).done(function() {\n\t\t\t\tself.fetch({\n\t\t\t\t\tsuccess: function() {\n\t\t\t\t\t\tif (_.isFunction(options.success)) {\n\t\t\t\t\t\t\toptions.success(self);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}).fail(function(xhr) {\n\t\t\t\tvar msg = t('core', 'Error');\n\t\t\t\tvar result = xhr.responseJSON;\n\t\t\t\tif (result.ocs && result.ocs.meta) {\n\t\t\t\t\tmsg = result.ocs.meta.message;\n\t\t\t\t}\n\n\t\t\t\tif (_.isFunction(options.error)) {\n\t\t\t\t\toptions.error(self, msg);\n\t\t\t\t} else {\n\t\t\t\t\tOC.dialogs.alert(msg, t('core', 'Error removing share'));\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tisPublicUploadAllowed: function() {\n\t\t\treturn this.get('allowPublicUploadStatus');\n\t\t},\n\n\t\tisPublicEditingAllowed: function() {\n\t\t\treturn this.get('allowPublicEditingStatus');\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tisHideFileListSet: function() {\n\t\t\treturn this.get('hideFileListStatus');\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tisFolder: function() {\n\t\t\treturn this.get('itemType') === 'folder';\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tisFile: function() {\n\t\t\treturn this.get('itemType') === 'file';\n\t\t},\n\n\t\t/**\n\t\t * whether this item has reshare information\n\t\t * @returns {boolean}\n\t\t */\n\t\thasReshare: function() {\n\t\t\tvar reshare = this.get('reshare');\n\t\t\treturn _.isObject(reshare) && !_.isUndefined(reshare.uid_owner);\n\t\t},\n\n\t\t/**\n\t\t * whether this item has user share information\n\t\t * @returns {boolean}\n\t\t */\n\t\thasUserShares: function() {\n\t\t\treturn this.getSharesWithCurrentItem().length > 0;\n\t\t},\n\n\t\t/**\n\t\t * Returns whether this item has link shares\n\t\t *\n\t\t * @return {bool} true if a link share exists, false otherwise\n\t\t */\n\t\thasLinkShares: function() {\n\t\t\tvar linkShares = this.get('linkShares');\n\t\t\tif (linkShares && linkShares.length > 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t */\n\t\tgetReshareOwner: function() {\n\t\t\treturn this.get('reshare').uid_owner;\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t */\n\t\tgetReshareOwnerDisplayname: function() {\n\t\t\treturn this.get('reshare').displayname_owner;\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t */\n\t\tgetReshareNote: function() {\n\t\t\treturn this.get('reshare').note;\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t */\n\t\tgetReshareWith: function() {\n\t\t\treturn this.get('reshare').share_with;\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t */\n\t\tgetReshareWithDisplayName: function() {\n\t\t\tvar reshare = this.get('reshare');\n\t\t\treturn reshare.share_with_displayname || reshare.share_with;\n\t\t},\n\n\t\t/**\n\t\t * @returns {number}\n\t\t */\n\t\tgetReshareType: function() {\n\t\t\treturn this.get('reshare').share_type;\n\t\t},\n\n\t\tgetExpireDate: function(shareIndex) {\n\t\t\treturn this._shareExpireDate(shareIndex);\n\t\t},\n\n\t\tgetNote: function(shareIndex) {\n\t\t\treturn this._shareNote(shareIndex);\n\t\t},\n\n\t\t/**\n\t\t * Returns all share entries that only apply to the current item\n\t\t * (file/folder)\n\t\t *\n\t\t * @return {Array.<OC.Share.Types.ShareInfo>}\n\t\t */\n\t\tgetSharesWithCurrentItem: function() {\n\t\t\tvar shares = this.get('shares') || [];\n\t\t\tvar fileId = this.fileInfoModel.get('id');\n\t\t\treturn _.filter(shares, function(share) {\n\t\t\t\treturn share.item_source === fileId;\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @param shareIndex\n\t\t * @returns {string}\n\t\t */\n\t\tgetShareWith: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.share_with;\n\t\t},\n\n\t\t/**\n\t\t * @param shareIndex\n\t\t * @returns {string}\n\t\t */\n\t\tgetShareWithDisplayName: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.share_with_displayname;\n\t\t},\n\n\n\t\t/**\n\t\t * @param shareIndex\n\t\t * @returns {string}\n\t\t */\n\t\tgetShareWithAvatar: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.share_with_avatar;\n\t\t},\n\n\t\t/**\n\t\t * @param shareIndex\n\t\t * @returns {string}\n\t\t */\n\t\tgetSharedBy: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.uid_owner;\n\t\t},\n\n\t\t/**\n\t\t * @param shareIndex\n\t\t * @returns {string}\n\t\t */\n\t\tgetSharedByDisplayName: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.displayname_owner;\n\t\t},\n\n\t\t/**\n\t\t * @param shareIndex\n\t\t * @returns {string}\n\t\t */\n\t\tgetFileOwnerUid: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.uid_file_owner;\n\t\t},\n\n\t\t/**\n\t\t * returns the array index of a sharee for a provided shareId\n\t\t *\n\t\t * @param shareId\n\t\t * @returns {number}\n\t\t */\n\t\tfindShareWithIndex: function(shareId) {\n\t\t\tvar shares = this.get('shares');\n\t\t\tif(!_.isArray(shares)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\tfor(var i = 0; i < shares.length; i++) {\n\t\t\t\tvar shareWith = shares[i];\n\t\t\t\tif(shareWith.id === shareId) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow \"Unknown Sharee\";\n\t\t},\n\n\t\tgetShareType: function(shareIndex) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.share_type;\n\t\t},\n\n\t\t/**\n\t\t * whether a share from shares has the requested permission\n\t\t *\n\t\t * @param {number} shareIndex\n\t\t * @param {number} permission\n\t\t * @returns {boolean}\n\t\t * @private\n\t\t */\n\t\t_shareHasPermission: function(shareIndex, permission) {\n\t\t\t/** @type OC.Share.Types.ShareInfo **/\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn (share.permissions & permission) === permission;\n\t\t},\n\n\n\t\t_shareExpireDate: function(shareIndex) {\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\tvar date2 = share.expiration;\n\t\t\treturn date2;\n\t\t},\n\n\n\t\t_shareNote: function(shareIndex) {\n\t\t\tvar share = this.get('shares')[shareIndex];\n\t\t\tif(!_.isObject(share)) {\n\t\t\t\tthrow \"Unknown Share\";\n\t\t\t}\n\t\t\treturn share.note;\n\t\t},\n\n\t\t/**\n\t\t * @return {int}\n\t\t */\n\t\tgetPermissions: function() {\n\t\t\treturn this.get('permissions');\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tsharePermissionPossible: function() {\n\t\t\treturn (this.get('permissions') & OC.PERMISSION_SHARE) === OC.PERMISSION_SHARE;\n\t\t},\n\n\t\t/**\n\t\t * @param {number} shareIndex\n\t\t * @returns {boolean}\n\t\t */\n\t\thasSharePermission: function(shareIndex) {\n\t\t\treturn this._shareHasPermission(shareIndex, OC.PERMISSION_SHARE);\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tcreatePermissionPossible: function() {\n\t\t\treturn (this.get('permissions') & OC.PERMISSION_CREATE) === OC.PERMISSION_CREATE;\n\t\t},\n\n\t\t/**\n\t\t * @param {number} shareIndex\n\t\t * @returns {boolean}\n\t\t */\n\t\thasCreatePermission: function(shareIndex) {\n\t\t\treturn this._shareHasPermission(shareIndex, OC.PERMISSION_CREATE);\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tupdatePermissionPossible: function() {\n\t\t\treturn (this.get('permissions') & OC.PERMISSION_UPDATE) === OC.PERMISSION_UPDATE;\n\t\t},\n\n\t\t/**\n\t\t * @param {number} shareIndex\n\t\t * @returns {boolean}\n\t\t */\n\t\thasUpdatePermission: function(shareIndex) {\n\t\t\treturn this._shareHasPermission(shareIndex, OC.PERMISSION_UPDATE);\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\tdeletePermissionPossible: function() {\n\t\t\treturn (this.get('permissions') & OC.PERMISSION_DELETE) === OC.PERMISSION_DELETE;\n\t\t},\n\n\t\t/**\n\t\t * @param {number} shareIndex\n\t\t * @returns {boolean}\n\t\t */\n\t\thasDeletePermission: function(shareIndex) {\n\t\t\treturn this._shareHasPermission(shareIndex, OC.PERMISSION_DELETE);\n\t\t},\n\n\t\thasReadPermission: function(shareIndex) {\n\t\t\treturn this._shareHasPermission(shareIndex, OC.PERMISSION_READ);\n\t\t},\n\n\t\t/**\n\t\t * @returns {boolean}\n\t\t */\n\t\teditPermissionPossible: function() {\n\t\t\treturn    this.createPermissionPossible()\n\t\t\t\t   || this.updatePermissionPossible()\n\t\t\t\t   || this.deletePermissionPossible();\n\t\t},\n\n\t\t/**\n\t\t * @returns {string}\n\t\t *     The state that the 'can edit' permission checkbox should have.\n\t\t *     Possible values:\n\t\t *     - empty string: no permission\n\t\t *     - 'checked': all applicable permissions\n\t\t *     - 'indeterminate': some but not all permissions\n\t\t */\n\t\teditPermissionState: function(shareIndex) {\n\t\t\tvar hcp = this.hasCreatePermission(shareIndex);\n\t\t\tvar hup = this.hasUpdatePermission(shareIndex);\n\t\t\tvar hdp = this.hasDeletePermission(shareIndex);\n\t\t\tif (this.isFile()) {\n\t\t\t\tif (hcp || hup || hdp) {\n\t\t\t\t\treturn 'checked';\n\t\t\t\t}\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tif (!hcp && !hup && !hdp) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tif (   (this.createPermissionPossible() && !hcp)\n\t\t\t\t|| (this.updatePermissionPossible() && !hup)\n\t\t\t\t|| (this.deletePermissionPossible() && !hdp)   ) {\n\t\t\t\treturn 'indeterminate';\n\t\t\t}\n\t\t\treturn 'checked';\n\t\t},\n\n\t\t/**\n\t\t * @returns {int}\n\t\t */\n\t\tlinkSharePermissions: function(shareId) {\n\t\t\tvar linkShares = this.get('linkShares');\n\t\t\tvar shareIndex = _.findIndex(linkShares, function(share) {return share.id === shareId})\n\n\t\t\tif (!this.hasLinkShares()) {\n\t\t\t\treturn -1;\n\t\t\t} else if (linkShares.length > 0 && shareIndex !== -1) {\n\t\t\t\treturn linkShares[shareIndex].permissions;\n\t\t\t}\n\t\t\treturn -1;\n\t\t},\n\n\t\t_getUrl: function(base, params) {\n\t\t\tparams = _.extend({format: 'json'}, params || {});\n\t\t\treturn OC.linkToOCS('apps/files_sharing/api/v1', 2) + base + '?' + OC.buildQueryString(params);\n\t\t},\n\n\t\t_fetchShares: function() {\n\t\t\tvar path = this.fileInfoModel.getFullPath();\n\t\t\treturn $.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: this._getUrl('shares', {path: path, reshares: true})\n\t\t\t});\n\t\t},\n\n\t\t_fetchReshare: function() {\n\t\t\t// only fetch original share once\n\t\t\tif (!this._reshareFetched) {\n\t\t\t\tvar path = this.fileInfoModel.getFullPath();\n\t\t\t\tthis._reshareFetched = true;\n\t\t\t\treturn $.ajax({\n\t\t\t\t\ttype: 'GET',\n\t\t\t\t\turl: this._getUrl('shares', {path: path, shared_with_me: true})\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn $.Deferred().resolve([{\n\t\t\t\t\tocs: {\n\t\t\t\t\t\tdata: [this.get('reshare')]\n\t\t\t\t\t}\n\t\t\t\t}]);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Group reshares into a single super share element.\n\t\t * Does this by finding the most precise share and\n\t\t * combines the permissions to be the most permissive.\n\t\t *\n\t\t * @param {Array} reshares\n\t\t * @return {Object} reshare\n\t\t */\n\t\t_groupReshares: function(reshares) {\n\t\t\tif (!reshares || !reshares.length) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tvar superShare = reshares.shift();\n\t\t\tvar combinedPermissions = superShare.permissions;\n\t\t\t_.each(reshares, function(reshare) {\n\t\t\t\t// use share have higher priority than group share\n\t\t\t\tif (reshare.share_type === OC.Share.SHARE_TYPE_USER && superShare.share_type === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\t\tsuperShare = reshare;\n\t\t\t\t}\n\t\t\t\tcombinedPermissions |= reshare.permissions;\n\t\t\t});\n\n\t\t\tsuperShare.permissions = combinedPermissions;\n\t\t\treturn superShare;\n\t\t},\n\n\t\tfetch: function(options) {\n\t\t\tvar model = this;\n\t\t\tthis.trigger('request', this);\n\n\t\t\tvar deferred = $.when(\n\t\t\t\tthis._fetchShares(),\n\t\t\t\tthis._fetchReshare()\n\t\t\t);\n\t\t\tdeferred.done(function(data1, data2) {\n\t\t\t\tmodel.trigger('sync', 'GET', this);\n\t\t\t\tvar sharesMap = {};\n\t\t\t\t_.each(data1[0].ocs.data, function(shareItem) {\n\t\t\t\t\tsharesMap[shareItem.id] = shareItem;\n\t\t\t\t});\n\n\t\t\t\tvar reshare = false;\n\t\t\t\tif (data2[0].ocs.data.length) {\n\t\t\t\t\treshare = model._groupReshares(data2[0].ocs.data);\n\t\t\t\t}\n\n\t\t\t\tmodel.set(model.parse({\n\t\t\t\t\tshares: sharesMap,\n\t\t\t\t\treshare: reshare\n\t\t\t\t}));\n\n\t\t\t\tif(!_.isUndefined(options) && _.isFunction(options.success)) {\n\t\t\t\t\toptions.success();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn deferred;\n\t\t},\n\n\t\t/**\n\t\t * Updates OC.Share.itemShares and OC.Share.statuses.\n\t\t *\n\t\t * This is required in case the user navigates away and comes back,\n\t\t * the share statuses from the old arrays are still used to fill in the icons\n\t\t * in the file list.\n\t\t */\n\t\t_legacyFillCurrentShares: function(shares) {\n\t\t\tvar fileId = this.fileInfoModel.get('id');\n\t\t\tif (!shares || !shares.length) {\n\t\t\t\tdelete OC.Share.statuses[fileId];\n\t\t\t\tOC.Share.currentShares = {};\n\t\t\t\tOC.Share.itemShares = [];\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar currentShareStatus = OC.Share.statuses[fileId];\n\t\t\tif (!currentShareStatus) {\n\t\t\t\tcurrentShareStatus = {link: false};\n\t\t\t\tOC.Share.statuses[fileId] = currentShareStatus;\n\t\t\t}\n\t\t\tcurrentShareStatus.link = false;\n\n\t\t\tOC.Share.currentShares = {};\n\t\t\tOC.Share.itemShares = [];\n\t\t\t_.each(shares,\n\t\t\t\t/**\n\t\t\t\t * @param {OC.Share.Types.ShareInfo} share\n\t\t\t\t */\n\t\t\t\tfunction(share) {\n\t\t\t\t\tif (share.share_type === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\tOC.Share.itemShares[share.share_type] = true;\n\t\t\t\t\t\tcurrentShareStatus.link = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!OC.Share.itemShares[share.share_type]) {\n\t\t\t\t\t\t\tOC.Share.itemShares[share.share_type] = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tOC.Share.itemShares[share.share_type].push(share.share_with);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\n\t\tparse: function(data) {\n\t\t\tif(data === false) {\n\t\t\t\tconsole.warn('no data was returned');\n\t\t\t\tthis.trigger('fetchError');\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tvar permissions = this.fileInfoModel.get('permissions');\n\t\t\tif(!_.isUndefined(data.reshare) && !_.isUndefined(data.reshare.permissions) && data.reshare.uid_owner !== OC.currentUser) {\n\t\t\t\tpermissions = permissions & data.reshare.permissions;\n\t\t\t}\n\n\t\t\tvar allowPublicUploadStatus = false;\n\t\t\tif(!_.isUndefined(data.shares)) {\n\t\t\t\t$.each(data.shares, function (key, value) {\n\t\t\t\t\tif (value.share_type === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\tallowPublicUploadStatus = (value.permissions & OC.PERMISSION_CREATE) ? true : false;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tvar allowPublicEditingStatus = true;\n\t\t\tif(!_.isUndefined(data.shares)) {\n\t\t\t\t$.each(data.shares, function (key, value) {\n\t\t\t\t\tif (value.share_type === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\tallowPublicEditingStatus = (value.permissions & OC.PERMISSION_UPDATE) ? true : false;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\n\t\t\tvar hideFileListStatus = false;\n\t\t\tif(!_.isUndefined(data.shares)) {\n\t\t\t\t$.each(data.shares, function (key, value) {\n\t\t\t\t\tif (value.share_type === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\thideFileListStatus = (value.permissions & OC.PERMISSION_READ) ? false : true;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t/** @type {OC.Share.Types.ShareInfo[]} **/\n\t\t\tvar shares = _.map(data.shares, function(share) {\n\t\t\t\t// properly parse some values because sometimes the server\n\t\t\t\t// returns integers as string...\n\t\t\t\tvar i;\n\t\t\t\tfor (i = 0; i < SHARE_RESPONSE_INT_PROPS.length; i++) {\n\t\t\t\t\tvar prop = SHARE_RESPONSE_INT_PROPS[i];\n\t\t\t\t\tif (!_.isUndefined(share[prop])) {\n\t\t\t\t\t\tshare[prop] = parseInt(share[prop], 10);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn share;\n\t\t\t});\n\n\t\t\tthis._legacyFillCurrentShares(shares);\n\n\t\t\tvar linkShares =  [];\n\t\t\t// filter out the share by link\n\t\t\tshares = _.reject(shares,\n\t\t\t\t/**\n\t\t\t\t * @param {OC.Share.Types.ShareInfo} share\n\t\t\t\t */\n\t\t\t\tfunction(share) {\n\t\t\t\t\tvar isShareLink =\n\t\t\t\t\t\tshare.share_type === OC.Share.SHARE_TYPE_LINK\n\t\t\t\t\t\t&& (   share.file_source === this.get('itemSource')\n\t\t\t\t\t\t|| share.item_source === this.get('itemSource'));\n\n\t\t\t\t\tif (isShareLink) {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Ignore reshared link shares for now\n\t\t\t\t\t\t * FIXME: Find a way to display properly\n\t\t\t\t\t\t */\n\t\t\t\t\t\tif (share.uid_owner !== OC.currentUser) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar link = window.location.protocol + '//' + window.location.host;\n\t\t\t\t\t\tif (!share.token) {\n\t\t\t\t\t\t\t// pre-token link\n\t\t\t\t\t\t\tvar fullPath = this.fileInfoModel.get('path') + '/' +\n\t\t\t\t\t\t\t\tthis.fileInfoModel.get('name');\n\t\t\t\t\t\t\tvar location = '/' + OC.currentUser + '/files' + fullPath;\n\t\t\t\t\t\t\tvar type = this.fileInfoModel.isDirectory() ? 'folder' : 'file';\n\t\t\t\t\t\t\tlink += OC.linkTo('', 'public.php') + '?service=files&' +\n\t\t\t\t\t\t\t\ttype + '=' + encodeURIComponent(location);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlink += OC.generateUrl('/s/') + share.token;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlinkShares.push(_.extend({}, share, {\n\t\t\t\t\t\t\t// hide_download is returned as an int, so force it\n\t\t\t\t\t\t\t// to a boolean\n\t\t\t\t\t\t\thideDownload: !!share.hide_download,\n\t\t\t\t\t\t\tpassword: share.share_with,\n\t\t\t\t\t\t\tsendPasswordByTalk: share.send_password_by_talk\n\t\t\t\t\t\t}));\n\n\t\t\t\t\t\treturn share;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tthis\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\treshare: data.reshare,\n\t\t\t\tshares: shares,\n\t\t\t\tlinkShares: linkShares,\n\t\t\t\tpermissions: permissions,\n\t\t\t\tallowPublicUploadStatus: allowPublicUploadStatus,\n\t\t\t\tallowPublicEditingStatus: allowPublicEditingStatus,\n\t\t\t\thideFileListStatus: hideFileListStatus\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * Parses a string to an valid integer (unix timestamp)\n\t\t * @param time\n\t\t * @returns {*}\n\t\t * @internal Only used to work around a bug in the backend\n\t\t */\n\t\t_parseTime: function(time) {\n\t\t\tif (_.isString(time)) {\n\t\t\t\t// skip empty strings and hex values\n\t\t\t\tif (time === '' || (time.length > 1 && time[0] === '0' && time[1] === 'x')) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\ttime = parseInt(time, 10);\n\t\t\t\tif(isNaN(time)) {\n\t\t\t\t\ttime = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn time;\n\t\t},\n\n\t\t/**\n\t\t * Returns a list of share types from the existing shares.\n\t\t *\n\t\t * @return {Array.<int>} array of share types\n\t\t */\n\t\tgetShareTypes: function() {\n\t\t\tvar result;\n\t\t\tresult = _.pluck(this.getSharesWithCurrentItem(), 'share_type');\n\t\t\tif (this.hasLinkShares()) {\n\t\t\t\tresult.push(OC.Share.SHARE_TYPE_LINK);\n\t\t\t}\n\t\t\treturn _.uniq(result);\n\t\t}\n\t});\n\n\tOC.Share.ShareItemModel = ShareItemModel;\n})();\n","/**\n * @copyright 2017, Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @author Roeland Jago Douma <roeland@famdouma.nl>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\tif (!OC.Share) {\n\t\tOC.Share = {};\n\t}\n\n\tOC.Share.Social = {};\n\n\tvar SocialModel = OC.Backbone.Model.extend({\n\t\tdefaults: {\n\t\t\t/** used for sorting social buttons */\n\t\t\tkey: null,\n\t\t\t/** url to open, {{reference}} will be replaced with the link */\n\t\t\turl: null,\n\t\t\t/** Name to show in the tooltip */\n\t\t\tname: null,\n\t\t\t/** Icon class to display */\n\t\t\ticonClass: null,\n\t\t\t/** Open in new windows */\n\t\t\tnewWindow: true\n\t\t}\n\t});\n\n\tOC.Share.Social.Model = SocialModel;\n\n\tvar SocialCollection = OC.Backbone.Collection.extend({\n\t\tmodel: OC.Share.Social.Model,\n\n\t\tcomparator: 'key'\n\t});\n\n\n\tOC.Share.Social.Collection = new SocialCollection;\n})();\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* globals Handlebars */\n\n(function() {\n\tif (!OC.Share) {\n\t\tOC.Share = {};\n\t}\n\n\t/**\n\t * @class OCA.Share.ShareDialogView\n\t * @member {OC.Share.ShareItemModel} model\n\t * @member {jQuery} $el\n\t * @memberof OCA.Sharing\n\t * @classdesc\n\t *\n\t * Represents the GUI of the share dialogue\n\t *\n\t */\n\tvar ShareDialogResharerInfoView = OC.Backbone.View.extend({\n\t\t/** @type {string} **/\n\t\tid: 'shareDialogResharerInfo',\n\n\t\t/** @type {string} **/\n\t\ttagName: 'div',\n\n\t\t/** @type {string} **/\n\t\tclassName: 'reshare',\n\n\t\t/** @type {OC.Share.ShareConfigModel} **/\n\t\tconfigModel: undefined,\n\n\t\t/** @type {Function} **/\n\t\t_template: undefined,\n\n\t\tinitialize: function(options) {\n\t\t\tvar view = this;\n\n\t\t\tthis.model.on('change:reshare', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\n\t\t\tif(!_.isUndefined(options.configModel)) {\n\t\t\t\tthis.configModel = options.configModel;\n\t\t\t} else {\n\t\t\t\tthrow 'missing OC.Share.ShareConfigModel';\n\t\t\t}\n\t\t},\n\n\t\trender: function() {\n\t\t\tif (!this.model.hasReshare()\n\t\t\t\t|| this.model.getReshareOwner() === OC.currentUser)\n\t\t\t{\n\t\t\t\tthis.$el.empty();\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tvar reshareTemplate = this.template();\n\t\t\tvar ownerDisplayName = this.model.getReshareOwnerDisplayname();\n\t\t\tvar shareNote = this.model.getReshareNote();\n\t\t\t\n\t\t\tvar sharedByText = '';\n\n\t\t\tif (this.model.getReshareType() === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\tsharedByText = t(\n\t\t\t\t\t'core',\n\t\t\t\t\t'Shared with you and the group {group} by {owner}',\n\t\t\t\t\t{\n\t\t\t\t\t\tgroup: this.model.getReshareWithDisplayName(),\n\t\t\t\t\t\towner: ownerDisplayName\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t{escape: false}\n\t\t\t\t);\n\t\t\t} else if (this.model.getReshareType() === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\tsharedByText = t(\n\t\t\t\t\t'core',\n\t\t\t\t\t'Shared with you and {circle} by {owner}',\n\t\t\t\t\t{\n\t\t\t\t\t\tcircle: this.model.getReshareWithDisplayName(),\n\t\t\t\t\t\towner: ownerDisplayName\n\t\t\t\t\t},\n\t\t\t\t\tundefined,\n\t\t\t\t\t{escape: false}\n\t\t\t\t);\n\t\t\t} else if (this.model.getReshareType() === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\tif (this.model.get('reshare').share_with_displayname) {\n\t\t\t\t\tsharedByText = t(\n\t\t\t\t\t\t'core',\n\t\t\t\t\t\t'Shared with you and the conversation {conversation} by {owner}',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconversation: this.model.getReshareWithDisplayName(),\n\t\t\t\t\t\t\towner: ownerDisplayName\n\t\t\t\t\t\t},\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{escape: false}\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tsharedByText = t(\n\t\t\t\t\t\t'core',\n\t\t\t\t\t\t'Shared with you in a conversation by {owner}',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\towner: ownerDisplayName\n\t\t\t\t\t\t},\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t{escape: false}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsharedByText = t(\n\t\t\t\t\t'core',\n\t\t\t\t\t'Shared with you by {owner}',\n\t\t\t\t\t{ owner: ownerDisplayName },\n\t\t\t\t\tundefined,\n\t\t\t\t\t{escape: false}\n\t\t\t\t);\n\t\t\t}\n\n\n\n\t\t\tthis.$el.html(reshareTemplate({\n\t\t\t\treshareOwner: this.model.getReshareOwner(),\n\t\t\t\tsharedByText: sharedByText,\n\t\t\t\tshareNote: shareNote,\n\t\t\t\thasShareNote: shareNote !== ''\n\t\t\t}));\n\n\t\t\tthis.$el.find('.avatar').each(function() {\n\t\t\t\tvar $this = $(this);\n\t\t\t\t$this.avatar($this.data('username'), 32);\n\t\t\t});\n\n\t\t\tthis.$el.find('.reshare').contactsMenu(\n\t\t\t\tthis.model.getReshareOwner(),\n\t\t\t\tOC.Share.SHARE_TYPE_USER,\n\t\t\t\tthis.$el);\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * @returns {Function} from Handlebars\n\t\t * @private\n\t\t */\n\t\ttemplate: function () {\n\t\t\treturn OC.Share.Templates['sharedialogresharerinfoview'];\n\t\t}\n\n\t});\n\n\tOC.Share.ShareDialogResharerInfoView = ShareDialogResharerInfoView;\n\n})();\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* globals Clipboard, Handlebars */\n\n(function() {\n\tif (!OC.Share) {\n\t\tOC.Share = {};\n\t}\n\n\tvar PASSWORD_PLACEHOLDER = '**********';\n\tvar PASSWORD_PLACEHOLDER_MESSAGE = t('core', 'Choose a password for the public link');\n\tvar PASSWORD_PLACEHOLDER_MESSAGE_OPTIONAL = t('core', 'Choose a password for the public link or press the \"Enter\" key');\n\n\t/**\n\t * @class OCA.Share.ShareDialogLinkShareView\n\t * @member {OC.Share.ShareItemModel} model\n\t * @member {jQuery} $el\n\t * @memberof OCA.Sharing\n\t * @classdesc\n\t *\n\t * Represents the GUI of the share dialogue\n\t *\n\t */\n\tvar ShareDialogLinkShareView = OC.Backbone.View.extend({\n\t\t/** @type {string} **/\n\t\tid: 'shareDialogLinkShare',\n\n\t\t/** @type {OC.Share.ShareConfigModel} **/\n\t\tconfigModel: undefined,\n\n\t\t/** @type {boolean} **/\n\t\tshowLink: true,\n\n\t\t/** @type {boolean} **/\n\t\tshowPending: false,\n\n\t\t/** @type {string} **/\n\t\tpassword: '',\n\n\t\t/** @type {string} **/\n\t\tnewShareId: 'new-share',\n\n\t\tevents: {\n\t\t\t// open menu\n\t\t\t'click .share-menu .icon-more': 'onToggleMenu',\n\t\t\t// hide download\n\t\t\t'change .hideDownloadCheckbox': 'onHideDownloadChange',\n\t\t\t// password\n\t\t\t'click input.share-pass-submit': 'onPasswordEntered', \n\t\t\t'keyup input.linkPassText': 'onPasswordKeyUp', // check for the enter key\n\t\t\t'change .showPasswordCheckbox': 'onShowPasswordClick',\n\t\t\t'change .passwordByTalkCheckbox': 'onPasswordByTalkChange',\n\t\t\t'change .publicEditingCheckbox': 'onAllowPublicEditingChange',\n\t\t\t// copy link url\n\t\t\t'click .linkText': 'onLinkTextClick',\n\t\t\t// social\n\t\t\t'click .pop-up': 'onPopUpClick',\n\t\t\t// permission change\n\t\t\t'change .publicUploadRadio': 'onPublicUploadChange',\n\t\t\t// expire date\n\t\t\t'click .expireDate' : 'onExpireDateChange',\n\t\t\t'change .datepicker': 'onChangeExpirationDate',\n\t\t\t'click .datepicker' : 'showDatePicker',\n\t\t\t// note\n\t\t\t'click .share-add': 'showNoteForm',\n\t\t\t'click .share-note-delete': 'deleteNote',\n\t\t\t'click .share-note-submit': 'updateNote',\n\t\t\t// remove\n\t\t\t'click .unshare': 'onUnshare',\n\t\t\t// new share\n\t\t\t'click .new-share': 'newShare',\n\t\t\t// enforced pass set\n\t\t\t'submit .enforcedPassForm': 'enforcedPasswordSet',\n\t\t},\n\n\t\tinitialize: function(options) {\n\t\t\tvar view = this;\n\n\t\t\tthis.model.on('change:permissions', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\n\t\t\tthis.model.on('change:itemType', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\n\t\t\tthis.model.on('change:allowPublicUploadStatus', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\n\t\t\tthis.model.on('change:hideFileListStatus', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\n\t\t\tthis.model.on('change:linkShares', function(model, linkShares) {\n\t\t\t\t// The \"Password protect by Talk\" item is shown only when there\n\t\t\t\t// is a password. Unfortunately there is no fine grained\n\t\t\t\t// rendering of items in the link shares, so the whole view\n\t\t\t\t// needs to be rendered again when the password of a share\n\t\t\t\t// changes.\n\t\t\t\t// Note that this event handler is concerned only about password\n\t\t\t\t// changes; other changes in the link shares does not trigger\n\t\t\t\t// a rendering, so the view must be rendered again as needed in\n\t\t\t\t// those cases (for example, when a link share is removed).\n\t\t\t\t\n\t\t\t\tvar previousLinkShares = model.previous('linkShares');\n\t\t\t\tif (previousLinkShares.length !== linkShares.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar i;\n\t\t\t\tfor (i = 0; i < linkShares.length; i++) {\n\t\t\t\t\tif (linkShares[i].id !== previousLinkShares[i].id) {\n\t\t\t\t\t\t// A resorting should never happen, but just in case.\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (linkShares[i].password !== previousLinkShares[i].password) {\n\t\t\t\t\t\tview.render();\n\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif(!_.isUndefined(options.configModel)) {\n\t\t\t\tthis.configModel = options.configModel;\n\t\t\t} else {\n\t\t\t\tthrow 'missing OC.Share.ShareConfigModel';\n\t\t\t}\n\n\t\t\tvar clipboard = new Clipboard('.clipboard-button');\n\t\t\tclipboard.on('success', function(e) {\n\t\t\t\tvar $trigger = $(e.trigger);\n\n\t\t\t\t$trigger.tooltip('hide')\n\t\t\t\t\t.attr('data-original-title', t('core', 'Copied!'))\n\t\t\t\t\t.tooltip('fixTitle')\n\t\t\t\t\t.tooltip({placement: 'bottom', trigger: 'manual'})\n\t\t\t\t\t.tooltip('show');\n\t\t\t\t_.delay(function() {\n\t\t\t\t\t$trigger.tooltip('hide')\n\t\t\t\t\t\t.attr('data-original-title', t('core', 'Copy link'))\n\t\t\t\t\t\t.tooltip('fixTitle')\n\t\t\t\t}, 3000);\n\t\t\t});\n\t\t\tclipboard.on('error', function (e) {\n\t\t\t\tvar $trigger = $(e.trigger);\n\t\t\t\tvar $menu = $trigger.next('.share-menu').find('.popovermenu');\n\t\t\t\tvar $linkTextMenu = $menu.find('li.linkTextMenu');\n\t\t\t\tvar $input = $linkTextMenu.find('.linkText');\n\n\t\t\t\tvar $li = $trigger.closest('li[data-share-id]');\n\t\t\t\tvar shareId = $li.data('share-id');\n\n\t\t\t\t// show menu\n\t\t\t\tOC.showMenu(null, $menu);\n\n\t\t\t\tvar actionMsg = '';\n\t\t\t\tif (/iPhone|iPad/i.test(navigator.userAgent)) {\n\t\t\t\t\tactionMsg = t('core', 'Not supported!');\n\t\t\t\t} else if (/Mac/i.test(navigator.userAgent)) {\n\t\t\t\t\tactionMsg = t('core', 'Press ⌘-C to copy.');\n\t\t\t\t} else {\n\t\t\t\t\tactionMsg = t('core', 'Press Ctrl-C to copy.');\n\t\t\t\t}\n\n\t\t\t\t$linkTextMenu.removeClass('hidden');\n\t\t\t\t$input.select();\n\t\t\t\t$input.tooltip('hide')\n\t\t\t\t\t.attr('data-original-title', actionMsg)\n\t\t\t\t\t.tooltip('fixTitle')\n\t\t\t\t\t.tooltip({placement: 'bottom', trigger: 'manual'})\n\t\t\t\t\t.tooltip('show');\n\t\t\t\t_.delay(function () {\n\t\t\t\t\t$input.tooltip('hide');\n\t\t\t\t\t$input.attr('data-original-title', t('core', 'Copy'))\n\t\t\t\t\t\t  .tooltip('fixTitle');\n\t\t\t\t}, 3000);\n\t\t\t});\n\t\t},\n\n\t\tnewShare: function(event) {\n\t\t\tvar self = this;\n\t\t\tvar $target = $(event.target);\n\t\t\tvar $li = $target.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $loading = $li.find('.share-menu > .icon-loading-small');\n\n\t\t\tif(!$loading.hasClass('hidden') && this.password === '') {\n\t\t\t\t// in process\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// hide all icons and show loading\n\t\t\t$li.find('.icon').addClass('hidden');\n\t\t\t$loading.removeClass('hidden');\n\n\t\t\t// hide menu\n\t\t\tOC.hideMenus();\n\n\t\t\tvar shareData = {}\n\n\t\t\tvar isPasswordEnforced = this.configModel.get('enforcePasswordForPublicLink');\n\t\t\tvar isExpirationEnforced = this.configModel.get('isDefaultExpireDateEnforced');\n\n\t\t\t// set default expire date\n\t\t\tif (isExpirationEnforced) {\n\t\t\t\tvar defaultExpireDays = this.configModel.get('defaultExpireDate');\n\t\t\t\tvar expireDate = moment().add(defaultExpireDays, 'day').format('DD-MM-YYYY')\n\t\t\t\tshareData.expireDate = expireDate;\n\t\t\t}\n\n\t\t\t// if password is set, add to data\n\t\t\tif (isPasswordEnforced && this.password !== '') {\n\t\t\t\tshareData.password = this.password\n\t\t\t}\n\n\t\t\tvar newShareId = false;\n\n\t\t\t// We need a password before the share creation\n\t\t\tif (isPasswordEnforced && !this.showPending && this.password === '') {\n\t\t\t\tthis.showPending = shareId;\n\t\t\t\tvar self = this.render();\n\t\t\t\tself.$el.find('.pending #enforcedPassText').focus();\n\t\t\t} else {\n\t\t\t\t// else, we have a password or it is not enforced\n\t\t\t\t$.when(this.model.saveLinkShare(shareData, {\n\t\t\t\t\tsuccess: function() {\n\t\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t\t$li.find('.icon').removeClass('hidden');\n\t\t\t\t\t\tself.render();\n\t\t\t\t\t\t// open the menu by default\n\t\t\t\t\t\t// we can only do that after the render\n\t\t\t\t\t\tif (newShareId) {\n\t\t\t\t\t\t\tvar shares = self.$el.find('li[data-share-id]');\n\t\t\t\t\t\t\tvar $newShare = self.$el.find('li[data-share-id=\"'+newShareId+'\"]');\n\t\t\t\t\t\t\t// only open the menu by default if this is the first share\n\t\t\t\t\t\t\tif ($newShare && shares.length === 1) {\n\t\t\t\t\t\t\t\tvar $menu = $newShare.find('.popovermenu');\n\t\t\t\t\t\t\t\tOC.showMenu(null, $menu);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror: function() {\n\t\t\t\t\t\t// empty function to override the default Dialog warning\n\t\t\t\t\t}\n\t\t\t\t})).fail(function(response) {\n\t\t\t\t\t// password failure? Show error\n\t\t\t\t\tself.password = ''\n\t\t\t\t\tif (isPasswordEnforced && response && response.responseJSON && response.responseJSON.ocs.meta && response.responseJSON.ocs.meta.message) {\n\t\t\t\t\t\tvar $input = self.$el.find('.pending #enforcedPassText')\n\t\t\t\t\t\t$input.tooltip('destroy');\n\t\t\t\t\t\t$input.attr('title', response.responseJSON.ocs.meta.message);\n\t\t\t\t\t\t$input.tooltip({placement: 'bottom', trigger: 'manual'});\n\t\t\t\t\t\t$input.tooltip('show');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tOC.Notification.showTemporary(t('core', 'Unable to create a link share'));\n\t\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t\t$li.find('.icon').removeClass('hidden');\n\t\t\t\t\t}\n\t\t\t\t}).then(function(response) {\n\t\t\t\t\t// resolve before success\n\t\t\t\t\tnewShareId = response.ocs.data.id\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tenforcedPasswordSet: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tvar $form = $(event.target);\n\t\t\tvar $input = $form.find('input.enforcedPassText');\n\t\t\tthis.password = $input.val();\n\t\t\tthis.showPending = false;\n\t\t\tthis.newShare(event);\n\t\t},\n\n\t\tonLinkTextClick: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar $el = $li.find('.linkText');\n\t\t\t$el.focus();\n\t\t\t$el.select();\n\t\t},\n\n\t\tonHideDownloadChange: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $checkbox = $li.find('.hideDownloadCheckbox');\n\t\t\t$checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock');\n\n\t\t\tvar hideDownload = false;\n\t\t\tif($checkbox.is(':checked')) {\n\t\t\t\thideDownload = true;\n\t\t\t}\n\n\t\t\tthis.model.saveLinkShare({\n\t\t\t\thideDownload: hideDownload,\n\t\t\t\tcid: shareId\n\t\t\t}, {\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t$checkbox.siblings('.icon-loading-small').addClass('hidden').removeClass('inlineblock');\n\t\t\t\t},\n\t\t\t\terror: function(obj, msg) {\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'Unable to toggle this option'));\n\t\t\t\t\t$checkbox.siblings('.icon-loading-small').addClass('hidden').removeClass('inlineblock');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tonShowPasswordClick: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\t$li.find('.linkPass').slideToggle(OC.menuSpeed);\n\t\t\t$li.find('.linkPassMenu').toggleClass('hidden');\n\t\t\tif(!$li.find('.showPasswordCheckbox').is(':checked')) {\n\t\t\t\tthis.model.saveLinkShare({\n\t\t\t\t\tpassword: '',\n\t\t\t\t\tcid: shareId\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tif (!OC.Util.isIE()) {\n\t\t\t\t\t$li.find('.linkPassText').focus();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tonPasswordKeyUp: function(event) {\n\t\t\tif(event.keyCode === 13) {\n\t\t\t\tthis.onPasswordEntered(event);\n\t\t\t}\n\t\t},\n\n\t\tonPasswordEntered: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $loading = $li.find('.linkPassMenu .icon-loading-small');\n\t\t\tif (!$loading.hasClass('hidden')) {\n\t\t\t\t// still in process\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar $input = $li.find('.linkPassText');\n\t\t\t$input.removeClass('error');\n\t\t\t$input.parent().find('input').removeClass('error');\n\t\t\tvar password = $input.val();\n\n\t\t\tif ($li.find('.linkPassText').attr('placeholder') === PASSWORD_PLACEHOLDER_MESSAGE_OPTIONAL) {\n\n\t\t\t\t// in IE9 the password might be the placeholder due to bugs in the placeholders polyfill\n\t\t\t\tif(password === PASSWORD_PLACEHOLDER_MESSAGE_OPTIONAL) {\n\t\t\t\t\tpassword = '';\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// in IE9 the password might be the placeholder due to bugs in the placeholders polyfill\n\t\t\t\tif(password === '' || password === PASSWORD_PLACEHOLDER || password === PASSWORD_PLACEHOLDER_MESSAGE) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$loading\n\t\t\t\t.removeClass('hidden')\n\t\t\t\t.addClass('inlineblock');\n\n\t\t\tthis.model.saveLinkShare({\n\t\t\t\tpassword: password,\n\t\t\t\tcid: shareId\n\t\t\t}, {\n\t\t\t\tcomplete: function(model) {\n\t\t\t\t\t$loading.removeClass('inlineblock').addClass('hidden');\n\t\t\t\t},\n\t\t\t\terror: function(model, msg) {\n\t\t\t\t\t// Add visual feedback to both the input and the submit button\n\t\t\t\t\t$input.parent().find('input').addClass('error');\n\n\t\t\t\t\t// destroy old tooltips\n\t\t\t\t\tvar $container = $input.parent();\n\t\t\t\t\t$container.tooltip('destroy');\n\t\t\t\t\t$input.addClass('error');\n\t\t\t\t\t$container.attr('title', msg);\n\t\t\t\t\t$container.tooltip({placement: 'bottom', trigger: 'manual'});\n\t\t\t\t\t$container.tooltip('show');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tonPasswordByTalkChange: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $checkbox = $li.find('.passwordByTalkCheckbox');\n\t\t\t$checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock');\n\n\t\t\tvar sendPasswordByTalk = false;\n\t\t\tif($checkbox.is(':checked')) {\n\t\t\t\tsendPasswordByTalk = true;\n\t\t\t}\n\n\t\t\tthis.model.saveLinkShare({\n\t\t\t\tsendPasswordByTalk: sendPasswordByTalk,\n\t\t\t\tcid: shareId\n\t\t\t}, {\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t$checkbox.siblings('.icon-loading-small').addClass('hidden').removeClass('inlineblock');\n\t\t\t\t},\n\t\t\t\terror: function(obj, msg) {\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'Unable to toggle this option'));\n\t\t\t\t\t$checkbox.siblings('.icon-loading-small').addClass('hidden').removeClass('inlineblock');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tonAllowPublicEditingChange: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $checkbox = $li.find('.publicEditingCheckbox');\n\t\t\t$checkbox.siblings('.icon-loading-small').removeClass('hidden').addClass('inlineblock');\n\n\t\t\tvar permissions = OC.PERMISSION_READ;\n\t\t\tif($checkbox.is(':checked')) {\n\t\t\t\tpermissions = OC.PERMISSION_UPDATE | OC.PERMISSION_READ;\n\t\t\t}\n\n\t\t\tthis.model.saveLinkShare({\n\t\t\t\tpermissions: permissions,\n\t\t\t\tcid: shareId\n\t\t\t}, {\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t$checkbox.siblings('.icon-loading-small').addClass('hidden').removeClass('inlineblock');\n\t\t\t\t},\n\t\t\t\terror: function(obj, msg) {\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'Unable to toggle this option'));\n\t\t\t\t\t$checkbox.siblings('.icon-loading-small').addClass('hidden').removeClass('inlineblock');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\tonPublicUploadChange: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar permissions = event.currentTarget.value;\n\t\t\tthis.model.saveLinkShare({\n\t\t\t\tpermissions: permissions,\n\t\t\t\tcid: shareId\n\t\t\t});\n\t\t},\n\n\t\tshowNoteForm: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar $menu = $element.closest('li');\n\t\t\tvar $form = $menu.next('li.share-note-form');\n\n\t\t\t// show elements\n\t\t\t$menu.find('.share-note-delete').toggleClass('hidden');\n\t\t\t$form.toggleClass('hidden');\n\t\t\t$form.find('textarea').focus();\n\t\t},\n\n\t\tdeleteNote: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $menu = $element.closest('li');\n\t\t\tvar $form = $menu.next('li.share-note-form');\n\n\t\t\t$form.find('.share-note').val('');\n\n\t\t\t$form.addClass('hidden');\n\t\t\t$menu.find('.share-note-delete').addClass('hidden');\n\n\t\t\tself.sendNote('', shareId, $menu);\n\t\t},\n\n\t\tupdateNote: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $form = $element.closest('li.share-note-form');\n\t\t\tvar $menu = $form.prev('li');\n\t\t\tvar message = $form.find('.share-note').val().trim();\n\n\t\t\tif (message.length < 1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tself.sendNote(message, shareId, $menu);\n\t\t},\n\n\t\tsendNote: function(note, shareId, $menu) {\n\t\t\tvar $form = $menu.next('li.share-note-form');\n\t\t\tvar $submit = $form.find('input.share-note-submit');\n\t\t\tvar $error = $form.find('input.share-note-error');\n\n\t\t\t$submit.prop('disabled', true);\n\t\t\t$menu.find('.icon-loading-small').removeClass('hidden');\n\t\t\t$menu.find('.icon-edit').hide();\n\n\t\t\tvar complete = function() {\n\t\t\t\t$submit.prop('disabled', false);\n\t\t\t\t$menu.find('.icon-loading-small').addClass('hidden');\n\t\t\t\t$menu.find('.icon-edit').show();\n\t\t\t};\n\t\t\tvar error = function() {\n\t\t\t\t$error.show();\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t$error.hide();\n\t\t\t\t}, 3000);\n\t\t\t};\n\n\t\t\t// send data\n\t\t\t$.ajax({\n\t\t\t\tmethod: 'PUT',\n\t\t\t\turl: OC.linkToOCS('apps/files_sharing/api/v1/shares',2) + shareId + '?' + OC.buildQueryString({format: 'json'}),\n\t\t\t\tdata: { note: note },\n\t\t\t\tcomplete : complete,\n\t\t\t\terror: error\n\t\t\t});\n\t\t},\n\n\t\trender: function() {\n\t\t\tthis.$el.find('.has-tooltip').tooltip();\n\n\t\t\t// reset previously set passwords\n\t\t\tthis.password = '';\n\n\t\t\tvar linkShareTemplate = this.template();\n\t\t\tvar resharingAllowed = this.model.sharePermissionPossible();\n\n\t\t\tif(!resharingAllowed\n\t\t\t\t|| !this.showLink\n\t\t\t\t|| !this.configModel.isShareWithLinkAllowed())\n\t\t\t{\n\t\t\t\tvar templateData = {shareAllowed: false};\n\t\t\t\tif (!resharingAllowed) {\n\t\t\t\t\t// add message\n\t\t\t\t\ttemplateData.noSharingPlaceholder = t('core', 'Resharing is not allowed');\n\t\t\t\t}\n\t\t\t\tthis.$el.html(linkShareTemplate(templateData));\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\tvar publicUpload =\n\t\t\t\tthis.model.isFolder()\n\t\t\t\t&& this.model.createPermissionPossible()\n\t\t\t\t&& this.configModel.isPublicUploadEnabled();\n\n\n\t\t\tvar publicEditingChecked = '';\n\t\t\tif(this.model.isPublicEditingAllowed()) {\n\t\t\t\tpublicEditingChecked = 'checked=\"checked\"';\n\t\t\t}\n\n\t\t\tvar isPasswordEnforced = this.configModel.get('enforcePasswordForPublicLink');\n\t\t\tvar isPasswordEnabledByDefault = this.configModel.get('enableLinkPasswordByDefault') === true;\n\t\t\tvar passwordPlaceholderInitial = this.configModel.get('enforcePasswordForPublicLink')\n\t\t\t\t? PASSWORD_PLACEHOLDER_MESSAGE : PASSWORD_PLACEHOLDER_MESSAGE_OPTIONAL;\n\n\t\t\tvar publicEditable =\n\t\t\t\t!this.model.isFolder()\n\t\t\t\t&& this.model.updatePermissionPossible();\n\n\t\t\tvar isExpirationEnforced = this.configModel.get('isDefaultExpireDateEnforced');\n\n\t\t\t// what if there is another date picker on that page?\n\t\t\tvar minDate = new Date();\n\t\t\t// min date should always be the next day\n\t\t\tminDate.setDate(minDate.getDate()+1);\n\n\t\t\t$.datepicker.setDefaults({\n\t\t\t\tminDate: minDate\n\t\t\t});\n\n\t\t\tthis.$el.find('.datepicker').datepicker({dateFormat : 'dd-mm-yy'});\n\n\t\t\tvar minPasswordLength = 4\n\t\t\t// password policy?\n\t\t\tif(oc_capabilities.password_policy && oc_capabilities.password_policy.minLength) {\n\t\t\t\tminPasswordLength = oc_capabilities.password_policy.minLength;\n\t\t\t}\n\n\t\t\tvar popoverBase = {\n\t\t\t\turlLabel: t('core', 'Link'),\n\t\t\t\thideDownloadLabel: t('core', 'Hide download'),\n\t\t\t\tenablePasswordLabel: isPasswordEnforced ? t('core', 'Password protection enforced') : t('core', 'Password protect'),\n\t\t\t\tpasswordLabel: t('core', 'Password'),\n\t\t\t\tpasswordPlaceholderInitial: passwordPlaceholderInitial,\n\t\t\t\tpublicUpload: publicUpload,\n\t\t\t\tpublicEditing: publicEditable,\n\t\t\t\tpublicEditingChecked: publicEditingChecked,\n\t\t\t\tpublicEditingLabel: t('core', 'Allow editing'),\n\t\t\t\tmailPrivatePlaceholder: t('core', 'Email link to person'),\n\t\t\t\tmailButtonText: t('core', 'Send'),\n\t\t\t\tpublicUploadRWLabel: t('core', 'Allow upload and editing'),\n\t\t\t\tpublicUploadRLabel: t('core', 'Read only'),\n\t\t\t\tpublicUploadWLabel: t('core', 'File drop (upload only)'),\n\t\t\t\tpublicUploadRWValue: OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_READ | OC.PERMISSION_DELETE,\n\t\t\t\tpublicUploadRValue: OC.PERMISSION_READ,\n\t\t\t\tpublicUploadWValue: OC.PERMISSION_CREATE,\n\t\t\t\texpireDateLabel: isExpirationEnforced ? t('core', 'Expiration date enforced') : t('core', 'Set expiration date'),\n\t\t\t\texpirationLabel: t('core', 'Expiration'),\n\t\t\t\texpirationDatePlaceholder: t('core', 'Expiration date'),\n\t\t\t\tisExpirationEnforced: isExpirationEnforced,\n\t\t\t\tisPasswordEnforced: isPasswordEnforced,\n\t\t\t\tdefaultExpireDate: moment().add(1, 'day').format('DD-MM-YYYY'), // Can't expire today\n\t\t\t\taddNoteLabel: t('core', 'Note to recipient'),\n\t\t\t\tunshareLabel: t('core', 'Unshare'),\n\t\t\t\tunshareLinkLabel: t('core', 'Delete share link'),\n\t\t\t\tnewShareLabel: t('core', 'Add another link'),\n\t\t\t};\n\n\t\t\tvar pendingPopover = {\n\t\t\t\tisPasswordEnforced: isPasswordEnforced,\n\t\t\t\tenforcedPasswordLabel: t('core', 'Password protection for links is mandatory'),\n\t\t\t\tpasswordPlaceholder: passwordPlaceholderInitial,\n\t\t\t\tminPasswordLength: minPasswordLength,\n\t\t\t};\n\t\t\tvar pendingPopoverMenu = this.pendingPopoverMenuTemplate(_.extend({}, pendingPopover))\n\n\t\t\tvar linkShares = this.getShareeList();\n\t\t\tif(_.isArray(linkShares)) {\n\t\t\t\tfor (var i = 0; i < linkShares.length; i++) {\n\t\t\t\t\tvar social = [];\n\t\t\t\t\tOC.Share.Social.Collection.each(function (model) {\n\t\t\t\t\t\tvar url = model.get('url');\n\t\t\t\t\t\turl = url.replace('{{reference}}', linkShares[i].shareLinkURL);\n\t\t\t\t\t\tsocial.push({\n\t\t\t\t\t\t\turl: url,\n\t\t\t\t\t\t\tlabel: t('core', 'Share to {name}', {name: model.get('name')}),\n\t\t\t\t\t\t\tname: model.get('name'),\n\t\t\t\t\t\t\ticonClass: model.get('iconClass'),\n\t\t\t\t\t\t\tnewWindow: model.get('newWindow')\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tvar popover = this.getPopoverObject(linkShares[i])\n\t\t\t\t\tlinkShares[i].popoverMenu = this.popoverMenuTemplate(_.extend({}, popoverBase, popover, {social: social}));\n\t\t\t\t\tlinkShares[i].pendingPopoverMenu = pendingPopoverMenu\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.$el.html(linkShareTemplate({\n\t\t\t\tlinkShares: linkShares,\n\t\t\t\tshareAllowed: true,\n\t\t\t\tnolinkShares: linkShares.length === 0,\n\t\t\t\tnewShareLabel: t('core', 'Share link'),\n\t\t\t\tnewShareTitle: t('core', 'New share link'),\n\t\t\t\tpendingPopoverMenu: pendingPopoverMenu,\n\t\t\t\tshowPending: this.showPending === this.newShareId,\n\t\t\t\tnewShareId: this.newShareId,\n\t\t\t}));\n\n\t\t\tthis.delegateEvents();\n\n\t\t\t// new note autosize\n\t\t\tautosize(this.$el.find('.share-note-form .share-note'));\n\n\t\t\treturn this;\n\t\t},\n\n\t\tonToggleMenu: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar $menu = $li.find('.sharingOptionsGroup .popovermenu');\n\t\t\tvar shareId = $li.data('share-id');\n\n\t\t\tOC.showMenu(null, $menu);\n\n\t\t\t// focus the password if not set and enforced\n\t\t\tvar isPasswordEnabledByDefault = this.configModel.get('enableLinkPasswordByDefault') === true;\n\t\t\tvar haspassword = $menu.find('.linkPassText').val() !== '';\n\n\t\t\tif (!haspassword && isPasswordEnabledByDefault) {\n\t\t\t\t$menu.find('.linkPassText').focus();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @returns {Function} from Handlebars\n\t\t * @private\n\t\t */\n\t\ttemplate: function () {\n\t\t\treturn OC.Share.Templates['sharedialoglinkshareview'];\n\t\t},\n\n\t\t/**\n\t\t * renders the popover template and returns the resulting HTML\n\t\t *\n\t\t * @param {Object} data\n\t\t * @returns {string}\n\t\t */\n\t\tpopoverMenuTemplate: function(data) {\n\t\t\treturn OC.Share.Templates['sharedialoglinkshareview_popover_menu'](data);\n\t\t},\n\n\t\t/**\n\t\t * renders the pending popover template and returns the resulting HTML\n\t\t *\n\t\t * @param {Object} data\n\t\t * @returns {string}\n\t\t */\n\t\tpendingPopoverMenuTemplate: function(data) {\n\t\t\treturn OC.Share.Templates['sharedialoglinkshareview_popover_menu_pending'](data);\n\t\t},\n\n\t\tonPopUpClick: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\n\t\t\tvar url = $(event.currentTarget).data('url');\n\t\t\tvar newWindow = $(event.currentTarget).data('window');\n\t\t\t$(event.currentTarget).tooltip('hide');\n\t\t\tif (url) {\n\t\t\t\tif (newWindow === true) {\n\t\t\t\t\tvar width = 600;\n\t\t\t\t\tvar height = 400;\n\t\t\t\t\tvar left = (screen.width / 2) - (width / 2);\n\t\t\t\t\tvar top = (screen.height / 2) - (height / 2);\n\n\t\t\t\t\twindow.open(url, 'name', 'width=' + width + ', height=' + height + ', top=' + top + ', left=' + left);\n\t\t\t\t} else {\n\t\t\t\t\twindow.location.href = url;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tonExpireDateChange: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar expirationDatePicker = '#expirationDateContainer-' + shareId;\n\t\t\tvar datePicker = $(expirationDatePicker);\n\t\t\tvar state = $element.prop('checked');\n\t\t\tdatePicker.toggleClass('hidden', !state);\n\n\t\t\tif (!state) {\n\t\t\t\t// disabled, let's hide the input and\n\t\t\t\t// set the expireDate to nothing\n\t\t\t\t$element.closest('li').next('li').addClass('hidden');\n\t\t\t\tthis.setExpirationDate('', shareId);\n\t\t\t} else {\n\t\t\t\t// enabled, show the input and the datepicker\n\t\t\t\t$element.closest('li').next('li').removeClass('hidden');\n\t\t\t\tthis.showDatePicker(event);\n\n\t\t\t}\n\t\t},\n\n\t\tshowDatePicker: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar maxDate = $element.data('max-date');\n\t\t\tvar expirationDatePicker = '#expirationDatePicker-' + shareId;\n\t\t\tvar self = this;\n\n\t\t\t$(expirationDatePicker).datepicker({\n\t\t\t\tdateFormat : 'dd-mm-yy',\n\t\t\t\tonSelect: function (expireDate) {\n\t\t\t\t\tself.setExpirationDate(expireDate, shareId);\n\t\t\t\t},\n\t\t\t\tmaxDate: maxDate\n\t\t\t});\n\t\t\t$(expirationDatePicker).datepicker('show');\n\t\t\t$(expirationDatePicker).focus();\n\n\t\t},\n\n\t\tsetExpirationDate: function(expireDate, shareId) {\n\t\t\tthis.model.saveLinkShare({expireDate: expireDate, cid: shareId});\n\t\t},\n\n\t\tonChangeExpirationDate: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar expireDate = $element.val();\n\t\t\tvar li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar expirationDatePicker = '#expirationDatePicker-' + shareId;\n\n\t\t\tthis.setExpirationDate(expireDate, shareId);\n\t\t\t$(expirationDatePicker).datepicker('hide');\n\t\t},\n\n\t\t/**\n\t\t * get an array of sharees' share properties\n\t\t *\n\t\t * @returns {Array}\n\t\t */\n\t\tgetShareeList: function() {\n\t\t\tvar shares = this.model.get('linkShares');\n\n\t\t\tif(!this.model.hasLinkShares()) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tvar list = [];\n\t\t\tfor(var index = 0; index < shares.length; index++) {\n\t\t\t\tvar share = this.getShareeObject(index);\n\t\t\t\t// first empty {} is necessary, otherwise we get in trouble\n\t\t\t\t// with references\n\t\t\t\tlist.push(_.extend({}, share));\n\t\t\t}\n\n\t\t\treturn list;\n\t\t},\n\n\t\t/**\n\t\t *\n\t\t * @param {OC.Share.Types.ShareInfo} shareInfo\n\t\t * @returns {object}\n\t\t */\n\t\tgetShareeObject: function(shareIndex) {\n\t\t\tvar share = this.model.get('linkShares')[shareIndex];\n\n\t\t\treturn _.extend({}, share, {\n\t\t\t\tcid: share.id,\n\t\t\t\tshareAllowed: true,\n\t\t\t\tlinkShareLabel: share.label ? share.label : t('core', 'Share link'),\n\t\t\t\tpopoverMenu: {},\n\t\t\t\tshareLinkURL: share.url,\n\t\t\t\tnewShareTitle: t('core', 'New share link'),\n\t\t\t\tcopyLabel: t('core', 'Copy link'),\n\t\t\t\tshowPending: this.showPending === share.id,\n\t\t\t\tlinkShareCreationDate: t('core', 'Created on {time}', { time: moment(share.stime * 1000).format('LLLL') })\n\t\t\t})\n\t\t},\n\n\t\tgetPopoverObject: function(share) {\n\t\t\tvar publicUploadRWChecked = '';\n\t\t\tvar publicUploadRChecked = '';\n\t\t\tvar publicUploadWChecked = '';\n\n\t\t\tswitch (this.model.linkSharePermissions(share.id)) {\n\t\t\t\tcase OC.PERMISSION_READ:\n\t\t\t\t\tpublicUploadRChecked = 'checked';\n\t\t\t\t\tbreak;\n\t\t\t\tcase OC.PERMISSION_CREATE:\n\t\t\t\t\tpublicUploadWChecked = 'checked';\n\t\t\t\t\tbreak;\n\t\t\t\tcase OC.PERMISSION_UPDATE | OC.PERMISSION_CREATE | OC.PERMISSION_READ | OC.PERMISSION_DELETE:\n\t\t\t\t\tpublicUploadRWChecked = 'checked';\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tvar isPasswordSet = !!share.password;\n\t\t\tvar isPasswordEnabledByDefault = this.configModel.get('enableLinkPasswordByDefault') === true;\n\t\t\tvar isPasswordEnforced = this.configModel.get('enforcePasswordForPublicLink');\n\t\t\tvar isExpirationEnforced = this.configModel.get('isDefaultExpireDateEnforced');\n\t\t\tvar defaultExpireDays = this.configModel.get('defaultExpireDate');\n\t\t\tvar hasExpireDate = !!share.expiration || isExpirationEnforced;\n\n\t\t\tvar expireDate;\n\t\t\tif (hasExpireDate) {\n\t\t\t\texpireDate = moment(share.expiration, 'YYYY-MM-DD').format('DD-MM-YYYY');\n\t\t\t}\n\n\t\t\tvar isTalkEnabled = oc_appswebroots['spreed'] !== undefined;\n\t\t\tvar sendPasswordByTalk = share.sendPasswordByTalk;\n\n\t\t\tvar hideDownload = share.hideDownload;\n\n\t\t\tvar maxDate = null;\n\n\t\t\tif(hasExpireDate) {\n\t\t\t\tif(isExpirationEnforced) {\n\t\t\t\t\t// TODO: hack: backend returns string instead of integer\n\t\t\t\t\tvar shareTime = share.stime;\n\t\t\t\t\tif (_.isNumber(shareTime)) {\n\t\t\t\t\t\tshareTime = new Date(shareTime * 1000);\n\t\t\t\t\t}\n\t\t\t\t\tif (!shareTime) {\n\t\t\t\t\t\tshareTime = new Date(); // now\n\t\t\t\t\t}\n\t\t\t\t\tshareTime = OC.Util.stripTime(shareTime).getTime();\n\t\t\t\t\tmaxDate = new Date(shareTime + defaultExpireDays * 24 * 3600 * 1000);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcid: share.id,\n\t\t\t\tshareLinkURL: share.url,\n\t\t\t\tpasswordPlaceholder: isPasswordSet ? PASSWORD_PLACEHOLDER : PASSWORD_PLACEHOLDER_MESSAGE,\n\t\t\t\tisPasswordSet: isPasswordSet || isPasswordEnabledByDefault || isPasswordEnforced,\n\t\t\t\tshowPasswordByTalkCheckBox: isTalkEnabled && isPasswordSet,\n\t\t\t\tpasswordByTalkLabel: t('core', 'Password protect by Talk'),\n\t\t\t\tisPasswordByTalkSet: sendPasswordByTalk,\n\t\t\t\tpublicUploadRWChecked: publicUploadRWChecked,\n\t\t\t\tpublicUploadRChecked: publicUploadRChecked,\n\t\t\t\tpublicUploadWChecked: publicUploadWChecked,\n\t\t\t\thasExpireDate: hasExpireDate,\n\t\t\t\texpireDate: expireDate,\n\t\t\t\tshareNote: share.note,\n\t\t\t\thasNote: share.note !== '',\n\t\t\t\tmaxDate: maxDate,\n\t\t\t\thideDownload: hideDownload,\n\t\t\t\tisExpirationEnforced: isExpirationEnforced,\n\t\t\t}\n\t\t},\n\n\t\tonUnshare: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tif (!$element.is('a')) {\n\t\t\t\t$element = $element.closest('a');\n\t\t\t}\n\n\t\t\tvar $loading = $element.find('.icon-loading-small').eq(0);\n\t\t\tif(!$loading.hasClass('hidden')) {\n\t\t\t\t// in process\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t$loading.removeClass('hidden');\n\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\n\t\t\tvar shareId = $li.data('share-id');\n\n\t\t\tself.model.removeShare(shareId, {\n\t\t\t\tsuccess: function() {\n\t\t\t\t\t$li.remove();\n\t\t\t\t\tself.render()\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'Could not unshare'));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn false;\n\t\t},\n\n\n\t});\n\n\tOC.Share.ShareDialogLinkShareView = ShareDialogLinkShareView;\n\n})();\n","/* global OC, Handlebars */\n\n/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* globals Handlebars */\n\n(function() {\n\n\tvar PASSWORD_PLACEHOLDER = '**********';\n\tvar PASSWORD_PLACEHOLDER_MESSAGE = t('core', 'Choose a password for the mail share');\n\n\tif (!OC.Share) {\n\t\tOC.Share = {};\n\t}\n\n\t/**\n\t * @class OCA.Share.ShareDialogShareeListView\n\t * @member {OC.Share.ShareItemModel} model\n\t * @member {jQuery} $el\n\t * @memberof OCA.Sharing\n\t * @classdesc\n\t *\n\t * Represents the sharee list part in the GUI of the share dialogue\n\t *\n\t */\n\tvar ShareDialogShareeListView = OC.Backbone.View.extend({\n\t\t/** @type {string} **/\n\t\tid: 'shareDialogLinkShare',\n\n\t\t/** @type {OC.Share.ShareConfigModel} **/\n\t\tconfigModel: undefined,\n\n\t\t_menuOpen: false,\n\n\t\t/** @type {boolean|number} **/\n\t\t_renderPermissionChange: false,\n\n\t\tevents: {\n\t\t\t'click .unshare': 'onUnshare',\n\t\t\t'click .share-add': 'showNoteForm',\n\t\t\t'click .share-note-delete': 'deleteNote',\n\t\t\t'click .share-note-submit': 'updateNote',\n\t\t\t'click .share-menu .icon-more': 'onToggleMenu',\n\t\t\t'click .permissions': 'onPermissionChange',\n\t\t\t'click .expireDate' : 'onExpireDateChange',\n\t\t\t'click .password' : 'onMailSharePasswordProtectChange',\n\t\t\t'click .passwordByTalk' : 'onMailSharePasswordProtectByTalkChange',\n\t\t\t'click .secureDrop' : 'onSecureDropChange',\n\t\t\t'keyup input.passwordField': 'onMailSharePasswordKeyUp',\n\t\t\t'focusout input.passwordField': 'onMailSharePasswordEntered',\n\t\t\t'change .datepicker': 'onChangeExpirationDate',\n\t\t\t'click .datepicker' : 'showDatePicker'\n\t\t},\n\n\t\tinitialize: function(options) {\n\t\t\tif(!_.isUndefined(options.configModel)) {\n\t\t\t\tthis.configModel = options.configModel;\n\t\t\t} else {\n\t\t\t\tthrow 'missing OC.Share.ShareConfigModel';\n\t\t\t}\n\n\t\t\tvar view = this;\n\t\t\tthis.model.on('change:shares', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t *\n\t\t * @param {OC.Share.Types.ShareInfo} shareInfo\n\t\t * @returns {object}\n\t\t */\n\t\tgetShareeObject: function(shareIndex) {\n\t\t\tvar shareWith = this.model.getShareWith(shareIndex);\n\t\t\tvar shareWithDisplayName = this.model.getShareWithDisplayName(shareIndex);\n\t\t\tvar shareWithAvatar = this.model.getShareWithAvatar(shareIndex);\n\t\t\tvar shareWithTitle = '';\n\t\t\tvar shareType = this.model.getShareType(shareIndex);\n\t\t\tvar sharedBy = this.model.getSharedBy(shareIndex);\n\t\t\tvar sharedByDisplayName = this.model.getSharedByDisplayName(shareIndex);\n\t\t\tvar fileOwnerUid = this.model.getFileOwnerUid(shareIndex);\n\n\t\t\tvar hasPermissionOverride = {};\n\t\t\tif (shareType === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\tshareWithDisplayName = shareWithDisplayName + \" (\" + t('core', 'group') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\tshareWithDisplayName = shareWithDisplayName + \" (\" + t('core', 'remote') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_REMOTE_GROUP) {\n\t\t\t\tshareWithDisplayName = shareWithDisplayName + \" (\" + t('core', 'remote group') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\tshareWithDisplayName = shareWithDisplayName + \" (\" + t('core', 'email') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\tshareWithDisplayName = shareWithDisplayName + \" (\" + t('core', 'conversation') + ')';\n\t\t\t}\n\n\t\t\tif (shareType === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\tshareWithTitle = shareWith + \" (\" + t('core', 'group') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\tshareWithTitle = shareWith + \" (\" + t('core', 'remote') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_REMOTE_GROUP) {\n\t\t\t\tshareWithTitle = shareWith + \" (\" + t('core', 'remote group') + ')';\n\t\t\t}\n\t\t\telse if (shareType === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\tshareWithTitle = shareWith + \" (\" + t('core', 'email') + ')';\n\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\tshareWithTitle = shareWith;\n\t\t\t\t// Force \"shareWith\" in the template to a safe value, as the\n\t\t\t\t// original \"shareWith\" returned by the model may contain\n\t\t\t\t// problematic characters like \"'\".\n\t\t\t\tshareWith = 'circle-' + shareIndex;\n\t\t\t}\n\n\t\t\tif (sharedBy !== oc_current_user) {\n\t\t\t\tvar empty = shareWithTitle === '';\n\t\t\t\tif (!empty) {\n\t\t\t\t\tshareWithTitle += ' (';\n\t\t\t\t}\n\t\t\t\tshareWithTitle += t('core', 'shared by {sharer}', {sharer: sharedByDisplayName});\n\t\t\t\tif (!empty) {\n\t\t\t\t\tshareWithTitle += ')';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar share = this.model.get('shares')[shareIndex];\n\t\t\tvar password = share.password;\n\t\t\tvar hasPassword = password !== null && password !== '';\n\t\t\tvar sendPasswordByTalk = share.send_password_by_talk;\n\n\t\t\tvar shareNote = this.model.getNote(shareIndex);\n\n\t\t\treturn _.extend(hasPermissionOverride, {\n\t\t\t\tcid: this.cid,\n\t\t\t\thasSharePermission: this.model.hasSharePermission(shareIndex),\n\t\t\t\teditPermissionState: this.model.editPermissionState(shareIndex),\n\t\t\t\thasCreatePermission: this.model.hasCreatePermission(shareIndex),\n\t\t\t\thasUpdatePermission: this.model.hasUpdatePermission(shareIndex),\n\t\t\t\thasDeletePermission: this.model.hasDeletePermission(shareIndex),\n\t\t\t\tsharedBy: sharedBy,\n\t\t\t\tsharedByDisplayName: sharedByDisplayName,\n\t\t\t\tshareWith: shareWith,\n\t\t\t\tshareWithDisplayName: shareWithDisplayName,\n\t\t\t\tshareWithAvatar: shareWithAvatar,\n\t\t\t\tshareWithTitle: shareWithTitle,\n\t\t\t\tshareType: shareType,\n\t\t\t\tshareId: this.model.get('shares')[shareIndex].id,\n\t\t\t\tmodSeed: shareWithAvatar || (shareType !== OC.Share.SHARE_TYPE_USER && shareType !== OC.Share.SHARE_TYPE_CIRCLE && shareType !== OC.Share.SHARE_TYPE_ROOM),\n\t\t\t\towner: fileOwnerUid,\n\t\t\t\tisShareWithCurrentUser: (shareType === OC.Share.SHARE_TYPE_USER && shareWith === oc_current_user),\n\t\t\t\tcanUpdateShareSettings: (sharedBy === oc_current_user || fileOwnerUid === oc_current_user),\n\t\t\t\tisRemoteShare: shareType === OC.Share.SHARE_TYPE_REMOTE,\n\t\t\t\tisRemoteGroupShare: shareType === OC.Share.SHARE_TYPE_REMOTE_GROUP,\n\t\t\t\tisNoteAvailable: shareType !== OC.Share.SHARE_TYPE_REMOTE && shareType !== OC.Share.SHARE_TYPE_REMOTE_GROUP,\n\t\t\t\tisMailShare: shareType === OC.Share.SHARE_TYPE_EMAIL,\n\t\t\t\tisCircleShare: shareType === OC.Share.SHARE_TYPE_CIRCLE,\n\t\t\t\tisFileSharedByMail: shareType === OC.Share.SHARE_TYPE_EMAIL && !this.model.isFolder(),\n\t\t\t\tisPasswordSet: hasPassword && !sendPasswordByTalk,\n\t\t\t\tisPasswordByTalkSet: hasPassword && sendPasswordByTalk,\n\t\t\t\tisTalkEnabled: oc_appswebroots['spreed'] !== undefined,\n\t\t\t\tsecureDropMode: !this.model.hasReadPermission(shareIndex),\n\t\t\t\thasExpireDate: this.model.getExpireDate(shareIndex) !== null,\n\t\t\t\tshareNote: shareNote,\n\t\t\t\thasNote: shareNote !== '',\n\t\t\t\texpireDate: moment(this.model.getExpireDate(shareIndex), 'YYYY-MM-DD').format('DD-MM-YYYY'),\n\t\t\t\t// The password placeholder does not take into account if\n\t\t\t\t// sending the password by Talk is enabled or not; when\n\t\t\t\t// switching from sending the password by Talk to sending the\n\t\t\t\t// password by email the password is reused and the share\n\t\t\t\t// updated, so the placeholder already shows the password in the\n\t\t\t\t// brief time between disabling sending the password by email\n\t\t\t\t// and receiving the updated share.\n\t\t\t\tpasswordPlaceholder: hasPassword ? PASSWORD_PLACEHOLDER : PASSWORD_PLACEHOLDER_MESSAGE,\n\t\t\t\tpasswordByTalkPlaceholder: (hasPassword && sendPasswordByTalk)? PASSWORD_PLACEHOLDER : PASSWORD_PLACEHOLDER_MESSAGE,\n\t\t\t});\n\t\t},\n\n\t\tgetShareProperties: function() {\n\t\t\treturn {\n\t\t\t\tunshareLabel: t('core', 'Unshare'),\n\t\t\t\taddNoteLabel: t('core', 'Note to recipient'),\n\t\t\t\tcanShareLabel: t('core', 'Can reshare'),\n\t\t\t\tcanEditLabel: t('core', 'Can edit'),\n\t\t\t\tcreatePermissionLabel: t('core', 'Can create'),\n\t\t\t\tupdatePermissionLabel: t('core', 'Can change'),\n\t\t\t\tdeletePermissionLabel: t('core', 'Can delete'),\n\t\t\t\tsecureDropLabel: t('core', 'File drop (upload only)'),\n\t\t\t\texpireDateLabel: t('core', 'Set expiration date'),\n\t\t\t\tpasswordLabel: t('core', 'Password protect'),\n\t\t\t\tpasswordByTalkLabel: t('core', 'Password protect by Talk'),\n\t\t\t\tcrudsLabel: t('core', 'Access control'),\n\t\t\t\texpirationDatePlaceholder: t('core', 'Expiration date'),\n\t\t\t\tdefaultExpireDate: moment().add(1, 'day').format('DD-MM-YYYY'), // Can't expire today\n\t\t\t\ttriangleSImage: OC.imagePath('core', 'actions/triangle-s'),\n\t\t\t\tisResharingAllowed: this.configModel.get('isResharingAllowed'),\n\t\t\t\tisPasswordForMailSharesRequired: this.configModel.get('isPasswordForMailSharesRequired'),\n\t\t\t\tsharePermissionPossible: this.model.sharePermissionPossible(),\n\t\t\t\teditPermissionPossible: this.model.editPermissionPossible(),\n\t\t\t\tcreatePermissionPossible: this.model.createPermissionPossible(),\n\t\t\t\tupdatePermissionPossible: this.model.updatePermissionPossible(),\n\t\t\t\tdeletePermissionPossible: this.model.deletePermissionPossible(),\n\t\t\t\tsharePermission: OC.PERMISSION_SHARE,\n\t\t\t\tcreatePermission: OC.PERMISSION_CREATE,\n\t\t\t\tupdatePermission: OC.PERMISSION_UPDATE,\n\t\t\t\tdeletePermission: OC.PERMISSION_DELETE,\n\t\t\t\treadPermission: OC.PERMISSION_READ,\n\t\t\t\tisFolder: this.model.isFolder()\n\t\t\t};\n\t\t},\n\n\t\t/**\n\t\t * get an array of sharees' share properties\n\t\t *\n\t\t * @returns {Array}\n\t\t */\n\t\tgetShareeList: function() {\n\t\t\tvar universal = this.getShareProperties();\n\n\t\t\tif(!this.model.hasUserShares()) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tvar shares = this.model.get('shares');\n\t\t\tvar list = [];\n\t\t\tfor(var index = 0; index < shares.length; index++) {\n\t\t\t\tvar share = this.getShareeObject(index);\n\n\t\t\t\tif (share.shareType === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t// first empty {} is necessary, otherwise we get in trouble\n\t\t\t\t// with references\n\t\t\t\tlist.push(_.extend({}, universal, share));\n\t\t\t}\n\n\t\t\treturn list;\n\t\t},\n\n\t\tgetLinkReshares: function() {\n\t\t\tvar universal = {\n\t\t\t\tunshareLabel: t('core', 'Unshare'),\n\t\t\t};\n\n\t\t\tif(!this.model.hasUserShares()) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tvar shares = this.model.get('shares');\n\t\t\tvar list = [];\n\t\t\tfor(var index = 0; index < shares.length; index++) {\n\t\t\t\tvar share = this.getShareeObject(index);\n\n\t\t\t\tif (share.shareType !== OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\t// first empty {} is necessary, otherwise we get in trouble\n\t\t\t\t// with references\n\t\t\t\tlist.push(_.extend({}, universal, share, {\n\t\t\t\t\tshareInitiator: shares[index].uid_owner,\n\t\t\t\t\tshareInitiatorText: t('core', '{shareInitiatorDisplayName} shared via link', {shareInitiatorDisplayName: shares[index].displayname_owner})\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\treturn list;\n\t\t},\n\n\t\trender: function() {\n\t\t\tif(!this._renderPermissionChange) {\n\t\t\t\tthis.$el.html(this.template({\n\t\t\t\t\tcid: this.cid,\n\t\t\t\t\tsharees: this.getShareeList(),\n\t\t\t\t\tlinkReshares: this.getLinkReshares()\n\t\t\t\t}));\n\n\t\t\t\tthis.$('.avatar').each(function () {\n\t\t\t\t\tvar $this = $(this);\n\n\t\t\t\t\tif ($this.hasClass('imageplaceholderseed')) {\n\t\t\t\t\t\t$this.css({width: 32, height: 32});\n\t\t\t\t\t\tif ($this.data('avatar')) {\n\t\t\t\t\t\t\t$this.css('border-radius', '0%');\n\t\t\t\t\t\t\t$this.css('background', 'url(' + $this.data('avatar') + ') no-repeat');\n\t\t\t\t\t\t\t$this.css('background-size', '31px');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$this.imageplaceholder($this.data('seed'));\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//                         user,   size,  ie8fix, hidedefault,  callback, displayname\n\t\t\t\t\t\t$this.avatar($this.data('username'), 32, undefined, undefined, undefined, $this.data('displayname'));\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tthis.$('.has-tooltip').tooltip({\n\t\t\t\t\tplacement: 'bottom'\n\t\t\t\t});\n\n\t\t\t\tthis.$('ul.shareWithList > li').each(function() {\n\t\t\t\t\tvar $this = $(this);\n\n\t\t\t\t\tvar shareWith = $this.data('share-with');\n\t\t\t\t\tvar shareType = $this.data('share-type');\n\n\t\t\t\t\t$this.find('div.avatar, span.username').contactsMenu(shareWith, shareType, $this);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tvar permissionChangeShareId = parseInt(this._renderPermissionChange, 10);\n\t\t\t\tvar shareWithIndex = this.model.findShareWithIndex(permissionChangeShareId);\n\t\t\t\tvar sharee = this.getShareeObject(shareWithIndex);\n\t\t\t\t$.extend(sharee, this.getShareProperties());\n\t\t\t\tvar $li = this.$('li[data-share-id=' + permissionChangeShareId + ']');\n\t\t\t\t$li.find('.sharingOptionsGroup .popovermenu').replaceWith(this.popoverMenuTemplate(sharee));\n\t\t\t}\n\n\t\t\tvar _this = this;\n\t\t\tthis.getShareeList().forEach(function(sharee) {\n\t\t\t\tvar $edit = _this.$('#canEdit-' + _this.cid + '-' + sharee.shareId);\n\t\t\t\tif($edit.length === 1) {\n\t\t\t\t\t$edit.prop('checked', sharee.editPermissionState === 'checked');\n\t\t\t\t\tif (sharee.isFolder) {\n\t\t\t\t\t\t$edit.prop('indeterminate', sharee.editPermissionState === 'indeterminate');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.$('.popovermenu').on('afterHide', function() {\n\t\t\t\t_this._menuOpen = false;\n\t\t\t});\n\t\t\tthis.$('.popovermenu').on('beforeHide', function() {\n\t\t\t\tvar shareId = parseInt(_this._menuOpen, 10);\n\t\t\t\tif(!_.isNaN(shareId)) {\n\t\t\t\t\tvar datePickerClass = '.expirationDateContainer-' + _this.cid + '-' + shareId;\n\t\t\t\t\tvar datePickerInput = '#expirationDatePicker-' + _this.cid + '-' + shareId;\n\t\t\t\t\tvar expireDateCheckbox = '#expireDate-' + _this.cid + '-' + shareId;\n\t\t\t\t\tif ($(expireDateCheckbox).prop('checked')) {\n\t\t\t\t\t\t$(datePickerInput).removeClass('hidden-visually');\n\t\t\t\t\t\t$(datePickerClass).removeClass('hasDatepicker');\n\t\t\t\t\t\t$(datePickerClass + ' .ui-datepicker').hide();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (this._menuOpen !== false) {\n\t\t\t\t// Open menu again if it was opened before\n\t\t\t\tvar shareId = parseInt(this._menuOpen, 10);\n\t\t\t\tif(!_.isNaN(shareId)) {\n\t\t\t\t\tvar liSelector = 'li[data-share-id=' + shareId + ']';\n\t\t\t\t\tOC.showMenu(null, this.$(liSelector + ' .sharingOptionsGroup .popovermenu'));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._renderPermissionChange = false;\n\n\t\t\t// new note autosize\n\t\t\tautosize(this.$el.find('.share-note-form .share-note'));\n\n\t\t\tthis.delegateEvents();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * @returns {Function} from Handlebars\n\t\t * @private\n\t\t */\n\t\ttemplate: function (data) {\n\t\t\tvar sharees = data.sharees;\n\t\t\tif(_.isArray(sharees)) {\n\t\t\t\tfor (var i = 0; i < sharees.length; i++) {\n\t\t\t\t\tdata.sharees[i].popoverMenu = this.popoverMenuTemplate(sharees[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn OC.Share.Templates['sharedialogshareelistview'](data);\n\t\t},\n\n\t\t/**\n\t\t * renders the popover template and returns the resulting HTML\n\t\t *\n\t\t * @param {Object} data\n\t\t * @returns {string}\n\t\t */\n\t\tpopoverMenuTemplate: function(data) {\n\t\t\treturn OC.Share.Templates['sharedialogshareelistview_popover_menu'](data);\n\t\t},\n\n\t\tshowNoteForm: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $menu = $element.closest('li');\n\t\t\tvar $form = $menu.next('li.share-note-form');\n\n\t\t\t// show elements\n\t\t\t$menu.find('.share-note-delete').toggleClass('hidden');\n\t\t\t$form.toggleClass('hidden');\n\t\t\t$form.find('textarea').focus();\n\t\t},\n\n\t\tdeleteNote: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $menu = $element.closest('li');\n\t\t\tvar $form = $menu.next('li.share-note-form');\n\n\t\t\tconsole.log($form.find('.share-note'));\n\t\t\t$form.find('.share-note').val('');\n\t\t\t\n\t\t\t$form.addClass('hidden');\n\t\t\t$menu.find('.share-note-delete').addClass('hidden');\n\n\t\t\tself.sendNote('', shareId, $menu);\n\t\t},\n\n\t\tupdateNote: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\t\t\tvar $form = $element.closest('li.share-note-form');\n\t\t\tvar $menu = $form.prev('li');\n\t\t\tvar message = $form.find('.share-note').val().trim();\n\n\t\t\tif (message.length < 1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tself.sendNote(message, shareId, $menu);\n\n\t\t},\n\n\t\tsendNote: function(note, shareId, $menu) {\n\t\t\tvar $form = $menu.next('li.share-note-form');\n\t\t\tvar $submit = $form.find('input.share-note-submit');\n\t\t\tvar $error = $form.find('input.share-note-error');\n\n\t\t\t$submit.prop('disabled', true);\n\t\t\t$menu.find('.icon-loading-small').removeClass('hidden');\n\t\t\t$menu.find('.icon-edit').hide();\n\n\t\t\tvar complete = function() {\n\t\t\t\t$submit.prop('disabled', false);\n\t\t\t\t$menu.find('.icon-loading-small').addClass('hidden');\n\t\t\t\t$menu.find('.icon-edit').show();\n\t\t\t};\n\t\t\tvar error = function() {\n\t\t\t\t$error.show();\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t$error.hide();\n\t\t\t\t}, 3000);\n\t\t\t};\n\n\t\t\t// send data\n\t\t\t$.ajax({\n\t\t\t\tmethod: 'PUT',\n\t\t\t\turl: OC.linkToOCS('apps/files_sharing/api/v1/shares',2) + shareId + '?' + OC.buildQueryString({format: 'json'}),\n\t\t\t\tdata: { note: note },\n\t\t\t\tcomplete : complete,\n\t\t\t\terror: error\n\t\t\t});\n\t\t},\n\n\t\tonUnshare: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar self = this;\n\t\t\tvar $element = $(event.target);\n\t\t\tif (!$element.is('a')) {\n\t\t\t\t$element = $element.closest('a');\n\t\t\t}\n\n\t\t\tvar $loading = $element.find('.icon-loading-small').eq(0);\n\t\t\tif(!$loading.hasClass('hidden')) {\n\t\t\t\t// in process\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t$loading.removeClass('hidden');\n\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\n\t\t\tvar shareId = $li.data('share-id');\n\n\t\t\tself.model.removeShare(shareId)\n\t\t\t\t.done(function() {\n\t\t\t\t\t$li.remove();\n\t\t\t\t})\n\t\t\t\t.fail(function() {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'Could not unshare'));\n\t\t\t\t});\n\t\t\treturn false;\n\t\t},\n\n\t\tonToggleMenu: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar $menu = $li.find('.sharingOptionsGroup .popovermenu');\n\n\t\t\tOC.showMenu(null, $menu);\n\t\t\tthis._menuOpen = $li.data('share-id');\n\t\t},\n\n\t\tonExpireDateChange: function(event) {\n\t\t\tvar $element = $(event.target);\n\t\t\tvar li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar datePickerClass = '.expirationDateContainer-' + this.cid + '-' + shareId;\n\t\t\tvar datePicker = $(datePickerClass);\n\t\t\tvar state = $element.prop('checked');\n\t\t\tdatePicker.toggleClass('hidden', !state);\n\t\t\tif (!state) {\n\t\t\t\t// disabled, let's hide the input and\n\t\t\t\t// set the expireDate to nothing\n\t\t\t\t$element.closest('li').next('li').addClass('hidden');\n\t\t\t\tthis.setExpirationDate(shareId, '');\n\t\t\t} else {\n\t\t\t\t// enabled, show the input and the datepicker\n\t\t\t\t$element.closest('li').next('li').removeClass('hidden');\n\t\t\t\tthis.showDatePicker(event);\n\n\t\t\t}\n\t\t},\n\n\t\tshowDatePicker: function(event) {\n\t\t\tvar element = $(event.target);\n\t\t\tvar li = element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar expirationDatePicker = '#expirationDatePicker-' + this.cid + '-' + shareId;\n\t\t\tvar view = this;\n\t\t\t$(expirationDatePicker).datepicker({\n\t\t\t\tdateFormat : 'dd-mm-yy',\n\t\t\t\tonSelect: function (expireDate) {\n\t\t\t\t\tview.setExpirationDate(shareId, expireDate);\n\t\t\t\t}\n\t\t\t});\n\t\t\t$(expirationDatePicker).focus();\n\n\t\t},\n\n\t\tsetExpirationDate: function(shareId, expireDate) {\n\t\t\tthis.model.updateShare(shareId, {expireDate: expireDate}, {});\n\t\t},\n\n\t\tonMailSharePasswordProtectChange: function(event) {\n\t\t\tvar element = $(event.target);\n\t\t\tvar li = element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar passwordContainerClass = '.passwordMenu-' + this.cid + '-' + shareId;\n\t\t\tvar passwordContainer = $(passwordContainerClass);\n\t\t\tvar loading = this.$el.find(passwordContainerClass + ' .icon-loading-small');\n\t\t\tvar inputClass = '#passwordField-' + this.cid + '-' + shareId;\n\t\t\tvar passwordField = $(inputClass);\n\t\t\tvar state = element.prop('checked');\n\t\t\tvar passwordByTalkElement = $('#passwordByTalk-' + this.cid + '-' + shareId);\n\t\t\tvar passwordByTalkState = passwordByTalkElement.prop('checked');\n\t\t\tif (!state && !passwordByTalkState) {\n\t\t\t\tthis.model.updateShare(shareId, {password: '', sendPasswordByTalk: false});\n\t\t\t\tpasswordField.attr('value', '');\n\t\t\t\tpasswordField.removeClass('error');\n\t\t\t\tpasswordField.tooltip('hide');\n\t\t\t\tloading.addClass('hidden');\n\t\t\t\tpasswordField.attr('placeholder', PASSWORD_PLACEHOLDER_MESSAGE);\n\t\t\t\t// We first need to reset the password field before we hide it\n\t\t\t\tpasswordContainer.toggleClass('hidden', !state);\n\t\t\t} else if (state) {\n\t\t\t\tif (passwordByTalkState) {\n\t\t\t\t\t// Switching from sending the password by Talk to sending\n\t\t\t\t\t// the password by mail can be done keeping the previous\n\t\t\t\t\t// password sent by Talk.\n\t\t\t\t\tthis.model.updateShare(shareId, {sendPasswordByTalk: false});\n\n\t\t\t\t\tvar passwordByTalkContainerClass = '.passwordByTalkMenu-' + this.cid + '-' + shareId;\n\t\t\t\t\tvar passwordByTalkContainer = $(passwordByTalkContainerClass);\n\t\t\t\t\tpasswordByTalkContainer.addClass('hidden');\n\t\t\t\t\tpasswordByTalkElement.prop('checked', false);\n\t\t\t\t}\n\n\t\t\t\tpasswordContainer.toggleClass('hidden', !state);\n\t\t\t\tpasswordField = '#passwordField-' + this.cid + '-' + shareId;\n\t\t\t\tthis.$(passwordField).focus();\n\t\t\t}\n\t\t},\n\n\t\tonMailSharePasswordProtectByTalkChange: function(event) {\n\t\t\tvar element = $(event.target);\n\t\t\tvar li = element.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar passwordByTalkContainerClass = '.passwordByTalkMenu-' + this.cid + '-' + shareId;\n\t\t\tvar passwordByTalkContainer = $(passwordByTalkContainerClass);\n\t\t\tvar loading = this.$el.find(passwordByTalkContainerClass + ' .icon-loading-small');\n\t\t\tvar inputClass = '#passwordByTalkField-' + this.cid + '-' + shareId;\n\t\t\tvar passwordByTalkField = $(inputClass);\n\t\t\tvar state = element.prop('checked');\n\t\t\tvar passwordElement = $('#password-' + this.cid + '-' + shareId);\n\t\t\tvar passwordState = passwordElement.prop('checked');\n\t\t\tif (!state) {\n\t\t\t\tthis.model.updateShare(shareId, {password: '', sendPasswordByTalk: false});\n\t\t\t\tpasswordByTalkField.attr('value', '');\n\t\t\t\tpasswordByTalkField.removeClass('error');\n\t\t\t\tpasswordByTalkField.tooltip('hide');\n\t\t\t\tloading.addClass('hidden');\n\t\t\t\tpasswordByTalkField.attr('placeholder', PASSWORD_PLACEHOLDER_MESSAGE);\n\t\t\t\t// We first need to reset the password field before we hide it\n\t\t\t\tpasswordByTalkContainer.toggleClass('hidden', !state);\n\t\t\t} else if (state) {\n\t\t\t\tif (passwordState) {\n\t\t\t\t\t// Enabling sending the password by Talk requires a new\n\t\t\t\t\t// password to be given (the one sent by mail is not reused,\n\t\t\t\t\t// as it would defeat the purpose of checking the identity\n\t\t\t\t\t// of the sharee by Talk if it was already sent by mail), so\n\t\t\t\t\t// the share is not updated until the user explicitly gives\n\t\t\t\t\t// the new password.\n\n\t\t\t\t\tvar passwordContainerClass = '.passwordMenu-' + this.cid + '-' + shareId;\n\t\t\t\t\tvar passwordContainer = $(passwordContainerClass);\n\t\t\t\t\tpasswordContainer.addClass('hidden');\n\t\t\t\t\tpasswordElement.prop('checked', false);\n\t\t\t\t}\n\n\t\t\t\tpasswordByTalkContainer.toggleClass('hidden', !state);\n\t\t\t\tpasswordByTalkField = '#passwordByTalkField-' + this.cid + '-' + shareId;\n\t\t\t\tthis.$(passwordByTalkField).focus();\n\t\t\t}\n\t\t},\n\n\t\tonMailSharePasswordKeyUp: function(event) {\n\t\t\tif(event.keyCode === 13) {\n\t\t\t\tthis.onMailSharePasswordEntered(event);\n\t\t\t}\n\t\t},\n\n\t\tonMailSharePasswordEntered: function(event) {\n\t\t\tvar passwordField = $(event.target);\n\t\t\tvar li = passwordField.closest('li[data-share-id]');\n\t\t\tvar shareId = li.data('share-id');\n\t\t\tvar passwordContainerClass = '.passwordMenu-' + this.cid + '-' + shareId;\n\t\t\tvar passwordByTalkContainerClass = '.passwordByTalkMenu-' + this.cid + '-' + shareId;\n\t\t\tvar sendPasswordByTalk = passwordField.attr('id').startsWith('passwordByTalk');\n\t\t\tvar loading;\n\t\t\tif (sendPasswordByTalk) {\n\t\t\t\tloading = this.$el.find(passwordByTalkContainerClass + ' .icon-loading-small');\n\t\t\t} else {\n\t\t\t\tloading = this.$el.find(passwordContainerClass + ' .icon-loading-small');\n\t\t\t}\n\t\t\tif (!loading.hasClass('hidden')) {\n\t\t\t\t// still in process\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tpasswordField.removeClass('error');\n\t\t\tvar password = passwordField.val();\n\t\t\t// in IE9 the password might be the placeholder due to bugs in the placeholders polyfill\n\t\t\tif(password === '' || password === PASSWORD_PLACEHOLDER || password === PASSWORD_PLACEHOLDER_MESSAGE) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tloading\n\t\t\t\t.removeClass('hidden')\n\t\t\t\t.addClass('inlineblock');\n\n\n\t\t\tthis.model.updateShare(shareId, {\n\t\t\t\tpassword: password,\n\t\t\t\tsendPasswordByTalk: sendPasswordByTalk\n\t\t\t}, {\n\t\t\t\terror: function(model, msg) {\n\t\t\t\t\t// destroy old tooltips\n\t\t\t\t\tpasswordField.tooltip('destroy');\n\t\t\t\t\tloading.removeClass('inlineblock').addClass('hidden');\n\t\t\t\t\tpasswordField.addClass('error');\n\t\t\t\t\tpasswordField.attr('title', msg);\n\t\t\t\t\tpasswordField.tooltip({placement: 'bottom', trigger: 'manual'});\n\t\t\t\t\tpasswordField.tooltip('show');\n\t\t\t\t},\n\t\t\t\tsuccess: function(model, msg) {\n\t\t\t\t\tpasswordField.blur();\n\t\t\t\t\tpasswordField.attr('value', '');\n\t\t\t\t\tpasswordField.attr('placeholder', PASSWORD_PLACEHOLDER);\n\t\t\t\t\tloading.removeClass('inlineblock').addClass('hidden');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tonPermissionChange: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\n\t\t\tvar permissions = OC.PERMISSION_READ;\n\n\t\t\tif (this.model.isFolder()) {\n\t\t\t\t// adjust checkbox states\n\t\t\t\tvar $checkboxes = $('.permissions', $li).not('input[name=\"edit\"]').not('input[name=\"share\"]');\n\t\t\t\tvar checked;\n\t\t\t\tif ($element.attr('name') === 'edit') {\n\t\t\t\t\tchecked = $element.is(':checked');\n\t\t\t\t\t// Check/uncheck Create, Update, and Delete checkboxes if Edit is checked/unck\n\t\t\t\t\t$($checkboxes).prop('checked', checked);\n\t\t\t\t\tif (checked) {\n\t\t\t\t\t\tpermissions |= OC.PERMISSION_CREATE | OC.PERMISSION_UPDATE | OC.PERMISSION_DELETE;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar numberChecked = $checkboxes.filter(':checked').length;\n\t\t\t\t\tchecked = numberChecked === $checkboxes.length;\n\t\t\t\t\tvar $editCb = $('input[name=\"edit\"]', $li);\n\t\t\t\t\t$editCb.prop('checked', checked);\n\t\t\t\t\t$editCb.prop('indeterminate', !checked && numberChecked > 0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($element.attr('name') === 'edit' && $element.is(':checked')) {\n\t\t\t\t\tpermissions |= OC.PERMISSION_UPDATE;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$('.permissions', $li).not('input[name=\"edit\"]').filter(':checked').each(function(index, checkbox) {\n\t\t\t\tpermissions |= $(checkbox).data('permissions');\n\t\t\t});\n\n\n\t\t\t/** disable checkboxes during save operation to avoid race conditions **/\n\t\t\t$li.find('input[type=checkbox]').prop('disabled', true);\n\t\t\tvar enableCb = function() {\n\t\t\t\t$li.find('input[type=checkbox]').prop('disabled', false);\n\t\t\t};\n\t\t\tvar errorCb = function(elem, msg) {\n\t\t\t\tOC.dialogs.alert(msg, t('core', 'Error while sharing'));\n\t\t\t\tenableCb();\n\t\t\t};\n\n\t\t\tthis.model.updateShare(shareId, {permissions: permissions}, {error: errorCb, success: enableCb});\n\n\t\t\tthis._renderPermissionChange = shareId;\n\t\t},\n\n\t\tonSecureDropChange: function(event) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tvar $element = $(event.target);\n\t\t\tvar $li = $element.closest('li[data-share-id]');\n\t\t\tvar shareId = $li.data('share-id');\n\n\t\t\tvar permissions = OC.PERMISSION_CREATE | OC.PERMISSION_UPDATE | OC.PERMISSION_DELETE | OC.PERMISSION_READ;\n\t\t\tif ($element.is(':checked')) {\n\t\t\t\tpermissions = OC.PERMISSION_CREATE | OC.PERMISSION_UPDATE | OC.PERMISSION_DELETE;\n\t\t\t}\n\n\t\t\t/** disable checkboxes during save operation to avoid race conditions **/\n\t\t\t$li.find('input[type=checkbox]').prop('disabled', true);\n\t\t\tvar enableCb = function() {\n\t\t\t\t$li.find('input[type=checkbox]').prop('disabled', false);\n\t\t\t};\n\t\t\tvar errorCb = function(elem, msg) {\n\t\t\t\tOC.dialogs.alert(msg, t('core', 'Error while sharing'));\n\t\t\t\tenableCb();\n\t\t\t};\n\n\t\t\tthis.model.updateShare(shareId, {permissions: permissions}, {error: errorCb, success: enableCb});\n\n\t\t\tthis._renderPermissionChange = shareId;\n\t\t}\n\n\t});\n\n\tOC.Share.ShareDialogShareeListView = ShareDialogShareeListView;\n\n})();\n","/*\n * Copyright (c) 2015\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\n/* globals Handlebars */\n\n(function() {\n\tif(!OC.Share) {\n\t\tOC.Share = {};\n\t}\n\n\t/**\n\t * @class OCA.Share.ShareDialogView\n\t * @member {OC.Share.ShareItemModel} model\n\t * @member {jQuery} $el\n\t * @memberof OCA.Sharing\n\t * @classdesc\n\t *\n\t * Represents the GUI of the share dialogue\n\t *\n\t */\n\tvar ShareDialogView = OC.Backbone.View.extend({\n\t\t/** @type {Object} **/\n\t\t_templates: {},\n\n\t\t/** @type {boolean} **/\n\t\t_showLink: true,\n\n\t\t_lookup: false,\n\n\t\t_lookupAllowed: false,\n\n\t\t/** @type {string} **/\n\t\ttagName: 'div',\n\n\t\t/** @type {OC.Share.ShareConfigModel} **/\n\t\tconfigModel: undefined,\n\n\t\t/** @type {object} **/\n\t\tresharerInfoView: undefined,\n\n\t\t/** @type {object} **/\n\t\tlinkShareView: undefined,\n\n\t\t/** @type {object} **/\n\t\tshareeListView: undefined,\n\n\t\t/** @type {object} **/\n\t\t_lastSuggestions: undefined,\n\n\t\t/** @type {object} **/\n\t\t_lastRecommendations: undefined,\n\n\t\t/** @type {int} **/\n\t\t_pendingOperationsCount: 0,\n\n\t\tevents: {\n\t\t\t'focus .shareWithField': 'onShareWithFieldFocus',\n\t\t\t'input .shareWithField': 'onShareWithFieldChanged',\n\t\t\t'click .shareWithConfirm': '_confirmShare'\n\t\t},\n\n\t\tinitialize: function(options) {\n\t\t\tvar view = this;\n\n\t\t\tthis.model.on('fetchError', function() {\n\t\t\t\tOC.Notification.showTemporary(t('core', 'Share details could not be loaded for this item.'));\n\t\t\t});\n\n\t\t\tif(!_.isUndefined(options.configModel)) {\n\t\t\t\tthis.configModel = options.configModel;\n\t\t\t} else {\n\t\t\t\tthrow 'missing OC.Share.ShareConfigModel';\n\t\t\t}\n\n\t\t\tthis.configModel.on('change:isRemoteShareAllowed', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\t\t\tthis.configModel.on('change:isRemoteGroupShareAllowed', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\t\t\tthis.model.on('change:permissions', function() {\n\t\t\t\tview.render();\n\t\t\t});\n\n\t\t\tthis.model.on('request', this._onRequest, this);\n\t\t\tthis.model.on('sync', this._onEndRequest, this);\n\n\t\t\tvar subViewOptions = {\n\t\t\t\tmodel: this.model,\n\t\t\t\tconfigModel: this.configModel\n\t\t\t};\n\n\t\t\tvar subViews = {\n\t\t\t\tresharerInfoView: 'ShareDialogResharerInfoView',\n\t\t\t\tlinkShareView: 'ShareDialogLinkShareView',\n\t\t\t\tshareeListView: 'ShareDialogShareeListView'\n\t\t\t};\n\n\t\t\tfor(var name in subViews) {\n\t\t\t\tvar className = subViews[name];\n\t\t\t\tthis[name] = _.isUndefined(options[name])\n\t\t\t\t\t? new OC.Share[className](subViewOptions)\n\t\t\t\t\t: options[name];\n\t\t\t}\n\n\t\t\t_.bindAll(this,\n\t\t\t\t'autocompleteHandler',\n\t\t\t\t'_onSelectRecipient',\n\t\t\t\t'onShareWithFieldChanged',\n\t\t\t\t'onShareWithFieldFocus'\n\t\t\t);\n\n\t\t\tOC.Plugins.attach('OC.Share.ShareDialogView', this);\n\t\t},\n\n\t\tonShareWithFieldChanged: function() {\n\t\t\tvar $el = this.$el.find('.shareWithField');\n\t\t\tif ($el.val().length < 2) {\n\t\t\t\t$el.removeClass('error').tooltip('hide');\n\t\t\t}\n\t\t},\n\n\t\t/* trigger search after the field was re-selected */\n\t\tonShareWithFieldFocus: function() {\n\t\t\tvar $shareWithField = this.$el.find('.shareWithField');\n\t\t\t$shareWithField.autocomplete(\"search\", $shareWithField.val());\n\t\t},\n\n\t\t_getSuggestions: function(searchTerm, perPage, model, lookup) {\n\t\t\tif (this._lastSuggestions &&\n\t\t\t\tthis._lastSuggestions.searchTerm === searchTerm &&\n\t\t\t\tthis._lastSuggestions.lookup === lookup &&\n\t\t\t\tthis._lastSuggestions.perPage === perPage &&\n\t\t\t\tthis._lastSuggestions.model === model) {\n\t\t\t\treturn this._lastSuggestions.promise;\n\t\t\t}\n\n\t\t\tvar deferred = $.Deferred();\n\t\t\tvar view = this;\n\n\t\t\t$.get(\n\t\t\t\tOC.linkToOCS('apps/files_sharing/api/v1') + 'sharees',\n\t\t\t\t{\n\t\t\t\t\tformat: 'json',\n\t\t\t\t\tsearch: searchTerm,\n\t\t\t\t\tlookup: lookup,\n\t\t\t\t\tperPage: perPage,\n\t\t\t\t\titemType: model.get('itemType')\n\t\t\t\t},\n\t\t\t\tfunction (result) {\n\t\t\t\t\tif (result.ocs.meta.statuscode === 100) {\n\t\t\t\t\t\tvar filter = function(users, groups, remotes, remote_groups, emails, circles, rooms) {\n\t\t\t\t\t\t\tif (typeof(emails) === 'undefined') {\n\t\t\t\t\t\t\t\temails = [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof(circles) === 'undefined') {\n\t\t\t\t\t\t\t\tcircles = [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof(rooms) === 'undefined') {\n\t\t\t\t\t\t\t\trooms = [];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar usersLength;\n\t\t\t\t\t\t\tvar groupsLength;\n\t\t\t\t\t\t\tvar remotesLength;\n\t\t\t\t\t\t\tvar remoteGroupsLength;\n\t\t\t\t\t\t\tvar emailsLength;\n\t\t\t\t\t\t\tvar circlesLength;\n\t\t\t\t\t\t\tvar roomsLength;\n\n\t\t\t\t\t\t\tvar i, j;\n\n\t\t\t\t\t\t\t//Filter out the current user\n\t\t\t\t\t\t\tusersLength = users.length;\n\t\t\t\t\t\t\tfor (i = 0; i < usersLength; i++) {\n\t\t\t\t\t\t\t\tif (users[i].value.shareWith === OC.currentUser) {\n\t\t\t\t\t\t\t\t\tusers.splice(i, 1);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Filter out the owner of the share\n\t\t\t\t\t\t\tif (model.hasReshare()) {\n\t\t\t\t\t\t\t\tusersLength = users.length;\n\t\t\t\t\t\t\t\tfor (i = 0 ; i < usersLength; i++) {\n\t\t\t\t\t\t\t\t\tif (users[i].value.shareWith === model.getReshareOwner()) {\n\t\t\t\t\t\t\t\t\t\tusers.splice(i, 1);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar shares = model.get('shares');\n\t\t\t\t\t\t\tvar sharesLength = shares.length;\n\n\t\t\t\t\t\t\t// Now filter out all sharees that are already shared with\n\t\t\t\t\t\t\tfor (i = 0; i < sharesLength; i++) {\n\t\t\t\t\t\t\t\tvar share = shares[i];\n\n\t\t\t\t\t\t\t\tif (share.share_type === OC.Share.SHARE_TYPE_USER) {\n\t\t\t\t\t\t\t\t\tusersLength = users.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < usersLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (users[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tusers.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\t\t\t\t\t\tgroupsLength = groups.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < groupsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (groups[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tgroups.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\t\t\t\t\t\tremotesLength = remotes.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < remotesLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (remotes[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tremotes.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_REMOTE_GROUP) {\n\t\t\t\t\t\t\t\t\tremoteGroupsLength = remote_groups.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < remoteGroupsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (remote_groups[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tremote_groups.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\t\t\t\t\t\temailsLength = emails.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < emailsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (emails[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\temails.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\t\t\t\t\t\tcirclesLength = circles.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < circlesLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (circles[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tcircles.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\t\t\t\t\t\troomsLength = rooms.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < roomsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (rooms[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\trooms.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tfilter(\n\t\t\t\t\t\t\tresult.ocs.data.exact.users,\n\t\t\t\t\t\t\tresult.ocs.data.exact.groups,\n\t\t\t\t\t\t\tresult.ocs.data.exact.remotes,\n\t\t\t\t\t\t\tresult.ocs.data.exact.remote_groups,\n\t\t\t\t\t\t\tresult.ocs.data.exact.emails,\n\t\t\t\t\t\t\tresult.ocs.data.exact.circles,\n\t\t\t\t\t\t\tresult.ocs.data.exact.rooms\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tvar exactUsers   = result.ocs.data.exact.users;\n\t\t\t\t\t\tvar exactGroups  = result.ocs.data.exact.groups;\n\t\t\t\t\t\tvar exactRemotes = result.ocs.data.exact.remotes;\n\t\t\t\t\t\tvar exactRemoteGroups = result.ocs.data.exact.remote_groups;\n\t\t\t\t\t\tvar exactEmails = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.emails) !== 'undefined') {\n\t\t\t\t\t\t\texactEmails = result.ocs.data.exact.emails;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar exactCircles = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.circles) !== 'undefined') {\n\t\t\t\t\t\t\texactCircles = result.ocs.data.exact.circles;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar exactRooms = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.rooms) !== 'undefined') {\n\t\t\t\t\t\t\texactRooms = result.ocs.data.exact.rooms;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar exactMatches = exactUsers.concat(exactGroups).concat(exactRemotes).concat(exactRemoteGroups).concat(exactEmails).concat(exactCircles).concat(exactRooms);\n\n\t\t\t\t\t\tfilter(\n\t\t\t\t\t\t\tresult.ocs.data.users,\n\t\t\t\t\t\t\tresult.ocs.data.groups,\n\t\t\t\t\t\t\tresult.ocs.data.remotes,\n\t\t\t\t\t\t\tresult.ocs.data.remote_groups,\n\t\t\t\t\t\t\tresult.ocs.data.emails,\n\t\t\t\t\t\t\tresult.ocs.data.circles,\n\t\t\t\t\t\t\tresult.ocs.data.rooms\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tvar users   = result.ocs.data.users;\n\t\t\t\t\t\tvar groups  = result.ocs.data.groups;\n\t\t\t\t\t\tvar remotes = result.ocs.data.remotes;\n\t\t\t\t\t\tvar remoteGroups = result.ocs.data.remote_groups;\n\t\t\t\t\t\tvar lookup = result.ocs.data.lookup;\n\t\t\t\t\t\tvar lookupEnabled = result.ocs.data.lookupEnabled;\n\t\t\t\t\t\tvar emails = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.emails) !== 'undefined') {\n\t\t\t\t\t\t\temails = result.ocs.data.emails;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar circles = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.circles) !== 'undefined') {\n\t\t\t\t\t\t\tcircles = result.ocs.data.circles;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar rooms = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.rooms) !== 'undefined') {\n\t\t\t\t\t\t\trooms = result.ocs.data.rooms;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar suggestions = exactMatches.concat(users).concat(groups).concat(remotes).concat(remoteGroups).concat(emails).concat(circles).concat(rooms).concat(lookup);\n\n\t\t\t\t\t\tfunction dynamicSort(property) {\n\t\t\t\t\t\t\treturn function (a,b) {\n\t\t\t\t\t\t\t\tvar aProperty = '';\n\t\t\t\t\t\t\t\tvar bProperty = '';\n\t\t\t\t\t\t\t\tif (typeof a[property] !== 'undefined') {\n\t\t\t\t\t\t\t\t\taProperty = a[property];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (typeof b[property] !== 'undefined') {\n\t\t\t\t\t\t\t\t\tbProperty = b[property];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn (aProperty < bProperty) ? -1 : (aProperty > bProperty) ? 1 : 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Sort share entries by uuid to properly group them\n\t\t\t\t\t\t */\n\t\t\t\t\t\tvar grouped = suggestions.sort(dynamicSort('uuid'));\n\n\t\t\t\t\t\tvar previousUuid = null;\n\t\t\t\t\t\tvar groupedLength = grouped.length;\n\t\t\t\t\t\tvar result = [];\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * build the result array that only contains all contact entries from\n\t\t\t\t\t\t * merged contacts, if the search term matches its contact name\n\t\t\t\t\t\t */\n\t\t\t\t\t\tfor (var i = 0; i < groupedLength; i++) {\n\t\t\t\t\t\t\tif (typeof grouped[i].uuid !== 'undefined' && grouped[i].uuid === previousUuid) {\n\t\t\t\t\t\t\t\tgrouped[i].merged = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (searchTerm === grouped[i].name || typeof grouped[i].merged === 'undefined') {\n\t\t\t\t\t\t\t\tresult.push(grouped[i]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpreviousUuid = grouped[i].uuid;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar moreResultsAvailable =\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\toc_config['sharing.maxAutocompleteResults'] > 0\n\t\t\t\t\t\t\t\t&& Math.min(perPage, oc_config['sharing.maxAutocompleteResults'])\n\t\t\t\t\t\t\t\t\t<= Math.max(\n\t\t\t\t\t\t\t\t\t\tusers.length + exactUsers.length,\n\t\t\t\t\t\t\t\t\t\tgroups.length + exactGroups.length,\n\t\t\t\t\t\t\t\t\t\tremoteGroups.length + exactRemoteGroups.length,\n\t\t\t\t\t\t\t\t\t\tremotes.length + exactRemotes.length,\n\t\t\t\t\t\t\t\t\t\temails.length + exactEmails.length,\n\t\t\t\t\t\t\t\t\t\tcircles.length + exactCircles.length,\n\t\t\t\t\t\t\t\t\t\trooms.length + exactRooms.length,\n\t\t\t\t\t\t\t\t\t\tlookup.length\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\tif (!view._lookup && lookupEnabled) {\n\t\t\t\t\t\t\tresult.push(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: t('core', 'Search globally'),\n\t\t\t\t\t\t\t\t\tvalue: {},\n\t\t\t\t\t\t\t\t\tlookup: true\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdeferred.resolve(result, exactMatches, moreResultsAvailable, lookupEnabled);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdeferred.reject(result.ocs.meta.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t).fail(function() {\n\t\t\t\tdeferred.reject();\n\t\t\t});\n\n\t\t\tthis._lastSuggestions = {\n\t\t\t\tsearchTerm: searchTerm,\n\t\t\t\tlookup: lookup,\n\t\t\t\tperPage: perPage,\n\t\t\t\tmodel: model,\n\t\t\t\tpromise: deferred.promise()\n\t\t\t};\n\n\t\t\treturn this._lastSuggestions.promise;\n\t\t},\n\n\t\t_getRecommendations: function(model) {\n\t\t\tif (this._lastRecommendations &&\n\t\t\t\tthis._lastRecommendations.model === model) {\n\t\t\t\treturn this._lastRecommendations.promise;\n\t\t\t}\n\n\t\t\tvar deferred = $.Deferred();\n\n\t\t\t$.get(\n\t\t\t\tOC.linkToOCS('apps/files_sharing/api/v1') + 'sharees_recommended',\n\t\t\t\t{\n\t\t\t\t\tformat: 'json',\n\t\t\t\t\titemType: model.get('itemType')\n\t\t\t\t},\n\t\t\t\tfunction (result) {\n\t\t\t\t\tif (result.ocs.meta.statuscode === 100) {\n\t\t\t\t\t\tvar filter = function(users, groups, remotes, remote_groups, emails, circles, rooms) {\n\t\t\t\t\t\t\tif (typeof(emails) === 'undefined') {\n\t\t\t\t\t\t\t\temails = [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof(circles) === 'undefined') {\n\t\t\t\t\t\t\t\tcircles = [];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof(rooms) === 'undefined') {\n\t\t\t\t\t\t\t\trooms = [];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar usersLength;\n\t\t\t\t\t\t\tvar groupsLength;\n\t\t\t\t\t\t\tvar remotesLength;\n\t\t\t\t\t\t\tvar remoteGroupsLength;\n\t\t\t\t\t\t\tvar emailsLength;\n\t\t\t\t\t\t\tvar circlesLength;\n\t\t\t\t\t\t\tvar roomsLength;\n\n\t\t\t\t\t\t\tvar i, j;\n\n\t\t\t\t\t\t\t//Filter out the current user\n\t\t\t\t\t\t\tusersLength = users.length;\n\t\t\t\t\t\t\tfor (i = 0; i < usersLength; i++) {\n\t\t\t\t\t\t\t\tif (users[i].value.shareWith === OC.currentUser) {\n\t\t\t\t\t\t\t\t\tusers.splice(i, 1);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Filter out the owner of the share\n\t\t\t\t\t\t\tif (model.hasReshare()) {\n\t\t\t\t\t\t\t\tusersLength = users.length;\n\t\t\t\t\t\t\t\tfor (i = 0 ; i < usersLength; i++) {\n\t\t\t\t\t\t\t\t\tif (users[i].value.shareWith === model.getReshareOwner()) {\n\t\t\t\t\t\t\t\t\t\tusers.splice(i, 1);\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar shares = model.get('shares');\n\t\t\t\t\t\t\tvar sharesLength = shares.length;\n\n\t\t\t\t\t\t\t// Now filter out all sharees that are already shared with\n\t\t\t\t\t\t\tfor (i = 0; i < sharesLength; i++) {\n\t\t\t\t\t\t\t\tvar share = shares[i];\n\n\t\t\t\t\t\t\t\tif (share.share_type === OC.Share.SHARE_TYPE_USER) {\n\t\t\t\t\t\t\t\t\tusersLength = users.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < usersLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (users[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tusers.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\t\t\t\t\t\tgroupsLength = groups.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < groupsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (groups[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tgroups.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\t\t\t\t\t\tremotesLength = remotes.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < remotesLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (remotes[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tremotes.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_REMOTE_GROUP) {\n\t\t\t\t\t\t\t\t\tremoteGroupsLength = remote_groups.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < remoteGroupsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (remote_groups[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tremote_groups.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\t\t\t\t\t\temailsLength = emails.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < emailsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (emails[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\temails.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\t\t\t\t\t\tcirclesLength = circles.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < circlesLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (circles[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\tcircles.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (share.share_type === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\t\t\t\t\t\troomsLength = rooms.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < roomsLength; j++) {\n\t\t\t\t\t\t\t\t\t\tif (rooms[j].value.shareWith === share.share_with) {\n\t\t\t\t\t\t\t\t\t\t\trooms.splice(j, 1);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tfilter(\n\t\t\t\t\t\t\tresult.ocs.data.exact.users,\n\t\t\t\t\t\t\tresult.ocs.data.exact.groups,\n\t\t\t\t\t\t\tresult.ocs.data.exact.remotes,\n\t\t\t\t\t\t\tresult.ocs.data.exact.remote_groups,\n\t\t\t\t\t\t\tresult.ocs.data.exact.emails,\n\t\t\t\t\t\t\tresult.ocs.data.exact.circles,\n\t\t\t\t\t\t\tresult.ocs.data.exact.rooms\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tvar exactUsers   = result.ocs.data.exact.users;\n\t\t\t\t\t\tvar exactGroups  = result.ocs.data.exact.groups;\n\t\t\t\t\t\tvar exactRemotes = result.ocs.data.exact.remotes || [];\n\t\t\t\t\t\tvar exactRemoteGroups = result.ocs.data.exact.remote_groups || [];\n\t\t\t\t\t\tvar exactEmails = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.emails) !== 'undefined') {\n\t\t\t\t\t\t\texactEmails = result.ocs.data.exact.emails;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar exactCircles = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.circles) !== 'undefined') {\n\t\t\t\t\t\t\texactCircles = result.ocs.data.exact.circles;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar exactRooms = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.rooms) !== 'undefined') {\n\t\t\t\t\t\t\texactRooms = result.ocs.data.exact.rooms;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar exactMatches = exactUsers.concat(exactGroups).concat(exactRemotes).concat(exactRemoteGroups).concat(exactEmails).concat(exactCircles).concat(exactRooms);\n\n\t\t\t\t\t\tfilter(\n\t\t\t\t\t\t\tresult.ocs.data.users,\n\t\t\t\t\t\t\tresult.ocs.data.groups,\n\t\t\t\t\t\t\tresult.ocs.data.remotes,\n\t\t\t\t\t\t\tresult.ocs.data.remote_groups,\n\t\t\t\t\t\t\tresult.ocs.data.emails,\n\t\t\t\t\t\t\tresult.ocs.data.circles,\n\t\t\t\t\t\t\tresult.ocs.data.rooms\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tvar users   = result.ocs.data.users;\n\t\t\t\t\t\tvar groups  = result.ocs.data.groups;\n\t\t\t\t\t\tvar remotes = result.ocs.data.remotes || [];\n\t\t\t\t\t\tvar remoteGroups = result.ocs.data.remote_groups || [];\n\t\t\t\t\t\tvar lookup = result.ocs.data.lookup || [];\n\t\t\t\t\t\tvar emails = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.emails) !== 'undefined') {\n\t\t\t\t\t\t\temails = result.ocs.data.emails;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar circles = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.circles) !== 'undefined') {\n\t\t\t\t\t\t\tcircles = result.ocs.data.circles;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar rooms = [];\n\t\t\t\t\t\tif (typeof(result.ocs.data.rooms) !== 'undefined') {\n\t\t\t\t\t\t\trooms = result.ocs.data.rooms;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar suggestions = exactMatches.concat(users).concat(groups).concat(remotes).concat(remoteGroups).concat(emails).concat(circles).concat(rooms).concat(lookup);\n\n\t\t\t\t\t\tfunction dynamicSort(property) {\n\t\t\t\t\t\t\treturn function (a,b) {\n\t\t\t\t\t\t\t\tvar aProperty = '';\n\t\t\t\t\t\t\t\tvar bProperty = '';\n\t\t\t\t\t\t\t\tif (typeof a[property] !== 'undefined') {\n\t\t\t\t\t\t\t\t\taProperty = a[property];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (typeof b[property] !== 'undefined') {\n\t\t\t\t\t\t\t\t\tbProperty = b[property];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn (aProperty < bProperty) ? -1 : (aProperty > bProperty) ? 1 : 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Sort share entries by uuid to properly group them\n\t\t\t\t\t\t */\n\t\t\t\t\t\tvar grouped = suggestions.sort(dynamicSort('uuid'));\n\n\t\t\t\t\t\tvar previousUuid = null;\n\t\t\t\t\t\tvar groupedLength = grouped.length;\n\t\t\t\t\t\tvar result = [];\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * build the result array that only contains all contact entries from\n\t\t\t\t\t\t * merged contacts, if the search term matches its contact name\n\t\t\t\t\t\t */\n\t\t\t\t\t\tfor (var i = 0; i < groupedLength; i++) {\n\t\t\t\t\t\t\tif (typeof grouped[i].uuid !== 'undefined' && grouped[i].uuid === previousUuid) {\n\t\t\t\t\t\t\t\tgrouped[i].merged = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof grouped[i].merged === 'undefined') {\n\t\t\t\t\t\t\t\tresult.push(grouped[i]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpreviousUuid = grouped[i].uuid;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar moreResultsAvailable =\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\toc_config['sharing.maxAutocompleteResults'] > 0\n\t\t\t\t\t\t\t\t&& Math.min(perPage, oc_config['sharing.maxAutocompleteResults'])\n\t\t\t\t\t\t\t\t<= Math.max(\n\t\t\t\t\t\t\t\t\tusers.length + exactUsers.length,\n\t\t\t\t\t\t\t\t\tgroups.length + exactGroups.length,\n\t\t\t\t\t\t\t\t\tremoteGroups.length + exactRemoteGroups.length,\n\t\t\t\t\t\t\t\t\tremotes.length + exactRemotes.length,\n\t\t\t\t\t\t\t\t\temails.length + exactEmails.length,\n\t\t\t\t\t\t\t\t\tcircles.length + exactCircles.length,\n\t\t\t\t\t\t\t\t\trooms.length + exactRooms.length,\n\t\t\t\t\t\t\t\t\tlookup.length\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\tdeferred.resolve(result, exactMatches, moreResultsAvailable);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdeferred.reject(result.ocs.meta.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t).fail(function() {\n\t\t\t\tdeferred.reject();\n\t\t\t});\n\n\t\t\tthis._lastRecommendations = {\n\t\t\t\tmodel: model,\n\t\t\t\tpromise: deferred.promise()\n\t\t\t};\n\n\t\t\treturn this._lastRecommendations.promise;\n\t\t},\n\n\t\trecommendationHandler: function (response) {\n\t\t\tvar view = this;\n\t\t\tvar $shareWithField = $('.shareWithField');\n\t\t\tthis._getRecommendations(\n\t\t\t\tview.model\n\t\t\t).done(function(suggestions) {\n\t\t\t\tconsole.info('recommendations', suggestions);\n\t\t\t\tif (suggestions.length > 0) {\n\t\t\t\t\t$shareWithField\n\t\t\t\t\t\t.autocomplete(\"option\", \"autoFocus\", true);\n\n\t\t\t\t\tresponse(suggestions);\n\t\t\t\t} else {\n\t\t\t\t\tconsole.info('no sharing recommendations found');\n\t\t\t\t\tresponse();\n\t\t\t\t}\n\t\t\t}).fail(function(message) {\n\t\t\t\tconsole.error('could not load recommendations', message)\n\t\t\t});\n\t\t},\n\n\t\tautocompleteHandler: function (search, response) {\n\t\t\t// If nothing is entered we show recommendations instead of search\n\t\t\t// results\n\t\t\tif (search.term.length === 0) {\n\t\t\t\tconsole.info(search.term, 'empty search term -> using recommendations');\n\t\t\t\tthis.recommendationHandler(response);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar $shareWithField = $('.shareWithField'),\n\t\t\t\tview = this,\n\t\t\t\t$loading = this.$el.find('.shareWithLoading'),\n\t\t\t\t$confirm = this.$el.find('.shareWithConfirm');\n\n\t\t\tvar count = oc_config['sharing.minSearchStringLength'];\n\t\t\tif (search.term.trim().length < count) {\n\t\t\t\tvar title = n('core',\n\t\t\t\t\t'At least {count} character is needed for autocompletion',\n\t\t\t\t\t'At least {count} characters are needed for autocompletion',\n\t\t\t\t\tcount,\n\t\t\t\t\t{ count: count }\n\t\t\t\t);\n\t\t\t\t$shareWithField.addClass('error')\n\t\t\t\t\t.attr('data-original-title', title)\n\t\t\t\t\t.tooltip('hide')\n\t\t\t\t\t.tooltip({\n\t\t\t\t\t\tplacement: 'bottom',\n\t\t\t\t\t\ttrigger: 'manual'\n\t\t\t\t\t})\n\t\t\t\t\t.tooltip('fixTitle')\n\t\t\t\t\t.tooltip('show');\n\t\t\t\tresponse();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t$loading.removeClass('hidden');\n\t\t\t$loading.addClass('inlineblock');\n\t\t\t$confirm.addClass('hidden');\n\t\t\tthis._pendingOperationsCount++;\n\n\t\t\t$shareWithField.removeClass('error')\n\t\t\t\t.tooltip('hide');\n\n\t\t\tvar perPage = parseInt(oc_config['sharing.maxAutocompleteResults'], 10) || 200;\n\t\t\tthis._getSuggestions(\n\t\t\t\tsearch.term.trim(),\n\t\t\t\tperPage,\n\t\t\t\tview.model,\n\t\t\t\tview._lookup\n\t\t\t).done(function(suggestions, exactMatches, moreResultsAvailable) {\n\t\t\t\tview._pendingOperationsCount--;\n\t\t\t\tif (view._pendingOperationsCount === 0) {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$loading.removeClass('inlineblock');\n\t\t\t\t\t$confirm.removeClass('hidden');\n\t\t\t\t}\n\n\t\t\t\tif (suggestions.length > 0) {\n\t\t\t\t\t$shareWithField\n\t\t\t\t\t\t.autocomplete(\"option\", \"autoFocus\", true);\n\n\t\t\t\t\tresponse(suggestions);\n\n\t\t\t\t\t// show a notice that the list is truncated\n\t\t\t\t\t// this is the case if one of the search results is at least as long as the max result config option\n\t\t\t\t\tif(moreResultsAvailable) {\n\t\t\t\t\t\tvar message = t('core', 'This list is maybe truncated - please refine your search term to see more results.');\n\t\t\t\t\t\t$('.ui-autocomplete').append('<li class=\"autocomplete-note\">' + message + '</li>');\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\tvar title = t('core', 'No users or groups found for {search}', {search: $shareWithField.val()});\n\t\t\t\t\tif (!view.configModel.get('allowGroupSharing')) {\n\t\t\t\t\t\ttitle = t('core', 'No users found for {search}', {search: $('.shareWithField').val()});\n\t\t\t\t\t}\n\t\t\t\t\t$shareWithField.addClass('error')\n\t\t\t\t\t\t.attr('data-original-title', title)\n\t\t\t\t\t\t.tooltip('hide')\n\t\t\t\t\t\t.tooltip({\n\t\t\t\t\t\t\tplacement: 'top',\n\t\t\t\t\t\t\ttrigger: 'manual'\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.tooltip('fixTitle')\n\t\t\t\t\t\t.tooltip('show');\n\t\t\t\t\tresponse();\n\t\t\t\t}\n\t\t\t}).fail(function(message) {\n\t\t\t\tview._pendingOperationsCount--;\n\t\t\t\tif (view._pendingOperationsCount === 0) {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$loading.removeClass('inlineblock');\n\t\t\t\t\t$confirm.removeClass('hidden');\n\t\t\t\t}\n\n\t\t\t\tif (message) {\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'An error occurred (\"{message}\"). Please try again', { message: message }));\n\t\t\t\t} else {\n\t\t\t\t\tOC.Notification.showTemporary(t('core', 'An error occurred. Please try again'));\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tautocompleteRenderItem: function(ul, item) {\n\t\t\tvar icon = 'icon-user';\n\t\t\tvar text = escapeHTML(item.label);\n\t\t\tvar description = '';\n\t\t\tvar type = '';\n\t\t\tvar getTranslatedType = function(type) {\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase 'HOME':\n\t\t\t\t\t\treturn t('core', 'Home');\n\t\t\t\t\tcase 'WORK':\n\t\t\t\t\t\treturn t('core', 'Work');\n\t\t\t\t\tcase 'OTHER':\n\t\t\t\t\t\treturn t('core', 'Other');\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn '' + type;\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (typeof item.type !== 'undefined' && item.type !== null) {\n\t\t\t\ttype = getTranslatedType(item.type) + ' ';\n\t\t\t}\n\n\t\t\tif (typeof item.name !== 'undefined') {\n\t\t\t\ttext = escapeHTML(item.name);\n\t\t\t}\n\t\t\tif (item.value.shareType === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\ticon = 'icon-contacts-dark';\n\t\t\t} else if (item.value.shareType === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\ticon = 'icon-shared';\n\t\t\t\tdescription += item.value.shareWith;\n\t\t\t} else if (item.value.shareType === OC.Share.SHARE_TYPE_REMOTE_GROUP) {\n\t\t\t\ttext = t('core', '{sharee} (remote group)', { sharee: text }, undefined, { escape: false });\n\t\t\t\ticon = 'icon-shared';\n\t\t\t\tdescription += item.value.shareWith;\n\t\t\t} else if (item.value.shareType === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\ticon = 'icon-mail';\n\t\t\t\tdescription += item.value.shareWith;\n\t\t\t} else if (item.value.shareType === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\ttext = t('core', '{sharee} ({type}, {owner})', {sharee: text, type: item.value.circleInfo, owner: item.value.circleOwner}, undefined, {escape: false});\n\t\t\t\ticon = 'icon-circle';\n\t\t\t} else if (item.value.shareType === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\ticon = 'icon-talk';\n\t\t\t}\n\n\t\t\tvar insert = $(\"<div class='share-autocomplete-item'/>\");\n\t\t\tif (item.merged) {\n\t\t\t\tinsert.addClass('merged');\n\t\t\t\ttext = item.value.shareWith;\n\t\t\t\tdescription = type;\n\t\t\t} else if (item.lookup) {\n\t\t\t\ttext = item.label;\n\t\t\t\ticon = false;\n\t\t\t\tinsert.append('<span class=\"icon icon-search search-globally\"></span>');\n\t\t\t} else {\n\t\t\t\tvar avatar = $(\"<div class='avatardiv'></div>\").appendTo(insert);\n\t\t\t\tif (item.value.shareType === OC.Share.SHARE_TYPE_USER || item.value.shareType === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\t\tavatar.avatar(item.value.shareWith, 32, undefined, undefined, undefined, item.label);\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof item.uuid === 'undefined') {\n\t\t\t\t\t\titem.uuid = text;\n\t\t\t\t\t}\n\t\t\t\t\tavatar.imageplaceholder(item.uuid, text, 32);\n\t\t\t\t}\n\t\t\t\tdescription = type + description;\n\t\t\t}\n\t\t\tif (description !== '') {\n\t\t\t\tinsert.addClass('with-description');\n\t\t\t}\n\n\t\t\t$(\"<div class='autocomplete-item-text'></div>\")\n\t\t\t\t.html(\n\t\t\t\t\ttext.replace(\n\t\t\t\t\tnew RegExp(this.term, \"gi\"),\n\t\t\t\t\t\"<span class='ui-state-highlight'>$&</span>\")\n\t\t\t\t\t+ '<span class=\"autocomplete-item-details\">' + description + '</span>'\n\t\t\t\t)\n\t\t\t\t.appendTo(insert);\n\t\t\tinsert.attr('title', item.value.shareWith);\n\t\t\tif (icon) {\n\t\t\t\tinsert.append('<span class=\"icon ' + icon + '\" title=\"' + text + '\"></span>');\n\t\t\t}\n\t\t\tinsert = $(\"<a>\")\n\t\t\t\t.append(insert);\n\t\t\treturn $(\"<li>\")\n\t\t\t\t.addClass((item.value.shareType === OC.Share.SHARE_TYPE_GROUP) ? 'group' : 'user')\n\t\t\t\t.append(insert)\n\t\t\t\t.appendTo(ul);\n\t\t},\n\n\t\t_onSelectRecipient: function(e, s) {\n\t\t\tvar self = this;\n\n\t\t\tif (e.keyCode == 9) {\n\t\t\t\te.preventDefault();\n\t\t\t\tif (typeof s.item.name !== 'undefined') {\n\t\t\t\t\te.target.value = s.item.name;\n\t\t\t\t} else {\n\t\t\t\t\te.target.value = s.item.label;\n\t\t\t\t}\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t$(e.target).attr('disabled', false)\n\t\t\t\t\t\t.autocomplete('search', $(e.target).val());\n\t\t\t\t}, 0);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (s.item.lookup) {\n\t\t\t\t// Retrigger search but with global lookup this time\n\t\t\t\tthis._lookup = true;\n\t\t\t\tvar $shareWithField = this.$el.find('.shareWithField');\n\t\t\t\tvar val = $shareWithField.val();\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tconsole.debug('searching again, but globally. search term: ' + val);\n\t\t\t\t\t$shareWithField.autocomplete(\"search\", val);\n\t\t\t\t}, 0);\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\te.preventDefault();\n\t\t\t// Ensure that the keydown handler for the input field is not\n\t\t\t// called; otherwise it would try to add the recipient again, which\n\t\t\t// would fail.\n\t\t\te.stopImmediatePropagation();\n\t\t\t$(e.target).attr('disabled', true)\n\t\t\t\t.val(s.item.label);\n\n\t\t\tvar $loading = this.$el.find('.shareWithLoading');\n\t\t\tvar $confirm = this.$el.find('.shareWithConfirm');\n\n\t\t\t$loading.removeClass('hidden');\n\t\t\t$loading.addClass('inlineblock');\n\t\t\t$confirm.addClass('hidden');\n\t\t\tthis._pendingOperationsCount++;\n\n\t\t\tthis.model.addShare(s.item.value, {success: function() {\n\t\t\t\t// Adding a share changes the suggestions.\n\t\t\t\tself._lastSuggestions = undefined;\n\n\t\t\t\t$(e.target).val('')\n\t\t\t\t\t.attr('disabled', false);\n\n\t\t\t\tself._pendingOperationsCount--;\n\t\t\t\tif (self._pendingOperationsCount === 0) {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$loading.removeClass('inlineblock');\n\t\t\t\t\t$confirm.removeClass('hidden');\n\t\t\t\t}\n\t\t\t}, error: function(obj, msg) {\n\t\t\t\tOC.Notification.showTemporary(msg);\n\t\t\t\t$(e.target).attr('disabled', false)\n\t\t\t\t\t.autocomplete('search', $(e.target).val());\n\n\t\t\t\tself._pendingOperationsCount--;\n\t\t\t\tif (self._pendingOperationsCount === 0) {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$loading.removeClass('inlineblock');\n\t\t\t\t\t$confirm.removeClass('hidden');\n\t\t\t\t}\n\t\t\t}});\n\t\t},\n\n\t\t_confirmShare: function() {\n\t\t\tvar self = this;\n\t\t\tvar $shareWithField = $('.shareWithField');\n\t\t\tvar $loading = this.$el.find('.shareWithLoading');\n\t\t\tvar $confirm = this.$el.find('.shareWithConfirm');\n\n\t\t\t$loading.removeClass('hidden');\n\t\t\t$loading.addClass('inlineblock');\n\t\t\t$confirm.addClass('hidden');\n\t\t\tthis._pendingOperationsCount++;\n\n\t\t\t$shareWithField.prop('disabled', true);\n\n\t\t\t// Disabling the autocompletion does not clear its search timeout;\n\t\t\t// removing the focus from the input field does, but only if the\n\t\t\t// autocompletion is not disabled when the field loses the focus.\n\t\t\t// Thus, the field has to be disabled before disabling the\n\t\t\t// autocompletion to prevent an old pending search result from\n\t\t\t// appearing once the field is enabled again.\n\t\t\t$shareWithField.autocomplete('close');\n\t\t\t$shareWithField.autocomplete('disable');\n\n\t\t\tvar restoreUI = function() {\n\t\t\t\tself._pendingOperationsCount--;\n\t\t\t\tif (self._pendingOperationsCount === 0) {\n\t\t\t\t\t$loading.addClass('hidden');\n\t\t\t\t\t$loading.removeClass('inlineblock');\n\t\t\t\t\t$confirm.removeClass('hidden');\n\t\t\t\t}\n\n\t\t\t\t$shareWithField.prop('disabled', false);\n\t\t\t\t$shareWithField.focus();\n\t\t\t};\n\n\t\t\tvar perPage = parseInt(oc_config['sharing.maxAutocompleteResults'], 10) || 200;\n\t\t\tthis._getSuggestions(\n\t\t\t\t$shareWithField.val(),\n\t\t\t\tperPage,\n\t\t\t\tthis.model,\n\t\t\t\tthis._lookup\n\t\t\t).done(function(suggestions, exactMatches) {\n\t\t\t\tif (suggestions.length === 0) {\n\t\t\t\t\trestoreUI();\n\n\t\t\t\t\t$shareWithField.autocomplete('enable');\n\n\t\t\t\t\t// There is no need to show an error message here; it will\n\t\t\t\t\t// be automatically shown when the autocomplete is activated\n\t\t\t\t\t// again (due to the focus on the field) and it finds no\n\t\t\t\t\t// matches.\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (exactMatches.length !== 1) {\n\t\t\t\t\trestoreUI();\n\n\t\t\t\t\t$shareWithField.autocomplete('enable');\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar actionSuccess = function() {\n\t\t\t\t\t// Adding a share changes the suggestions.\n\t\t\t\t\tself._lastSuggestions = undefined;\n\n\t\t\t\t\t$shareWithField.val('');\n\n\t\t\t\t\trestoreUI();\n\n\t\t\t\t\t$shareWithField.autocomplete('enable');\n\t\t\t\t};\n\n\t\t\t\tvar actionError = function(obj, msg) {\n\t\t\t\t\trestoreUI();\n\n\t\t\t\t\t$shareWithField.autocomplete('enable');\n\n\t\t\t\t\tOC.Notification.showTemporary(msg);\n\t\t\t\t};\n\n\t\t\t\tself.model.addShare(exactMatches[0].value, {\n\t\t\t\t\tsuccess: actionSuccess,\n\t\t\t\t\terror: actionError\n\t\t\t\t});\n\t\t\t}).fail(function(message) {\n\t\t\t\trestoreUI();\n\n\t\t\t\t$shareWithField.autocomplete('enable');\n\n\t\t\t\t// There is no need to show an error message here; it will be\n\t\t\t\t// automatically shown when the autocomplete is activated again\n\t\t\t\t// (due to the focus on the field) and getting the suggestions\n\t\t\t\t// fail.\n\t\t\t});\n\t\t},\n\n\t\t_toggleLoading: function(state) {\n\t\t\tthis._loading = state;\n\t\t\tthis.$el.find('.subView').toggleClass('hidden', state);\n\t\t\tthis.$el.find('.loading').toggleClass('hidden', !state);\n\t\t},\n\n\t\t_onRequest: function() {\n\t\t\t// only show the loading spinner for the first request (for now)\n\t\t\tif (!this._loadingOnce) {\n\t\t\t\tthis._toggleLoading(true);\n\t\t\t}\n\t\t},\n\n\t\t_onEndRequest: function() {\n\t\t\tvar self = this;\n\t\t\tthis._toggleLoading(false);\n\t\t\tif (!this._loadingOnce) {\n\t\t\t\tthis._loadingOnce = true;\n\t\t\t\t// the first time, focus on the share field after the spinner disappeared\n\t\t\t\tif (!OC.Util.isIE()) {\n\t\t\t\t\t_.defer(function () {\n\t\t\t\t\t\tself.$('.shareWithField').focus();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\trender: function() {\n\t\t\tvar self = this;\n\t\t\tvar baseTemplate = OC.Share.Templates['sharedialogview'];\n\n\t\t\tthis.$el.html(baseTemplate({\n\t\t\t\tcid: this.cid,\n\t\t\t\tshareLabel: t('core', 'Share'),\n\t\t\t\tsharePlaceholder: this._renderSharePlaceholderPart(),\n\t\t\t\tisSharingAllowed: this.model.sharePermissionPossible()\n\t\t\t}));\n\n\t\t\tvar $shareField = this.$el.find('.shareWithField');\n\t\t\tif ($shareField.length) {\n\t\t\t\tvar shareFieldKeydownHandler = function(event) {\n\t\t\t\t\tif (event.keyCode !== 13) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\n\t\t\t\t\tself._confirmShare();\n\n\t\t\t\t\treturn false;\n\t\t\t\t};\n\n\t\t\t\t$shareField.autocomplete({\n\t\t\t\t\tminLength: 0,\n\t\t\t\t\tdelay: 750,\n\t\t\t\t\tfocus: function(event) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t},\n\t\t\t\t\tsource: this.autocompleteHandler,\n\t\t\t\t\tselect: this._onSelectRecipient,\n\t\t\t\t\topen: function() {\n\t\t\t\t\t\tvar autocomplete = $(this).autocomplete('widget');\n\t\t\t\t\t\tvar numberOfItems = autocomplete.find('li').size();\n\t\t\t\t\t\tautocomplete.removeClass('item-count-1');\n\t\t\t\t\t\tautocomplete.removeClass('item-count-2');\n\t\t\t\t\t\tif (numberOfItems <= 2) {\n\t\t\t\t\t\t\tautocomplete.addClass('item-count-' + numberOfItems);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}).data('ui-autocomplete')._renderItem = this.autocompleteRenderItem;\n\n\t\t\t\t$shareField.on('keydown', null, shareFieldKeydownHandler);\n\t\t\t}\n\n\t\t\tthis.resharerInfoView.$el = this.$el.find('.resharerInfoView');\n\t\t\tthis.resharerInfoView.render();\n\n\t\t\tthis.linkShareView.$el = this.$el.find('.linkShareView');\n\t\t\tthis.linkShareView.render();\n\n\t\t\tthis.shareeListView.$el = this.$el.find('.shareeListView');\n\t\t\tthis.shareeListView.render();\n\n\t\t\tthis.$el.find('.hasTooltip').tooltip();\n\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * sets whether share by link should be displayed or not. Default is\n\t\t * true.\n\t\t *\n\t\t * @param {bool} showLink\n\t\t */\n\t\tsetShowLink: function(showLink) {\n\t\t\tthis._showLink = (typeof showLink === 'boolean') ? showLink : true;\n\t\t\tthis.linkShareView.showLink = this._showLink;\n\t\t},\n\n\t\t_renderSharePlaceholderPart: function () {\n\t\t\tvar allowRemoteSharing = this.configModel.get('isRemoteShareAllowed');\n\t\t\tvar allowMailSharing = this.configModel.get('isMailShareAllowed');\n\n\t\t\tif (!allowRemoteSharing && allowMailSharing) {\n\t\t\t\treturn t('core', 'Name or email address...');\n\t\t\t}\n\t\t\tif (allowRemoteSharing && !allowMailSharing) {\n\t\t\t\treturn t('core', 'Name or federated cloud ID...');\n\t\t\t}\n\t\t\tif (allowRemoteSharing && allowMailSharing) {\n\t\t\t\treturn t('core', 'Name, federated cloud ID or email address...');\n\t\t\t}\n\n\t\t\treturn \tt('core', 'Name...');\n\t\t},\n\n\t});\n\n\tOC.Share.ShareDialogView = ShareDialogView;\n\n})();\n","/* global escapeHTML */\n\n/**\n * @namespace\n */\nOC.Share = _.extend(OC.Share || {}, {\n\tSHARE_TYPE_USER:0,\n\tSHARE_TYPE_GROUP:1,\n\tSHARE_TYPE_LINK:3,\n\tSHARE_TYPE_EMAIL:4,\n\tSHARE_TYPE_REMOTE:6,\n\tSHARE_TYPE_CIRCLE:7,\n\tSHARE_TYPE_GUEST:8,\n\tSHARE_TYPE_REMOTE_GROUP:9,\n\tSHARE_TYPE_ROOM:10,\n\n\t/**\n\t * Regular expression for splitting parts of remote share owners:\n\t * \"user@example.com/path/to/owncloud\"\n\t * \"user@anotherexample.com@example.com/path/to/owncloud\n\t */\n\t_REMOTE_OWNER_REGEXP: new RegExp(\"^([^@]*)@(([^@]*)@)?([^/]*)([/](.*)?)?$\"),\n\n\t/**\n\t * @deprecated use OC.Share.currentShares instead\n\t */\n\titemShares:[],\n\t/**\n\t * Full list of all share statuses\n\t */\n\tstatuses:{},\n\t/**\n\t * Shares for the currently selected file.\n\t * (for which the dropdown is open)\n\t *\n\t * Key is item type and value is an array or\n\t * shares of the given item type.\n\t */\n\tcurrentShares: {},\n\t/**\n\t * Whether the share dropdown is opened.\n\t */\n\tdroppedDown:false,\n\t/**\n\t * Loads ALL share statuses from server, stores them in\n\t * OC.Share.statuses then calls OC.Share.updateIcons() to update the\n\t * files \"Share\" icon to \"Shared\" according to their share status and\n\t * share type.\n\t *\n\t * If a callback is specified, the update step is skipped.\n\t *\n\t * @param itemType item type\n\t * @param fileList file list instance, defaults to OCA.Files.App.fileList\n\t * @param callback function to call after the shares were loaded\n\t */\n\tloadIcons:function(itemType, fileList, callback) {\n\t\tvar path = fileList.dirInfo.path;\n\t\tif (path === '/') {\n\t\t\tpath = '';\n\t\t}\n\t\tpath += '/' + fileList.dirInfo.name;\n\n\t\t// Load all share icons\n\t\t$.get(\n\t\t\tOC.linkToOCS('apps/files_sharing/api/v1', 2) + 'shares',\n\t\t\t{\n\t\t\t\tsubfiles: 'true',\n\t\t\t\tpath: path,\n\t\t\t\tformat: 'json'\n\t\t\t}, function(result) {\n\t\t\t\tif (result && result.ocs.meta.statuscode === 200) {\n\t\t\t\t\tOC.Share.statuses = {};\n\t\t\t\t\t$.each(result.ocs.data, function(it, share) {\n\t\t\t\t\t\tif (!(share.item_source in OC.Share.statuses)) {\n\t\t\t\t\t\t\tOC.Share.statuses[share.item_source] = {link: false};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (share.share_type === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\t\tOC.Share.statuses[share.item_source] = {link: true};\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tif (_.isFunction(callback)) {\n\t\t\t\t\t\tcallback(OC.Share.statuses);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tOC.Share.updateIcons(itemType, fileList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t},\n\t/**\n\t * Updates the files' \"Share\" icons according to the known\n\t * sharing states stored in OC.Share.statuses.\n\t * (not reloaded from server)\n\t *\n\t * @param itemType item type\n\t * @param fileList file list instance\n\t * defaults to OCA.Files.App.fileList\n\t */\n\tupdateIcons:function(itemType, fileList){\n\t\tvar item;\n\t\tvar $fileList;\n\t\tvar currentDir;\n\t\tif (!fileList && OCA.Files) {\n\t\t\tfileList = OCA.Files.App.fileList;\n\t\t}\n\t\t// fileList is usually only defined in the files app\n\t\tif (fileList) {\n\t\t\t$fileList = fileList.$fileList;\n\t\t\tcurrentDir = fileList.getCurrentDirectory();\n\t\t}\n\t\t// TODO: iterating over the files might be more efficient\n\t\tfor (item in OC.Share.statuses){\n\t\t\tvar iconClass = 'icon-shared';\n\t\t\tvar data = OC.Share.statuses[item];\n\t\t\tvar hasLink = data.link;\n\t\t\t// Links override shared in terms of icon display\n\t\t\tif (hasLink) {\n\t\t\t\ticonClass = 'icon-public';\n\t\t\t}\n\t\t\tif (itemType !== 'file' && itemType !== 'folder') {\n\t\t\t\t$('a.share[data-item=\"'+item+'\"] .icon').removeClass('icon-shared icon-public').addClass(iconClass);\n\t\t\t} else {\n\t\t\t\t// TODO: ultimately this part should be moved to files_sharing app\n\t\t\t\tvar file = $fileList.find('tr[data-id=\"'+item+'\"]');\n\t\t\t\tvar shareFolder = OC.imagePath('core', 'filetypes/folder-shared');\n\t\t\t\tvar img;\n\t\t\t\tif (file.length > 0) {\n\t\t\t\t\tthis.markFileAsShared(file, true, hasLink);\n\t\t\t\t} else {\n\t\t\t\t\tvar dir = currentDir;\n\t\t\t\t\tif (dir.length > 1) {\n\t\t\t\t\t\tvar last = '';\n\t\t\t\t\t\tvar path = dir;\n\t\t\t\t\t\t// Search for possible parent folders that are shared\n\t\t\t\t\t\twhile (path != last) {\n\t\t\t\t\t\t\tif (path === data.path && !data.link) {\n\t\t\t\t\t\t\t\tvar actions = $fileList.find('.fileactions .action[data-action=\"Share\"]');\n\t\t\t\t\t\t\t\tvar files = $fileList.find('.filename');\n\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\tfor (i = 0; i < actions.length; i++) {\n\t\t\t\t\t\t\t\t\t// TODO: use this.markFileAsShared()\n\t\t\t\t\t\t\t\t\timg = $(actions[i]).find('img');\n\t\t\t\t\t\t\t\t\tif (img.attr('src') !== OC.imagePath('core', 'actions/public')) {\n\t\t\t\t\t\t\t\t\t\timg.attr('src', image);\n\t\t\t\t\t\t\t\t\t\t$(actions[i]).addClass('permanent');\n\t\t\t\t\t\t\t\t\t\t$(actions[i]).html('<span> '+t('core', 'Shared')+'</span>').prepend(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tfor(i = 0; i < files.length; i++) {\n\t\t\t\t\t\t\t\t\tif ($(files[i]).closest('tr').data('type') === 'dir') {\n\t\t\t\t\t\t\t\t\t\t$(files[i]).find('.thumbnail').css('background-image', 'url('+shareFolder+')');\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tlast = path;\n\t\t\t\t\t\t\tpath = OC.Share.dirname(path);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tupdateIcon:function(itemType, itemSource) {\n\t\tvar shares = false;\n\t\tvar link = false;\n\t\tvar iconClass = '';\n\t\t$.each(OC.Share.itemShares, function(index) {\n\t\t\tif (OC.Share.itemShares[index]) {\n\t\t\t\tif (index == OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\tif (OC.Share.itemShares[index] == true) {\n\t\t\t\t\t\tshares = true;\n\t\t\t\t\t\ticonClass = 'icon-public';\n\t\t\t\t\t\tlink = true;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t} else if (OC.Share.itemShares[index].length > 0) {\n\t\t\t\t\tshares = true;\n\t\t\t\t\ticonClass = 'icon-shared';\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tif (itemType != 'file' && itemType != 'folder') {\n\t\t\t$('a.share[data-item=\"'+itemSource+'\"] .icon').removeClass('icon-shared icon-public').addClass(iconClass);\n\t\t} else {\n\t\t\tvar $tr = $('tr').filterAttr('data-id', String(itemSource));\n\t\t\tif ($tr.length > 0) {\n\t\t\t\t// it might happen that multiple lists exist in the DOM\n\t\t\t\t// with the same id\n\t\t\t\t$tr.each(function() {\n\t\t\t\t\tOC.Share.markFileAsShared($(this), shares, link);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (shares) {\n\t\t\tOC.Share.statuses[itemSource] = OC.Share.statuses[itemSource] || {};\n\t\t\tOC.Share.statuses[itemSource].link = link;\n\t\t} else {\n\t\t\tdelete OC.Share.statuses[itemSource];\n\t\t}\n\t},\n\t/**\n\t * Format a remote address\n\t *\n\t * @param {String} shareWith userid, full remote share, or whatever\n\t * @param {String} shareWithDisplayName\n\t * @param {String} message\n\t * @return {String} HTML code to display\n\t */\n\t_formatRemoteShare: function(shareWith, shareWithDisplayName, message) {\n\t\tvar parts = this._REMOTE_OWNER_REGEXP.exec(shareWith);\n\t\tif (!parts) {\n\t\t\t// display avatar of the user\n\t\t\tvar avatar = '<span class=\"avatar\" data-username=\"' + escapeHTML(shareWith) + '\" title=\"' + message + \" \" + escapeHTML(shareWithDisplayName) + '\"></span>';\n\t\t\tvar hidden = '<span class=\"hidden-visually\">' + message + ' ' + escapeHTML(shareWithDisplayName) + '</span> ';\n\t\t\treturn avatar + hidden;\n\t\t}\n\n\t\tvar userName = parts[1];\n\t\tvar userDomain = parts[3];\n\t\tvar server = parts[4];\n\t\tvar tooltip = message + ' ' + userName;\n\t\tif (userDomain) {\n\t\t\ttooltip += '@' + userDomain;\n\t\t}\n\t\tif (server) {\n\t\t\tif (!userDomain) {\n\t\t\t\tuserDomain = '…';\n\t\t\t}\n\t\t\ttooltip += '@' + server;\n\t\t}\n\n\t\tvar html = '<span class=\"remoteAddress\" title=\"' + escapeHTML(tooltip) + '\">';\n\t\thtml += '<span class=\"username\">' + escapeHTML(userName) + '</span>';\n\t\tif (userDomain) {\n\t\t\thtml += '<span class=\"userDomain\">@' + escapeHTML(userDomain) + '</span>';\n\t\t}\n\t\thtml += '</span> ';\n\t\treturn html;\n\t},\n\t/**\n\t * Loop over all recipients in the list and format them using\n\t * all kind of fancy magic.\n\t *\n\t * @param {Object} recipients array of all the recipients\n\t * @return {String[]} modified list of recipients\n\t */\n\t_formatShareList: function(recipients) {\n\t\tvar _parent = this;\n\t\trecipients = _.toArray(recipients);\n\t\trecipients.sort(function(a, b) {\n\t\t\treturn a.shareWithDisplayName.localeCompare(b.shareWithDisplayName);\n\t\t});\n\t\treturn $.map(recipients, function(recipient) {\n\t\t\treturn _parent._formatRemoteShare(recipient.shareWith, recipient.shareWithDisplayName, t('core', 'Shared with'));\n\t\t});\n\t},\n\t/**\n\t * Marks/unmarks a given file as shared by changing its action icon\n\t * and folder icon.\n\t *\n\t * @param $tr file element to mark as shared\n\t * @param hasShares whether shares are available\n\t * @param hasLink whether link share is available\n\t */\n\tmarkFileAsShared: function($tr, hasShares, hasLink) {\n\t\tvar action = $tr.find('.fileactions .action[data-action=\"Share\"]');\n\t\tvar type = $tr.data('type');\n\t\tvar icon = action.find('.icon');\n\t\tvar message, recipients, avatars;\n\t\tvar ownerId = $tr.attr('data-share-owner-id');\n\t\tvar owner = $tr.attr('data-share-owner');\n\t\tvar shareFolderIcon;\n\t\tvar iconClass = 'icon-shared';\n\t\taction.removeClass('shared-style');\n\t\t// update folder icon\n\t\tif (type === 'dir' && (hasShares || hasLink || ownerId)) {\n\t\t\tif (hasLink) {\n\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-public');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-shared');\n\t\t\t}\n\t\t\t$tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')');\n\t\t\t$tr.attr('data-icon', shareFolderIcon);\n\t\t} else if (type === 'dir') {\n\t\t\tvar isEncrypted = $tr.attr('data-e2eencrypted');\n\t\t\tvar mountType = $tr.attr('data-mounttype');\n\t\t\t// FIXME: duplicate of FileList._createRow logic for external folder,\n\t\t\t// need to refactor the icon logic into a single code path eventually\n\t\t\tif (isEncrypted === 'true') {\n\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-encrypted');\n\t\t\t\t$tr.attr('data-icon', shareFolderIcon);\n\t\t\t} else if (mountType && mountType.indexOf('external') === 0) {\n\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-external');\n\t\t\t\t$tr.attr('data-icon', shareFolderIcon);\n\t\t\t} else {\n\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir');\n\t\t\t\t// back to default\n\t\t\t\t$tr.removeAttr('data-icon');\n\t\t\t}\n\t\t\t$tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')');\n\t\t}\n\t\t// update share action text / icon\n\t\tif (hasShares || ownerId) {\n\t\t\trecipients = $tr.data('share-recipient-data');\n\t\t\taction.addClass('shared-style');\n\n\t\t\tavatars = '<span>' + t('core', 'Shared') + '</span>';\n\t\t\t// even if reshared, only show \"Shared by\"\n\t\t\tif (ownerId) {\n\t\t\t\tmessage = t('core', 'Shared by');\n\t\t\t\tavatars = this._formatRemoteShare(ownerId, owner, message);\n\t\t\t} else if (recipients) {\n\t\t\t\tavatars = this._formatShareList(recipients);\n\t\t\t}\n\t\t\taction.html(avatars).prepend(icon);\n\n\t\t\tif (ownerId || recipients) {\n\t\t\t\tvar avatarElement = action.find('.avatar');\n\t\t\t\tavatarElement.each(function () {\n\t\t\t\t\t$(this).avatar($(this).data('username'), 32);\n\t\t\t\t});\n\t\t\t\taction.find('span[title]').tooltip({placement: 'top'});\n\t\t\t}\n\t\t} else {\n\t\t\taction.html('<span class=\"hidden-visually\">' + t('core', 'Shared') + '</span>').prepend(icon);\n\t\t}\n\t\tif (hasLink) {\n\t\t\ticonClass = 'icon-public';\n\t\t}\n\t\ticon.removeClass('icon-shared icon-public').addClass(iconClass);\n\t},\n\tshowDropDown:function(itemType, itemSource, appendTo, link, possiblePermissions, filename) {\n\t\tvar configModel = new OC.Share.ShareConfigModel();\n\t\tvar attributes = {itemType: itemType, itemSource: itemSource, possiblePermissions: possiblePermissions};\n\t\tvar itemModel = new OC.Share.ShareItemModel(attributes, {configModel: configModel});\n\t\tvar dialogView = new OC.Share.ShareDialogView({\n\t\t\tid: 'dropdown',\n\t\t\tmodel: itemModel,\n\t\t\tconfigModel: configModel,\n\t\t\tclassName: 'drop shareDropDown',\n\t\t\tattributes: {\n\t\t\t\t'data-item-source-name': filename,\n\t\t\t\t'data-item-type': itemType,\n\t\t\t\t'data-item-source': itemSource\n\t\t\t}\n\t\t});\n\t\tdialogView.setShowLink(link);\n\t\tvar $dialog = dialogView.render().$el;\n\t\t$dialog.appendTo(appendTo);\n\t\t$dialog.slideDown(OC.menuSpeed, function() {\n\t\t\tOC.Share.droppedDown = true;\n\t\t});\n\t\titemModel.fetch();\n\t},\n\thideDropDown:function(callback) {\n\t\tOC.Share.currentShares = null;\n\t\t$('#dropdown').slideUp(OC.menuSpeed, function() {\n\t\t\tOC.Share.droppedDown = false;\n\t\t\t$('#dropdown').remove();\n\t\t\tif (typeof FileActions !== 'undefined') {\n\t\t\t\t$('tr').removeClass('mouseOver');\n\t\t\t}\n\t\t\tif (callback) {\n\t\t\t\tcallback.call();\n\t\t\t}\n\t\t});\n\t},\n\tdirname:function(path) {\n\t\treturn path.replace(/\\\\/g,'/').replace(/\\/[^\\/]*$/, '');\n\t}\n});\n\n$(document).ready(function() {\n\tif(typeof monthNames != 'undefined'){\n\t\t// min date should always be the next day\n\t\tvar minDate = new Date();\n\t\tminDate.setDate(minDate.getDate()+1);\n\t\t$.datepicker.setDefaults({\n\t\t\tmonthNames: monthNames,\n\t\t\tmonthNamesShort: monthNamesShort,\n\t\t\tdayNames: dayNames,\n\t\t\tdayNamesMin: dayNamesMin,\n\t\t\tdayNamesShort: dayNamesShort,\n\t\t\tfirstDay: firstDay,\n\t\t\tminDate : minDate\n\t\t});\n\t}\n\n\t$(this).click(function(event) {\n\t\tvar target = $(event.target);\n\t\tvar isMatched = !target.is('.drop, .ui-datepicker-next, .ui-datepicker-prev, .ui-icon')\n\t\t\t&& !target.closest('#ui-datepicker-div').length && !target.closest('.ui-autocomplete').length;\n\t\tif (OC.Share && OC.Share.droppedDown && isMatched && $('#dropdown').has(event.target).length === 0) {\n\t\t\tOC.Share.hideDropDown();\n\t\t}\n\t});\n\n\n\n});\n"],"sourceRoot":""}
\ No newline at end of file
index 64c221c608e1fe0b453c90950302816544d393c9..609e1741af0f52946affad72369271d6e6eaa806 100644 (file)
                        }
                        var $input = $li.find('.linkPassText');
                        $input.removeClass('error');
+                       $input.parent().find('input').removeClass('error');
                        var password = $input.val();
 
                        if ($li.find('.linkPassText').attr('placeholder') === PASSWORD_PLACEHOLDER_MESSAGE_OPTIONAL) {
                                        $loading.removeClass('inlineblock').addClass('hidden');
                                },
                                error: function(model, msg) {
+                                       // Add visual feedback to both the input and the submit button
+                                       $input.parent().find('input').addClass('error');
+
                                        // destroy old tooltips
                                        var $container = $input.parent();
                                        $container.tooltip('destroy');