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 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 65 insertions(+), 25 deletions(-) (limited to 'include') 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) { -- cgit v1.2.3 From 20db8bbe2ef02190f405e8ee516afadf3a8c9b98 Mon Sep 17 00:00:00 2001 From: Andrew Manning Date: Thu, 17 Nov 2016 05:58:26 -0500 Subject: Highlight active wiki in list in preparation for removing active wiki name from content section header to make room for page list viewer --- include/widgets.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/widgets.php b/include/widgets.php index 84f224c7e..e74f2c58b 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -941,8 +941,20 @@ function widget_wiki_list($arr) { // Not the channel owner $owner_acl = $x = array(); } - + if(argc()>1) { + $activeWikiURLname = argv(2); + } else { + $activeWikiURLname = ''; + } + logger($activeWikiURLname, LOGGER_DEBUG); $wikis = wiki_list($channel, get_observer_hash()); + foreach($wikis['wikis'] as &$w) { + if($w['urlName'] === $activeWikiURLname) { + $w['active'] = true; + } else { + $w['active'] = false; + } + } if ($wikis) { return replace_macros(get_markup_template('wikilist.tpl'), array( '$header' => t('Wiki List'), -- cgit v1.2.3 From 0b0e0f8f43fc199e0b45a15cc2bc1bd228b58ba9 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Thu, 17 Nov 2016 14:17:26 +0100 Subject: wiki list fixes --- include/widgets.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/widgets.php b/include/widgets.php index e74f2c58b..3dc555b46 100644 --- a/include/widgets.php +++ b/include/widgets.php @@ -965,8 +965,9 @@ function widget_wiki_list($arr) { '$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:'), '', ''), + '$addnew' => t('Create new wiki'), + '$create' => t('Create'), + '$wikiName' => array('wikiName', t('Wiki name'), '', ''), '$lockstate' => $x['lockstate'], '$acl' => $x['acl'], '$allow_cid' => $x['allow_cid'], @@ -974,6 +975,7 @@ function widget_wiki_list($arr) { '$deny_cid' => $x['deny_cid'], '$deny_gid' => $x['deny_gid'], '$bang' => $x['bang'], + '$notify' => t('Send notification') )); } return ''; -- cgit v1.2.3