First semi-usable version of wiki asset. This should probably be improved

somewhat before release; the default page selector doesn't quite work the way
it should, and there aren't icons, and there are a few features missing, and
some code duplication, &c.
This commit is contained in:
Drake 2006-10-13 20:08:56 +00:00
parent d0bacc8988
commit 1674bcfe10
11 changed files with 987 additions and 0 deletions

View file

@ -0,0 +1,16 @@
#WikiMasterTmpl00000001
#create
#namespace:WikiMaster
#url:default-wiki-master
#title:Default Wiki Master
#menuTitle:Default Wiki Master
<tmpl_if session.var.adminOn><p><tmpl_var controls></p></tmpl_if>
<tmpl_if displayTitle><h2><tmpl_var title></h2></tmpl_if>
<tmpl_var content>
<h3>Other actions</h3>
<ul>
<tmpl_if canEdit><li><a href="<tmpl_var addPage.url>"><tmpl_var addPage.text></a></li></tmpl_if>
<li><a href="<tmpl_var listPages.url>"><tmpl_var listPages.text></a></li>
<li><a href="<tmpl_var recentChanges.url>"><tmpl_var recentChanges.text></a></li>
</ul>

View file

@ -0,0 +1,12 @@
#WikiPageEditTmpl000001
#create
#namespace:WikiPage_edit
#url:default-wiki-page-edit
#title:Default Wiki Page Edit
#menuTitle:Default Wiki Page Edit
<tmpl_var form.header>
<p>Title: <tmpl_var form.title><br />
Content:<br /><tmpl_var form.content></p>
<tmpl_var form.submit>
<tmpl_var form.footer>

View file

@ -0,0 +1,15 @@
#WikiPHTmpl000000000001
#create
#namespace:WikiPage_pageHistory
#url:default-wiki-page-history
#title:Default Page History
#menuTitle:Default Page History
<ul><tmpl_loop ph.entries>
<li><tmpl_var actionN> at <tmpl_var date>
(<tmpl_var dateInterval><tmpl_if isCreate>; <a href="<tmpl_var viewUrl>">view</a>,
<a href="<tmpl_var editUrl>">edit</a><!--
--></tmpl_if><tmpl_if isEdit>; <a href="<tmpl_var viewUrl>">view</a>,
<a href="<tmpl_var editUrl>">edit</a></tmpl_if>)
by <tmpl_var username></li>
</tmpl_loop></ul>

View file

@ -0,0 +1,13 @@
#WikiPLTmpl000000000001
#create
#namespace:WikiMaster_pageList
#url:default-wiki-page-list
#title:Default Page List
#menuTitle:Default Page List
<h2><tmpl_var pl.title></h2>
<ul>
<tmpl_loop pl.entries>
<li><a href="<tmpl_var pageUrl>"><tmpl_var pageTitle></a></li>
</tmpl_loop>
</ul>

View file

@ -0,0 +1,25 @@
#WikiPageTmpl0000000001
#create
#namespace:WikiPage
#url:default-wiki-page
#title:Default Wiki Page
#menuTitle:Default Wiki Page
<tmpl_var content>
<tmpl_unless nonexistentPage><h3>This page</h3><ul>
<tmpl_unless inView><li><a href="<tmpl_var view.url>"><tmpl_var view.text></a></li></tmpl_unless>
<tmpl_unless inEdit>
<tmpl_if canEdit><li><a href="<tmpl_var edit.url>"><tmpl_var edit.text></a></li>
<tmpl_else><tmpl_if couldEdit><li>(Protected page)</li></tmpl_if></tmpl_if>
</tmpl_unless>
<tmpl_unless inHistory>
<li><a href="<tmpl_var pageHistory.url>"><tmpl_var pageHistory.text></a></li>
</tmpl_unless>
<tmpl_if canProtect>
<tmpl_if isProtected>
<li><a href="<tmpl_var unprotect.url>"><tmpl_var unprotect.text></a></li>
<tmpl_else>
<li><a href="<tmpl_var protect.url>"><tmpl_var protect.text></a></li>
</tmpl_if>
</tmpl_if>
</ul></tmpl_unless>

View file

@ -0,0 +1,11 @@
#WikiRCTmpl000000000001
#create
#namespace:WikiMaster_recentChanges
#url:default-wiki-recent-changes
#title:Default Recent Changes
#menuTitle:Default Recent Changes
<ul><tmpl_loop rc.entries>
<li><tmpl_var date> <tmpl_var time>: <a href="<tmpl_var viewUrl>"><tmpl_var title></a>
<tmpl_if isEdit>edited</tmpl_if><tmpl_if isDelete>deleted</tmpl_if> by <tmpl_var username></li>
</tmpl_loop></ul>

View file

@ -21,6 +21,7 @@ my $quiet; # this line required
my $session = start(); # this line required
fixSurvey();
addWikiAssets($session);
finish($session); # this line required
@ -31,7 +32,73 @@ sub fixSurvey {
$session->db->write("alter table Survey_questionResponse change response response text");
}
sub addWikiAssets {
my $session = shift;
print "\tAdding wiki assets.\n" unless $quiet;
$session->db->write($_) for(<<'EOT',
CREATE TABLE `WikiMaster` (
`assetId` varchar(22) character set utf8 collate utf8_bin NOT NULL,
`revisionDate` bigint(20) NOT NULL,
`groupToEditPages` varchar(22) character set utf8 collate utf8_bin NOT NULL,
`groupToAdminister` varchar(22) character set utf8 collate utf8_bin NOT NULL,
`richEditor` varchar(22) character set utf8 collate utf8_bin NOT NULL
default 'PBrichedit000000000002',
`defaultPage` varchar(22) character set utf8 collate utf8_bin NULL,
`masterTemplateId` varchar(22) character set utf8 collate utf8_bin NOT NULL
default 'WikiMasterTmpl00000001',
`pageTemplateId` varchar(22) character set utf8 collate utf8_bin NOT NULL
default 'WikiPageTmpl0000000001',
`pageEditTemplateId` varchar(22) character set utf8 collate utf8_bin NOT NULL
default 'WikiPageEditTmpl000001',
`recentChangesTemplateId` varchar(22) character set utf8 collate utf8_bin NOT NULL
default 'WikiRCTmpl000000000001',
`pageHistoryTemplateId` varchar(22) character set utf8 collate utf8_bin NOT NULL
default 'WikiPHTmpl000000000001',
`pageListTemplateId` varchar(22) character set utf8 collate utf8_bin NOT NULL
default 'WikiPLTmpl000000000001',
PRIMARY KEY (`assetId`, `revisionDate`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
EOT
<<'EOT',
CREATE TABLE `WikiPage` (
`assetId` varchar(22) character set utf8 collate utf8_bin NOT NULL,
`revisionDate` bigint(20) NOT NULL,
`content` mediumtext,
`storageId` varchar(22) character set utf8 collate utf8_bin NULL,
`views` bigint(20) NOT NULL default 0,
PRIMARY KEY (`assetId`, `revisionDate`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
EOT
<<'EOT',
CREATE TABLE `WikiMaster_titleIndex` (
`assetId` varchar(22) character set utf8 collate utf8_bin NOT NULL,
`pageId` varchar(22) character set utf8 collate utf8_bin NOT NULL,
`title` varchar(255) NOT NULL,
PRIMARY KEY (`assetId`, `pageId`)
);
EOT
# Don't want protection to be versioned, so put it in a
# separate table.
<<'EOT',
CREATE TABLE `WikiPage_protected` (
`assetId` varchar(22) character set utf8 collate utf8_bin NOT NULL,
PRIMARY KEY (`assetId`)
);
EOT
<<'EOT',
CREATE TABLE `WikiPage_extraHistory` (
`assetId` varchar(22) character set utf8 collate utf8_bin NOT NULL,
`userId` varchar(22) character set utf8 collate utf8_bin NOT NULL,
`dateStamp` bigint(20) NOT NULL,
`actionTaken` varchar(255) NOT NULL default ''
);
EOT
);
my $config = $session->config;
$config->addToArray('assets', 'WebGUI::Asset::Wobject::WikiMaster');
}
# ---- DO NOT EDIT BELOW THIS LINE ----