Finish wiki sub-category API code, with upgrade sub and tests.
This commit is contained in:
parent
984003123c
commit
39b44504c3
3 changed files with 23 additions and 18 deletions
|
|
@ -96,9 +96,13 @@ sub addWikiSubKeywords {
|
|||
# and here's our code
|
||||
$session->db->write(<<EOSQL);
|
||||
CREATE TABLE IF NOT EXISTS WikiMasterKeywords (
|
||||
assetId CHAR(22) binary not null primary key,
|
||||
keyword CHAR(64),
|
||||
subkeyword CHAR(64)
|
||||
assetId CHAR(22) binary not null,
|
||||
keyword CHAR(64) not null,
|
||||
subKeyword CHAR(64),
|
||||
PRIMARY KEY (`assetId`,`keyword`, `subKeyword`),
|
||||
KEY `assetId` (`assetId`),
|
||||
KEY `keyword` (`keyword`),
|
||||
KEY `subKeyword` (`subKeyword`)
|
||||
)
|
||||
EOSQL
|
||||
print "DONE!\n" unless $quiet;
|
||||
|
|
|
|||
|
|
@ -481,7 +481,7 @@ The main keyword to key off of.
|
|||
|
||||
sub deleteSubKeywords {
|
||||
my ( $self, $keyword ) = @_;
|
||||
return $self->session->db->buildArrayRef('delete from WikiMasterKeywords where assetId=? and keyword=?', [$self->getId, $keyword]);
|
||||
return $self->session->db->write('delete from WikiMasterKeywords where assetId=? and keyword=?', [$self->getId, $keyword]);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
@ -545,7 +545,7 @@ sub getKeywordHierarchy {
|
|||
KEYWORD: foreach my $keyword (sort @{ $keywords }) {
|
||||
my $datum = {
|
||||
title => $keyword, ##Note, same as keyword
|
||||
url => $self->getUrl('?func=byKeyword;keyword='.$keyword),
|
||||
url => $self->getUrl('func=byKeyword;keyword='.$keyword),
|
||||
};
|
||||
##Prevent recursion if seen again
|
||||
if (! $seen->{$keyword}++) {
|
||||
|
|
@ -768,11 +768,12 @@ The new set of keywords.
|
|||
sub setSubKeywords {
|
||||
my ( $self, $keyword, @subKeywords ) = @_;
|
||||
$self->deleteSubKeywords($keyword);
|
||||
my $stuffIt = $self->session->db->prepare('insert into WikiMasterKeyword (assetId, keyword, subKeyword) values (?,?,?))');
|
||||
my $stuffIt = $self->session->db->prepare('insert into WikiMasterKeywords (assetId, keyword, subKeyword) values (?,?,?)');
|
||||
KEYWORD: foreach my $subKeyword (@subKeywords) {
|
||||
next unless $keyword;
|
||||
$stuffIt->execute([$self->getId, $keyword, $subKeyword]);
|
||||
}
|
||||
$stuffIt->finish;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ cmp_deeply(
|
|||
$hierarchy->[0],
|
||||
{
|
||||
title => 'criminals',
|
||||
url => '/testwiki/criminals',
|
||||
url => '/testwiki?func=byKeyword;keyword=criminals',
|
||||
},
|
||||
"getKeywordVariables, does not alter the original hierarchy passed in",
|
||||
);
|
||||
|
|
@ -96,19 +96,19 @@ cmp_deeply(
|
|||
[
|
||||
{
|
||||
title => 'criminals',
|
||||
url => '/testwiki/criminals',
|
||||
url => '/testwiki?func=byKeyword;keyword=criminals',
|
||||
level => 0,
|
||||
indent_loop => [],
|
||||
},
|
||||
{
|
||||
title => 'inmates',
|
||||
url => '/testwiki/inmates',
|
||||
url => '/testwiki?func=byKeyword;keyword=inmates',
|
||||
level => 0,
|
||||
indent_loop => [],
|
||||
},
|
||||
{
|
||||
title => 'staff',
|
||||
url => '/testwiki/staff',
|
||||
url => '/testwiki?func=byKeyword;keyword=staff',
|
||||
level => 0,
|
||||
indent_loop => [],
|
||||
},
|
||||
|
|
@ -133,9 +133,9 @@ cmp_deeply(
|
|||
);
|
||||
|
||||
$wiki->update({topLevelKeywords => 'criminals,inmates,staff'});
|
||||
$page_set{criminals}->update({keywords => 'red,andy'});
|
||||
$page_set{inmates}->update({keywords => 'brooks,heywood'});
|
||||
$page_set{staff}->update({keywords => 'norton,hadley'});
|
||||
$wiki->setSubKeywords('criminals', 'red', 'andy');
|
||||
$wiki->setSubKeywords('inmates', 'brooks', 'heywood');
|
||||
$wiki->setSubKeywords('staff', 'norton', 'hadley');
|
||||
|
||||
foreach my $title (qw/red andy brooks heywood norton hadley/) {
|
||||
$page_set{$title} = $wiki->addChild({
|
||||
|
|
@ -152,21 +152,21 @@ cmp_bag(
|
|||
$wiki->getKeywordHierarchy(),
|
||||
[
|
||||
{
|
||||
title => 'criminals', url => '/testwiki/criminals',
|
||||
title => 'criminals', url => '/testwiki?func=byKeyword;keyword=criminals',
|
||||
children => bag(
|
||||
superhashof({ title => 'red', }),
|
||||
superhashof({ title => 'andy', }),
|
||||
),
|
||||
},
|
||||
{
|
||||
title => 'inmates', url => '/testwiki/inmates',
|
||||
title => 'inmates', url => '/testwiki?func=byKeyword;keyword=inmates',
|
||||
children => bag(
|
||||
superhashof({ title => 'heywood', }),
|
||||
superhashof({ title => 'brooks', }),
|
||||
),
|
||||
},
|
||||
{
|
||||
title => 'staff', url => '/testwiki/staff',
|
||||
title => 'staff', url => '/testwiki?func=byKeyword;keyword=staff',
|
||||
children => bag(
|
||||
superhashof({ title => 'norton', }),
|
||||
superhashof({ title => 'hadley', }),
|
||||
|
|
@ -177,8 +177,8 @@ cmp_bag(
|
|||
);
|
||||
|
||||
##Check depth-first display, and try to make a keyword loop
|
||||
$page_set{andy}->update({keywords => 'criminals,inmates'});
|
||||
$page_set{brooks}->update({keywords => 'criminals'});
|
||||
$wiki->setSubKeywords('andy', 'criminals', 'inmates');
|
||||
$wiki->setSubKeywords('brooks', 'criminals');
|
||||
|
||||
my $tag_set3 = WebGUI::VersionTag->getWorking($session);
|
||||
$tag_set3->commit;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue