moving wiki down the path of ajax enlightenment
This commit is contained in:
parent
650ddb805d
commit
efa444c1d3
11 changed files with 336 additions and 286 deletions
|
|
@ -749,7 +749,20 @@ sub processPropertiesFromFormPost {
|
|||
$self->getThread->subscribe if ($self->session->form->process("subscribe"));
|
||||
delete $self->{_storageLocation};
|
||||
$self->postProcess;
|
||||
$self->requestCommit;
|
||||
# allows us to let the cs post use it's own workflow approval process
|
||||
my $currentTag = WebGUI::VersionTag->getWorking($self->session);
|
||||
if ($currentTag->getAssetCount < 2) {
|
||||
$currentTag->set({workflowId=>$self->getThread->getParent->get("approvalWorkflow")});
|
||||
$currentTag->requestCommit;
|
||||
} else {
|
||||
my $newTag = WebGUI::VersionTag->create($self->session, {
|
||||
name=>$self->getTitle." / ".$self->session->user->username,
|
||||
workflowId=>$self->getThread->getParent->get("approvalWorkflow")
|
||||
});
|
||||
$self->session->db->write("update assetData set tagId=? where assetId=? and tagId=?",[$newTag->getId, $self->getId, $currentTag->getId]);
|
||||
$self->purgeCache;
|
||||
$newTag->requestCommit;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -869,25 +882,6 @@ sub rethreadUnder {
|
|||
delete $self->{_thread};
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
# allows us to let the cs post use it's own workflow approval process
|
||||
sub requestCommit {
|
||||
my $self = shift;
|
||||
my $currentTag = WebGUI::VersionTag->getWorking($self->session);
|
||||
if ($currentTag->getAssetCount < 2) {
|
||||
$currentTag->set({workflowId=>$self->getThread->getParent->get("approvalWorkflow")});
|
||||
$currentTag->requestCommit;
|
||||
} else {
|
||||
my $newTag = WebGUI::VersionTag->create($self->session, {
|
||||
name=>$self->getTitle." / ".$self->session->user->username,
|
||||
workflowId=>$self->getThread->getParent->get("approvalWorkflow")
|
||||
});
|
||||
$self->session->db->write("update assetData set tagId=? where assetId=? and tagId=?",[$newTag->getId, $self->getId, $currentTag->getId]);
|
||||
$self->purgeCache;
|
||||
$newTag->requestCommit;
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 setParent ( newParent )
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ use base 'WebGUI::Asset';
|
|||
use strict;
|
||||
use Tie::IxHash;
|
||||
use WebGUI::International;
|
||||
use WebGUI::Storage::Image;
|
||||
use WebGUI::Utility;
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -40,6 +41,48 @@ sub _appendFuncTemplateVars {
|
|||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 addChild ( )
|
||||
|
||||
You can't add children to a wiki page.
|
||||
|
||||
=cut
|
||||
|
||||
sub addChild {
|
||||
return undef;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 addRevision ( )
|
||||
|
||||
Override the default method in order to deal with attachments.
|
||||
|
||||
=cut
|
||||
|
||||
sub addRevision {
|
||||
my $self = shift;
|
||||
my $newSelf = $self->SUPER::addRevision(@_);
|
||||
if ($self->get("storageId")) {
|
||||
my $newStorage = WebGUI::Storage->get($self->session,$self->get("storageId"))->copy;
|
||||
$newSelf->update({storageId=>$newStorage->getId});
|
||||
}
|
||||
my $now = time();
|
||||
$newSelf->update({
|
||||
isHidden => 1,
|
||||
dateUpdated=>$now,
|
||||
});
|
||||
return $newSelf;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub canAdd {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
$class->SUPER::canAdd($session, undef, '7');
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub canDelete {
|
||||
my $self = shift;
|
||||
|
|
@ -110,6 +153,20 @@ sub duplicate {
|
|||
}
|
||||
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub getStorageLocation {
|
||||
my $self = shift;
|
||||
unless (exists $self->{_storageLocation}) {
|
||||
if ($self->get("storageId") eq "") {
|
||||
$self->{_storageLocation} = WebGUI::Storage::Image->create($self->session);
|
||||
$self->update({storageId=>$self->{_storageLocation}->getId});
|
||||
} else {
|
||||
$self->{_storageLocation} = WebGUI::Storage::Image->get($self->session,$self->get("storageId"));
|
||||
}
|
||||
}
|
||||
return $self->{_storageLocation};
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub getWiki {
|
||||
my $self = shift;
|
||||
|
|
@ -127,19 +184,11 @@ sub indexContent {
|
|||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub purge {
|
||||
sub isProtected {
|
||||
my $self = shift;
|
||||
$self->getWiki->updateTitleIndex([$self], from => 'purge');
|
||||
$self->session->db->write("DELETE FROM WikiPage_protected WHERE assetId = ?", [$self->getId]);
|
||||
$self->session->db->write("DELETE FROM WikiPage_extraHistory WHERE assetId = ?", [$self->getId]);
|
||||
return $self->SUPER::purge;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub purgeRevision {
|
||||
my $self = shift;
|
||||
$self->getWiki->updateTitleIndex([$self], from => 'purgeRevision');
|
||||
return $self->SUPER::purgeRevision;
|
||||
return $self->{_isProtected} if exists $self->{_isProtected};
|
||||
($self->{_isProtected}) = $self->session->db->quickArray("SELECT COUNT(assetId) FROM WikiPage_protected WHERE assetId = ?", [$self->getId]);
|
||||
return $self->{_isProtected};
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -152,6 +201,13 @@ sub preparePageTemplate {
|
|||
return $self->{_pageTemplate};
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub prepareView {
|
||||
my $self = shift;
|
||||
$self->SUPER::prepareView;
|
||||
$self->preparePageTemplate;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub processPageTemplate {
|
||||
my $self = shift;
|
||||
|
|
@ -174,40 +230,60 @@ sub processPageTemplate {
|
|||
return $self->processTemplate($var, undef, $template);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub prepareView {
|
||||
my $self = shift;
|
||||
$self->SUPER::prepareView;
|
||||
$self->preparePageTemplate;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub view {
|
||||
my $self = shift;
|
||||
my $var = {};
|
||||
my $title = $self->get('title');
|
||||
my $content = $self->getWiki->autolinkHtml($self->get('content'));
|
||||
return $self->getWiki->processMasterTemplate($title, $self->processPageTemplate($content, 'view'));
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub isProtected {
|
||||
my $self = shift;
|
||||
return $self->{_isProtected} if exists $self->{_isProtected};
|
||||
($self->{_isProtected}) = $self->session->db->quickArray("SELECT COUNT(assetId) FROM WikiPage_protected WHERE assetId = ?", [$self->getId]);
|
||||
return $self->{_isProtected};
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub processPropertiesFromFormPost {
|
||||
my $self = shift;
|
||||
my $ret = $self->SUPER::processPropertiesFromFormPost(@_);
|
||||
$self->SUPER::processPropertiesFromFormPost(@_);
|
||||
$self->update({ groupIdView => $self->getWiki->get('groupIdView'),
|
||||
groupIdEdit => $self->getWiki->get('groupIdEdit') });
|
||||
$self->getWiki->updateTitleIndex([$self], from => 'edit');
|
||||
return $ret;
|
||||
delete $self->{_storageLocation};
|
||||
my $size = 0;
|
||||
my $storage = $self->getStorageLocation;
|
||||
foreach my $file (@{$storage->getFiles}) {
|
||||
if ($storage->isImage($file)) {
|
||||
##Use generateThumbnail to shrink size to site's max image size
|
||||
##We should look into using the new resize method instead.
|
||||
$storage->generateThumbnail($file, $self->getWiki->get("maxImageSize") || $self->session->setting->get("maxImageSize"));
|
||||
$storage->deleteFile($file);
|
||||
$storage->renameFile('thumb-'.$file,$file);
|
||||
$storage->generateThumbnail($file, $self->getWiki->get("thumbnailSize"));
|
||||
}
|
||||
$size += $storage->getFileSize($file);
|
||||
}
|
||||
$self->setSize($size);
|
||||
# allows us to let the cs post use it's own workflow approval process
|
||||
my $currentTag = WebGUI::VersionTag->getWorking($self->session);
|
||||
if ($currentTag->getAssetCount < 2) {
|
||||
$currentTag->set({workflowId=>$self->getWiki->get("approvalWorkflow")});
|
||||
$currentTag->requestCommit;
|
||||
} else {
|
||||
my $newTag = WebGUI::VersionTag->create($self->session, {
|
||||
name=>$self->getTitle." / ".$self->session->user->username,
|
||||
workflowId=>$self->getWiki->get("approvalWorkflow")
|
||||
});
|
||||
$self->session->db->write("update assetData set tagId=? where assetId=? and tagId=?",[$newTag->getId, $self->getId, $currentTag->getId]);
|
||||
$self->purgeCache;
|
||||
$newTag->requestCommit;
|
||||
}
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub purge {
|
||||
my $self = shift;
|
||||
$self->getWiki->updateTitleIndex([$self], from => 'purge');
|
||||
$self->session->db->write("DELETE FROM WikiPage_protected WHERE assetId = ?", [$self->getId]);
|
||||
$self->session->db->write("DELETE FROM WikiPage_extraHistory WHERE assetId = ?", [$self->getId]);
|
||||
return $self->SUPER::purge;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub purgeRevision {
|
||||
my $self = shift;
|
||||
$self->getWiki->updateTitleIndex([$self], from => 'purgeRevision');
|
||||
return $self->SUPER::purgeRevision;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub updateWikiHistory {
|
||||
my $self = shift;
|
||||
|
|
@ -216,6 +292,13 @@ sub updateWikiHistory {
|
|||
$self->session->db->write("INSERT INTO WikiPage_extraHistory (assetId, userId, dateStamp, actionTaken, url, title) VALUES (?, ?, ?, ?, ?, ?)", [$self->getId, $userId, $self->session->datetime->time, $action, $self->getUrl, $self->get('title')]);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub view {
|
||||
my $self = shift;
|
||||
my $var = {};
|
||||
my $content = $self->getWiki->autolinkHtml($self->get('content'));
|
||||
return $self->processPageTemplate($content, 'view');
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_delete {
|
||||
|
|
@ -235,22 +318,9 @@ sub www_edit {
|
|||
my $var = {};
|
||||
my $newPage = 0;
|
||||
$template->prepare;
|
||||
|
||||
if ($self->session->form->process('func') eq 'add') {
|
||||
# New page.
|
||||
$newPage = 1;
|
||||
$var->{'form.header'} = join '',
|
||||
(WebGUI::Form::formHeader($self->session,
|
||||
{ action => $self->getWiki->getUrl('func=addPageSave') }),
|
||||
WebGUI::Form::hidden($self->session, { name => 'class', value => ref $self }));
|
||||
} else {
|
||||
# Editing a page.
|
||||
$newPage = 0;
|
||||
$var->{'form.header'} = join '',
|
||||
(WebGUI::Form::formHeader($self->session,
|
||||
{ action => $self->getUrl('func=editSave') }));
|
||||
}
|
||||
|
||||
$var->{'form.header'} = WebGUI::Form::formHeader($self->session, { action => $self->getWiki->getUrl })
|
||||
.WebGUI::Form::hidden($self->session, { name => 'func', value => 'editSave' })
|
||||
.WebGUI::Form::hidden($self->session, { name => 'class', value => ref $self });
|
||||
$var->{'form.title'} = WebGUI::Form::text
|
||||
($self->session, { name => 'title', maxlength => 255,
|
||||
size => 40, value => $self->get('title') });
|
||||
|
|
@ -262,55 +332,23 @@ sub www_edit {
|
|||
$var->{'form.footer'} = WebGUI::Form::formFooter($self->session);
|
||||
$self->_appendFuncTemplateVars($var);
|
||||
|
||||
my $title = "Editing ".(defined($self->get('title'))? $self->get('title') : 'new page');
|
||||
$var->{title} = "Editing ".(defined($self->get('title'))? $self->get('title') : 'new page');
|
||||
|
||||
return $self->getWiki->processStyle($self->getWiki->processMasterTemplate($title, $self->processPageTemplate($self->processTemplate($var, undef, $template), 'edit')));
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_editSave {
|
||||
my $self = shift;
|
||||
return $self->session->privilege->insufficient unless $self->canEdit;
|
||||
|
||||
# TODO: refactor: duplication with A::W::Matrix::www_editListingSave
|
||||
my $oldTag = WebGUI::VersionTag->getWorking($self->session, 1);
|
||||
my $newTag = WebGUI::VersionTag->create
|
||||
($self->session, { name => (sprintf "%s edit of %s - %s",
|
||||
$self->getWiki->get('title'), $self->get('title'),
|
||||
$self->session->user->username),
|
||||
workflowId => 'pbworkflow000000000003' });
|
||||
$newTag->setWorking;
|
||||
|
||||
my $newSelf = $self->addRevision;
|
||||
my $error = $newSelf->processPropertiesFromFormPost;
|
||||
if (ref $error eq 'ARRAY') {
|
||||
$self->session->stow->set('editFormErrors', $error);
|
||||
$newTag->rollback;
|
||||
$oldTag->setWorking if defined $oldTag;
|
||||
return $self->www_edit;
|
||||
}
|
||||
|
||||
$newSelf->updateHistory('edited');
|
||||
$newTag->requestCommit;
|
||||
$newTag->clearWorking;
|
||||
$oldTag->setWorking if defined $oldTag;
|
||||
|
||||
return $newSelf->www_view;
|
||||
return $self->getWiki->processStyle( $self->processPageTemplate($self->processTemplate($var, undef, $template), 'edit'));
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_pageHistory {
|
||||
my $self = shift;
|
||||
my $title = sprintf(WebGUI::International->new($self->session, 'Asset_WikiPage')->get('pageHistory title'),
|
||||
$self->get('title'));
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->getWiki->get('pageHistoryTemplateId'));
|
||||
$template->prepare;
|
||||
|
||||
# Buggo: hardcoded count
|
||||
my $var = {};
|
||||
$var->{title} = sprintf(WebGUI::International->new($self->session, 'Asset_WikiPage')->get('pageHistory title'), $self->get('title'));
|
||||
$self->getWiki->_appendPageHistoryVars($var, [0, 50], $self);
|
||||
|
||||
return $self->getWiki->processStyle($self->getWiki->processMasterTemplate($title, $self->processPageTemplate($self->processTemplate($var, undef, $template), 'pageHistory')));
|
||||
return $self->getWiki->processStyle($self->processPageTemplate($self->processTemplate($var, undef, $template), 'pageHistory'));
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -342,13 +342,6 @@ sub definition {
|
|||
hoverHelp => $i18n->get('richEditor hoverHelp'),
|
||||
label => $i18n->get('richEditor label') },
|
||||
|
||||
masterTemplateId => { fieldType => 'template',
|
||||
namespace => 'WikiMaster',
|
||||
defaultValue => 'WikiMasterTmpl00000001',
|
||||
tab => 'display',
|
||||
hoverHelp => $i18n->get('masterTemplateId hoverHelp'),
|
||||
label => $i18n->get('masterTemplateId label') },
|
||||
|
||||
frontPageTemplateId => { fieldType => 'template',
|
||||
namespace => 'WikiMaster_front',
|
||||
defaultValue => 'WikiFrontTmpl000000001',
|
||||
|
|
@ -377,13 +370,6 @@ sub definition {
|
|||
hoverHelp => $i18n->get('recentChangesTemplateId hoverHelp'),
|
||||
label => $i18n->get('recentChangesTemplateId label') },
|
||||
|
||||
pageListTemplateId => { fieldType => 'template',
|
||||
namespace => 'WikiMaster_pageList',
|
||||
defaultValue => 'WikiPLTmpl000000000001',
|
||||
tab => 'display',
|
||||
hoverHelp => $i18n->get('pageListTemplateId hoverHelp'),
|
||||
label => $i18n->get('pageListTemplateId label') },
|
||||
|
||||
searchTemplateId => { fieldType => 'template',
|
||||
namespace => 'WikiMaster_search',
|
||||
defaultValue => 'WikiSearchTmpl00000001',
|
||||
|
|
@ -402,7 +388,29 @@ sub definition {
|
|||
tab => 'display',
|
||||
hoverHelp => $i18n->get('recentChangesCountFront hoverHelp'),
|
||||
label => $i18n->get('recentChangesCountFront label') },
|
||||
);
|
||||
approvalWorkflow =>{
|
||||
fieldType=>"workflow",
|
||||
defaultValue=>"pbworkflow000000000003",
|
||||
type=>'WebGUI::VersionTag',
|
||||
tab=>'security',
|
||||
label=>$i18n->get('approval workflow'),
|
||||
hoverHelp=>$i18n->get('approval workflow description'),
|
||||
},
|
||||
thumbnailSize => {
|
||||
fieldType => "integer",
|
||||
defaultValue => 0,
|
||||
tab => "display",
|
||||
label => $i18n->get("thumbnail size"),
|
||||
hoverHelp => $i18n->get("thumbnail size help")
|
||||
},
|
||||
maxImageSize => {
|
||||
fieldType => "integer",
|
||||
defaultValue => 0,
|
||||
tab => "display",
|
||||
label => $i18n->get("max image size"),
|
||||
hoverHelp => $i18n->get("max image size help")
|
||||
},
|
||||
);
|
||||
|
||||
push @$definition,
|
||||
{
|
||||
|
|
@ -424,38 +432,11 @@ sub getContentLastModified {
|
|||
return $lastModified;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub prepareMasterTemplate {
|
||||
my $self = shift;
|
||||
return $self->{_masterTemplate} if $self->{_masterTemplate};
|
||||
$self->{_masterTemplate} =
|
||||
WebGUI::Asset::Template->new($self->session, $self->get('masterTemplateId'));
|
||||
$self->{_masterTemplate}->prepare;
|
||||
return $self->{_masterTemplate};
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub processMasterTemplate {
|
||||
my $self = shift;
|
||||
my $title = shift;
|
||||
my $content = shift;
|
||||
my $var = {};
|
||||
my $template = $self->prepareMasterTemplate;
|
||||
|
||||
$var->{title} = $title;
|
||||
$var->{content} = $content;
|
||||
$var->{displayTitle} = $self->get('displayTitle');
|
||||
$var->{canEdit} = $self->canEditPages;
|
||||
$self->_appendFuncTemplateVars($var, qw/addPage listPages recentChanges view search/);
|
||||
|
||||
return $self->processTemplate($var, undef, $template);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub prepareView {
|
||||
my $self = shift;
|
||||
$self->SUPER::prepareView;
|
||||
$self->prepareMasterTemplate;
|
||||
$self->{_frontPageTemplate} =
|
||||
WebGUI::Asset::Template->new($self->session, $self->get('frontPageTemplateId'));
|
||||
$self->{_frontPageTemplate}->prepare;
|
||||
|
|
@ -464,19 +445,16 @@ sub prepareView {
|
|||
#-------------------------------------------------------------------
|
||||
sub processPropertiesFromFormPost {
|
||||
my $self = shift;
|
||||
|
||||
my $groupsChanged =
|
||||
(($self->session->form->process('groupIdView') ne $self->get('groupIdView'))
|
||||
or ($self->session->form->process('groupIdEdit') ne $self->get('groupIdEdit')));
|
||||
my $ret = $self->SUPER::processPropertiesFromFormPost(@_);
|
||||
|
||||
if ($groupsChanged) {
|
||||
foreach my $child (@{$self->getLineage(['children'], {returnObjects => 1})}) {
|
||||
$child->update({ groupIdView => $self->get('groupIdView'),
|
||||
groupIdEdit => $self->get('groupIdEdit') });
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
|
@ -494,7 +472,6 @@ sub updateTitleIndex {
|
|||
my %opts = @_;
|
||||
return unless @pages;
|
||||
$self->session->db->write("DELETE FROM WikiMaster_titleIndex WHERE assetId = ? AND pageId IN (".join(', ', ('?') x @pages).")", [$self->getId, map{$_->getId} @pages]);
|
||||
|
||||
foreach my $page (@pages) {
|
||||
my ($pageId, $title) = ($page->getId, $page->get('title'));
|
||||
$self->session->db->write("INSERT INTO WikiMaster_titleIndex (assetId, pageId, title) VALUES (?, ?, ?)", [$self->getId, $pageId, $title]);
|
||||
|
|
@ -506,76 +483,23 @@ sub view {
|
|||
my $self = shift;
|
||||
my $var = {};
|
||||
my $template = $self->{_frontPageTemplate};
|
||||
|
||||
$var->{'description'} = $self->autolinkHtml($self->get('description'));
|
||||
$self->_appendSearchBoxVars($var);
|
||||
$self->_appendRecentChangesVars($var, [0, $self->get('recentChangesCountFront')]);
|
||||
$self->_appendFuncTemplateVars($var, qw/recentChanges/);
|
||||
|
||||
return $self->processMasterTemplate($self->get('title'), $self->processTemplate($var, undef, $template));
|
||||
return $self->processTemplate($var, undef, $template);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_addPageSave {
|
||||
my $self = shift;
|
||||
my $pageClass = $self->session->form->process('class');
|
||||
return $self->session->privilege->insufficient unless
|
||||
$self->canEditPages and UNIVERSAL::isa($pageClass, 'WebGUI::Asset::WikiPage');
|
||||
|
||||
# Refactor: duplication with A::W::Matrix::www_editListingSave
|
||||
my $oldTag = WebGUI::VersionTag->getWorking($self->session, 1);
|
||||
my $newTag = WebGUI::VersionTag->create
|
||||
($self->session, { name => (sprintf "%s create of %s - %s",
|
||||
$self->get('title'), $self->session->form->process('title'),
|
||||
$self->session->user->username),
|
||||
workflowId => 'pbworkflow000000000003' });
|
||||
$newTag->setWorking;
|
||||
|
||||
# Hrm. Duplication with Asset::www_editSave. How to fix that?
|
||||
my $page = $self->addChild({ className => $pageClass });
|
||||
$page->{_parent} = $self;
|
||||
|
||||
my $error = $page->processPropertiesFromFormPost;
|
||||
if (ref $error eq 'ARRAY') {
|
||||
$self->session->stow->set('editFormErrors', $error);
|
||||
$page->purge;
|
||||
return $self->www_add;
|
||||
}
|
||||
|
||||
$page->updateHistory('edited');
|
||||
$newTag->requestCommit;
|
||||
$newTag->clearWorking;
|
||||
$oldTag->setWorking if defined $oldTag;
|
||||
return $page->www_view;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_listPages {
|
||||
my $self = shift;
|
||||
my $i18n = WebGUI::International->new($self->session, 'Asset_WikiMaster');
|
||||
my $title = $i18n->get('listPages title');
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get('pageListTemplateId'));
|
||||
$template->prepare;
|
||||
|
||||
my @pages = sort { lc($a->get('title')) <=> lc($b->get('title')) }
|
||||
@{$self->getLineage(['children'], {returnObjects => 1})};
|
||||
my $var = {};
|
||||
$var->{'pl.entries'} = $self->_templateSubvarsRefOfPages(\@pages);
|
||||
|
||||
return $self->processStyle($self->processMasterTemplate($title, $self->processTemplate($var, undef, $template)));
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
sub www_recentChanges {
|
||||
my $self = shift;
|
||||
my $title = WebGUI::International->new($self->session, 'Asset_WikiMaster')->get('recentChanges title');
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get('recentChangesTemplateId'));
|
||||
$template->prepare;
|
||||
|
||||
my $var = {};
|
||||
$var->{title} = WebGUI::International->new($self->session, 'Asset_WikiMaster')->get('recentChanges title');
|
||||
$self->_appendRecentChangesVars($var, [0, $self->get('recentChangesCount')]);
|
||||
|
||||
return $self->processStyle($self->processMasterTemplate($title, $self->processTemplate($var, undef, $template)));
|
||||
return $self->processStyle($self->processTemplate($var, undef, $template));
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -584,7 +508,6 @@ sub www_search {
|
|||
my $var = {};
|
||||
my $queryString = $self->session->form->process('query', 'text');
|
||||
$self->_appendSearchBoxVars($var, $queryString);
|
||||
|
||||
if (length $queryString) {
|
||||
my $search = WebGUI::Search->new($self->session);
|
||||
$search->search({ keywords => $queryString,
|
||||
|
|
@ -593,12 +516,10 @@ sub www_search {
|
|||
my $rs = $search->getResultSet;
|
||||
$self->_appendSearchResultVars($var, $rs);
|
||||
}
|
||||
|
||||
my $title = WebGUI::International->new($self->session, 'Asset_WikiMaster')->get('search title');
|
||||
$var->{title} = WebGUI::International->new($self->session, 'Asset_WikiMaster')->get('search title');
|
||||
my $template = WebGUI::Asset::Template->new($self->session, $self->get('searchTemplateId'));
|
||||
$template->prepare;
|
||||
|
||||
return $self->processStyle($self->processMasterTemplate($title, $self->processTemplate($var, undef, $template)));
|
||||
return $self->processStyle($self->processTemplate($var, undef, $template));
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,40 @@ our $I18N =
|
|||
'assetName' =>
|
||||
{ lastUpdated => 1160157064, message => 'Wiki' },
|
||||
|
||||
'approval workflow description' => {
|
||||
message => q|Choose a workflow to be executed on each page as it gets submitted.|,
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
'approval workflow' => {
|
||||
message => q|Approval Workflow|,
|
||||
lastUpdated => 0,
|
||||
},
|
||||
|
||||
'max image size' => {
|
||||
message => q|Maximum Image Size|,
|
||||
lastUpdated => 0,
|
||||
context => q|field label for image on display tab|
|
||||
},
|
||||
|
||||
'max image size help' => {
|
||||
message => q|Set the size of the image attachments for this Wiki. If you set it to 0 then the default size set in the master settings will be used. Also, changing this setting does not retroactively change the size of images already in the Wiki. You'll have to re-save each page to get the size to change.|,
|
||||
lastUpdated => 0,
|
||||
context => q|help for display setting label|
|
||||
},
|
||||
|
||||
'thumbnail size' => {
|
||||
message => q|Thumbnail Size|,
|
||||
lastUpdated => 0,
|
||||
context => q|field label for thumbnails on display tab|
|
||||
},
|
||||
|
||||
'thumbnail size help' => {
|
||||
message => q|Set the size of the thumbnails for this Wiki. If you set it to 0 then the default size set in the master settings will be used. Also, changing this setting does not retroactively change the size of thumbnails already in the Wiki. You'll have to re-save each page to get the size to change.|,
|
||||
lastUpdated => 0,
|
||||
context => q|help for display setting label|
|
||||
},
|
||||
|
||||
'groupToEditPages hoverHelp' =>
|
||||
{ lastUpdated => 1160157064, message => q|Choose a group of users who will be able to edit pages in this wiki instance. They will not, by default, be able to delete pages or revisions, or edit protected pages.| },
|
||||
'groupToEditPages label' =>
|
||||
|
|
@ -40,11 +74,6 @@ our $I18N =
|
|||
'pageHistoryTemplateId label' =>
|
||||
{ lastUpdated => 1160505291, message => q|Page History Template| },
|
||||
|
||||
'pageListTemplateId hoverHelp' =>
|
||||
{ lastUpdated => 1160417517, message => q|Which template to use for displaying lists of pages.| },
|
||||
'pageListTemplateId label' =>
|
||||
{ lastUpdated => 1160417517, message => q|Page List Template| },
|
||||
|
||||
'searchTemplateId hoverHelp' =>
|
||||
{ lastUpdated => 1161031607, message => q|Which template to use for search results.| },
|
||||
'searchTemplateId label' =>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue