diff --git a/Zotlabs/Module/Admin.php b/Zotlabs/Module/Admin.php index cb843e212..4d052cdf8 100644 --- a/Zotlabs/Module/Admin.php +++ b/Zotlabs/Module/Admin.php @@ -1408,7 +1408,9 @@ class Admin extends \Zotlabs\Web\Controller { '$plugins' => $plugins, '$disabled' => t('Disabled - version incompatibility'), '$form_security_token' => get_form_security_token('admin_plugins'), - '$addrepo' => t('Add Plugin Repo'), + '$managerepos' => t('Manage Repos'), + '$installedtitle' => t('Installed Plugin Repositories'), + '$addnewrepotitle' => t('Install a New Plugin Repository'), '$expandform' => false, '$form' => $admin_plugins_add_repo_form, '$newRepoModal' => $newRepoModal, diff --git a/Zotlabs/Module/Editpost.php b/Zotlabs/Module/Editpost.php index 43edf2c00..da859de3e 100644 --- a/Zotlabs/Module/Editpost.php +++ b/Zotlabs/Module/Editpost.php @@ -87,11 +87,11 @@ class Editpost extends \Zotlabs\Web\Controller { 'hide_location' => true, 'mimetype' => $itm[0]['mimetype'], 'ptyp' => $itm[0]['obj_type'], - 'body' => undo_post_tagging($itm[0]['body']), + 'body' => htmlspecialchars_decode(undo_post_tagging($itm[0]['body']),ENT_COMPAT), 'post_id' => $post_id, 'defloc' => $channel['channel_location'], 'visitor' => true, - 'title' => htmlspecialchars($itm[0]['title'],ENT_COMPAT,'UTF-8'), + 'title' => htmlspecialchars_decode($itm[0]['title'],ENT_COMPAT), 'category' => $category, 'showacl' => false, 'profile_uid' => $owner_uid, diff --git a/include/PermissionDescription.php b/include/PermissionDescription.php index 75dd9ecf7..1f7799406 100644 --- a/include/PermissionDescription.php +++ b/include/PermissionDescription.php @@ -117,11 +117,7 @@ class PermissionDescription { case PERMS_NETWORK: return t('Anybody in the $Projectname network'); case PERMS_SITE: return sprintf(t('Any account on %s'), \App::get_hostname()); case PERMS_CONTACTS: return t('Any of my connections'); - case PERMS_SPECIFIC: - // Because we're describing the permissions of an item with an empty ACL, - // the owner will be the only person able to see it if the permissions are - // set to "only specified connections". - return t('Only me (only specified contacts and me)'); + case PERMS_SPECIFIC: return t('Only connections I specifically allow'); case PERMS_AUTHED: return t('Anybody authenticated (could include visitors from other networks)'); case PERMS_PENDING: return t('Any connections including those who haven\'t yet been approved'); default: return $this->fallback_description; @@ -143,11 +139,7 @@ class PermissionDescription { case PERMS_NETWORK: return 'fa-share-alt-square'; // fa-share-alt-square is very similiar to the hubzilla logo, but we should create our own logo class to use case PERMS_SITE: return 'fa-sitemap'; case PERMS_CONTACTS: return 'fa-group'; - case PERMS_SPECIFIC: - // Because we're describing the permissions of an item with an empty ACL, - // the owner will be the only person able to see it if the permissions are - // set to "only specified connections". - return 'fa-eye-slash'; + case PERMS_SPECIFIC: return 'fa-list'; case PERMS_AUTHED: return ''; case PERMS_PENDING: return ''; default: return ''; diff --git a/include/acl_selectors.php b/include/acl_selectors.php index 6b727c9a2..886574714 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -269,6 +269,8 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti $tpl = get_markup_template("acl_selector.tpl"); $o = replace_macros($tpl, array( '$showall' => $showall_caption, + '$onlyme' => t('Only me'), + '$add_others' => t('Add others'), '$showallOrigin' => $showall_origin, '$showallIcon' => $showall_icon, '$select_label' => t('Who can see this?'), diff --git a/view/js/acl.js b/view/js/acl.js index a04cf9d86..92a80e3d1 100644 --- a/view/js/acl.js +++ b/view/js/acl.js @@ -17,8 +17,10 @@ function ACL(backend_url, preset) { that.list_content = $("#acl-list-content"); that.item_tpl = unescape($(".acl-list-item[rel=acl-template]").html()); that.showall = $("#acl-showall"); + that.onlyme = $("#acl-onlyme"); that.showlimited = $("#acl-showlimited"); that.acl_select = $("#acl-select"); + that.showacl = $("#show-acl"); that.preset = preset; that.self = []; @@ -33,17 +35,22 @@ function ACL(backend_url, preset) { that.acl_select.change(function(event) { var option = that.acl_select.val(); - if(option == 'option1') { // public + if(option == 'public') { // public that.on_showall(event); } - if(option == 'option2') { // restricted + if(option == 'onlyme') { // limited to one self + that.on_onlyme(event); + } + + if(option == 'limited') { // limited to custom selection that.on_showlimited(event); } }); $(document).on('click','.acl-button-show',that.on_button_show); $(document).on('click','.acl-button-hide',that.on_button_hide); + $("#acl-search").keypress(that.on_search); /* startup! */ @@ -86,6 +93,21 @@ ACL.prototype.on_search = function(event) { that.kp_timer = setTimeout( that.search, 1000); }; +ACL.prototype.on_onlyme = function(event) { + // preventDefault() isn't called here as we want state changes from update_view() to be applied to the radiobutton + event.stopPropagation(); + + that.allow_cid = [that.self[0]]; + that.allow_gid = []; + that.deny_cid = []; + that.deny_gid = []; + + that.update_view(event.target.value); + that.on_submit(); + + return true; // return true so that state changes from update_view() will be applied +}; + ACL.prototype.on_showall = function(event) { // preventDefault() isn't called here as we want state changes from update_view() to be applied to the radiobutton event.stopPropagation(); @@ -95,7 +117,7 @@ ACL.prototype.on_showall = function(event) { that.deny_cid = []; that.deny_gid = []; - that.update_view(); + that.update_view(event.target.value); that.on_submit(); return true; // return true so that state changes from update_view() will be applied @@ -114,7 +136,7 @@ ACL.prototype.on_showlimited = function(event) { that.deny_cid = (that.preset[2] || []); that.deny_gid = (that.preset[3] || []); - that.update_view(); + that.update_view(event.target.value); that.on_submit(); return true; // return true so that state changes from update_view() will be applied @@ -218,30 +240,46 @@ ACL.prototype.set_deny = function(itemid) { that.update_view(); }; -ACL.prototype.update_select = function(isPublic) { - that.showall.prop('selected', isPublic); - that.showlimited.prop('selected', !isPublic); +ACL.prototype.update_select = function(preset) { + that.showall.prop('selected', preset === 'public'); + that.onlyme.prop('selected', preset === 'onlyme'); + that.showlimited.prop('selected', preset === 'limited'); }; -ACL.prototype.update_view = function() { +ACL.prototype.update_view = function(value) { + if (that.allow_gid.length === 0 && that.allow_cid.length === 0 && that.deny_gid.length === 0 && that.deny_cid.length === 0) { that.list.hide(); //hide acl-list + that.showacl.hide(); //hide showacl button that.info.show(); //show acl-info - that.update_select(true); + that.update_select('public'); /* jot acl */ $('#jot-perms-icon, #dialog-perms-icon').removeClass('fa-lock').addClass('fa-unlock'); - $('#jot-public').show(); $('.profile-jot-net input').attr('disabled', false); - } else { - that.list.show(); //show acl-list - that.info.hide(); //hide acl-info - that.update_select(false); + } + + // if value != 'onlyme' we should fall through this one + else if (that.allow_gid.length === 0 && that.allow_cid.length === 1 && that.allow_cid[0] === that.self[0] && that.deny_gid.length === 0 && that.deny_cid.length === 0 && value === 'onlyme') { + that.list.hide(); //hide acl-list if + that.showacl.show(); //show showacl button + that.info.hide(); //show acl-info + that.update_select('onlyme'); + + /* jot acl */ + $('#jot-perms-icon, #dialog-perms-icon').removeClass('fa-unlock').addClass('fa-lock'); + $('.profile-jot-net input').attr('disabled', 'disabled'); + } + + else { + that.list.show(); //show acl-list + that.showacl.hide(); //hide showacl button + that.info.hide(); //hide acl-info + that.update_select('limited'); /* jot acl */ $('#jot-perms-icon, #dialog-perms-icon').removeClass('fa-unlock').addClass('fa-lock'); - $('#jot-public').hide(); $('.profile-jot-net input').attr('disabled', 'disabled'); } diff --git a/view/tpl/acl_selector.tpl b/view/tpl/acl_selector.tpl index b30669f9a..1711cee8a 100755 --- a/view/tpl/acl_selector.tpl +++ b/view/tpl/acl_selector.tpl @@ -14,10 +14,15 @@ {{/if}} +
+ +
+ {{if $showallOrigin}}
 {{$showallOrigin}} diff --git a/view/tpl/admin_plugins.tpl b/view/tpl/admin_plugins.tpl index f21a3057e..993a4dea2 100755 --- a/view/tpl/admin_plugins.tpl +++ b/view/tpl/admin_plugins.tpl @@ -1,33 +1,48 @@
- +

{{$title}} - {{$page}}

-
+
+
-
-

Installed Plugin Repositories

- {{foreach $addonrepos as $repo}} - -
- {{$repo.name}} - - - -
- -
- {{/foreach}} -
{{foreach $plugins as $p}}