From 748c8944507086651049830631c20d7ea87bc567 Mon Sep 17 00:00:00 2001 From: Andrew Manning Date: Wed, 16 Nov 2016 20:16:46 -0500 Subject: Move new wiki dialog directly underneath new wiki button in wiki list widget --- include/widgets.php | 90 +++++++++++++++++++++++++++++++++++++-------------- view/tpl/wiki.tpl | 29 ----------------- view/tpl/wikilist.tpl | 30 +++++++++++++++++ 3 files changed, 95 insertions(+), 54 deletions(-) diff --git a/include/widgets.php b/include/widgets.php index 86f0305df..84f224c7e 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -899,32 +899,72 @@ function widget_chatroom_members() { function widget_wiki_list($arr) { - require_once("include/wiki.php"); - $channel = null; - if (argc() < 2 && local_channel()) { - // This should not occur because /wiki should redirect to /wiki/channel ... - $channel = \App::get_channel(); - } else { - $channel = channelx_by_nick(argv(1)); // Channel being viewed by observer - } - if (!$channel) { + require_once("include/wiki.php"); + $channel = null; + if (argc() < 2 && local_channel()) { + // This should not occur because /wiki should redirect to /wiki/channel ... + $channel = \App::get_channel(); + } else { + $channel = channelx_by_nick(argv(1)); // Channel being viewed by observer + } + if (!$channel) { + return ''; + } + // init() should have forced the URL to redirect to /wiki/channel so assume argc() > 1 + $nick = argv(1); + $owner = channelx_by_nick($nick); // The channel who owns the wikis being viewed + // Determine if the observer is the channel owner so the ACL dialog can be populated + if (local_channel() === intval($owner['channel_id'])) { + + // Obtain the default permission settings of the channel + $owner_acl = array( + 'allow_cid' => $owner['channel_allow_cid'], + 'allow_gid' => $owner['channel_allow_gid'], + 'deny_cid' => $owner['channel_deny_cid'], + 'deny_gid' => $owner['channel_deny_gid'] + ); + // Initialize the ACL to the channel default permissions + $x = array( + 'lockstate' => (( $owner['channel_allow_cid'] || + $owner['channel_allow_gid'] || + $owner['channel_deny_cid'] || + $owner['channel_deny_gid']) ? 'lock' : 'unlock' + ), + 'acl' => populate_acl($owner_acl), + 'allow_cid' => acl2json($owner_acl['allow_cid']), + 'allow_gid' => acl2json($owner_acl['allow_gid']), + 'deny_cid' => acl2json($owner_acl['deny_cid']), + 'deny_gid' => acl2json($owner_acl['deny_gid']), + 'bang' => '' + ); + } else { + // Not the channel owner + $owner_acl = $x = array(); + } + + $wikis = wiki_list($channel, get_observer_hash()); + if ($wikis) { + return replace_macros(get_markup_template('wikilist.tpl'), array( + '$header' => t('Wiki List'), + '$channel' => $channel['channel_address'], + '$wikis' => $wikis['wikis'], + // If the observer is the local channel owner, show the wiki controls + '$owner' => ((local_channel() && local_channel() === intval(\App::$profile['uid'])) ? true : false), + '$edit' => t('Edit'), + '$download' => t('Download'), + '$view' => t('View'), + '$addnew' => t('Add new wiki'), + '$wikiName' => array('wikiName', t('Enter the name of your new wiki:'), '', ''), + '$lockstate' => $x['lockstate'], + '$acl' => $x['acl'], + '$allow_cid' => $x['allow_cid'], + '$allow_gid' => $x['allow_gid'], + '$deny_cid' => $x['deny_cid'], + '$deny_gid' => $x['deny_gid'], + '$bang' => $x['bang'], + )); + } return ''; - } - $wikis = wiki_list($channel, get_observer_hash()); - if ($wikis) { - return replace_macros(get_markup_template('wikilist.tpl'), array( - '$header' => t('Wiki List'), - '$channel' => $channel['channel_address'], - '$wikis' => $wikis['wikis'], - // If the observer is the local channel owner, show the wiki controls - '$owner' => ((local_channel() && local_channel() === intval(\App::$profile['uid'])) ? true : false), - '$edit' => t('Edit'), - '$download' => t('Download'), - '$view' => t('View'), - '$addnew' => t('Add new wiki') - )); - } - return ''; } function widget_wiki_pages($arr) { diff --git a/view/tpl/wiki.tpl b/view/tpl/wiki.tpl index 54d501396..9c6499558 100644 --- a/view/tpl/wiki.tpl +++ b/view/tpl/wiki.tpl @@ -43,35 +43,6 @@

{{$wikiheaderName}}: {{$wikiheaderPage}}

- -- cgit v1.2.3 From 7aa712a481038b603016bff4aca0ff23cdf4cddd Mon Sep 17 00:00:00 2001 From: Andrew Manning Date: Wed, 16 Nov 2016 20:38:06 -0500 Subject: Create wiki edit dialogs directly underneath the wiki name in the wiki list --- view/tpl/wiki.tpl | 11 -------- view/tpl/wikilist.tpl | 74 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 43 insertions(+), 42 deletions(-) diff --git a/view/tpl/wiki.tpl b/view/tpl/wiki.tpl index 9c6499558..ecc475e6f 100644 --- a/view/tpl/wiki.tpl +++ b/view/tpl/wiki.tpl @@ -44,17 +44,6 @@
-