]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix settings scope menu hidden when lookup server upload is disabled
authorDaniel Calviño Sánchez <danxuliu@gmail.com>
Mon, 1 Feb 2021 02:34:36 +0000 (03:34 +0100)
committerDaniel Calviño Sánchez <danxuliu@gmail.com>
Fri, 23 Apr 2021 14:53:58 +0000 (16:53 +0200)
When upload to the lookup server is disabled the scope menu was hidden
in the personal information settings. However, even if the lookup server
upload is disabled the personal information is still accesible from the
local server as well as trusted servers. Users should be able to still
set if their information is available to other users or if it is
private, so now the scope menu is always show (although the "Public"
option is hidden if the lookup server upload is disabled).

If the user set the information as public before the upload to the
lookup server was disabled the menu will also show the "Public" option
as active, although disabled. Setting the visibility to any of the other
options will hide the "Public" option from the menu (until the lookup
server upload is enabled again).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
apps/settings/css/settings.scss
apps/settings/js/federationscopemenu.js
apps/settings/js/templates.js
apps/settings/js/templates/federationscopemenu.handlebars
apps/settings/templates/settings/personal/personal.info.php

index cc798868c53b450ae20ab0a96a6097c145f371c9..4915dd7da7b5caf4f32a2ac2c8703ba24bf078d9 100644 (file)
@@ -403,6 +403,16 @@ select {
                                                font-weight: bold;
                                        }
                                }
+
+                               &.disabled {
+                                       opacity: .5;
+
+                                       cursor: default;
+
+                                       span {
+                                               cursor: default;
+                                       }
+                               }
                        }
                }
        }
index 170aec15a85f32494fe75a8eb02a69aa7713bd79..297cd006e58ed8807e383cd088423845747ef840 100644 (file)
                                        break;
                        }
 
+                       var lookupServerUploadEnabled = $('#lookupServerUploadEnabled').val();
+                       if (!lookupServerUploadEnabled && !this._scopes[2].active) {
+                               this._scopes[2].hidden = true
+                       } else if (!lookupServerUploadEnabled && this._scopes[2].active) {
+                               this._scopes[2].hidden = false
+                               this._scopes[2].disabled = true
+                       } else {
+                               this._scopes[2].hidden = false
+                               this._scopes[2].disabled = false
+                       }
+
                        this.render();
                        this.$el.removeClass('hidden');
 
index 25c2e790040dc79573ce73cd5e97379a67919b11..2cd8179f3ecc05b9ea40ce0b067674152b0b56f1 100644 (file)
@@ -1,6 +1,15 @@
 (function() {
   var template = Handlebars.template, templates = OC.Settings.Templates = OC.Settings.Templates || {};
 templates['federationscopemenu'] = template({"1":function(container,depth0,helpers,partials,data) {
+    var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {
+        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
+          return parent[propertyName];
+        }
+        return undefined
+    };
+
+  return ((stack1 = lookupProperty(helpers,"unless").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,"hidden") : depth0),{"name":"unless","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":2},"end":{"line":25,"column":13}}})) != null ? stack1 : "");
+},"2":function(container,depth0,helpers,partials,data) {
     var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {
         if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
           return parent[propertyName];
@@ -8,22 +17,49 @@ templates['federationscopemenu'] = template({"1":function(container,depth0,helpe
         return undefined
     };
 
-  return "             <li tabindex=\"0\">\n                   <a href=\"#\" class=\"menuitem action action-"
-    + alias4(((helper = (helper = lookupProperty(helpers,"name") || (depth0 != null ? lookupProperty(depth0,"name") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data,"loc":{"start":{"line":4,"column":45},"end":{"line":4,"column":53}}}) : helper)))
-    + " permanent "
-    + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"active") : depth0),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":4,"column":64},"end":{"line":4,"column":91}}})) != null ? stack1 : "")
-    + "\" data-action=\""
-    + alias4(((helper = (helper = lookupProperty(helpers,"name") || (depth0 != null ? lookupProperty(depth0,"name") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data,"loc":{"start":{"line":4,"column":106},"end":{"line":4,"column":114}}}) : helper)))
-    + "\">\n"
-    + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"iconClass") : depth0),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.program(6, data, 0),"data":data,"loc":{"start":{"line":5,"column":4},"end":{"line":9,"column":11}}})) != null ? stack1 : "")
+  return "             <li tabindex=\"0\">\n"
+    + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"disabled") : depth0),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.program(6, data, 0),"data":data,"loc":{"start":{"line":5,"column":3},"end":{"line":9,"column":10}}})) != null ? stack1 : "")
+    + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"iconClass") : depth0),{"name":"if","hash":{},"fn":container.program(8, data, 0),"inverse":container.program(10, data, 0),"data":data,"loc":{"start":{"line":10,"column":4},"end":{"line":14,"column":11}}})) != null ? stack1 : "")
     + "                                <p>\n                                   <strong class=\"menuitem-text\">"
-    + alias4(((helper = (helper = lookupProperty(helpers,"displayName") || (depth0 != null ? lookupProperty(depth0,"displayName") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"displayName","hash":{},"data":data,"loc":{"start":{"line":11,"column":35},"end":{"line":11,"column":50}}}) : helper)))
+    + alias4(((helper = (helper = lookupProperty(helpers,"displayName") || (depth0 != null ? lookupProperty(depth0,"displayName") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"displayName","hash":{},"data":data,"loc":{"start":{"line":16,"column":35},"end":{"line":16,"column":50}}}) : helper)))
     + "</strong><br>\n                                 <span class=\"menuitem-text-detail\">"
-    + alias4(((helper = (helper = lookupProperty(helpers,"tooltip") || (depth0 != null ? lookupProperty(depth0,"tooltip") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"tooltip","hash":{},"data":data,"loc":{"start":{"line":12,"column":40},"end":{"line":12,"column":51}}}) : helper)))
-    + "</span>\n                               </p>\n                  </a>\n          </li>\n";
-},"2":function(container,depth0,helpers,partials,data) {
-    return "active";
+    + alias4(((helper = (helper = lookupProperty(helpers,"tooltip") || (depth0 != null ? lookupProperty(depth0,"tooltip") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"tooltip","hash":{},"data":data,"loc":{"start":{"line":17,"column":40},"end":{"line":17,"column":51}}}) : helper)))
+    + "</span>\n                               </p>\n"
+    + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"disabled") : depth0),{"name":"if","hash":{},"fn":container.program(12, data, 0),"inverse":container.program(14, data, 0),"data":data,"loc":{"start":{"line":19,"column":3},"end":{"line":23,"column":10}}})) != null ? stack1 : "")
+    + "                </li>\n";
+},"3":function(container,depth0,helpers,partials,data) {
+    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {
+        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
+          return parent[propertyName];
+        }
+        return undefined
+    };
+
+  return "                     <div class=\"menuitem action action-"
+    + alias4(((helper = (helper = lookupProperty(helpers,"name") || (depth0 != null ? lookupProperty(depth0,"name") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data,"loc":{"start":{"line":6,"column":38},"end":{"line":6,"column":46}}}) : helper)))
+    + " permanent "
+    + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"active") : depth0),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":6,"column":57},"end":{"line":6,"column":84}}})) != null ? stack1 : "")
+    + " disabled\" data-action=\""
+    + alias4(((helper = (helper = lookupProperty(helpers,"name") || (depth0 != null ? lookupProperty(depth0,"name") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data,"loc":{"start":{"line":6,"column":108},"end":{"line":6,"column":116}}}) : helper)))
+    + "\">\n";
 },"4":function(container,depth0,helpers,partials,data) {
+    return "active";
+},"6":function(container,depth0,helpers,partials,data) {
+    var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3="function", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {
+        if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
+          return parent[propertyName];
+        }
+        return undefined
+    };
+
+  return "                     <a href=\"#\" class=\"menuitem action action-"
+    + alias4(((helper = (helper = lookupProperty(helpers,"name") || (depth0 != null ? lookupProperty(depth0,"name") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data,"loc":{"start":{"line":8,"column":45},"end":{"line":8,"column":53}}}) : helper)))
+    + " permanent "
+    + ((stack1 = lookupProperty(helpers,"if").call(alias1,(depth0 != null ? lookupProperty(depth0,"active") : depth0),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":8,"column":64},"end":{"line":8,"column":91}}})) != null ? stack1 : "")
+    + "\" data-action=\""
+    + alias4(((helper = (helper = lookupProperty(helpers,"name") || (depth0 != null ? lookupProperty(depth0,"name") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{"name":"name","hash":{},"data":data,"loc":{"start":{"line":8,"column":106},"end":{"line":8,"column":114}}}) : helper)))
+    + "\">\n";
+},"8":function(container,depth0,helpers,partials,data) {
     var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {
         if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
           return parent[propertyName];
@@ -32,10 +68,14 @@ templates['federationscopemenu'] = template({"1":function(container,depth0,helpe
     };
 
   return "                                     <span class=\"icon "
-    + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"iconClass") || (depth0 != null ? lookupProperty(depth0,"iconClass") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"iconClass","hash":{},"data":data,"loc":{"start":{"line":6,"column":23},"end":{"line":6,"column":36}}}) : helper)))
+    + container.escapeExpression(((helper = (helper = lookupProperty(helpers,"iconClass") || (depth0 != null ? lookupProperty(depth0,"iconClass") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{"name":"iconClass","hash":{},"data":data,"loc":{"start":{"line":11,"column":23},"end":{"line":11,"column":36}}}) : helper)))
     + "\"></span>\n";
-},"6":function(container,depth0,helpers,partials,data) {
+},"10":function(container,depth0,helpers,partials,data) {
     return "                                   <span class=\"no-icon\"></span>\n";
+},"12":function(container,depth0,helpers,partials,data) {
+    return "                   </div>\n";
+},"14":function(container,depth0,helpers,partials,data) {
+    return "                   </a>\n";
 },"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) {
     var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {
         if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
@@ -45,7 +85,7 @@ templates['federationscopemenu'] = template({"1":function(container,depth0,helpe
     };
 
   return "<ul>\n"
-    + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,"items") : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":1},"end":{"line":16,"column":10}}})) != null ? stack1 : "")
+    + ((stack1 = lookupProperty(helpers,"each").call(depth0 != null ? depth0 : (container.nullContext || {}),(depth0 != null ? lookupProperty(depth0,"items") : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":2,"column":1},"end":{"line":26,"column":10}}})) != null ? stack1 : "")
     + "</ul>\n";
 },"useData":true});
 })();
\ No newline at end of file
index 4bd945b094d6e883e06e6e5d6da33bc7f694839f..c9d86c63142906cf33d2fd414c9ecf2bf89b93c9 100644 (file)
@@ -1,7 +1,12 @@
 <ul>
        {{#each items}}
+               {{#unless hidden}}
                <li tabindex="0">
+                       {{#if disabled}}
+                       <div class="menuitem action action-{{name}} permanent {{#if active}}active{{/if}} disabled" data-action="{{name}}">
+                       {{else}}
                        <a href="#" class="menuitem action action-{{name}} permanent {{#if active}}active{{/if}}" data-action="{{name}}">
+                       {{/if}}
                                {{#if iconClass}}
                                        <span class="icon {{iconClass}}"></span>
                                {{else}}
                                        <strong class="menuitem-text">{{displayName}}</strong><br>
                                        <span class="menuitem-text-detail">{{tooltip}}</span>
                                </p>
+                       {{#if disabled}}
+                       </div>
+                       {{else}}
                        </a>
+                       {{/if}}
                </li>
+               {{/unless}}
        {{/each}}
 </ul>
index 184334b56ec3925c65cfea066b71fae4c94d479b..15244036111e666e2f59c2daab3c6770ff8d32b6 100644 (file)
@@ -34,6 +34,9 @@ script('settings', [
 ]);
 ?>
 
+<!-- config hints for javascript -->
+<input type="hidden" name="lookupServerUploadEnabled" id="lookupServerUploadEnabled" value="<?php p($_['lookupServerUploadEnabled']); ?>" />
+
 <div id="personal-settings">
        <div id="personal-settings-avatar-container" class="personal-settings-container">
                <div>
@@ -67,9 +70,7 @@ script('settings', [
                                        </div>
                                </div>
                                <span class="icon-checkmark hidden"></span>
-                               <?php if ($_['lookupServerUploadEnabled']) { ?>
                                <input type="hidden" id="avatarscope" value="<?php p($_['avatarScope']) ?>">
-                               <?php } ?>
                        </form>
                </div>
                <div class="personal-settings-setting-box personal-settings-group-box section">
@@ -123,9 +124,7 @@ script('settings', [
                                <?php } ?>
                                <span class="icon-checkmark hidden"></span>
                                <span class="icon-error hidden" ></span>
-                               <?php if ($_['lookupServerUploadEnabled']) { ?>
-                                       <input type="hidden" id="displaynamescope" value="<?php p($_['displayNameScope']) ?>">
-                               <?php } ?>
+                               <input type="hidden" id="displaynamescope" value="<?php p($_['displayNameScope']) ?>">
                        </form>
                </div>
                <div class="personal-settings-setting-box">
@@ -173,9 +172,7 @@ script('settings', [
                                <?php if ($_['displayNameChangeSupported']) { ?>
                                        <em><?php p($l->t('For password reset and notifications')); ?></em>
                                <?php } ?>
-                               <?php if ($_['lookupServerUploadEnabled']) { ?>
-                                       <input type="hidden" id="emailscope" value="<?php p($_['emailScope']) ?>">
-                               <?php } ?>
+                               <input type="hidden" id="emailscope" value="<?php p($_['emailScope']) ?>">
                        </form>
                </div>
                <?php if (!empty($_['phone']) || $_['lookupServerUploadEnabled']) { ?>
@@ -196,9 +193,7 @@ script('settings', [
                                           placeholder="<?php p($l->t('Your phone number')); ?>"
                                       autocomplete="on" autocapitalize="none" autocorrect="off" />
                                <span class="icon-checkmark hidden"></span>
-                               <?php if ($_['lookupServerUploadEnabled']) { ?>
                                <input type="hidden" id="phonescope" value="<?php p($_['phoneScope']) ?>">
-                               <?php } ?>
                        </form>
                </div>
                <?php } ?>
@@ -220,9 +215,7 @@ script('settings', [
                                           value="<?php p($_['address']) ?>"
                                           autocomplete="on" autocapitalize="none" autocorrect="off" />
                                <span class="icon-checkmark hidden"></span>
-                               <?php if ($_['lookupServerUploadEnabled']) { ?>
                                <input type="hidden" id="addressscope" value="<?php p($_['addressScope']) ?>">
-                               <?php } ?>
                        </form>
                </div>
                <?php } ?>
@@ -275,9 +268,7 @@ script('settings', [
                                        }  ?>
                                />
                                <span class="icon-checkmark hidden"></span>
-                               <?php if ($_['lookupServerUploadEnabled']) { ?>
                                <input type="hidden" id="websitescope" value="<?php p($_['websiteScope']) ?>">
-                               <?php } ?>
                        </form>
                </div>
                <?php } ?>
@@ -330,9 +321,7 @@ script('settings', [
                                        }  ?>
                                />
                                <span class="icon-checkmark hidden"></span>
-                               <?php if ($_['lookupServerUploadEnabled']) { ?>
                                <input type="hidden" id="twitterscope" value="<?php p($_['twitterScope']) ?>">
-                               <?php } ?>
                        </form>
                </div>
                <?php } ?>