From 985417afd37b791914193cf95f5f50bc4543d626 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Thu, 23 Mar 2006 16:56:08 +0000 Subject: [PATCH] a bunch of bug fixes and tweaks related to workflow/versioning --- docs/upgrades/upgrade_6.8.7-6.99.0.pl | 15 +++++++++++++++ lib/Spectre/Workflow.pm | 2 +- lib/WebGUI/AssetBranch.pm | 2 +- lib/WebGUI/AssetVersioning.pm | 2 +- lib/WebGUI/Macro/AdminBar.pm | 5 +++-- lib/WebGUI/Operation/Workflow.pm | 6 +++++- lib/WebGUI/VersionTag.pm | 6 +++--- .../Workflow/Activity/SendQueuedMailMessages.pm | 3 +++ lib/WebGUI/i18n/English/Workflow.pm | 6 ++++++ 9 files changed, 38 insertions(+), 9 deletions(-) diff --git a/docs/upgrades/upgrade_6.8.7-6.99.0.pl b/docs/upgrades/upgrade_6.8.7-6.99.0.pl index 32959a153..d62a1ff0d 100644 --- a/docs/upgrades/upgrade_6.8.7-6.99.0.pl +++ b/docs/upgrades/upgrade_6.8.7-6.99.0.pl @@ -39,9 +39,24 @@ addNavigationMimeType(); addIndexes(); addDatabaseCache(); updateHelpTemplate(); +fixImportNodePrivileges(); finish($session); # this line required +#------------------------------------------------- +sub fixImportNodePrivileges { + print "\tFixing the privileges of all the content in the import node.\n"; + my $importNode = WebGUI::Asset->getImportNode($session); + $importNode->update({groupIdView=>'7', groupIdEdit=>'12'}); + my $prepared = $session->db->prepare("update assetData set groupIdView='7', groupIdEdit='12' where assetId=?"); + my $rs = $session->db->read("select assetId from asset where lineage like ?",[$importNode->get("lineage").'%']); + while (my ($id) = $rs->array) { + $prepared->execute([$id]); + } + my $root = WebGUI::Asset->getRoot($session); + $root->update({groupIdView=>'7'}); +} + #------------------------------------------------- sub convertMessageLogToInbox { print "\tConverting message log to inbox.\n"; diff --git a/lib/Spectre/Workflow.pm b/lib/Spectre/Workflow.pm index 8527d293f..9e00a559d 100644 --- a/lib/Spectre/Workflow.pm +++ b/lib/Spectre/Workflow.pm @@ -374,7 +374,7 @@ sub workerResponse { } elsif ($response->is_redirect) { $self->debug("Response for $instanceId was redirected."); } elsif ($response->is_error) { - $self->debug("Response for $instanceId had a communications error."); + $self->debug("Response for $instanceId had a communications error. ".$response->error_as_HTML); $kernel->yield("suspendInstance",$instanceId) # we should probably log something } diff --git a/lib/WebGUI/AssetBranch.pm b/lib/WebGUI/AssetBranch.pm index 5645b6a0e..8990b1c67 100644 --- a/lib/WebGUI/AssetBranch.pm +++ b/lib/WebGUI/AssetBranch.pm @@ -270,7 +270,7 @@ Verifies proper inputs in the Asset Tree and saves them. Returns ManageAssets me sub www_editBranchSave { my $self = shift; - return $self->session->privilege->insufficient() unless ($self->canEdit && WebGUI::Grouping::isInGroup('4')); + return $self->session->privilege->insufficient() unless ($self->canEdit && $self->session->user->isInGroup('4')); my %data; $data{isHidden} = $self->session->form->yesNo("isHidden") if ($self->session->form->yesNo("change_isHidden")); $data{newWindow} = $self->session->form->yesNo("newWindow") if ($self->session->form->yesNo("change_newWindow")); diff --git a/lib/WebGUI/AssetVersioning.pm b/lib/WebGUI/AssetVersioning.pm index a41fc4e1d..bf37a4538 100644 --- a/lib/WebGUI/AssetVersioning.pm +++ b/lib/WebGUI/AssetVersioning.pm @@ -258,7 +258,7 @@ Shows a list of the revisions for this asset. sub www_manageRevisions { my $self = shift; my $ac = WebGUI::AdminConsole->new($self->session,"versions"); - return $self->session->privilege->insufficient() unless ($self->session->user->isInGroup(3)); + return $self->session->privilege->insufficient() unless ($self->canEdit); my $i18n = WebGUI::International->new($self->session,"Asset"); my $output = ' '; diff --git a/lib/WebGUI/Macro/AdminBar.pm b/lib/WebGUI/Macro/AdminBar.pm index 380717784..09b7dbd21 100644 --- a/lib/WebGUI/Macro/AdminBar.pm +++ b/lib/WebGUI/Macro/AdminBar.pm @@ -106,8 +106,9 @@ sub process { icon=>$session->config->get("extrasURL").'/adminConsole/small/versionTags.gif' }); } - my $rs = $session->db->read("select tagId, name from assetVersionTag where isCommitted=0 and isLocked=0 order by name"); - while (my ($id, $name) = $rs->array) { + my $rs = $session->db->read("select tagId, name, groupToUse from assetVersionTag where isCommitted=0 and isLocked=0 order by name"); + while (my ($id, $name, $group) = $rs->array) { + next unless $session->user->isInGroup($group); push(@tags, { url=>$session->url->page("op=setWorkingVersionTag;backToSite=1;tagId=".$id), title=>($id eq $workingId) ? '* '.$name.'' : $name, diff --git a/lib/WebGUI/Operation/Workflow.pm b/lib/WebGUI/Operation/Workflow.pm index ec190c5f6..e15e7ae49 100644 --- a/lib/WebGUI/Operation/Workflow.pm +++ b/lib/WebGUI/Operation/Workflow.pm @@ -49,7 +49,11 @@ sub www_addWorkflow { ); my %options = (); foreach my $object (keys %{$session->config->get("workflowActivities")}) { - $options{$object} = $object; + if ($object eq "None") { + $options{$object} = $i18n->get("no object"); + } else { + $options{$object} = $object; + } } $f->selectBox( name=>"type", diff --git a/lib/WebGUI/VersionTag.pm b/lib/WebGUI/VersionTag.pm index aed662226..71bbfabae 100644 --- a/lib/WebGUI/VersionTag.pm +++ b/lib/WebGUI/VersionTag.pm @@ -340,11 +340,11 @@ sub set { $self->{_data}{workflowId} = $properties->{workflowId} || $self->{_data}{workflowId} || $self->session->setting->get("defaultVersionTagWorkflow"); $self->{_data}{groupToUse} = $properties->{groupToUse} || $self->{_data}{groupToUse} || "12"; if (exists $properties->{comments}) { - $self->{_data}{comments}=$self->{_data}{comments} - .$self->session->datetime->epochToHuman.' - '.$self->session->user->username + $self->{_data}{comments}=$self->session->datetime->epochToHuman.' - '.$self->session->user->username ."\n" .$properties->{comments} - ."\n\n"; + ."\n\n" + .$self->{_data}{comments}; } $self->session->db->setRow("assetVersionTag","tagId",$self->{_data}); } diff --git a/lib/WebGUI/Workflow/Activity/SendQueuedMailMessages.pm b/lib/WebGUI/Workflow/Activity/SendQueuedMailMessages.pm index e40c0e62e..c81b165d8 100644 --- a/lib/WebGUI/Workflow/Activity/SendQueuedMailMessages.pm +++ b/lib/WebGUI/Workflow/Activity/SendQueuedMailMessages.pm @@ -69,6 +69,7 @@ See WebGUI::Workflow::Activity::execute() for details. sub execute { my $self = shift; + my $start = time(); foreach my $id (@{WebGUI::Mail::Send->getMessageIdsInQueue($self->session)}) { my $message = WebGUI::Mail::Send->retrieve($self->session, $id); if (defined $message) { @@ -77,6 +78,8 @@ sub execute { $message->queue; } } + # just in case there are a lot of messages, we should release after a minutes worth of sending + last if (time() > $start + 60); } return $self->COMPLETE; } diff --git a/lib/WebGUI/i18n/English/Workflow.pm b/lib/WebGUI/i18n/English/Workflow.pm index 875325660..2df55eda8 100644 --- a/lib/WebGUI/i18n/English/Workflow.pm +++ b/lib/WebGUI/i18n/English/Workflow.pm @@ -1,6 +1,12 @@ package WebGUI::i18n::English::Workflow; our $I18N = { + 'no object' => { + message => q|No Object|, + context => q|used when selecting an object type to be passed through a workflow|, + lastUpdated => 0, + }, + 'confirm delete activity' => { message => q|Are you certain you wish to delete this activity from this workflow?|, context => q|prompt the user before deleting an activity from a workflow|,
Revision DateRevised ByTag Name