From f3faeb02709b7595c21c9e1fa1f5480a01df08be Mon Sep 17 00:00:00 2001 From: Szymon Olewniczak Date: Thu, 26 Sep 2013 12:54:57 +0200 Subject: [PATCH 1/9] difflink is now always on the end --- action.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/action.php b/action.php index 86fd7d5..56117a7 100644 --- a/action.php +++ b/action.php @@ -147,10 +147,12 @@ function handle_display_banner(&$event, $param) { if($approver && !$most_recent_approved) { $strings[] = 'yes'; } else { $strings[] = 'no'; } $strings[] = '">'; + $difflink = ''; + if($most_recent_draft) { $strings[] = ''; $strings[] = sprintf($this->getLang('apr_recent_draft'), wl($ID, 'force_rev=1')); - $strings[] = $this->difflink($ID, null, $REV) . ''; + $difflink = $this->difflink($ID, null, $REV) . ''; } if($most_recent_approved) { @@ -159,7 +161,7 @@ function handle_display_banner(&$event, $param) { if($userrev == $latest_rev) { $userrev = ''; } $strings[] = ''; $strings[] = sprintf($this->getLang('apr_outdated'), wl($ID, 'rev=' . $userrev)); - $strings[] = $this->difflink($ID, $userrev, $REV) . ''; + $difflink = $this->difflink($ID, $userrev, $REV) . ''; } if(!$approver) { @@ -184,9 +186,10 @@ function handle_display_banner(&$event, $param) { $strings[] = sprintf($this->getLang('apr_previous'), wl($ID, 'rev=' . $previous_approved), dformat($previous_approved)); - $strings[] = $this->difflink($ID, $previous_approved, $REV) . ''; + $difflink = $this->difflink($ID, $previous_approved, $REV) . ''; } + $strings[] = $difflink; $strings[] = ''; ptln(implode($strings)); From 5026ccfb905f2da84c7b24b604dd807c64bb56cf Mon Sep 17 00:00:00 2001 From: Szymon Olewniczak Date: Thu, 26 Sep 2013 13:38:35 +0200 Subject: [PATCH 2/9] compact style added --- action.php | 18 ++++++++++++------ conf/default.php | 1 + conf/metadata.php | 1 + lang/en/lang.php | 7 +++++++ lang/en/settings.php | 1 + lang/pl/lang.php | 7 +++++++ lang/pl/settings.php | 1 + print.css | 26 ++++++++++++++++++++++++++ style.css | 27 +++++++++++++++++++++++++++ 9 files changed, 83 insertions(+), 6 deletions(-) diff --git a/action.php b/action.php index 56117a7..be91c83 100644 --- a/action.php +++ b/action.php @@ -143,7 +143,13 @@ function handle_display_banner(&$event, $param) { $previous_approved = $arev; } - $strings[] = '
getConf('apr_compact') == 1) { + $suffix = '_compact'; + $strings[] = ' compact'; + } + $strings[] = ' approval approved_'; if($approver && !$most_recent_approved) { $strings[] = 'yes'; } else { $strings[] = 'no'; } $strings[] = '">'; @@ -151,7 +157,7 @@ function handle_display_banner(&$event, $param) { if($most_recent_draft) { $strings[] = ''; - $strings[] = sprintf($this->getLang('apr_recent_draft'), wl($ID, 'force_rev=1')); + $strings[] = sprintf($this->getLang('apr_recent_draft'.$suffix), wl($ID, 'force_rev=1')); $difflink = $this->difflink($ID, null, $REV) . ''; } @@ -160,14 +166,14 @@ function handle_display_banner(&$event, $param) { $userrev = $most_recent_approved; if($userrev == $latest_rev) { $userrev = ''; } $strings[] = ''; - $strings[] = sprintf($this->getLang('apr_outdated'), wl($ID, 'rev=' . $userrev)); + $strings[] = sprintf($this->getLang('apr_outdated'.$suffix), wl($ID, 'rev=' . $userrev)); $difflink = $this->difflink($ID, $userrev, $REV) . ''; } if(!$approver) { # Draft $strings[] = ''; - $strings[] = sprintf($this->getLang('apr_draft'), + $strings[] = sprintf($this->getLang('apr_draft'.$suffix), '' . $longdate . ''); $strings[] = ''; } @@ -175,7 +181,7 @@ function handle_display_banner(&$event, $param) { if($approver) { # Approved $strings[] = ''; - $strings[] = sprintf($this->getLang('apr_approved'), + $strings[] = sprintf($this->getLang('apr_approved'.$suffix), '' . $longdate . '', editorinfo($approver)); $strings[] = ''; @@ -183,7 +189,7 @@ function handle_display_banner(&$event, $param) { if($previous_approved) { $strings[] = ''; - $strings[] = sprintf($this->getLang('apr_previous'), + $strings[] = sprintf($this->getLang('apr_previous'.$suffix), wl($ID, 'rev=' . $previous_approved), dformat($previous_approved)); $difflink = $this->difflink($ID, $previous_approved, $REV) . ''; diff --git a/conf/default.php b/conf/default.php index 4076ae5..9f11b3d 100644 --- a/conf/default.php +++ b/conf/default.php @@ -2,4 +2,5 @@ $conf['apr_namespaces'] = ''; $conf['apr_approved_text'] = 'Approved'; +$conf['apr_compact'] = 0; diff --git a/conf/metadata.php b/conf/metadata.php index 2098038..bff5d2f 100644 --- a/conf/metadata.php +++ b/conf/metadata.php @@ -2,4 +2,5 @@ $meta['apr_namespaces'] = array('string'); $meta['apr_approved_text'] = array('string'); +$meta['apr_compact'] = array('onoff'); diff --git a/lang/en/lang.php b/lang/en/lang.php index c1f8e92..131b4b2 100644 --- a/lang/en/lang.php +++ b/lang/en/lang.php @@ -7,6 +7,13 @@ $lang['apr_approved'] = 'This version (%s) was Approved by %s.'; $lang['apr_previous'] = 'The Previously Approved Version (%s) is available.'; +// compact banner +$lang['apr_recent_draft_compact'] = 'Most Recent - draft'; +$lang['apr_outdated_compact'] = ' | Outdated by a Newer Approved'; +$lang['apr_draft_compact'] = '%s - Draft'; +$lang['apr_approved_compact'] = ' | Approved (%s) by %s'; +$lang['apr_previous_compact'] = ' | Previously Approved (%s)'; + // Pending Approvals List $lang['apr_p_none'] = 'No Documents Pending Approval'; $lang['apr_p_hdr_page'] = 'Page'; diff --git a/lang/en/settings.php b/lang/en/settings.php index 7b22fa1..cb1cb33 100644 --- a/lang/en/settings.php +++ b/lang/en/settings.php @@ -2,5 +2,6 @@ $lang['apr_namespaces'] = 'Namespaces this plugin applies to'; $lang['apr_approved_text'] = 'Automatic Approval Comment'; +$lang['apr_compact'] = 'Enable compact style'; ?> diff --git a/lang/pl/lang.php b/lang/pl/lang.php index c562fdf..fff4cfe 100644 --- a/lang/pl/lang.php +++ b/lang/pl/lang.php @@ -7,6 +7,13 @@ $lang['apr_approved'] = 'Ta wersja strony(%s) została zatwierdzona przez %s.'; $lang['apr_previous'] = 'Dostępna poprzednio zatwierdzona wersja (%s).'; +// compact banner +$lang['apr_recent_draft_compact'] = 'Najnowsza - niezatwierdzona'; +$lang['apr_outdated_compact'] = ' | Zastąpiona przez nowe zatwierdzenie'; +$lang['apr_draft_compact'] = '%s - niezatwierdzona'; +$lang['apr_approved_compact'] = ' | zatwierdzona (%s) przez %s'; +$lang['apr_previous_compact'] = ' | poprzednia zatwierdzona (%s)'; + // Pending Approvals List $lang['apr_p_none'] = 'Brak dokumentów oczekujących na zatwierdzenie'; $lang['apr_p_hdr_page'] = 'Nazwa strony'; diff --git a/lang/pl/settings.php b/lang/pl/settings.php index 22bb156..9d9ebd0 100644 --- a/lang/pl/settings.php +++ b/lang/pl/settings.php @@ -2,5 +2,6 @@ $lang['apr_namespaces'] = 'Preztrzenie nazw (ang. namespaces), które wtyczka ma obejmować (puste pole oznacza całe wiki)'; $lang['apr_approved_text'] = 'Komentarz do operacji zatwierdzenia strony'; +$lang['apr_compact'] = 'Aktywuj styl kompaktowy'; ?> diff --git a/print.css b/print.css index f666f19..909848d 100644 --- a/print.css +++ b/print.css @@ -14,6 +14,20 @@ div.approval { border-radius: 10px; border: solid black 2px; } +div.approval.compact { + margin: 0; + width: auto !important; + min-height: 20px; + padding: 2px 10px; + + -moz-border-radius: 0; + -khtml-border-radius: 0; + border-radius: 0; + + position: absolute; + right:0; + top:0; +} div.approved_yes { background-color: #dfd; @@ -25,6 +39,14 @@ div.approved_no { background-image: url(images/no.gif); } +div.approved_yes.compact { + background-image: none; +} + +div.approved_no.compact { + background-image: none; +} + div.approval em { font-weight: bold; } @@ -33,6 +55,10 @@ div.approval span { display: block; } +div.approval.compact span { + display: inline; +} + div.approved_revision { background-color: #dfd; } diff --git a/style.css b/style.css index 87f909c..791038c 100644 --- a/style.css +++ b/style.css @@ -16,6 +16,21 @@ div.approval { border-radius: 10px; } +div.approval.compact { + margin: 0; + width: auto !important; + min-height: 20px; + padding: 2px 10px; + + -moz-border-radius: 0; + -khtml-border-radius: 0; + border-radius: 0; + + position: absolute; + right:0; + top:0; +} + div.approved_yes { background-color: #dfd; background-image: url(images/yes.gif); @@ -26,6 +41,14 @@ div.approved_no { background-image: url(images/no.gif); } +div.approved_yes.compact { + background-image: none; +} + +div.approved_no.compact { + background-image: none; +} + div.approval em { font-weight: bold; } @@ -34,6 +57,10 @@ div.approval span { display: block; } +div.approval.compact span { + display: inline; +} + div.approved_revision { background-color: #dfd; } From cf14b3a049147753da7a07c62d70b1ba7de7fe5a Mon Sep 17 00:00:00 2001 From: Szymon Olewniczak Date: Thu, 26 Sep 2013 14:59:09 +0200 Subject: [PATCH 3/9] typo fixed --- lang/en/lang.php | 6 +++--- lang/pl/lang.php | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lang/en/lang.php b/lang/en/lang.php index 131b4b2..75058f9 100644 --- a/lang/en/lang.php +++ b/lang/en/lang.php @@ -8,10 +8,10 @@ $lang['apr_previous'] = 'The Previously Approved Version (%s) is available.'; // compact banner -$lang['apr_recent_draft_compact'] = 'Most Recent - draft'; -$lang['apr_outdated_compact'] = ' | Outdated by a Newer Approved'; +$lang['apr_recent_draft_compact'] = 'Most Recent - draft | '; +$lang['apr_outdated_compact'] = 'Outdated by a Newer Approved | '; $lang['apr_draft_compact'] = '%s - Draft'; -$lang['apr_approved_compact'] = ' | Approved (%s) by %s'; +$lang['apr_approved_compact'] = 'Approved (%s) by %s'; $lang['apr_previous_compact'] = ' | Previously Approved (%s)'; // Pending Approvals List diff --git a/lang/pl/lang.php b/lang/pl/lang.php index fff4cfe..3b6666a 100644 --- a/lang/pl/lang.php +++ b/lang/pl/lang.php @@ -8,10 +8,10 @@ $lang['apr_previous'] = 'Dostępna poprzednio zatwierdzona wersja (%s).'; // compact banner -$lang['apr_recent_draft_compact'] = 'Najnowsza - niezatwierdzona'; -$lang['apr_outdated_compact'] = ' | Zastąpiona przez nowe zatwierdzenie'; +$lang['apr_recent_draft_compact'] = 'Najnowsza - niezatwierdzona | '; +$lang['apr_outdated_compact'] = 'Zastąpiona przez nowe zatwierdzenie | '; $lang['apr_draft_compact'] = '%s - niezatwierdzona'; -$lang['apr_approved_compact'] = ' | zatwierdzona (%s) przez %s'; +$lang['apr_approved_compact'] = 'zatwierdzona (%s) przez %s'; $lang['apr_previous_compact'] = ' | poprzednia zatwierdzona (%s)'; // Pending Approvals List From 5e486f45f4ca332e515cb66faa41feda55fc429a Mon Sep 17 00:00:00 2001 From: ghi Date: Thu, 26 Jun 2014 11:45:27 +0200 Subject: [PATCH 4/9] approve link --- action.php | 50 +++++- action.php~ | 356 +++++++++++++++++++++++++++++++++++++++++ images/diffapprove.png | Bin 0 -> 398 bytes lang/en/lang.php | 2 + lang/en/lang.php~ | 29 ++++ lang/pl/lang.php | 2 + lang/pl/lang.php~ | 29 ++++ style.css~ | 96 +++++++++++ 8 files changed, 558 insertions(+), 6 deletions(-) create mode 100644 action.php~ create mode 100644 images/diffapprove.png create mode 100644 lang/en/lang.php~ create mode 100644 lang/pl/lang.php~ create mode 100644 style.css~ diff --git a/action.php b/action.php index be91c83..29f5aa8 100644 --- a/action.php +++ b/action.php @@ -5,6 +5,7 @@ * @license GPL 2 http://www.gnu.org/licenses/gpl-2.0.html * @author Jarrod Lowe * @author Andreas Gohr + * @author Szymon Olewniczak */ // TODO: @@ -31,9 +32,13 @@ function action_plugin_publish(){ } function register(&$controller) { + $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, handle_approve, array()); + $controller->register_hook('TPL_ACT_UNKNOWN', 'BEFORE', $this, handle_tpl_approve, array()); + $controller->register_hook('HTML_EDITFORM_OUTPUT', 'BEFORE', $this, handle_html_editform_output, array()); #$controller->register_hook('TPL_ACT_RENDER', 'AFTER', $this, debug, array()); $controller->register_hook('TPL_ACT_RENDER', 'BEFORE', $this, handle_display_banner, array()); + $controller->register_hook('TPL_ACT_RENDER', 'AFTER', $this, handle_diff_accept, array()); $controller->register_hook('IO_WIKIPAGE_WRITE', 'BEFORE', $this, handle_io_write, array()); $controller->register_hook('HTML_REVISIONSFORM_OUTPUT', 'BEFORE', $this, handle_revisions, array()); $controller->register_hook('HTML_RECENTFORM_OUTPUT', 'BEFORE', $this, handle_recent, array()); @@ -192,7 +197,7 @@ function handle_display_banner(&$event, $param) { $strings[] = sprintf($this->getLang('apr_previous'.$suffix), wl($ID, 'rev=' . $previous_approved), dformat($previous_approved)); - $difflink = $this->difflink($ID, $previous_approved, $REV) . ''; + $difflink = $this->difflink($ID, $previous_approved, $REV, ($approver && !$most_recent_approved) || $most_recent_approved ? false : true) . ''; } $strings[] = $difflink; @@ -202,6 +207,34 @@ function handle_display_banner(&$event, $param) { return true; } + function handle_diff_accept(&$event, $param) { + if ($event->data == 'diff' && isset($_GET['approve'])) { + ptln(''.$this->getLang('apr_do_approve').''); + } + } + + function handle_approve(&$event, $param) { + global $ID; + if ($event->data == 'show' && isset($_GET['approve'])) { + //Add or remove the new line from the end of the page. Silly but needed. + $content = rawWiki($ID, ''); + if (substr($content, -1) == "\n") { + substr($content, 0, -1); + } else { + $content .= "\n"; + } + saveWikiText($ID, $content, $this->getLang('apr_do_approve')); + + $data = pageinfo(); + #$newdata = p_get_metadata($ID, 'approval'); + $newdata = $data['meta']['approval']; + $newdata[$data['lastmod']] = array($data['client'], $_SERVER['REMOTE_USER'], $USERINFO['mail']); + p_set_metadata($ID, array('approval' => $newdata), true, true); + + return true; + } + } + function handle_revisions(&$event, $param) { global $ID; global $REV; @@ -271,12 +304,17 @@ function handle_recent(&$event, $param) { return true; } - function difflink($id, $rev1, $rev2) { + function difflink($id, $rev1, $rev2, $revandapp=false) { if($rev1 == $rev2) { return ''; } - return '' . - 'Diff' . - ''; + $output = ''; + if ($revandapp) { + $output .= $this->getLang('apr_diff_approve'); + } else { + $output .= 'Diff'; + } + $output .= ''; + return $output; } function handle_start(&$event, $param) { diff --git a/action.php~ b/action.php~ new file mode 100644 index 0000000..29f5aa8 --- /dev/null +++ b/action.php~ @@ -0,0 +1,356 @@ + + * @author Andreas Gohr + * @author Szymon Olewniczak + */ + +// TODO: +// Old Revisions Display X +// Recent Changes Display X +// Redirection X +// List of Unapproved Documents user has permission to approve X +// Namespace restrictions + admin X +// Diff Links in banner on Prev Approved X +// List of Recent Approvals X +// Subscriptions should show approvals - hard (MAIL_MESSAGE_SEND is the only appropriate hook) +// Allow submits of docs with no changes for approval, with autocomment X +// RSS Info -- hard (no hooks in feed.php) +// Internationalisation (or not) X + +// must be run within Dokuwiki +if(!defined('DOKU_INC')) die(); + +class action_plugin_publish extends DokuWiki_Action_Plugin { + private $hlp; + + function action_plugin_publish(){ + $this->hlp = plugin_load('helper','publish'); // load helper plugin + } + + function register(&$controller) { + $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, handle_approve, array()); + $controller->register_hook('TPL_ACT_UNKNOWN', 'BEFORE', $this, handle_tpl_approve, array()); + + $controller->register_hook('HTML_EDITFORM_OUTPUT', 'BEFORE', $this, handle_html_editform_output, array()); + #$controller->register_hook('TPL_ACT_RENDER', 'AFTER', $this, debug, array()); + $controller->register_hook('TPL_ACT_RENDER', 'BEFORE', $this, handle_display_banner, array()); + $controller->register_hook('TPL_ACT_RENDER', 'AFTER', $this, handle_diff_accept, array()); + $controller->register_hook('IO_WIKIPAGE_WRITE', 'BEFORE', $this, handle_io_write, array()); + $controller->register_hook('HTML_REVISIONSFORM_OUTPUT', 'BEFORE', $this, handle_revisions, array()); + $controller->register_hook('HTML_RECENTFORM_OUTPUT', 'BEFORE', $this, handle_recent, array()); + $controller->register_hook('DOKUWIKI_STARTED', 'BEFORE', $this, handle_start, array()); + } + + function handle_html_editform_output(&$event, $param) { + global $ID; + global $INFO; + + if(!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) { + return; + } + if($INFO['perm'] < AUTH_DELETE) { + return; + } + + $html = ''; + $event->data->insertElement(12,$html); //FIXME hardcoded element position + } + + function debug(&$event, $param) { + global $ID; + ptln('
');
+        ptln(print_r(p_get_metadata($ID), true));
+        ptln(print_r(pageinfo(), true));
+        ptln('
'); + } + + function handle_io_write(&$event, $param) { + # This is the only hook I could find which runs on save, + # but late enough to have lastmod set (ACTION_ACT_PREPROCESS + # is too early) + global $_POST; + global $ID; + global $ACT; + global $USERINFO; + global $INFO; + if(!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) { return; } + if($INFO['perm'] < AUTH_DELETE) { return true; } + if($ACT != 'save') { return true; } + if(!$event->data[3]) { return true; } # don't approve the doc being moved to archive + if($_POST['approved']) { + $data = pageinfo(); + #$newdata = p_get_metadata($ID, 'approval'); + $newdata = $data['meta']['approval']; + $newdata[$data['lastmod']] = array($data['client'], $_SERVER['REMOTE_USER'], $USERINFO['mail']); + p_set_metadata($ID, array('approval' => $newdata), true, true); + } + return true; + } + + function handle_display_banner(&$event, $param) { + global $ID; + global $REV; + global $INFO; + + if(!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) return; + if($event->data != 'show') return true; + if(!$INFO['exists']) return true; + + $strings = array(); + $meta = p_get_metadata($ID); + $rev = $REV; + if(!$rev) { $rev = $meta['last_change']['date']; } + if(!$meta['approval']) { $meta['approval'] = array(); } + $allapproved = array_keys($meta['approval']); + sort($allapproved); + $latest_rev = $meta['last_change']['date']; + #$strings[] = ''; + + $longdate = dformat($rev); + + # Is this document approved? + $approver = null; + if($meta['approval'][$rev]) { + # Approved + if(is_array($meta['approval'][$rev])) { + $approver = $meta['approval'][$rev][1]; + if(!$approver) { $approver = $meta['approval'][$rev][2]; } + if(!$approver) { $approver = $meta['approval'][$rev][0]; } + }else{ + $approver = $meta['approval'][$rev]; + } + } + + # What is the most recent approved version? + $most_recent_approved = null; + $id = count($allapproved)-1; + if($id >= 0) { + if($allapproved[$id] > $rev) { + $most_recent_approved = $allapproved[$id]; + } + } + + # Latest, if draft + $most_recent_draft = null; + #$strings[] = ''; + if($latest_rev != $rev && $latest_rev != $most_recent_approved) { + $most_recent_draft = $latest_rev; + } + + # Approved *before* this one + $previous_approved = null; + foreach($allapproved as $arev) { + if($arev >= $rev) { break; } + $previous_approved = $arev; + } + + $suffix = ''; + $strings[] = '
'; + + $difflink = ''; + + if($most_recent_draft) { + $strings[] = ''; + $strings[] = sprintf($this->getLang('apr_recent_draft'.$suffix), wl($ID, 'force_rev=1')); + $difflink = $this->difflink($ID, null, $REV) . ''; + } + + if($most_recent_approved) { + # Approved, but there is a more recent version + $userrev = $most_recent_approved; + if($userrev == $latest_rev) { $userrev = ''; } + $strings[] = ''; + $strings[] = sprintf($this->getLang('apr_outdated'.$suffix), wl($ID, 'rev=' . $userrev)); + $difflink = $this->difflink($ID, $userrev, $REV) . ''; + } + + if(!$approver) { + # Draft + $strings[] = ''; + $strings[] = sprintf($this->getLang('apr_draft'.$suffix), + '' . $longdate . ''); + $strings[] = ''; + } + + if($approver) { + # Approved + $strings[] = ''; + $strings[] = sprintf($this->getLang('apr_approved'.$suffix), + '' . $longdate . '', + editorinfo($approver)); + $strings[] = ''; + } + + if($previous_approved) { + $strings[] = ''; + $strings[] = sprintf($this->getLang('apr_previous'.$suffix), + wl($ID, 'rev=' . $previous_approved), + dformat($previous_approved)); + $difflink = $this->difflink($ID, $previous_approved, $REV, ($approver && !$most_recent_approved) || $most_recent_approved ? false : true) . ''; + } + + $strings[] = $difflink; + $strings[] = '
'; + + ptln(implode($strings)); + return true; + } + + function handle_diff_accept(&$event, $param) { + if ($event->data == 'diff' && isset($_GET['approve'])) { + ptln(''.$this->getLang('apr_do_approve').''); + } + } + + function handle_approve(&$event, $param) { + global $ID; + if ($event->data == 'show' && isset($_GET['approve'])) { + //Add or remove the new line from the end of the page. Silly but needed. + $content = rawWiki($ID, ''); + if (substr($content, -1) == "\n") { + substr($content, 0, -1); + } else { + $content .= "\n"; + } + saveWikiText($ID, $content, $this->getLang('apr_do_approve')); + + $data = pageinfo(); + #$newdata = p_get_metadata($ID, 'approval'); + $newdata = $data['meta']['approval']; + $newdata[$data['lastmod']] = array($data['client'], $_SERVER['REMOTE_USER'], $USERINFO['mail']); + p_set_metadata($ID, array('approval' => $newdata), true, true); + + return true; + } + } + + function handle_revisions(&$event, $param) { + global $ID; + global $REV; + if(!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) { return; } + $meta = p_get_metadata($ID); + $latest_rev = $meta['last_change']['date']; + + $member = null; + foreach($event->data->_content as $key => $ref) { + if($ref['_elem'] == 'opentag' && $ref['_tag'] == 'div' && $ref['class'] == 'li') { + $member = $key; + } + + if($member && $ref['_elem'] == 'tag' && + $ref['_tag'] == 'input' && $ref['name'] == 'rev2[]'){ + if($meta['approval'][$ref['value']] || + ($ref['value'] == 'current' && $meta['approval'][$latest_rev])) { + $event->data->_content[$member]['class'] = 'li approved_revision'; + }else{ + $event->data->_content[$member]['class'] = 'li unapproved_revision'; + } + $member = null; + } + } + + + return true; + } + + function handle_recent(&$event, $param) { + #$meta = p_get_metadata($ID); + #$latest_rev = $meta['last_change']['date']; + + $member = null; + foreach($event->data->_content as $key => $ref) { + if($ref['_elem'] == 'opentag' && $ref['_tag'] == 'div' && $ref['class'] == 'li') { + $member = $key; + } + + if($member && $ref['_elem'] == 'opentag' && + $ref['_tag'] == 'a' && $ref['class'] == 'diff_link'){ + $name = $ref['href']; + $name = explode('?', $name); + $name = explode('&', $name[1]); + $usename = null; + foreach($name as $n) { + $fields = explode('=', $n); + if($fields[0] == 'id') { + $usename = $fields[1]; + break; + } + } + if($usename) { + if($this->hlp->in_namespace($this->getConf('apr_namespaces'), $usename)) { + $meta = p_get_metadata($usename); + + if($meta['approval'][$meta['last_change']['date']]) { + $event->data->_content[$member]['class'] = 'li approved_revision'; + }else{ + $event->data->_content[$member]['class'] = 'li unapproved_revision'; + } + } + } + $member = null; + } + } + return true; + } + + function difflink($id, $rev1, $rev2, $revandapp=false) { + if($rev1 == $rev2) { return ''; } + $output = ''; + if ($revandapp) { + $output .= $this->getLang('apr_diff_approve'); + } else { + $output .= 'Diff'; + } + $output .= ''; + return $output; + } + + function handle_start(&$event, $param) { + # show only + global $ACT; + if($ACT != 'show') { return; } + + # only apply to latest rev + global $REV; + if($REV != '') { return; } + + # apply to readers only + global $INFO; + if($INFO['perm'] != AUTH_READ) { return; } + + # Check for override token + global $_GET; + if($_GET['force_rev']) { return; } + + # Only apply to appropriate namespaces + global $ID; + if(!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) { return; } + + # Find latest rev + $meta = p_get_metadata($ID); + if($meta['approval'][$meta['last_change']['date']]) { return; } //REV=0 *is* approved + + if(!$meta['approval']) { return; } //no approvals + + # Get list of approvals + $all = array_keys($meta['approval']); + if(count($all) == 0) { return; } //no approvals + + $REV = $all[count($all)-1]; + } +} + + + diff --git a/images/diffapprove.png b/images/diffapprove.png new file mode 100644 index 0000000000000000000000000000000000000000..52cf9f3ff3c21c1f78eb95b9d6f1a9ab84c8c605 GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngj!3HE3xL=O}Qfx`y?k)`fL2$v|<&%LToCO|{ z#XwcUAk4@xYmNj^kiEpy*OmPqn-rUc+EnQa0t^g{(w;7kAsXj@oUl#Z!#vAXN>C5bxmsfFUo1?rWbrlzjodXn{pT#~EuVaPG-dj8^`rV%zeHVnd42PDrUSQ51$7F<@9bF= zkeU4S@n7DCJpvAlLjIF^EF|>P|Gs@Ee!aY3RVE=r&4MBC{K2=DclKBnxA^Tpm$W!c z=-q5i2Fc$y&dD6-FFvw%MXctTBOmXXGrUgR>KORLGCDXjIaQ?f$#=E_Y13UhUjzzZ22WQ%mvv4FO#sDApM?Mb literal 0 HcmV?d00001 diff --git a/lang/en/lang.php b/lang/en/lang.php index 75058f9..b231989 100644 --- a/lang/en/lang.php +++ b/lang/en/lang.php @@ -24,4 +24,6 @@ // Submit (Next to the tick-box to approve a page) $lang['apr_do_approve'] = 'Approve'; +$lang['apr_diff_approve'] = 'Review and approve'; + ?> diff --git a/lang/en/lang.php~ b/lang/en/lang.php~ new file mode 100644 index 0000000..c66a0d0 --- /dev/null +++ b/lang/en/lang.php~ @@ -0,0 +1,29 @@ +Most Recent Version of this document is a draft.'; +$lang['apr_outdated'] = 'This version is Outdated by a Newer Approved Version.'; +$lang['apr_draft'] = 'This version (%s) is a Draft.'; +$lang['apr_approved'] = 'This version (%s) was Approved by %s.'; +$lang['apr_previous'] = 'The Previously Approved Version (%s) is available.'; + +// compact banner +$lang['apr_recent_draft_compact'] = 'Most Recent - draft | '; +$lang['apr_outdated_compact'] = 'Outdated by a Newer Approved | '; +$lang['apr_draft_compact'] = '%s - Draft'; +$lang['apr_approved_compact'] = 'Approved (%s) by %s'; +$lang['apr_previous_compact'] = ' | Previously Approved (%s)'; + +// Pending Approvals List +$lang['apr_p_none'] = 'No Documents Pending Approval'; +$lang['apr_p_hdr_page'] = 'Page'; +$lang['apr_p_hdr_previous'] = 'Previous Approval'; +$lang['apr_p_hdr_updated'] = 'Updated'; +$lang['apr_p_approved'] = 'By %s on %s'; + +// Submit (Next to the tick-box to approve a page) +$lang['apr_do_approve'] = 'Approve'; + +$lang['apr_diff_approve'] = 'Revise and approve'; + +?> diff --git a/lang/pl/lang.php b/lang/pl/lang.php index 3b6666a..9d285be 100644 --- a/lang/pl/lang.php +++ b/lang/pl/lang.php @@ -24,4 +24,6 @@ // Submit (Next to the tick-box to approve a page) $lang['apr_do_approve'] = 'Zatwierdź'; +$lang['apr_diff_approve'] = 'Przejrzyj i zatwierdź'; + ?> diff --git a/lang/pl/lang.php~ b/lang/pl/lang.php~ new file mode 100644 index 0000000..9d285be --- /dev/null +++ b/lang/pl/lang.php~ @@ -0,0 +1,29 @@ +Najnowsza wersja tego dokumentu jest niezatwierdzona.'; +$lang['apr_outdated'] = 'Ta wersja strony została zdezaktualizowana przez nową zatwierdzoną werjsę.'; +$lang['apr_draft'] = 'Ta wersja strony (%s) jest niezatwierdzona.'; +$lang['apr_approved'] = 'Ta wersja strony(%s) została zatwierdzona przez %s.'; +$lang['apr_previous'] = 'Dostępna poprzednio zatwierdzona wersja (%s).'; + +// compact banner +$lang['apr_recent_draft_compact'] = 'Najnowsza - niezatwierdzona | '; +$lang['apr_outdated_compact'] = 'Zastąpiona przez nowe zatwierdzenie | '; +$lang['apr_draft_compact'] = '%s - niezatwierdzona'; +$lang['apr_approved_compact'] = 'zatwierdzona (%s) przez %s'; +$lang['apr_previous_compact'] = ' | poprzednia zatwierdzona (%s)'; + +// Pending Approvals List +$lang['apr_p_none'] = 'Brak dokumentów oczekujących na zatwierdzenie'; +$lang['apr_p_hdr_page'] = 'Nazwa strony'; +$lang['apr_p_hdr_previous'] = 'Ostatnia zatwierdzona wersja'; +$lang['apr_p_hdr_updated'] = 'Data ostatniej zmiany'; +$lang['apr_p_approved'] = 'Zatwierdzona przez %s dnia: %s'; + +// Submit (Next to the tick-box to approve a page) +$lang['apr_do_approve'] = 'Zatwierdź'; + +$lang['apr_diff_approve'] = 'Przejrzyj i zatwierdź'; + +?> diff --git a/style.css~ b/style.css~ new file mode 100644 index 0000000..eccd222 --- /dev/null +++ b/style.css~ @@ -0,0 +1,96 @@ +div.approval { + margin: 2em; + margin-left: auto; + margin-right: auto; + width: 70% !important; + min-height: 40px; + clear: both; + text-align: justify; + vertical-align: middle; + border-collapse: collapse; + padding: 15px 20px 15px 80px; + background-position: 30px 50%; + background-repeat: no-repeat; + -moz-border-radius: 10px; + -khtml-border-radius: 10px; + border-radius: 10px; +} + +div.approval.compact { + margin: 0; + width: auto !important; + min-height: 20px; + padding: 2px 10px; + + -moz-border-radius: 0; + -khtml-border-radius: 0; + border-radius: 0; + + position: absolute; + right:0; + top:0; +} + +div.approved_yes { + background-color: #dfd; + background-image: url(images/yes.gif); +} + +div.approved_no { + background-color: #fdd; + background-image: url(images/no.gif); +} + +div.approved_yes.compact { + background-image: none; +} + +div.approved_no.compact { + background-image: none; +} + +div.approval em { + font-weight: bold; +} + +div.approval span { + display: block; +} + +div.approval.compact span { + display: inline; +} + +div.approved_revision { + background-color: #dfd; +} + +div.unapproved_revision { + background-color: #fdd; +} + +a.approved_diff_link { + padding-left: 1em; +} + + +p.apr_none { } + +/* table.apr_table tr.apr_head th.(apr_page,apr_prev,apr_upd) + * table.apr_table tr.apr_ns td a + * table.apr_table tr.apr_entry [apr_never] td.(apr_page,apr_prev,apr_upd) a + */ +table.apr_table { + width: 70%; + background-color: #fdd; +} + +table.apr_table tr.apr_ns td { + text-align: center; + background-color: #dfd; + font-weight: bold; +} + +div.approval span span.approval_date { + display: inline; +} From 5dcfbaa65d370c88a0de3391d2de2f33125481cc Mon Sep 17 00:00:00 2001 From: ghi Date: Thu, 26 Jun 2014 11:46:00 +0200 Subject: [PATCH 5/9] cleaning --- action.php~ | 356 ----------------------------------------- images/diffapprove.png | Bin 398 -> 0 bytes lang/en/lang.php~ | 29 ---- lang/pl/lang.php~ | 29 ---- style.css~ | 96 ----------- 5 files changed, 510 deletions(-) delete mode 100644 action.php~ delete mode 100644 images/diffapprove.png delete mode 100644 lang/en/lang.php~ delete mode 100644 lang/pl/lang.php~ delete mode 100644 style.css~ diff --git a/action.php~ b/action.php~ deleted file mode 100644 index 29f5aa8..0000000 --- a/action.php~ +++ /dev/null @@ -1,356 +0,0 @@ - - * @author Andreas Gohr - * @author Szymon Olewniczak - */ - -// TODO: -// Old Revisions Display X -// Recent Changes Display X -// Redirection X -// List of Unapproved Documents user has permission to approve X -// Namespace restrictions + admin X -// Diff Links in banner on Prev Approved X -// List of Recent Approvals X -// Subscriptions should show approvals - hard (MAIL_MESSAGE_SEND is the only appropriate hook) -// Allow submits of docs with no changes for approval, with autocomment X -// RSS Info -- hard (no hooks in feed.php) -// Internationalisation (or not) X - -// must be run within Dokuwiki -if(!defined('DOKU_INC')) die(); - -class action_plugin_publish extends DokuWiki_Action_Plugin { - private $hlp; - - function action_plugin_publish(){ - $this->hlp = plugin_load('helper','publish'); // load helper plugin - } - - function register(&$controller) { - $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, handle_approve, array()); - $controller->register_hook('TPL_ACT_UNKNOWN', 'BEFORE', $this, handle_tpl_approve, array()); - - $controller->register_hook('HTML_EDITFORM_OUTPUT', 'BEFORE', $this, handle_html_editform_output, array()); - #$controller->register_hook('TPL_ACT_RENDER', 'AFTER', $this, debug, array()); - $controller->register_hook('TPL_ACT_RENDER', 'BEFORE', $this, handle_display_banner, array()); - $controller->register_hook('TPL_ACT_RENDER', 'AFTER', $this, handle_diff_accept, array()); - $controller->register_hook('IO_WIKIPAGE_WRITE', 'BEFORE', $this, handle_io_write, array()); - $controller->register_hook('HTML_REVISIONSFORM_OUTPUT', 'BEFORE', $this, handle_revisions, array()); - $controller->register_hook('HTML_RECENTFORM_OUTPUT', 'BEFORE', $this, handle_recent, array()); - $controller->register_hook('DOKUWIKI_STARTED', 'BEFORE', $this, handle_start, array()); - } - - function handle_html_editform_output(&$event, $param) { - global $ID; - global $INFO; - - if(!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) { - return; - } - if($INFO['perm'] < AUTH_DELETE) { - return; - } - - $html = ''; - $event->data->insertElement(12,$html); //FIXME hardcoded element position - } - - function debug(&$event, $param) { - global $ID; - ptln('
');
-        ptln(print_r(p_get_metadata($ID), true));
-        ptln(print_r(pageinfo(), true));
-        ptln('
'); - } - - function handle_io_write(&$event, $param) { - # This is the only hook I could find which runs on save, - # but late enough to have lastmod set (ACTION_ACT_PREPROCESS - # is too early) - global $_POST; - global $ID; - global $ACT; - global $USERINFO; - global $INFO; - if(!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) { return; } - if($INFO['perm'] < AUTH_DELETE) { return true; } - if($ACT != 'save') { return true; } - if(!$event->data[3]) { return true; } # don't approve the doc being moved to archive - if($_POST['approved']) { - $data = pageinfo(); - #$newdata = p_get_metadata($ID, 'approval'); - $newdata = $data['meta']['approval']; - $newdata[$data['lastmod']] = array($data['client'], $_SERVER['REMOTE_USER'], $USERINFO['mail']); - p_set_metadata($ID, array('approval' => $newdata), true, true); - } - return true; - } - - function handle_display_banner(&$event, $param) { - global $ID; - global $REV; - global $INFO; - - if(!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) return; - if($event->data != 'show') return true; - if(!$INFO['exists']) return true; - - $strings = array(); - $meta = p_get_metadata($ID); - $rev = $REV; - if(!$rev) { $rev = $meta['last_change']['date']; } - if(!$meta['approval']) { $meta['approval'] = array(); } - $allapproved = array_keys($meta['approval']); - sort($allapproved); - $latest_rev = $meta['last_change']['date']; - #$strings[] = ''; - - $longdate = dformat($rev); - - # Is this document approved? - $approver = null; - if($meta['approval'][$rev]) { - # Approved - if(is_array($meta['approval'][$rev])) { - $approver = $meta['approval'][$rev][1]; - if(!$approver) { $approver = $meta['approval'][$rev][2]; } - if(!$approver) { $approver = $meta['approval'][$rev][0]; } - }else{ - $approver = $meta['approval'][$rev]; - } - } - - # What is the most recent approved version? - $most_recent_approved = null; - $id = count($allapproved)-1; - if($id >= 0) { - if($allapproved[$id] > $rev) { - $most_recent_approved = $allapproved[$id]; - } - } - - # Latest, if draft - $most_recent_draft = null; - #$strings[] = ''; - if($latest_rev != $rev && $latest_rev != $most_recent_approved) { - $most_recent_draft = $latest_rev; - } - - # Approved *before* this one - $previous_approved = null; - foreach($allapproved as $arev) { - if($arev >= $rev) { break; } - $previous_approved = $arev; - } - - $suffix = ''; - $strings[] = '
'; - - $difflink = ''; - - if($most_recent_draft) { - $strings[] = ''; - $strings[] = sprintf($this->getLang('apr_recent_draft'.$suffix), wl($ID, 'force_rev=1')); - $difflink = $this->difflink($ID, null, $REV) . ''; - } - - if($most_recent_approved) { - # Approved, but there is a more recent version - $userrev = $most_recent_approved; - if($userrev == $latest_rev) { $userrev = ''; } - $strings[] = ''; - $strings[] = sprintf($this->getLang('apr_outdated'.$suffix), wl($ID, 'rev=' . $userrev)); - $difflink = $this->difflink($ID, $userrev, $REV) . ''; - } - - if(!$approver) { - # Draft - $strings[] = ''; - $strings[] = sprintf($this->getLang('apr_draft'.$suffix), - '' . $longdate . ''); - $strings[] = ''; - } - - if($approver) { - # Approved - $strings[] = ''; - $strings[] = sprintf($this->getLang('apr_approved'.$suffix), - '' . $longdate . '', - editorinfo($approver)); - $strings[] = ''; - } - - if($previous_approved) { - $strings[] = ''; - $strings[] = sprintf($this->getLang('apr_previous'.$suffix), - wl($ID, 'rev=' . $previous_approved), - dformat($previous_approved)); - $difflink = $this->difflink($ID, $previous_approved, $REV, ($approver && !$most_recent_approved) || $most_recent_approved ? false : true) . ''; - } - - $strings[] = $difflink; - $strings[] = '
'; - - ptln(implode($strings)); - return true; - } - - function handle_diff_accept(&$event, $param) { - if ($event->data == 'diff' && isset($_GET['approve'])) { - ptln(''.$this->getLang('apr_do_approve').''); - } - } - - function handle_approve(&$event, $param) { - global $ID; - if ($event->data == 'show' && isset($_GET['approve'])) { - //Add or remove the new line from the end of the page. Silly but needed. - $content = rawWiki($ID, ''); - if (substr($content, -1) == "\n") { - substr($content, 0, -1); - } else { - $content .= "\n"; - } - saveWikiText($ID, $content, $this->getLang('apr_do_approve')); - - $data = pageinfo(); - #$newdata = p_get_metadata($ID, 'approval'); - $newdata = $data['meta']['approval']; - $newdata[$data['lastmod']] = array($data['client'], $_SERVER['REMOTE_USER'], $USERINFO['mail']); - p_set_metadata($ID, array('approval' => $newdata), true, true); - - return true; - } - } - - function handle_revisions(&$event, $param) { - global $ID; - global $REV; - if(!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) { return; } - $meta = p_get_metadata($ID); - $latest_rev = $meta['last_change']['date']; - - $member = null; - foreach($event->data->_content as $key => $ref) { - if($ref['_elem'] == 'opentag' && $ref['_tag'] == 'div' && $ref['class'] == 'li') { - $member = $key; - } - - if($member && $ref['_elem'] == 'tag' && - $ref['_tag'] == 'input' && $ref['name'] == 'rev2[]'){ - if($meta['approval'][$ref['value']] || - ($ref['value'] == 'current' && $meta['approval'][$latest_rev])) { - $event->data->_content[$member]['class'] = 'li approved_revision'; - }else{ - $event->data->_content[$member]['class'] = 'li unapproved_revision'; - } - $member = null; - } - } - - - return true; - } - - function handle_recent(&$event, $param) { - #$meta = p_get_metadata($ID); - #$latest_rev = $meta['last_change']['date']; - - $member = null; - foreach($event->data->_content as $key => $ref) { - if($ref['_elem'] == 'opentag' && $ref['_tag'] == 'div' && $ref['class'] == 'li') { - $member = $key; - } - - if($member && $ref['_elem'] == 'opentag' && - $ref['_tag'] == 'a' && $ref['class'] == 'diff_link'){ - $name = $ref['href']; - $name = explode('?', $name); - $name = explode('&', $name[1]); - $usename = null; - foreach($name as $n) { - $fields = explode('=', $n); - if($fields[0] == 'id') { - $usename = $fields[1]; - break; - } - } - if($usename) { - if($this->hlp->in_namespace($this->getConf('apr_namespaces'), $usename)) { - $meta = p_get_metadata($usename); - - if($meta['approval'][$meta['last_change']['date']]) { - $event->data->_content[$member]['class'] = 'li approved_revision'; - }else{ - $event->data->_content[$member]['class'] = 'li unapproved_revision'; - } - } - } - $member = null; - } - } - return true; - } - - function difflink($id, $rev1, $rev2, $revandapp=false) { - if($rev1 == $rev2) { return ''; } - $output = ''; - if ($revandapp) { - $output .= $this->getLang('apr_diff_approve'); - } else { - $output .= 'Diff'; - } - $output .= ''; - return $output; - } - - function handle_start(&$event, $param) { - # show only - global $ACT; - if($ACT != 'show') { return; } - - # only apply to latest rev - global $REV; - if($REV != '') { return; } - - # apply to readers only - global $INFO; - if($INFO['perm'] != AUTH_READ) { return; } - - # Check for override token - global $_GET; - if($_GET['force_rev']) { return; } - - # Only apply to appropriate namespaces - global $ID; - if(!$this->hlp->in_namespace($this->getConf('apr_namespaces'), $ID)) { return; } - - # Find latest rev - $meta = p_get_metadata($ID); - if($meta['approval'][$meta['last_change']['date']]) { return; } //REV=0 *is* approved - - if(!$meta['approval']) { return; } //no approvals - - # Get list of approvals - $all = array_keys($meta['approval']); - if(count($all) == 0) { return; } //no approvals - - $REV = $all[count($all)-1]; - } -} - - - diff --git a/images/diffapprove.png b/images/diffapprove.png deleted file mode 100644 index 52cf9f3ff3c21c1f78eb95b9d6f1a9ab84c8c605..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngj!3HE3xL=O}Qfx`y?k)`fL2$v|<&%LToCO|{ z#XwcUAk4@xYmNj^kiEpy*OmPqn-rUc+EnQa0t^g{(w;7kAsXj@oUl#Z!#vAXN>C5bxmsfFUo1?rWbrlzjodXn{pT#~EuVaPG-dj8^`rV%zeHVnd42PDrUSQ51$7F<@9bF= zkeU4S@n7DCJpvAlLjIF^EF|>P|Gs@Ee!aY3RVE=r&4MBC{K2=DclKBnxA^Tpm$W!c z=-q5i2Fc$y&dD6-FFvw%MXctTBOmXXGrUgR>KORLGCDXjIaQ?f$#=E_Y13UhUjzzZ22WQ%mvv4FO#sDApM?Mb diff --git a/lang/en/lang.php~ b/lang/en/lang.php~ deleted file mode 100644 index c66a0d0..0000000 --- a/lang/en/lang.php~ +++ /dev/null @@ -1,29 +0,0 @@ -Most Recent Version of this document is a draft.'; -$lang['apr_outdated'] = 'This version is Outdated by a Newer Approved Version.'; -$lang['apr_draft'] = 'This version (%s) is a Draft.'; -$lang['apr_approved'] = 'This version (%s) was Approved by %s.'; -$lang['apr_previous'] = 'The Previously Approved Version (%s) is available.'; - -// compact banner -$lang['apr_recent_draft_compact'] = 'Most Recent - draft | '; -$lang['apr_outdated_compact'] = 'Outdated by a Newer Approved | '; -$lang['apr_draft_compact'] = '%s - Draft'; -$lang['apr_approved_compact'] = 'Approved (%s) by %s'; -$lang['apr_previous_compact'] = ' | Previously Approved (%s)'; - -// Pending Approvals List -$lang['apr_p_none'] = 'No Documents Pending Approval'; -$lang['apr_p_hdr_page'] = 'Page'; -$lang['apr_p_hdr_previous'] = 'Previous Approval'; -$lang['apr_p_hdr_updated'] = 'Updated'; -$lang['apr_p_approved'] = 'By %s on %s'; - -// Submit (Next to the tick-box to approve a page) -$lang['apr_do_approve'] = 'Approve'; - -$lang['apr_diff_approve'] = 'Revise and approve'; - -?> diff --git a/lang/pl/lang.php~ b/lang/pl/lang.php~ deleted file mode 100644 index 9d285be..0000000 --- a/lang/pl/lang.php~ +++ /dev/null @@ -1,29 +0,0 @@ -Najnowsza wersja tego dokumentu jest niezatwierdzona.'; -$lang['apr_outdated'] = 'Ta wersja strony została zdezaktualizowana przez nową zatwierdzoną werjsę.'; -$lang['apr_draft'] = 'Ta wersja strony (%s) jest niezatwierdzona.'; -$lang['apr_approved'] = 'Ta wersja strony(%s) została zatwierdzona przez %s.'; -$lang['apr_previous'] = 'Dostępna poprzednio zatwierdzona wersja (%s).'; - -// compact banner -$lang['apr_recent_draft_compact'] = 'Najnowsza - niezatwierdzona | '; -$lang['apr_outdated_compact'] = 'Zastąpiona przez nowe zatwierdzenie | '; -$lang['apr_draft_compact'] = '%s - niezatwierdzona'; -$lang['apr_approved_compact'] = 'zatwierdzona (%s) przez %s'; -$lang['apr_previous_compact'] = ' | poprzednia zatwierdzona (%s)'; - -// Pending Approvals List -$lang['apr_p_none'] = 'Brak dokumentów oczekujących na zatwierdzenie'; -$lang['apr_p_hdr_page'] = 'Nazwa strony'; -$lang['apr_p_hdr_previous'] = 'Ostatnia zatwierdzona wersja'; -$lang['apr_p_hdr_updated'] = 'Data ostatniej zmiany'; -$lang['apr_p_approved'] = 'Zatwierdzona przez %s dnia: %s'; - -// Submit (Next to the tick-box to approve a page) -$lang['apr_do_approve'] = 'Zatwierdź'; - -$lang['apr_diff_approve'] = 'Przejrzyj i zatwierdź'; - -?> diff --git a/style.css~ b/style.css~ deleted file mode 100644 index eccd222..0000000 --- a/style.css~ +++ /dev/null @@ -1,96 +0,0 @@ -div.approval { - margin: 2em; - margin-left: auto; - margin-right: auto; - width: 70% !important; - min-height: 40px; - clear: both; - text-align: justify; - vertical-align: middle; - border-collapse: collapse; - padding: 15px 20px 15px 80px; - background-position: 30px 50%; - background-repeat: no-repeat; - -moz-border-radius: 10px; - -khtml-border-radius: 10px; - border-radius: 10px; -} - -div.approval.compact { - margin: 0; - width: auto !important; - min-height: 20px; - padding: 2px 10px; - - -moz-border-radius: 0; - -khtml-border-radius: 0; - border-radius: 0; - - position: absolute; - right:0; - top:0; -} - -div.approved_yes { - background-color: #dfd; - background-image: url(images/yes.gif); -} - -div.approved_no { - background-color: #fdd; - background-image: url(images/no.gif); -} - -div.approved_yes.compact { - background-image: none; -} - -div.approved_no.compact { - background-image: none; -} - -div.approval em { - font-weight: bold; -} - -div.approval span { - display: block; -} - -div.approval.compact span { - display: inline; -} - -div.approved_revision { - background-color: #dfd; -} - -div.unapproved_revision { - background-color: #fdd; -} - -a.approved_diff_link { - padding-left: 1em; -} - - -p.apr_none { } - -/* table.apr_table tr.apr_head th.(apr_page,apr_prev,apr_upd) - * table.apr_table tr.apr_ns td a - * table.apr_table tr.apr_entry [apr_never] td.(apr_page,apr_prev,apr_upd) a - */ -table.apr_table { - width: 70%; - background-color: #fdd; -} - -table.apr_table tr.apr_ns td { - text-align: center; - background-color: #dfd; - font-weight: bold; -} - -div.approval span span.approval_date { - display: inline; -} From 78a294a27b99368d2d2bd502e4c3b18ed5938e4c Mon Sep 17 00:00:00 2001 From: ghi Date: Thu, 26 Jun 2014 17:30:27 +0200 Subject: [PATCH 6/9] approve comment --- action.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/action.php b/action.php index 29f5aa8..5497f8f 100644 --- a/action.php +++ b/action.php @@ -223,7 +223,7 @@ function handle_approve(&$event, $param) { } else { $content .= "\n"; } - saveWikiText($ID, $content, $this->getLang('apr_do_approve')); + saveWikiText($ID, $content, 'Approved'); $data = pageinfo(); #$newdata = p_get_metadata($ID, 'approval'); From 9f78655672fe3c89e5b0b06091ed1cffc2f2bd63 Mon Sep 17 00:00:00 2001 From: ghi Date: Fri, 27 Jun 2014 10:35:10 +0200 Subject: [PATCH 7/9] version --- VERSION | 1 + 1 file changed, 1 insertion(+) create mode 100644 VERSION diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..49d5957 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.1 From 96ff271ed692b78286d7bd7b401a18321fe383b2 Mon Sep 17 00:00:00 2001 From: ghi Date: Mon, 30 Jun 2014 11:30:01 +0200 Subject: [PATCH 8/9] removed unused function --- action.php | 1 - 1 file changed, 1 deletion(-) diff --git a/action.php b/action.php index 5497f8f..168a8e9 100644 --- a/action.php +++ b/action.php @@ -33,7 +33,6 @@ function action_plugin_publish(){ function register(&$controller) { $controller->register_hook('ACTION_ACT_PREPROCESS', 'BEFORE', $this, handle_approve, array()); - $controller->register_hook('TPL_ACT_UNKNOWN', 'BEFORE', $this, handle_tpl_approve, array()); $controller->register_hook('HTML_EDITFORM_OUTPUT', 'BEFORE', $this, handle_html_editform_output, array()); #$controller->register_hook('TPL_ACT_RENDER', 'AFTER', $this, debug, array()); From b3dbf6b67dbbc8fdb843efe76c83836c371e3518 Mon Sep 17 00:00:00 2001 From: ghi Date: Tue, 5 Aug 2014 11:42:59 +0200 Subject: [PATCH 9/9] prettyprint --- action.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/action.php b/action.php index 168a8e9..596eeae 100644 --- a/action.php +++ b/action.php @@ -187,7 +187,7 @@ function handle_display_banner(&$event, $param) { $strings[] = ''; $strings[] = sprintf($this->getLang('apr_approved'.$suffix), '' . $longdate . '', - editorinfo($approver)); + ''.editorinfo($approver).''); $strings[] = ''; }