summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorJohn Molakvoæ <skjnldsv@users.noreply.github.com>2018-11-06 18:28:08 +0100
committerGitHub <noreply@github.com>2018-11-06 18:28:08 +0100
commit0f1edd538ea6ad8e855a6367f44928f99047568d (patch)
tree1872b7e4ae8893da38b3acd310d784591c579766 /core
parentadd35c7f3100b5aa37268dbebbe619f4b0c9109b (diff)
parenta3bf860be7f4e9085fc3bb569b411c08b89d38ea (diff)
downloadnextcloud-server-0f1edd538ea6ad8e855a6367f44928f99047568d.tar.gz
nextcloud-server-0f1edd538ea6ad8e855a6367f44928f99047568d.zip
Merge pull request #12273 from nextcloud/public-share-enforce-pass-fix
Fix password enforce on public share links
Diffstat (limited to 'core')
-rw-r--r--core/js/share/sharedialoglinkshareview.handlebars2
-rw-r--r--core/js/share/sharedialoglinkshareview_popover_menu_pending.handlebars2
-rw-r--r--core/js/sharedialoglinkshareview.js24
-rw-r--r--core/js/sharetemplates.js6
4 files changed, 26 insertions, 8 deletions
diff --git a/core/js/share/sharedialoglinkshareview.handlebars b/core/js/share/sharedialoglinkshareview.handlebars
index 64f52704290..4f58f632d1b 100644
--- a/core/js/share/sharedialoglinkshareview.handlebars
+++ b/core/js/share/sharedialoglinkshareview.handlebars
@@ -1,7 +1,7 @@
{{#if shareAllowed}}
<ul class="shareWithList">
{{#if nolinkShares}}
- <li data-share-id="new-share">
+ <li data-share-id="{{newShareId}}">
<div class="avatar icon-public-white"></div>
<span class="username">{{newShareLabel}}</span>
<span class="sharingOptionsGroup">
diff --git a/core/js/share/sharedialoglinkshareview_popover_menu_pending.handlebars b/core/js/share/sharedialoglinkshareview_popover_menu_pending.handlebars
index 787f50c6c1e..d9ff5659fc9 100644
--- a/core/js/share/sharedialoglinkshareview_popover_menu_pending.handlebars
+++ b/core/js/share/sharedialoglinkshareview_popover_menu_pending.handlebars
@@ -1,4 +1,4 @@
-<div class="popovermenu open menu">
+<div class="popovermenu open menu pending">
<ul>
{{#if isPasswordEnforced}}
<li>
diff --git a/core/js/sharedialoglinkshareview.js b/core/js/sharedialoglinkshareview.js
index e5af4ad1f17..4ce337357a0 100644
--- a/core/js/sharedialoglinkshareview.js
+++ b/core/js/sharedialoglinkshareview.js
@@ -45,6 +45,9 @@
/** @type {string} **/
password: '',
+ /** @type {string} **/
+ newShareId: 'new-share',
+
events: {
// open menu
'click .share-menu .icon-more': 'onToggleMenu',
@@ -226,8 +229,8 @@
// We need a password before the share creation
if (isPasswordEnforced && !this.showPending && this.password === '') {
this.showPending = shareId;
- this.render();
- $li.find('#enforcedPassText').focus();
+ var self = this.render();
+ self.$el.find('.pending #enforcedPassText').focus();
} else {
// else, we have a password or it is not enforced
$.when(this.model.saveLinkShare(shareData, {
@@ -248,11 +251,23 @@
}
},
error: function() {
+ // empty function to override the default Dialog warning
+ }
+ })).fail(function(response) {
+ // password failure? Show error
+ self.password = ''
+ if (isPasswordEnforced && response && response.responseJSON && response.responseJSON.ocs.meta && response.responseJSON.ocs.meta.message) {
+ $input = self.$el.find('.pending #enforcedPassText')
+ $input.tooltip('destroy');
+ $input.attr('title', response.responseJSON.ocs.meta.message);
+ $input.tooltip({placement: 'bottom', trigger: 'manual'});
+ $input.tooltip('show');
+ } else {
OC.Notification.showTemporary(t('core', 'Unable to create a link share'));
$loading.addClass('hidden');
$li.find('.icon').removeClass('hidden');
}
- })).then(function(response) {
+ }).then(function(response) {
// resolve before success
newShareId = response.ocs.data.id
});
@@ -650,7 +665,8 @@
newShareLabel: t('core', 'Share link'),
newShareTitle: t('core', 'New share link'),
pendingPopoverMenu: pendingPopoverMenu,
- showPending: this.showPending === 'new',
+ showPending: this.showPending === this.newShareId,
+ newShareId: this.newShareId,
}));
this.delegateEvents();
diff --git a/core/js/sharetemplates.js b/core/js/sharetemplates.js
index 0f1762c5f05..eb3489f6b4e 100644
--- a/core/js/sharetemplates.js
+++ b/core/js/sharetemplates.js
@@ -10,7 +10,9 @@ templates['sharedialoglinkshareview'] = template({"1":function(container,depth0,
},"2":function(container,depth0,helpers,partials,data) {
var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression;
- return " <li data-share-id=\"new-share\">\n <div class=\"avatar icon-public-white\"></div>\n <span class=\"username\">"
+ return " <li data-share-id=\""
+ + 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 <div class=\"avatar icon-public-white\"></div>\n <span class=\"username\">"
+ 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)))
+ "</span>\n <span class=\"sharingOptionsGroup\">\n <div class=\"share-menu\">\n <a href=\"#\" class=\"icon icon-add new-share has-tooltip "
+ ((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 : "")
@@ -269,7 +271,7 @@ templates['sharedialoglinkshareview_popover_menu_pending'] = template({"1":funct
},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
var stack1;
- return "<div class=\"popovermenu open menu\">\n <ul>\n"
+ return "<div class=\"popovermenu open menu pending\">\n <ul>\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 : "")
+ " </ul>\n</div>\n";
},"useData":true});