fix: DataForm doesn't show a link to view the entries to those users who can view the entries

This commit is contained in:
Doug Bell 2007-09-07 20:23:05 +00:00
parent 5520890688
commit adddef9e93
5 changed files with 61 additions and 37 deletions

View file

@ -26,6 +26,7 @@
- Hide encryption settings for edit branch when SSL disabled
- fix: Edit Branch doesn't follow auto commit settings
- fix: Importing a package doesn't follow auto commit settings
- add: DataForm template variable for the group to view entries
7.4.5
- fix: Apostrophy incorrectly escaped as double quote in some places

View file

@ -1898,7 +1898,7 @@ sub processPropertiesFromFormPost {
Returns the content generated from this template. It adds the Asset control
bar to the template variables, as well as all Asset properties and metadata.
=head3 hashRef
=head3 vars
A hash reference containing variables and loops to pass to the template engine.
@ -1917,6 +1917,13 @@ sub processTemplate {
my $var = shift;
my $templateId = shift;
my $template = shift;
# Sanity checks
if (ref $var ne "HASH") {
$self->session->errorHandler->error("First argument to processTemplate() should be a hash reference.");
return "Error: Can't process template for asset ".$self->getId." of type ".$self->get("className");
}
$template = WebGUI::Asset->new($self->session, $templateId,"WebGUI::Asset::Template") unless (defined $template);
if (defined $template) {
my $meta = {};

View file

@ -350,20 +350,9 @@ sub getListTemplateVars {
my $self = shift;
my $var = shift;
my $i18n = WebGUI::International->new($self->session,"Asset_DataForm");
my @fieldLoop;
$var->{"back.url"} = $self->getFormUrl;
$var->{"back.label"} = $i18n->get('go to form');
$var->{"deleteAllEntries.url"} = $self->getUrl("func=deleteAllEntriesConfirm");
$var->{"javascript.confirmation.deleteAll"} = sprintf("return confirm('%s');",$i18n->get('confirm delete all'));
$var->{"deleteAllEntries.label"} = $i18n->get(91);
$var->{"hasEntries"} = $self->hasEntries;
$var->{canEdit} = ($self->canEdit);
$var->{"export.tab.url"} = $self->getUrl('func=exportTab');
$var->{"export.tab.label"} = $i18n->get(84);
$var->{"addField.url"} = $self->getUrl('func=editField');
$var->{"addField.label"} = $i18n->get(76);
$var->{"addTab.label"}= $i18n->get(105);;
$var->{"addTab.url"}= $self->getUrl('func=editTab');
my @fieldLoop;
my $fields = $self->session->db->read("select DataForm_fieldId,name,label,isMailField,type from DataForm_field
where assetId=".$self->session->db->quote($self->getId)." order by sequenceNumber");
while (my $field = $fields->hashRef) {
@ -450,27 +439,9 @@ sub getRecordTemplateVars {
my $self = shift;
my $var = shift;
my $i18n = WebGUI::International->new($self->session,"Asset_DataForm");
$var->{error_loop} = [] unless (exists $var->{error_loop});
$var->{canEdit} = ($self->canEdit);
$var->{"entryList.url"} = $self->getListUrl;
$var->{"entryList.label"} = $i18n->get(86);
$var->{"export.tab.url"} = $self->getUrl('func=exportTab');
$var->{"export.tab.label"} = $i18n->get(84);
$var->{"delete.url"} = $self->getUrl('func=deleteEntry;entryId='.$var->{entryId});
$var->{"delete.label"} = $i18n->get(90);
$var->{"back.url"} = $self->getUrl;
$var->{"back.label"} = $i18n->get(18);
$var->{"addField.url"} = $self->getUrl('func=editField');
$var->{"addField.label"} = $i18n->get(76);
$var->{"deleteAllEntries.url"} = $self->getUrl("func=deleteAllEntriesConfirm");
$var->{"deleteAllEntries.label"} = $i18n->get(91);
$var->{"javascript.confirmation.deleteAll"} = sprintf("return confirm('%s');",$i18n->get('confirm delete all'));
$var->{"javascript.confirmation.deleteOne"} = sprintf("return confirm('%s');",$i18n->get('confirm delete one'));
$var->{"hasEntries"} = $self->hasEntries;
# add Tab label, url, header and init
$var->{"addTab.label"}= $i18n->get(105);;
$var->{"addTab.url"}= $self->getUrl('func=editTab');
$var->{"tab.init"}= $self->_createTabInit($self->getId);
$var->{error_loop} = [] unless (exists $var->{error_loop});
$var->{"form.start"} = WebGUI::Form::formHeader($self->session,{action=>$self->getUrl})
.WebGUI::Form::hidden($self->session,{name=>"func",value=>"process"});
my @tabs;
@ -593,6 +564,42 @@ sub getRecordTemplateVars {
return $var;
}
#----------------------------------------------------------------------------
=head2 getTemplateVars ( )
Gets the default template vars for the asset. Includes the asset properties
as well as shared template vars.
=cut
sub getTemplateVars {
my $self = shift;
my $var = $self->get;
my $i18n = WebGUI::International->new($self->session,"Asset_DataForm");
$var->{canEdit} = ($self->canEdit);
$var->{canViewEntries} = ($self->session->user->isInGroup($self->get("groupToViewEntries")));
$var->{"hasEntries"} = $self->hasEntries;
$var->{"entryList.url"} = $self->getListUrl;
$var->{"entryList.label"} = $i18n->get(86);
$var->{"export.tab.url"} = $self->getUrl('func=exportTab');
$var->{"export.tab.label"} = $i18n->get(84);
$var->{"delete.url"} = $self->getUrl('func=deleteEntry;entryId='.$var->{entryId});
$var->{"delete.label"} = $i18n->get(90);
$var->{"addField.url"} = $self->getUrl('func=editField');
$var->{"addField.label"} = $i18n->get(76);
$var->{"deleteAllEntries.url"} = $self->getUrl("func=deleteAllEntriesConfirm");
$var->{"deleteAllEntries.label"} = $i18n->get(91);
$var->{"javascript.confirmation.deleteAll"} = sprintf("return confirm('%s');",$i18n->get('confirm delete all'));
$var->{"javascript.confirmation.deleteOne"} = sprintf("return confirm('%s');",$i18n->get('confirm delete one'));
$var->{"addTab.label"}= $i18n->get(105);;
$var->{"addTab.url"}= $self->getUrl('func=editTab');
$var->{"tab.init"}= $self->_createTabInit($self->getId);
return $var;
}
#-------------------------------------------------------------------
=head2 hasEntries ( )
@ -795,17 +802,18 @@ sub view {
#-------------------------------------------------------------------
sub viewList {
my $self = shift;
my $self = shift;
my $var = $self->getTemplateVars;
return $self->session->privilege->insufficient() unless ($self->session->user->isInGroup($self->get("groupToViewEntries")));
return $self->processTemplate($self->getListTemplateVars,$self->get("listTemplateId"));
return $self->processTemplate($self->getListTemplateVars($var),$self->get("listTemplateId"));
}
#-------------------------------------------------------------------
sub viewForm {
my $self = shift;
my $passedVars = shift;
my $var;
my $self = shift;
my $passedVars = shift;
my $var = $self->getTemplateVars;
$self->session->style->setLink($self->session->url->extras('tabs/tabs.css'), {"type"=>"text/css"});
$self->session->style->setScript($self->session->url->extras('tabs/tabs.js'), {"type"=>"text/javascript"});
$var->{entryId} = $self->session->form->process("entryId") if ($self->canEdit);
@ -1190,6 +1198,7 @@ sub www_process {
submissionDate=>$self->session->datetime->time()
},0);
my ($var, %row, @errors, $updating, $hadErrors);
$var = $self->getTemplateVars;
$var->{entryId} = $entryId;
my $i18n = WebGUI::International->new($self->session,"Asset_DataForm");
tie %row, "Tie::CPHash";

View file

@ -15,6 +15,7 @@ our $HELP = {
],
variables => [
{ 'name' => 'canEdit' },
{ 'name' => 'canViewEntries' },
{ 'name' => 'entryId' },
{ 'required' => 1,
'name' => 'form.start'
@ -137,6 +138,7 @@ our $HELP = {
{ 'name' => 'deleteAllEntries.label', },
{ 'name' => 'javascript.confirmation.deleteAll', },
{ 'name' => 'canEdit', },
{ 'name' => 'canViewEntries' },
{ 'name' => 'hasEntries', },
{ 'name' => 'export.tab.url', },
{ 'name' => 'export.tab.label', },

View file

@ -933,6 +933,11 @@ below to see which template variables may be used inside this loop.|,
lastUpdated => 1164910794,
},
'canViewEntries' => {
message => 'This template variable is true when the current user is allowed to view the list of submitted DataForm entries.',
lastUpdated => 0,
},
'data form asset template variables title' => {
message => q|DataForm Asset Template Variables|,
lastUpdated => 1164910794,