From: Geoffrey T. D. <da...@us...> - 2001-12-13 18:29:28
|
Update of /cvsroot/phpwiki/phpwiki/lib In directory usw-pr-cvs1:/tmp/cvs-serv11426/lib Modified Files: diff.php pageinfo.php Log Message: Experiment with more compact diff selection: single column of checkboxes instead of two columns of radio boxes. Index: diff.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/diff.php,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -r1.17 -r1.18 *** diff.php 2001/12/13 05:10:04 1.17 --- diff.php 2001/12/13 18:29:24 1.18 *************** *** 184,192 **** function showDiff ($dbi, $request) { $pagename = $request->getArg('pagename'); ! $version = $request->getArg('version'); ! $previous = $request->getArg('previous'); $page = $dbi->getPage($pagename); - if ($version) { if (!($new = $page->getRevision($version))) --- 184,198 ---- function showDiff ($dbi, $request) { $pagename = $request->getArg('pagename'); ! if (is_array($versions = $request->getArg('versions'))) { ! // Version selection from pageinfo.php display: ! rsort($versions); ! list ($version, $previous) = $versions; ! } ! else { ! $version = $request->getArg('version'); ! $previous = $request->getArg('previous'); ! } $page = $dbi->getPage($pagename); if ($version) { if (!($new = $page->getRevision($version))) Index: pageinfo.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/pageinfo.php,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** pageinfo.php 2001/10/29 18:24:26 1.12 --- pageinfo.php 2001/12/13 18:29:24 1.13 *************** *** 12,17 **** "\n" . Element('th', 'Version') . "\n" ! . Element('th', 'Newer') . "\n" ! . Element('th', 'Older') . "\n" . Element('th', 'Created') . "\n" . Element('th', 'Summary') . "\n" --- 12,16 ---- "\n" . Element('th', 'Version') . "\n" ! . Element('th', 'Diff') . "\n" . Element('th', 'Created') . "\n" . Element('th', 'Summary') . "\n" *************** *** 42,56 **** $cols[] = Element('td', array('align' => 'center'), ! QElement('input', array('type' => 'radio', ! 'name' => 'version', 'value' => $version, ! 'checked' => $i == 0))); - $cols[] = Element('td', array('align' => 'center'), - QElement('input', array('type' => 'radio', - 'name' => 'previous', - 'value' => $version, - 'checked' => $i++ == 1))); - $cols[] = QElement('td', array('align' => 'right'), strftime($datetimeformat, $rev->get('mtime')) --- 41,50 ---- $cols[] = Element('td', array('align' => 'center'), ! QElement('input', array('type' => 'checkbox', ! 'name' => 'versions[]', 'value' => $version, ! 'onClick' => "check_cb(this);", ! 'checked' => ($i++ <= 1)))); $cols[] = QElement('td', array('align' => 'right'), strftime($datetimeformat, $rev->get('mtime')) *************** *** 79,87 **** $formargs['action'] = USE_PATH_INFO ? WikiURL($pagename) : SCRIPT_NAME; $formargs['method'] = 'post'; ! $html = Element('p', htmlspecialchars(gettext("Currently archived versions of")) . " " ! . LinkExistingWikiWord($pagename)); $html .= Element('form', $formargs, $table); --- 73,110 ---- $formargs['action'] = USE_PATH_INFO ? WikiURL($pagename) : SCRIPT_NAME; $formargs['method'] = 'post'; + + $jscript = 'function check_cb(checkbox) { + // If more than two diff selection checkboxes are checked, + // uncheck some. (But don\'t uncheck either the currently + // clicked or the previously clicked box.) + form = checkbox.form; + + selected = checkbox.value; + previous = form.previous_selection; + form.previous_selection = selected; + + deletable = new Array(); + nchecked = 0; + for (i = 0; i < form.elements.length; i++) { + cb = form.elements[i]; + if (cb.name != "versions[]" || ! cb.checked) + continue; + + nchecked++; + if (cb.value != selected && cb.value != previous) + deletable[deletable.length] = cb; + } + + for (i = 0; i < nchecked - 2; i++) + deletable[i].checked = false; + }'; + + $html = Element('script', array('language' => 'JavaScript'), + "<!-- //\n$jscript\n//-->") . "\n"; ! $html .= Element('p', htmlspecialchars(gettext("Currently archived versions of")) . " " ! . LinkExistingWikiWord($pagename)) . "\n"; $html .= Element('form', $formargs, $table); |