RFE 654257 - user-separated clipboard and trash
This commit is contained in:
parent
1a3900d494
commit
7642295d20
10 changed files with 815 additions and 59 deletions
|
|
@ -20,8 +20,9 @@ use WebGUI::Session;
|
|||
use WebGUI::URL;
|
||||
|
||||
our @ISA = qw(Exporter);
|
||||
our @EXPORT = qw(&helpIcon &becomeIcon &cutIcon ©Icon &deleteIcon &editIcon &moveUpIcon &moveDownIcon
|
||||
&moveRightIcon &moveLeftIcon &wobjectIcon &pageIcon &moveTopIcon &moveBottomIcon &viewIcon);
|
||||
our @EXPORT = qw(&helpIcon &becomeIcon &cutIcon ©Icon &deleteIcon &editIcon
|
||||
&moveBottomIcon &moveDownIcon &moveLeftIcon &moveRightIcon &moveTopIcon &moveUpIcon
|
||||
&pageIcon &pasteIcon &wobjectIcon &viewIcon);
|
||||
|
||||
=head1 NAME
|
||||
|
||||
|
|
@ -46,6 +47,7 @@ A package for generating user interface buttons. The subroutines found herein do
|
|||
$html = moveTopIcon('op=something');
|
||||
$html = moveUpIcon('op=something');
|
||||
$html = pageIcon();
|
||||
$html = pasteIcon('op=something');
|
||||
$html = viewIcon('op=something');
|
||||
$html = wobjectIcon();
|
||||
|
||||
|
|
@ -377,6 +379,34 @@ sub pageIcon {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 pasteIcon ( urlParameters [, pageURL ] )
|
||||
|
||||
Generates a button with the word "Paste" printed on it.
|
||||
|
||||
=over
|
||||
|
||||
=item urlParameters
|
||||
|
||||
Any URL parameters that need to be tacked on to the current URL to accomplish whatever function this button represents.
|
||||
|
||||
=item pageURL
|
||||
|
||||
The URL to any page. Defaults to the current page.
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
||||
sub pasteIcon {
|
||||
my ($output, $pageURL);
|
||||
$pageURL = $_[1] || $session{page}{urlizedTitle};
|
||||
$output = '<a href="'.WebGUI::URL::gateway($pageURL,$_[0]).'">';
|
||||
$output .= '<img src="'.$session{config}{extrasURL}.'/toolbar/'.$session{language}{toolbar}.'/paste.gif" align="middle" border="0" alt="Paste" title="Paste" /></a>';
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 viewIcon ( urlParameters [, pageURL ] )
|
||||
|
||||
Generates a button with the word "View" printed on it.
|
||||
|
|
|
|||
|
|
@ -51,13 +51,25 @@ sub process {
|
|||
#--clipboard paster
|
||||
%hash2 = ();
|
||||
$hash2{WebGUI::URL::page()} = WebGUI::International::get(3);
|
||||
%hash = WebGUI::SQL->buildHash("select pageId,title from page where parentId=2 order by title");
|
||||
# pages
|
||||
if ($session{setting}{sharedClipboard} eq "1") {
|
||||
%hash = WebGUI::SQL->buildHash("select pageId, title from page where parentId=2 order by bufferDate desc");
|
||||
} else {
|
||||
%hash = WebGUI::SQL->buildHash("select pageId, title from page where parentId=2 "
|
||||
."and bufferUserId=". $session{user}{userId}. " order by bufferDate desc");
|
||||
}
|
||||
foreach $key (keys %hash) {
|
||||
$hash2{WebGUI::URL::page('op=pastePage&pageId='.$key)} = $hash{$key};
|
||||
}
|
||||
%hash = WebGUI::SQL->buildHash("select wobjectId,title from wobject where pageId=2 order by title");
|
||||
# wobjects
|
||||
if ($session{setting}{sharedClipboard} eq "1") {
|
||||
%hash = WebGUI::SQL->buildHash("select wobjectId, title from wobject where pageId=2 order by bufferDate desc");
|
||||
} else {
|
||||
%hash = WebGUI::SQL->buildHash("select wobjectId, title from wobject where pageId=2 "
|
||||
."and bufferUserId=". $session{user}{userId} ." order by bufferDate desc");
|
||||
}
|
||||
foreach $key (keys %hash) {
|
||||
$hash2{WebGUI::URL::page('func=paste&wid='.$key)} = $hash{$key};
|
||||
$hash2{WebGUI::URL::page('func=paste&wid='.$key)} = $hash{$key};
|
||||
}
|
||||
$clipboardSelect = WebGUI::Form::selectList({
|
||||
name=>"clipboardSelect",
|
||||
|
|
@ -71,7 +83,6 @@ sub process {
|
|||
WebGUI::URL::page('op=listGroups')=>WebGUI::International::get(5),
|
||||
WebGUI::URL::page('op=manageSettings')=>WebGUI::International::get(4),
|
||||
WebGUI::URL::page('op=listUsers')=>WebGUI::International::get(7),
|
||||
WebGUI::URL::gateway('trash')=>WebGUI::International::get(10),
|
||||
WebGUI::URL::page('op=listRoots')=>WebGUI::International::get(410),
|
||||
WebGUI::URL::page('op=viewStatistics')=>WebGUI::International::get(144)
|
||||
);
|
||||
|
|
@ -80,8 +91,10 @@ sub process {
|
|||
%hash = (
|
||||
'http://validator.w3.org/check?uri=http%3A%2F%2F'.$session{env}{SERVER_NAME}.
|
||||
WebGUI::URL::page()=>WebGUI::International::get(399),
|
||||
WebGUI::URL::page('op=viewPageTree')=>WebGUI::International::get(447),
|
||||
WebGUI::URL::page('op=manageClipboard')=>WebGUI::International::get(949),
|
||||
WebGUI::URL::page('op=listCollateral')=>WebGUI::International::get(394),
|
||||
WebGUI::URL::page('op=viewPageTree')=>WebGUI::International::get(447),
|
||||
WebGUI::URL::page('op=manageTrash')=>WebGUI::International::get(10),
|
||||
%hash
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ package WebGUI::Operation;
|
|||
use strict;
|
||||
use WebGUI::Operation::Account;
|
||||
use WebGUI::Operation::Admin;
|
||||
use WebGUI::Operation::Clipboard;
|
||||
use WebGUI::Operation::Collateral;
|
||||
use WebGUI::Operation::Group;
|
||||
use WebGUI::Operation::Help;
|
||||
|
|
|
|||
335
lib/WebGUI/Operation/Clipboard.pm
Normal file
335
lib/WebGUI/Operation/Clipboard.pm
Normal file
|
|
@ -0,0 +1,335 @@
|
|||
package WebGUI::Operation::Clipboard;
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# WebGUI is Copyright 2001-2003 Plain Black LLC.
|
||||
#-------------------------------------------------------------------
|
||||
# Please read the legal notices (docs/legal.txt) and the license
|
||||
# (docs/license.txt) that came with this distribution before using
|
||||
# this software.
|
||||
#-------------------------------------------------------------------
|
||||
# http://www.plainblack.com info@plainblack.com
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
use Exporter;
|
||||
use strict;
|
||||
use WebGUI::DateTime;
|
||||
use WebGUI::Grouping;
|
||||
use WebGUI::HTMLForm;
|
||||
use WebGUI::Icon;
|
||||
use WebGUI::International;
|
||||
use WebGUI::Operation::Shared;
|
||||
use WebGUI::Page;
|
||||
use WebGUI::Privilege;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::SQL;
|
||||
use WebGUI::TabForm;
|
||||
use WebGUI::URL;
|
||||
use WebGUI::Utility;
|
||||
|
||||
our @ISA = qw(Exporter);
|
||||
our @EXPORT = qw(&www_deleteClipboardItem &www_deleteClipboardItemConfirm
|
||||
&www_emptyClipboard &www_emptyClipboardConfirm &www_manageClipboard);
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _submenu {
|
||||
my (%menu);
|
||||
tie %menu, 'Tie::IxHash';
|
||||
$menu{WebGUI::URL::page('op=manageClipboard')} = WebGUI::International::get(949);
|
||||
$menu{WebGUI::URL::page('op=emptyClipboard')} = WebGUI::International::get(950);
|
||||
if ( ($session{setting}{sharedClipboard} ne "1") && (WebGUI::Privilege::isInGroup(3)) ) {
|
||||
$menu{WebGUI::URL::page('op=manageClipboard&systemClipboard=1')} = WebGUI::International::get(954);
|
||||
$menu{WebGUI::URL::page('op=emptyClipboard&systemClipboard=1')} = WebGUI::International::get(959);
|
||||
}
|
||||
return menuWrapper($_[0],\%menu);
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_deleteClipboardItem {
|
||||
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::isInGroup(4));
|
||||
my ($output);
|
||||
if ($session{form}{wid} ne "") {
|
||||
$output .= helpIcon(14);
|
||||
} elsif ($session{form}{pageId} ne "") {
|
||||
$output .= helpIcon(3);
|
||||
}
|
||||
$output .= '<h1>'.WebGUI::International::get(42).'</h1>';
|
||||
$output .= WebGUI::International::get(956).'<p>';
|
||||
if ($session{form}{wid} ne "") {
|
||||
$output .= '<div align="center"><a href="'.WebGUI::URL::page('op=deleteClipboardItemConfirm&wid='
|
||||
.$session{form}{wid}) . '">'.WebGUI::International::get(44).'</a>';
|
||||
} elsif ($session{form}{pageId} ne "") {
|
||||
$output .= '<div align="center"><a href="'.WebGUI::URL::page('op=deleteClipboardItemConfirm&pageId='
|
||||
.$session{form}{pageId}) . '">'.WebGUI::International::get(44).'</a>';
|
||||
}
|
||||
$output .= ' <a href="'.WebGUI::URL::page().'">'
|
||||
.WebGUI::International::get(45).'</a></div>';
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_deleteClipboardItemConfirm {
|
||||
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::isInGroup(4));
|
||||
if ($session{form}{wid} ne "") {
|
||||
if ( ($session{setting}{sharedClipboard} eq "1") || (WebGUI::Privilege::isInGroup(3)) ) {
|
||||
WebGUI::SQL->write("update wobject set pageId=3, "
|
||||
."bufferDate=".time().", "
|
||||
."bufferUserId=".$session{user}{userId} .", "
|
||||
."bufferPrevId=2 "
|
||||
."where pageId=2 "
|
||||
."and wobjectId=" . $session{form}{wid}
|
||||
);
|
||||
} else {
|
||||
WebGUI::SQL->write("update wobject set pageId=3, "
|
||||
."bufferDate=".time().", "
|
||||
."bufferUserId=".$session{user}{userId} .", "
|
||||
."bufferPrevId=2 "
|
||||
."where pageId=2 "
|
||||
."and wobjectId=" . $session{form}{wid} ." "
|
||||
."and bufferUserId=".$session{user}{userId}
|
||||
);
|
||||
}
|
||||
WebGUI::ErrorHandler::audit("moved wobject ". $session{form}{wid} ." from clipboard to trash");
|
||||
} elsif ($session{form}{pageId} ne "") {
|
||||
if ( ($session{setting}{sharedClipboard} eq "1") || (WebGUI::Privilege::isInGroup(3)) ) {
|
||||
WebGUI::SQL->write("update page set parentId=3, "
|
||||
."bufferDate=".time().", "
|
||||
."bufferUserId=".$session{user}{userId} .", "
|
||||
."bufferPrevId=2 "
|
||||
."where parentId=2 "
|
||||
."and pageId=".$session{form}{pageId}
|
||||
);
|
||||
} else {
|
||||
WebGUI::SQL->write("update page set parentId=3, "
|
||||
."bufferDate=".time().", "
|
||||
."bufferUserId=".$session{user}{userId} .", "
|
||||
."bufferPrevId=2 "
|
||||
."where parentId=2 "
|
||||
."and pageId=".$session{form}{pageId} ." "
|
||||
."and bufferUserId=".$session{user}{userId}
|
||||
);
|
||||
}
|
||||
WebGUI::ErrorHandler::audit("moved page ". $session{form}{pageId} ." from clipboard to trash");
|
||||
}
|
||||
WebGUI::Session::refreshPageInfo($session{page}{pageId},'op=manageClipboard');
|
||||
return "";
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_emptyClipboard {
|
||||
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::isInGroup(4));
|
||||
my ($output);
|
||||
my $output = helpIcon(67);
|
||||
$output .= '<h1>'.WebGUI::International::get(42).'</h1>';
|
||||
$output .= WebGUI::International::get(951).'<p>';
|
||||
if ( ($session{setting}{sharedClipboard} ne "1") && (WebGUI::Privilege::isInGroup(3)) ) {
|
||||
$output .= '<div align="center"><a href="'.WebGUI::URL::page('op=emptyClipboardConfirm&systemClipboard=1')
|
||||
.'">'.WebGUI::International::get(44).'</a>';
|
||||
} else {
|
||||
$output .= '<div align="center"><a href="'.WebGUI::URL::page('op=emptyClipboardConfirm')
|
||||
.'">'.WebGUI::International::get(44).'</a>';
|
||||
}
|
||||
$output .= ' <a href="'.WebGUI::URL::page().'">'
|
||||
.WebGUI::International::get(45).'</a></div>';
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_emptyClipboardConfirm {
|
||||
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::isInGroup(4));
|
||||
my ($allUsers);
|
||||
if ($session{setting}{sharedClipboard} eq "1") {
|
||||
$allUsers = 1;
|
||||
} elsif ($session{form}{systemClipboard} eq "1") {
|
||||
return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3));
|
||||
$allUsers = 1;
|
||||
} else {
|
||||
$allUsers = 0;
|
||||
}
|
||||
if ($allUsers eq "1") {
|
||||
WebGUI::SQL->write("update page set parentId=3, "
|
||||
."bufferDate=".time().", "
|
||||
."bufferUserId=".$session{user}{userId} .", "
|
||||
."bufferPrevId=2 "
|
||||
."where parentId=2 ");
|
||||
WebGUI::SQL->write("update wobject set pageId=3, "
|
||||
."bufferDate=".time().", "
|
||||
."bufferUserId=".$session{user}{userId} .", "
|
||||
."bufferPrevId=2 "
|
||||
."where pageId=2 ");
|
||||
WebGUI::ErrorHandler::audit("emptied clipboard to trash");
|
||||
} else {
|
||||
WebGUI::SQL->write("update page set parentId=3, "
|
||||
."bufferDate=".time().", "
|
||||
."bufferUserId=".$session{user}{userId} .", "
|
||||
."bufferPrevId=2 "
|
||||
."where parentId=2 "
|
||||
."and bufferUserId=".$session{user}{userId});
|
||||
WebGUI::SQL->write("update wobject set pageId=3, "
|
||||
."bufferDate=".time().", "
|
||||
."bufferUserId=".$session{user}{userId} .", "
|
||||
."bufferPrevId=2 "
|
||||
."where pageId=2 "
|
||||
."and bufferUserId=".$session{user}{userId});
|
||||
WebGUI::ErrorHandler::audit("emptied user clipboard to trash");
|
||||
}
|
||||
WebGUI::Session::refreshPageInfo($session{page}{pageId});
|
||||
return "";
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_manageClipboard {
|
||||
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::isInGroup(4));
|
||||
my ($sth, @data, @row, $i, $p, $allUsers);
|
||||
my $output = helpIcon(65);
|
||||
|
||||
if ($session{setting}{sharedClipboard} eq "1") {
|
||||
$allUsers = 1;
|
||||
$output .= '<h1>'. WebGUI::International::get(948) .'</h1>';
|
||||
} elsif ($session{form}{systemClipboard} eq "1") {
|
||||
return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3));
|
||||
$allUsers = 1;
|
||||
$output .= '<h1>'. WebGUI::International::get(955) .'</h1>';
|
||||
} else {
|
||||
$allUsers = 0;
|
||||
$output .= '<h1>'. WebGUI::International::get(948) .'</h1>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Generate list of pages
|
||||
#
|
||||
if ($allUsers) {
|
||||
$sth = WebGUI::SQL->read("select pageId,title,urlizedTitle,bufferUserId,bufferDate,bufferPrevId "
|
||||
."from page where parentId=2 order by bufferDate desc,bufferUserId");
|
||||
} else {
|
||||
$sth = WebGUI::SQL->read("select pageId,title,urlizedTitle,bufferUserId,bufferDate,bufferPrevId "
|
||||
."from page where parentId=2 and bufferUserId="
|
||||
. $session{user}{userId} . " order by bufferDate desc");
|
||||
}
|
||||
while (@data = $sth->array) {
|
||||
my ($pageId,$title,$urlizedTitle,$bufferUserId,$bufferDate,$bufferPrevId,$url);
|
||||
$pageId = $data[0];
|
||||
$title = $data[1];
|
||||
$urlizedTitle = $data[2];
|
||||
$title = '<a href="'. WebGUI::URL::gateway($urlizedTitle) .'">' .$title .'</a>';
|
||||
|
||||
$bufferUserId = $data[3];
|
||||
if ($bufferUserId ne "") {
|
||||
my ($bufferUsername) = WebGUI::SQL->quickArray("select username from users where userId=".$bufferUserId);
|
||||
$bufferUserId = '<a href="' .WebGUI::URL::page('op=viewProfile&uid='.$bufferUserId) .'">'
|
||||
.$bufferUsername .'</a>';
|
||||
}
|
||||
$bufferDate = epochToHuman($data[4]);
|
||||
$bufferPrevId = $data[5];
|
||||
if ($bufferPrevId ne "") {
|
||||
($bufferPrevId,$url) = WebGUI::SQL->quickArray("select title,urlizedTitle "
|
||||
."from page where pageId=".$bufferPrevId);
|
||||
if ($url ne "") {
|
||||
$bufferPrevId = '<a href="'. WebGUI::URL::gateway($url) .'">' .$bufferPrevId .'</a>';
|
||||
}
|
||||
}
|
||||
$row[$i] = '<tr>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'
|
||||
.pageIcon()
|
||||
.deleteIcon('op=deleteClipboardItem&pageId='.$pageId)
|
||||
.pasteIcon('op=pastePage&pageId='.$pageId);
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$title;
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.WebGUI::International::get(2);
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$bufferDate;
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$bufferPrevId;
|
||||
$row[$i] .= '</td>';
|
||||
if ($allUsers) {
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$bufferUserId;
|
||||
$row[$i] .= '</td>';
|
||||
}
|
||||
$row[$i] .= '</tr>';
|
||||
$i++;
|
||||
}
|
||||
|
||||
#
|
||||
# Generate list of wobjects
|
||||
#
|
||||
if ($allUsers) {
|
||||
$sth = WebGUI::SQL->read("select wobjectId,namespace,title,bufferUserId,bufferDate,bufferPrevId "
|
||||
. "from wobject where pageId=2 order by bufferDate desc,bufferUserId");
|
||||
} else {
|
||||
$sth = WebGUI::SQL->read("select wobjectId,namespace,title,bufferUserId,bufferDate,bufferPrevId "
|
||||
. "from wobject where pageId=2 and bufferUserId="
|
||||
. $session{user}{userId} ." order by bufferDate desc");
|
||||
}
|
||||
while (@data = $sth->array) {
|
||||
my ($wobjectId,$namespace,$title,$bufferUserId,$bufferDate,$bufferPrevId,$url);
|
||||
|
||||
$wobjectId = $data[0];
|
||||
$namespace = $data[1];
|
||||
$title = $data[2];
|
||||
$title = '<a href="'. WebGUI::URL::page('func=view&wid='. $wobjectId) .'">'. $title .'</a>';
|
||||
|
||||
$bufferPrevId = $data[5];
|
||||
if ($bufferPrevId ne "") {
|
||||
($bufferPrevId,$url) = WebGUI::SQL->quickArray("select title,urlizedTitle "
|
||||
."from page where pageId=".$bufferPrevId);
|
||||
if ($url ne "") {
|
||||
$bufferPrevId = '<a href="'. WebGUI::URL::gateway($url) .'">' .$bufferPrevId .'</a>';
|
||||
}
|
||||
}
|
||||
$bufferDate = epochToHuman($data[4]);
|
||||
|
||||
$bufferUserId = $data[3];
|
||||
if ($bufferUserId ne "") {
|
||||
my ($bufferUsername) = WebGUI::SQL->quickArray("select username from users where userId=".$bufferUserId);
|
||||
$bufferUserId = '<a href="' .WebGUI::URL::page('op=viewProfile&uid='.$bufferUserId) .'">'
|
||||
.$bufferUsername .'</a>';
|
||||
}
|
||||
|
||||
$row[$i] = '<tr>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'
|
||||
.wobjectIcon()
|
||||
.deleteIcon('op=deleteClipboardItem&wid='.$wobjectId)
|
||||
.pasteIcon('func=paste&wid='.$wobjectId);
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$title;
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$namespace;
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$bufferDate;
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$bufferPrevId;
|
||||
$row[$i] .= '</td>';
|
||||
if ($allUsers) {
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$bufferUserId;
|
||||
$row[$i] .= '</td>';
|
||||
}
|
||||
$row[$i] .= '</tr>';
|
||||
$i++;
|
||||
}
|
||||
$sth->finish;
|
||||
if ($session{form}{systemClipboard} eq "1") {
|
||||
$p = WebGUI::Paginator->new(WebGUI::URL::page('op=manageClipboard&systemClipboard=1'),\@row);
|
||||
} else {
|
||||
$p = WebGUI::Paginator->new(WebGUI::URL::page('op=manageClipboard'),\@row);
|
||||
}
|
||||
$output .= '<table border=1 cellpadding=5 cellspacing=0 align="center">';
|
||||
$output .= '<tr><th></th>'
|
||||
.'<th>'. WebGUI::International::get(99) .'</th>'
|
||||
.'<th>'. WebGUI::International::get(783) .'</th>'
|
||||
.'<th>'. WebGUI::International::get(952) .'</th>'
|
||||
.'<th>'. WebGUI::International::get(953) .'</th>';
|
||||
if ($allUsers) {
|
||||
$output .= '<th>'. WebGUI::International::get(50) .'</th>'
|
||||
.'</tr>';
|
||||
} else {
|
||||
$output .= '</tr>';
|
||||
}
|
||||
$output .= $p->getPage($session{form}{pn});
|
||||
$output .= '</table>';
|
||||
$output .= $p->getBarTraditional($session{form}{pn});
|
||||
return _submenu($output);
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
@ -173,7 +173,11 @@ sub www_cutPage {
|
|||
if ($session{page}{pageId} < 26) {
|
||||
return WebGUI::Privilege::vitalComponent();
|
||||
} elsif (WebGUI::Privilege::canEditPage()) {
|
||||
WebGUI::SQL->write("update page set parentId=2 where pageId=".$session{page}{pageId});
|
||||
WebGUI::SQL->write("update page set parentId=2, "
|
||||
."bufferUserId=".$session{user}{userId}.", "
|
||||
."bufferDate=".time().", "
|
||||
."bufferPrevId=".$session{page}{parentId}." "
|
||||
."where pageId=".$session{page}{pageId});
|
||||
_reorderPages($session{page}{parentId});
|
||||
WebGUI::Session::refreshPageInfo($session{page}{parentId});
|
||||
return "";
|
||||
|
|
@ -206,7 +210,11 @@ sub www_deletePageConfirm {
|
|||
if ($session{page}{pageId} < 1000 && $session{page}{pageId} > 0) {
|
||||
return WebGUI::Privilege::vitalComponent();
|
||||
} elsif (WebGUI::Privilege::canEditPage()) {
|
||||
WebGUI::SQL->write("update page set parentId=3 where pageId=".$session{page}{pageId});
|
||||
WebGUI::SQL->write("update page set parentId=3, "
|
||||
."bufferUserId=".$session{user}{userId}.", "
|
||||
."bufferDate=".time().", "
|
||||
."bufferPrevId=".$session{page}{parentId}." "
|
||||
."where pageId=".$session{page}{pageId});
|
||||
_reorderPages($session{page}{parentId});
|
||||
WebGUI::Session::refreshPageInfo($session{page}{parentId});
|
||||
return "";
|
||||
|
|
@ -547,7 +555,9 @@ sub www_pastePage {
|
|||
($nextSeq) = WebGUI::SQL->quickArray("select max(sequenceNumber) from page where parentId=$session{page}{pageId}");
|
||||
$nextSeq += 1;
|
||||
if (WebGUI::Privilege::canEditPage()) {
|
||||
WebGUI::SQL->write("update page set parentId=$session{page}{pageId}, sequenceNumber='$nextSeq' where pageId=$session{form}{pageId}");
|
||||
WebGUI::SQL->write("update page set parentId=$session{page}{pageId}, sequenceNumber='$nextSeq', "
|
||||
."bufferUserId=NULL, bufferDate=NULL, bufferPrevId=NULL "
|
||||
."where pageId=$session{form}{pageId}");
|
||||
_reorderPages($session{page}{pageId});
|
||||
return "";
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -153,6 +153,8 @@ sub www_editMiscSettings {
|
|||
$output .= '<h1>'.WebGUI::International::get(140).'</h1>';
|
||||
$f = WebGUI::HTMLForm->new;
|
||||
$f->hidden("op","saveSettings");
|
||||
$f->yesNo("sharedClipboard",WebGUI::International::get(947),$session{setting}{sharedClipboard});
|
||||
$f->yesNo("sharedTrash",WebGUI::International::get(946),$session{setting}{sharedTrash});
|
||||
$f->yesNo("preventProxyCache",WebGUI::International::get(400),$session{setting}{preventProxyCache});
|
||||
$f->yesNo("showDebug",WebGUI::International::get(707),$session{setting}{showDebug});
|
||||
$f->yesNo("trackPageStatistics",WebGUI::International::get(749),$session{setting}{trackPageStatistics});
|
||||
|
|
|
|||
|
|
@ -13,14 +13,68 @@ package WebGUI::Operation::Trash;
|
|||
use Exporter;
|
||||
use strict qw(vars subs);
|
||||
use Tie::CPHash;
|
||||
use WebGUI::DateTime;
|
||||
use WebGUI::Icon;
|
||||
use WebGUI::Operation::Shared;
|
||||
use WebGUI::Privilege;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::SQL;
|
||||
use WebGUI::URL;
|
||||
|
||||
our @ISA = qw(Exporter);
|
||||
our @EXPORT = qw(&www_purgeTrash &www_purgeTrashConfirm);
|
||||
our @EXPORT = qw(&www_cutTrashItem &www_deleteTrashItem &www_deleteTrashItemConfirm
|
||||
&www_emptyTrash &www_emptyTrashConfirm &www_manageTrash);
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _purgePage {
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _purgeUserTrash {
|
||||
my (%properties, $base, $extended, $b, $wobjectId, $namespace, $w, $cmd, $userId, $bufferId, $a, $pageId);
|
||||
tie %properties, 'Tie::CPHash';
|
||||
|
||||
$userId = $session{user}{userId};
|
||||
|
||||
#WebGUI::ErrorHandler::audit("emptying user trash");
|
||||
|
||||
# Delete wobjects
|
||||
$b = WebGUI::SQL->read("select * from wobject where pageId=3 and bufferUserId=" . $userId);
|
||||
while ($base = $b->hashRef) {
|
||||
$extended = WebGUI::SQL->quickHashRef("select * from ".$base->{namespace}."
|
||||
where wobjectId=".$base->{wobjectId});
|
||||
%properties = (%{$base}, %{$extended});
|
||||
$cmd = "WebGUI::Wobject::".$properties{namespace};
|
||||
$w = $cmd->new(\%properties);
|
||||
$w->purge;
|
||||
}
|
||||
$b->finish;
|
||||
|
||||
# Delete pages and all subpages
|
||||
$a = WebGUI::SQL->read("select pageId from page where parentId=3 and bufferUserId=" . $userId);
|
||||
while (($pageId) = $a->array) {
|
||||
_recursePageTree($pageId);
|
||||
_purgeWobjects($pageId);
|
||||
WebGUI::SQL->write("delete from page where pageId=$pageId");
|
||||
}
|
||||
$a->finish;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _purgeWobject {
|
||||
my (%properties, $base, $extended, $b, $wobjectId, $namespace, $w, $cmd);
|
||||
tie %properties, 'Tie::CPHash';
|
||||
$b = WebGUI::SQL->read("select * from wobject where wobjectId=$_[0]");
|
||||
while ($base = $b->hashRef) {
|
||||
$extended = WebGUI::SQL->quickHashRef("select * from ".$base->{namespace}."
|
||||
where wobjectId=".$base->{wobjectId});
|
||||
%properties = (%{$base}, %{$extended});
|
||||
$cmd = "WebGUI::Wobject::".$properties{namespace};
|
||||
$w = $cmd->new(\%properties);
|
||||
$w->purge;
|
||||
}
|
||||
$b->finish;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub _purgeWobjects {
|
||||
|
|
@ -51,31 +105,303 @@ sub _recursePageTree {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_purgeTrash {
|
||||
my ($output);
|
||||
if (WebGUI::Privilege::isInGroup(3)) {
|
||||
$output = helpIcon(46);
|
||||
$output .= '<h1>'.WebGUI::International::get(42).'</h1>';
|
||||
$output .= WebGUI::International::get(162).'<p>';
|
||||
$output .= '<div align="center"><a href="'.WebGUI::URL::page('op=purgeTrashConfirm').
|
||||
'">'.WebGUI::International::get(44).'</a>';
|
||||
$output .= ' <a href="'.WebGUI::URL::page().'">'.
|
||||
WebGUI::International::get(45).'</a></div>';
|
||||
return $output;
|
||||
} else {
|
||||
return WebGUI::Privilege::adminOnly();
|
||||
}
|
||||
sub _submenu {
|
||||
my (%menu);
|
||||
tie %menu, 'Tie::IxHash';
|
||||
$menu{WebGUI::URL::page('op=manageTrash')} = WebGUI::International::get(10);
|
||||
$menu{WebGUI::URL::page('op=emptyTrash')} = WebGUI::International::get(11);
|
||||
if ( ($session{setting}{sharedTrash} ne "1") && (WebGUI::Privilege::isInGroup(3)) ) {
|
||||
$menu{WebGUI::URL::page('op=manageTrash&systemTrash=1')} = WebGUI::International::get(964);
|
||||
$menu{WebGUI::URL::page('op=emptyTrash&systemTrash=1')} = WebGUI::International::get(967);
|
||||
}
|
||||
return menuWrapper($_[0],\%menu);
|
||||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_cutTrashItem {
|
||||
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::isInGroup(4));
|
||||
if ($session{form}{wid} ne "") {
|
||||
if ( ($session{setting}{sharedTrash} ne "1") && (!(WebGUI::Privilege::isInGroup(3)) ) ) {
|
||||
my ($bufferUserId) = WebGUI::SQL->quickArray("select bufferUserId from wobject "
|
||||
."where wobjectId=" .$session{form}{wid});
|
||||
return WebGUI::Privilege::insufficient() unless ($bufferUserId eq $session{user}{userId});
|
||||
}
|
||||
WebGUI::SQL->write("update wobject set pageId=2, "
|
||||
."bufferUserId=". $session{user}{userId} .", "
|
||||
."bufferDate=". time() .", "
|
||||
."bufferPrevId=3 "
|
||||
."where wobjectId=" .$session{form}{wid});
|
||||
WebGUI::ErrorHandler::audit("moved wobject ". $session{form}{wid} ." from trash to clipboard");
|
||||
} elsif ($session{form}{pageId} ne "") {
|
||||
if ( ($session{setting}{sharedTrash} ne "1") && (!(WebGUI::Privilege::isInGroup(3)) ) ) {
|
||||
my ($bufferUserId) = WebGUI::SQL->quickArray("select bufferUserId from page "
|
||||
."where pageId=" .$session{form}{pageId});
|
||||
return WebGUI::Privilege::insufficient() unless ($bufferUserId eq $session{user}{userId});
|
||||
}
|
||||
WebGUI::SQL->write("update page set parentId=2, "
|
||||
."bufferUserId=". $session{user}{userId} .", "
|
||||
."bufferDate=". time() .", "
|
||||
."bufferPrevId=3 "
|
||||
."where pageId=" .$session{form}{pageId});
|
||||
WebGUI::ErrorHandler::audit("moved page ". $session{form}{pageId} ." from trash to clipboard");
|
||||
}
|
||||
WebGUI::Session::refreshPageInfo($session{page}{pageId});
|
||||
return "";
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_purgeTrashConfirm {
|
||||
if (WebGUI::Privilege::isInGroup(3)) {
|
||||
sub www_deleteTrashItem {
|
||||
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::isInGroup(4));
|
||||
my ($output);
|
||||
if ($session{form}{wid} ne "") {
|
||||
$output .= helpIcon(14);
|
||||
} elsif ($session{form}{pageId} ne "") {
|
||||
$output .= helpIcon(3);
|
||||
}
|
||||
$output .= '<h1>'.WebGUI::International::get(42).'</h1>';
|
||||
$output .= WebGUI::International::get(966).'<p>';
|
||||
if ($session{form}{wid} ne "") {
|
||||
$output .= '<div align="center"><a href="'.WebGUI::URL::page('op=deleteTrashItemConfirm&wid='
|
||||
.$session{form}{wid}) . '">'.WebGUI::International::get(44).'</a>';
|
||||
} elsif ($session{form}{pageId} ne "") {
|
||||
$output .= '<div align="center"><a href="'.WebGUI::URL::page('op=deleteTrashItemConfirm&pageId='
|
||||
.$session{form}{pageId}) . '">'.WebGUI::International::get(44).'</a>';
|
||||
}
|
||||
$output .= ' <a href="'.WebGUI::URL::page().'">'
|
||||
.WebGUI::International::get(45).'</a></div>';
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_deleteTrashItemConfirm {
|
||||
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::isInGroup(4));
|
||||
if ($session{form}{wid} ne "") {
|
||||
if ( ($session{setting}{sharedTrash} eq "1") || (WebGUI::Privilege::isInGroup(3)) ) {
|
||||
_purgeWobject($session{form}{wid});
|
||||
} else {
|
||||
my ($bufferUserId) = WebGUI::SQL->quickArray("select bufferUserId from wobject "
|
||||
."where wobjectId=" .$session{form}{wid});
|
||||
return WebGUI::Privilege::insufficient() unless ($bufferUserId eq $session{user}{userId});
|
||||
_purgeWobject($session{form}{wid});
|
||||
}
|
||||
WebGUI::ErrorHandler::audit("purged wobject ". $session{form}{wid} ." from trash");
|
||||
} elsif ($session{form}{pageId} ne "") {
|
||||
if ( ($session{setting}{sharedTrash} eq "1") || (WebGUI::Privilege::isInGroup(3)) ) {
|
||||
_recursePageTree($session{form}{pageId});
|
||||
_purgeWobjects($session{form}{pageId});
|
||||
WebGUI::SQL->write("delete from page where pageId=" .$session{form}{pageId});
|
||||
} else {
|
||||
my ($bufferUserId) = WebGUI::SQL->quickArray("select bufferUserId from page "
|
||||
."where pageId=" .$session{form}{pageId});
|
||||
return WebGUI::Privilege::insufficient() unless ($bufferUserId eq $session{user}{userId});
|
||||
_recursePageTree($session{form}{pageId});
|
||||
_purgeWobjects($session{form}{pageId});
|
||||
WebGUI::SQL->write("delete from page where pageId=" .$session{form}{pageId});
|
||||
}
|
||||
WebGUI::ErrorHandler::audit("purged page ". $session{form}{pageId} ." from trash");
|
||||
}
|
||||
WebGUI::Session::refreshPageInfo($session{page}{pageId});
|
||||
return "";
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_emptyTrash {
|
||||
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::isInGroup(4));
|
||||
my ($output);
|
||||
$output = helpIcon(46);
|
||||
$output .= '<h1>'.WebGUI::International::get(42).'</h1>';
|
||||
$output .= WebGUI::International::get(162).'<p>';
|
||||
$output .= WebGUI::International::get(651).'<p>';
|
||||
if ($session{form}{systemTrash} eq "1") {
|
||||
$output .= '<div align="center"><a href="'.WebGUI::URL::page('op=emptyTrashConfirm&systemTrash=1')
|
||||
.'">'.WebGUI::International::get(44).'</a>';
|
||||
} else {
|
||||
$output .= '<div align="center"><a href="'.WebGUI::URL::page('op=emptyTrashConfirm')
|
||||
.'">'.WebGUI::International::get(44).'</a>';
|
||||
}
|
||||
$output .= ' <a href="'.WebGUI::URL::page().'">'
|
||||
.WebGUI::International::get(45).'</a></div>';
|
||||
return $output;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_emptyTrashConfirm {
|
||||
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::isInGroup(4));
|
||||
my ($allUsers);
|
||||
if ($session{setting}{sharedTrash} eq "1") {
|
||||
$allUsers = 1;
|
||||
} elsif ($session{form}{systemTrash} eq "1") {
|
||||
return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3));
|
||||
$allUsers = 1;
|
||||
} else {
|
||||
$allUsers = 0;
|
||||
}
|
||||
if ($allUsers eq "1") {
|
||||
_recursePageTree(3);
|
||||
_purgeWobjects(3);
|
||||
return "";
|
||||
WebGUI::ErrorHandler::audit("emptied system trash");
|
||||
} else {
|
||||
return WebGUI::Privilege::adminOnly();
|
||||
_purgeUserTrash();
|
||||
WebGUI::ErrorHandler::audit("emptied user trash");
|
||||
}
|
||||
WebGUI::Session::refreshPageInfo($session{page}{pageId});
|
||||
return "";
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_manageTrash {
|
||||
return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::isInGroup(4));
|
||||
my ($sth, @data, @row, $i, $p, $allUsers);
|
||||
my $output = helpIcon(66);
|
||||
|
||||
if ($session{setting}{sharedTrash} eq "1") {
|
||||
$allUsers = 1;
|
||||
$output .= '<h1>'. WebGUI::International::get(962) .'</h1>';
|
||||
} elsif ($session{form}{systemTrash} eq "1") {
|
||||
return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3));
|
||||
$allUsers = 1;
|
||||
$output .= '<h1>'. WebGUI::International::get(965) .'</h1>';
|
||||
} else {
|
||||
$allUsers = 0;
|
||||
$output .= '<h1>'. WebGUI::International::get(962) .'</h1>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Generate list of pages
|
||||
#
|
||||
if ($allUsers) {
|
||||
$sth = WebGUI::SQL->read("select pageId,title,urlizedTitle,bufferUserId,bufferDate,bufferPrevId "
|
||||
."from page where parentId=3 order by bufferDate desc,bufferUserId");
|
||||
} else {
|
||||
$sth = WebGUI::SQL->read("select pageId,title,urlizedTitle,bufferUserId,bufferDate,bufferPrevId "
|
||||
."from page where parentId=3 and bufferUserId="
|
||||
. $session{user}{userId} . " order by bufferDate desc");
|
||||
}
|
||||
while (@data = $sth->array) {
|
||||
my ($pageId,$title,$urlizedTitle,$bufferUserId,$bufferDate,$bufferPrevId,$url);
|
||||
$pageId = $data[0];
|
||||
$title = $data[1];
|
||||
$urlizedTitle = $data[2];
|
||||
$title = '<a href="'. WebGUI::URL::gateway($urlizedTitle) .'">' .$title .'</a>';
|
||||
|
||||
$bufferUserId = $data[3];
|
||||
if ($bufferUserId ne "") {
|
||||
my ($bufferUsername) = WebGUI::SQL->quickArray("select username from users where userId=".$bufferUserId);
|
||||
$bufferUserId = '<a href="' .WebGUI::URL::page('op=viewProfile&uid='.$bufferUserId) .'">'
|
||||
.$bufferUsername .'</a>';
|
||||
}
|
||||
$bufferDate = epochToHuman($data[4]);
|
||||
$bufferPrevId = $data[5];
|
||||
if ($bufferPrevId ne "") {
|
||||
($bufferPrevId,$url) = WebGUI::SQL->quickArray("select title,urlizedTitle "
|
||||
."from page where pageId=".$bufferPrevId);
|
||||
if ($url ne "") {
|
||||
$bufferPrevId = '<a href="'. WebGUI::URL::gateway($url) .'">' .$bufferPrevId .'</a>';
|
||||
}
|
||||
}
|
||||
$row[$i] = '<tr>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'
|
||||
.pageIcon()
|
||||
.deleteIcon('op=deleteTrashItem&pageId='.$pageId)
|
||||
.cutIcon('op=cutTrashItem&pageId='.$pageId);
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$title;
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.WebGUI::International::get(2);
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$bufferDate;
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$bufferPrevId;
|
||||
$row[$i] .= '</td>';
|
||||
if ($allUsers) {
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$bufferUserId;
|
||||
$row[$i] .= '</td>';
|
||||
}
|
||||
$row[$i] .= '</tr>';
|
||||
$i++;
|
||||
}
|
||||
|
||||
#
|
||||
# Generate list of wobjects
|
||||
#
|
||||
if ($allUsers) {
|
||||
$sth = WebGUI::SQL->read("select wobjectId,namespace,title,bufferUserId,bufferDate,bufferPrevId "
|
||||
. "from wobject where pageId=3 order by bufferDate desc,bufferUserId");
|
||||
} else {
|
||||
$sth = WebGUI::SQL->read("select wobjectId,namespace,title,bufferUserId,bufferDate,bufferPrevId "
|
||||
. "from wobject where pageId=3 and bufferUserId="
|
||||
. $session{user}{userId} ." order by bufferDate desc");
|
||||
}
|
||||
while (@data = $sth->array) {
|
||||
my ($wobjectId,$namespace,$title,$bufferUserId,$bufferDate,$bufferPrevId,$url);
|
||||
|
||||
$wobjectId = $data[0];
|
||||
$namespace = $data[1];
|
||||
$title = $data[2];
|
||||
$title = '<a href="'. WebGUI::URL::page('func=view&wid='. $wobjectId) .'">'. $title .'</a>';
|
||||
|
||||
$bufferPrevId = $data[5];
|
||||
if ($bufferPrevId ne "") {
|
||||
($bufferPrevId,$url) = WebGUI::SQL->quickArray("select title,urlizedTitle "
|
||||
."from page where pageId=".$bufferPrevId);
|
||||
if ($url ne "") {
|
||||
$bufferPrevId = '<a href="'. WebGUI::URL::gateway($url) .'">' .$bufferPrevId .'</a>';
|
||||
}
|
||||
}
|
||||
$bufferDate = epochToHuman($data[4]);
|
||||
|
||||
$bufferUserId = $data[3];
|
||||
if ($bufferUserId ne "") {
|
||||
my ($bufferUsername) = WebGUI::SQL->quickArray("select username from users where userId=".$bufferUserId);
|
||||
$bufferUserId = '<a href="' .WebGUI::URL::page('op=viewProfile&uid='.$bufferUserId) .'">'
|
||||
.$bufferUsername .'</a>';
|
||||
}
|
||||
|
||||
$row[$i] = '<tr>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'
|
||||
.wobjectIcon()
|
||||
.deleteIcon('op=deleteTrashItem&wid='.$wobjectId)
|
||||
.cutIcon('op=cutTrashItem&wid='.$wobjectId);
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$title;
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$namespace;
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$bufferDate;
|
||||
$row[$i] .= '</td>';
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$bufferPrevId;
|
||||
$row[$i] .= '</td>';
|
||||
if ($allUsers) {
|
||||
$row[$i] .= '<td valign="top" class="tableData">'.$bufferUserId;
|
||||
$row[$i] .= '</td>';
|
||||
}
|
||||
$row[$i] .= '</tr>';
|
||||
$i++;
|
||||
}
|
||||
$sth->finish;
|
||||
if ($session{form}{systemTrash} eq "1") {
|
||||
$p = WebGUI::Paginator->new(WebGUI::URL::page('op=manageTrash&systemTrash=1'),\@row);
|
||||
} else {
|
||||
$p = WebGUI::Paginator->new(WebGUI::URL::page('op=manageTrash'),\@row);
|
||||
}
|
||||
$output .= '<table border=1 cellpadding=5 cellspacing=0 align="center">';
|
||||
$output .= '<tr><th></th>'
|
||||
.'<th>'. WebGUI::International::get(99) .'</th>'
|
||||
.'<th>'. WebGUI::International::get(783) .'</th>'
|
||||
.'<th>'. WebGUI::International::get(963) .'</th>'
|
||||
.'<th>'. WebGUI::International::get(953) .'</th>';
|
||||
if ($allUsers) {
|
||||
$output .= '<th>'. WebGUI::International::get(50) .'</th>'
|
||||
.'</tr>';
|
||||
} else {
|
||||
$output .= '</tr>';
|
||||
}
|
||||
$output .= $p->getPage($session{form}{pn});
|
||||
$output .= '</table>';
|
||||
$output .= $p->getBarTraditional($session{form}{pn});
|
||||
return _submenu($output);
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -260,11 +260,16 @@ If specified the wobject will be duplicated to this pageId, otherwise it will be
|
|||
sub duplicate {
|
||||
my %properties = %{$_[0]->get};
|
||||
$properties{pageId} = $_[1] || 2;
|
||||
if ($properties{pageId} == 2) {
|
||||
$properties{bufferUserId} = $session{user}{userId};
|
||||
$properties{bufferDate} = time();
|
||||
$properties{bufferPrevId} = {};
|
||||
}
|
||||
delete $properties{wobjectId};
|
||||
my $cmd = "WebGUI::Wobject::".$properties{namespace};
|
||||
my $w = eval{$cmd->new({namespace=>$properties{namespace},wobjectId=>"new"})};
|
||||
if ($@) {
|
||||
WebGUI::ErrorHandler::warn("Could duplicate wobject ".$properties{namespace}." because: ".$@);
|
||||
WebGUI::ErrorHandler::warn("Couldn't duplicate wobject ".$properties{namespace}." because: ".$@);
|
||||
}
|
||||
$w->set(\%properties);
|
||||
WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w->get("wobjectId")) unless ($_[2]);
|
||||
|
|
@ -649,6 +654,15 @@ sub new {
|
|||
userDefined5=>{
|
||||
fieldType=>"text"
|
||||
},
|
||||
bufferUserId=>{
|
||||
fieldType=>"integer"
|
||||
},
|
||||
bufferDate=>{
|
||||
fieldType=>"integer"
|
||||
},
|
||||
bufferPrevId=>{
|
||||
fieldType=>"integer"
|
||||
},
|
||||
allowDiscussion=>{
|
||||
fieldType=>"yesNo",
|
||||
defaultValue=>0
|
||||
|
|
@ -1067,7 +1081,10 @@ Moves this instance to the clipboard.
|
|||
|
||||
sub www_cut {
|
||||
if (WebGUI::Privilege::canEditPage()) {
|
||||
$_[0]->set({pageId=>2, templatePosition=>1});
|
||||
$_[0]->set({pageId=>2, templatePosition=>1,
|
||||
bufferUserId=>$session{user}{userId},
|
||||
bufferDate=>time(),
|
||||
bufferPrevId=>$session{page}{pageId}});
|
||||
_reorderWobjects($session{page}{pageId});
|
||||
return "";
|
||||
} else {
|
||||
|
|
@ -1113,7 +1130,10 @@ Moves this instance to the trash.
|
|||
|
||||
sub www_deleteConfirm {
|
||||
if (WebGUI::Privilege::canEditPage()) {
|
||||
$_[0]->set({pageId=>3, templatePosition=>1});
|
||||
$_[0]->set({pageId=>3, templatePosition=>1,
|
||||
bufferUserId=>$session{user}{userId},
|
||||
bufferDate=>time(),
|
||||
bufferPrevId=>$session{page}{pageId}});
|
||||
WebGUI::ErrorHandler::audit("moved Wobject ".$_[0]->{_property}{wobjectId}." to the trash.");
|
||||
_reorderWobjects($_[0]->get("pageId"));
|
||||
return "";
|
||||
|
|
@ -1481,7 +1501,12 @@ sub www_paste {
|
|||
if (WebGUI::Privilege::canEditPage()) {
|
||||
($nextSeq) = WebGUI::SQL->quickArray("select max(sequenceNumber) from wobject where pageId=$session{page}{pageId}");
|
||||
$nextSeq += 1;
|
||||
$_[0]->set({sequenceNumber=>$nextSeq, pageId=>$session{page}{pageId}, templatePosition=>1});
|
||||
WebGUI::SQL->write("UPDATE wobject SET "
|
||||
."pageId=". $session{page}{pageId} .", "
|
||||
."templatePosition=1, "
|
||||
."sequenceNumber=". $nextSeq .", "
|
||||
."bufferUserId=NULL, bufferDate=NULL, bufferPrevId=NULL "
|
||||
."WHERE wobjectId=". $session{form}{wid} );
|
||||
return "";
|
||||
} else {
|
||||
return WebGUI::Privilege::insufficient();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue