fix: DataForm doesn't show a link to view the entries to those users who can view the entries
This commit is contained in:
parent
5520890688
commit
adddef9e93
5 changed files with 61 additions and 37 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 = {};
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
|
|
|
|||
|
|
@ -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', },
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue