Bugzilla – Attachment 64766 Details for
Bug 18060
Add onboarding functionality to guide users through setting up labels for the first time
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 18060 - Label onboarding tool to be displayed when no labels or templates exist
Bug-18060---Label-onboarding-tool-to-be-displayed-.patch (text/plain), 26.69 KB, created by
Alex Buckley
on 2017-07-02 10:29:25 UTC
(
hide
)
Description:
Bug 18060 - Label onboarding tool to be displayed when no labels or templates exist
Filename:
MIME Type:
Creator:
Alex Buckley
Created:
2017-07-02 10:29:25 UTC
Size:
26.69 KB
patch
obsolete
>From cb6a74d3415e5e16c7e3155d752c714b4daaeb80 Mon Sep 17 00:00:00 2001 >From: Alex Buckley <alexbuckley@catalyst.net.nz> >Date: Sun, 29 Jan 2017 11:33:35 +0000 >Subject: [PATCH] Bug 18060 - Label onboarding tool to be displayed when no > labels or templates exist > >Updated to apply cleanly with bug 18002 > >Please follow the test plan on comment 8 >--- > C4/Creators/Layout.pm | 13 ++ > C4/Creators/Profile.pm | 11 ++ > C4/Creators/Template.pm | 11 ++ > .../prog/en/includes/onboardinginclude1.inc | 146 +++++++++++++++++++++ > .../prog/en/includes/onboardinginclude2.inc | 115 +++++++++++++++- > .../prog/en/modules/acqui/acqui-home.tt | 5 +- > .../prog/en/modules/labels/label-home.tt | 8 +- > labels/label-edit-layout.pl | 31 +++-- > labels/label-edit-template.pl | 11 +- > labels/label-home.pl | 70 ++++++++++ > 10 files changed, 402 insertions(+), 19 deletions(-) > >diff --git a/C4/Creators/Layout.pm b/C4/Creators/Layout.pm >index f1dc20e..e806499 100644 >--- a/C4/Creators/Layout.pm >+++ b/C4/Creators/Layout.pm >@@ -8,6 +8,7 @@ use autouse 'Data::Dumper' => qw(Dumper); > use C4::Context; > use C4::Debug; > use C4::Creators::PDF; >+use C4::Creators; > > > # FIXME: Consider this style parameter verification instead... >@@ -111,6 +112,17 @@ sub retrieve { > return $self; > } > >+sub retrieve_all { >+ my $dbh = C4::Context->dbh; >+ my $sth = $dbh->prepare("select count(*) from creator_layouts where creator = 'Labels' group by creator"); >+ my $layout = $sth->execute(); >+ if ($layout == '0E0'){ >+ return 0; >+ } else { >+ return $layout; >+ } >+} >+ > sub delete { > my $self = {}; > my %opts = (); >@@ -234,6 +246,7 @@ sub get_text_wrap_cols { > return $col_count; > } > >+ > 1; > __END__ > >diff --git a/C4/Creators/Profile.pm b/C4/Creators/Profile.pm >index 37512fa..ba82145 100644 >--- a/C4/Creators/Profile.pm >+++ b/C4/Creators/Profile.pm >@@ -90,6 +90,17 @@ sub retrieve { > return $self; > } > >+sub retrieve_all { >+ my $dbh = C4::Context->dbh; >+ my $sth = $dbh->prepare("select count(*) from printers_profile where creator = 'Labels' group by creator"); >+ my $profile = $sth->execute(); >+ if ($profile == '0E0'){ >+ return 0; >+ } else { >+ return $profile; >+ } >+} >+ > sub delete { > my $self = {}; > my %opts = (); >diff --git a/C4/Creators/Template.pm b/C4/Creators/Template.pm >index ee504d7..87240b9 100644 >--- a/C4/Creators/Template.pm >+++ b/C4/Creators/Template.pm >@@ -131,6 +131,17 @@ sub retrieve { > return $self; > } > >+sub retrieve_all { >+ my $dbh = C4::Context->dbh; >+ my $sth = $dbh->prepare("select count(*) FROM creator_templates ct where creator = 'Labels' group by creator"); >+ my $templatecount = $sth->execute(); >+ if ($templatecount == '0E0'){ >+ return 0; >+ } else { >+ return $templatecount; >+ } >+} >+ > sub delete { > my $self = {}; > my %opts = (); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude1.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude1.inc >index 15f123b..adf2bd9 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude1.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude1.inc >@@ -13,6 +13,25 @@ > } > </style> > >+[% BLOCK translate_justification_types %] >+ [% SWITCH type %] >+ [% CASE 'L' %]Left >+ [% CASE 'C' %]Center >+ [% CASE 'R' %]Right >+ [% END %] >+[% END %] >+ >+[% BLOCK translate_label_types %] >+ [% SWITCH type %] >+ [% CASE 'BIB' %]Biblio >+ [% CASE 'BARBIB' %]Barcode/Biblio >+ [% CASE 'BIBBAR' %]Biblio/Barcode >+ [% CASE 'ALT' %]Alternating >+ [% CASE 'BAR' %]Barcode >+ [% END %] >+[% END %] >+ >+[% IF displayonboarding =="acquisitions" %] > <div id="onboardingModal"> > <h2> Acquisition onboarding wizard</h2> > <h3> This onboarding wizard will take you through the process of setting up Acquistions </h3> >@@ -57,3 +76,130 @@ > </fieldset> > </form> > </div> >+ >+[% ELSIF displayonboarding == "label" %] >+<div id="onboardingModal"> >+ <form name="input" action="/cgi-bin/koha/labels/label-edit-layout.pl" method="get"> >+ <fieldset class="rows"> >+ <legend>[% IF ( layout_id ) %]Edit[% ELSE %]Create[% END %] label layout</legend> >+ <ol> >+ <li> >+ <label for="layout_name">Layout name: </label> >+ <input type="text" name="layout_name" id="layout_name" size="20" value="DEFAULT" /> >+ </li> >+ <li> >+ <label for="barcode_type">Choose barcode type (encoding): </label> >+ <select name="barcode_type" id="barcode_type"> >+ [% FOREACH barcode_type IN barcode_types %] >+ [% IF ( barcode_type.selected ) %] >+ <option value="[% barcode_type.type %]" selected="selected">[% barcode_type.name %]</option> >+ [% ELSE %] >+ <option value="[% barcode_type. type %]">[% barcode_type.name %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ <li> >+ <label for="printing_type">Choose layout type: </label> >+ <select name="printing_type" id="printing_type"> >+ [% FOREACH label_type IN label_types %] >+ [% IF ( label_type.selected ) %] >+ <option value="[% label_type.type %]" selected="selected">[% PROCESS translate_label_types type=label_type.type %]</option> >+ [% ELSE %] >+ <option value="[% label_type.type %]">[% PROCESS translate_label_types type=label_type.type %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ <li> >+ <fieldset> >+ <legend>Bibliographic data to print</legend> >+ <ol> >+ <li class="radio">[% IF ( layout_string ) %] >+ <input type="radio" name="layout_choice" id="layout_choice_order" value="layout_table" checked="checked" /><label for="layout_choice_order">Choose order of text fields to print</label> >+ [% ELSE %] >+ <input type="radio" name="layout_choice" id="layout_choice_order" value="layout_table" /><label for="layout_choice_order">Choose Order Of Text Fields to Print</label> >+ [% END %] >+ <div id="layout_table"> >+ <p> >+ [% FOREACH text_field IN fields %] >+ <select name="[% text_field.field_name %]" id="[% text_field.field_name |url %]"> >+ <option value=""></option> >+ [% FOREACH orde IN [1..field_count] %] >+ [% IF ( orde == text_field.order ) %] >+ <option value="[% orde %]" selected="1">[% orde %]</option> >+ [% ELSE %] >+ <option value="[% orde %]">[% orde %]</option> >+ [% END %] >+ [% END %] >+ </select> <label for="[% text_field.field_name |url %]">[% text_field.field_label %]</label> >+ >+ [% END %] >+ </p> >+ </div> >+ </fieldset> >+ </li> >+ <li> >+ <label for="guidebox">Draw guide boxes: </label> >+ [% IF ( guidebox ) %] >+ <input type="checkbox" name="guidebox" id="guidebox" value="1" checked="checked" /> >+ [% ELSE %] >+ <input type="checkbox" name="guidebox" id="guidebox" value="1" /> >+ [% END %] >+ </li> >+ <li> >+ <label for="callnum_split">Split call numbers: </label> >+ [% IF ( callnum_split ) %] >+ <input type="checkbox" name="callnum_split" id="callnum_split" value="1" checked="checked" /> >+ [% ELSE %] >+ <input type="checkbox" name="callnum_split" id="callnum_split" value="1" /> >+ [% END %] >+ </li> >+ <li> >+ <label for="text_justify">Text justification: </label> >+ <select name="text_justify" id="text_justify"> >+ [% FOREACH text_justification_type IN text_justification_types %] >+ [% IF ( text_justification_type.selected ) %] >+ <option value="[% text_justification_type.type %]" selected="selected">[% PROCESS translate_justification_types type=text_justification_type.type %]</option> >+ [% ELSE %] >+ <option value="[% text_justification_type.type %]">[% PROCESS translate_justification_types type=text_justification_type.type %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ <li> >+ <label for="font">Font: </label> >+ <select name="font" id="font"> >+ [% FOREACH font_type IN font_types %] >+ [% IF ( font_type.selected ) %] >+ <option value="[% font_type.type %]" selected="selected">[% font_type.name %]</option> >+ [% ELSE %] >+ <option value="[% font_type.type %]">[% font_type.name %]</option> >+ [% END %] >+ [% END %] >+ </select> >+ </li> >+ <li> >+ <label for="font_size">Font size: </label> >+ <input type="text" name="font_size" id="font_size" size="2" value="3" /> >+ </li> >+ <li> >+ <label for="oblique_title">Oblique title: </label> >+ [% IF ( oblique_title ) %] >+ <input type="checkbox" name="oblique_title" id="oblique_title" value="1" checked="checked" /> >+ [% ELSE %] >+ <input type="checkbox" name="oblique_title" id="oblique_title" value="1" /> >+ [% END %] >+ </li> >+ </ol> >+ </fielset> >+ <fieldset class="action"> >+ <input type="submit" value="Save" /> >+ <a class="cancel" href="/cgi-bin/koha/labels/label-manage.pl?label_element=layout">Cancel</a> >+ <input type="hidden" name="op" value="save" /> >+ <input type="hidden" name="layout_id" value="[% layout_id %]" /> >+ <input type="hidden" name="layoutsubmitted" value=1 /> >+ </fieldset> >+ </form> >+</div> >+[% END %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude2.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude2.inc >index b88fab9..bd16f24 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude2.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude2.inc >@@ -13,7 +13,7 @@ > } > </style> > <div id="onboardingModal"> >- [% IF displayonboardscreen == "acquisitions" %] >+ [% IF displayonboarding == "acquisitions" %] > <h2> Acquisition onboarding wizard</h2> > <p> Create a budget which is the highest level value in acquisitions accountancy. <br> > After creating this budget you will be prompted to create a fund which is what you will use to set up orders. >@@ -57,7 +57,112 @@ > </a> > </fieldset> > </form> >- </div> >- [% ELSIF displayonboardscreen == "label" %] >- <h2>testing</h2> >- [% END %] >+ [% ELSIF displayonboarding == "label" %] >+ <form name="input" action="/cgi-bin/koha/labels/label-edit-template.pl" method="get"> >+ <fieldset class="rows"> >+ <ol> >+ <li> >+ <span class="label">Template ID:</span>[% IF ( template_id ) %][% template_id %][% ELSE %]N/A[% END %] >+ </li> >+ <li> >+ <label for="template_code">Template code:</label> >+ <input type="text" size="30" maxlength="43" name="template_code" id="template_code" value="DEFAULT TEMPLATE"/> >+ </li> >+ <li> >+ <label for="template_desc">Template description:</label> >+ <textarea cols="30" rows="3" id="template_desc" name="template_desc">Default description</textarea> >+ </li> >+ <li> >+ <label for="units">Units:</label> >+ <select id="units" name="units"> >+ [% FOREACH unit IN units %] >+ [% IF ( unit.selected ) %] >+ <option value="[% unit.type %]" selected="selected"> >+ [% ELSE %] >+ <option value="[% unit.type %]"> >+ [% END %] >+ [% unit.desc %] >+ </option> >+ [% END %] >+ </select> >+ </li> >+ <li> >+ <label for="page_height">Page height:</label> >+ <input type="text" size="4" name="page_height" id="page_height" value="[% page_height %]" /> >+ </li> >+ <li> >+ <label for="page_width">Page width:</label> >+ <input type="text" size="4" name="page_width" id="page_width" value="[% page_width %]" /> >+ </li> >+ <li> >+ <label for="label_width">Label width:</label> >+ <input type="text" size="4" name="label_width" id="label_width" value="[% label_width %]" /> >+ </li> >+ <li> >+ <label for="label_height">Label height:</label> >+ <input type="text" size="4" name="label_height" id="label_height" value="[% label_height %]" /> >+ </li> >+ </ol> >+ </fieldset> >+ <fieldset class="rows"> >+ <ol><li> >+ <label for="top_margin">Top page margin:</label> >+ <input type="text" size="4" name="top_margin" id="top_margin" value="[% top_margin %]" /> >+ </li> >+ <li> >+ <label for="left_margin">Left page margin:</label> >+ <input type="text" size="4" name="left_margin" id="left_margin" value="[% left_margin %]" /> >+ </li> >+ <li> >+ <label for="top_text_margin">Top text margin:</label> >+ <input type="text" size="4" name="top_text_margin" id="top_text_margin" value="[% top_text_margin %]" /> >+ </li> >+ <li> >+ <label for="left_text_margin">Left text margin:</label> >+ <input type="text" size="4" name="left_text_margin" id="left_text_margin" value="[% left_text_margin %]" /> >+ </li> >+ <li> >+ <label for="cols">Number of columns:</label> >+ <input type="text" size="4" name="cols" id="cols" value="[% cols %]" /> >+ </li> >+ <li> >+ <label for="rows">Number of rows:</label> >+ <input type="text" size="4" name="rows" id="rows" value="[% rows %]" /> >+ </li> >+ <li> >+ <label for="col_gap">Gap between columns:</label> >+ <input type="text" size="4" name="col_gap" id="col_gap" value="[% col_gap %]" /> >+ </li> >+ <li> >+ <label for="row_gap">Gap between rows:</label> >+ <input type="text" size="4" name="row_gap" id="row_gap" value="[% row_gap %]" /> >+ </li> >+ >+ <li> >+ <label for="profile_id">Profile:</label> >+ [% IF ( profile_list ) %] >+ <select id="profile_id" name="profile_id"> >+ [% FOREACH profile_lis IN profile_list %] >+ [% IF ( profile_lis.selected ) %] >+ <option value="[% profile_lis.profile_id %]" selected="selected"> >+ [% ELSE %] >+ <option value="[% profile_lis.profile_id %]"> >+ [% END %] >+ [% profile_lis.printer_name %]/[% profile_lis.paper_bin %] >+ </option> >+ [% END %] >+ </select> >+ [% ELSE %] >+ <a href="/cgi-bin/koha/labels/label-edit-profile.pl?op=new">Click here to define a printer profile.</a> >+ [% END %] >+ </li> >+ </ol> >+ <input type="submit" class="submit" value="Save" /><a class="cancel" href="/cgi-bin/koha/labels/label-manage.pl?label_element=template">Cancel</a> >+ <input type="hidden" name="op" value="save" /> >+ [% IF ( template_id ) %] >+ <input type="hidden" name="template_id" value="[% template_id %]" /> >+ [% END %] >+ </fieldset> >+</form> >+[% END %] >+</div> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tt >index 90897b7..bc8b9f5 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tt >@@ -92,6 +92,7 @@ $(document).ready(function() { > $("#show").click(function(){ > $("#aqhelp").show(); > }); >+ > }); > //]]> > </script> >@@ -112,7 +113,7 @@ $(document).ready(function() { > [% INCLUDE 'acquisitions-toolbar.inc' %] > [% UNLESS ( loop_budget ) %] > [% IF ( CAN_user_acquisition_period_manage ) %] >- [% displayonboardscreen = "acquisitions" %] >+ [% displayonboarding = "acquisitions" %] > [% IF step == 1 %] > [% INCLUDE onboardinginclude1.inc %] > [% ELSIF step == 2 %] >@@ -265,7 +266,7 @@ $(document).ready(function() { > <b>Click <a href="/cgi-bin/koha/acqui/supplier.pl?op=enter">here</a> to create a vendor.</b> > <br><br> > <h2> 2. Create your first basket</h2> >- <p> A basket is the conceptual container that holds orders. Each basket is assigned to a single vendor so you can perform multiple separate orders from a single vendor simultaneously. Because of its reliance on vendor the basket must be created after the vendor</p> >+ <p> A basket is the conceptual container that holds orders. Each basket is assigned to a single vendor so you can perform multiple seperate orders from a single vendor simultaneously. Because of its reliance on vendor the basket must be created after the vendor</p> > <b> To create a basket, click the 'New basket' button on the Vendor Information page which is displayed after you create a vendor</b> > <br><br> > <h2> 3. Create an order</h2> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-home.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-home.tt >index f5e7725..c20ccce 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-home.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-home.tt >@@ -20,7 +20,13 @@ > <div class="yui-g"> > [% INCLUDE 'labels-toolbar.inc' %] > <div class="yui-u first"> >- >+ [% IF !(layoutvalue) %] >+ [% displayonboarding = "label" %] >+ [% INCLUDE 'onboardinginclude1.inc' %] >+ [% ELSIF !(templatevalue) %] >+ [% displayonboarding = "label" %] >+ [% INCLUDE 'onboardinginclude2.inc' %] >+ [% END %] > </div> > </div> > </div> >diff --git a/labels/label-edit-layout.pl b/labels/label-edit-layout.pl >index c1aafd4..8ee664c 100755 >--- a/labels/label-edit-layout.pl >+++ b/labels/label-edit-layout.pl >@@ -123,20 +123,32 @@ elsif ($op eq 'save') { > $layout = C4::Labels::Layout->new(@params); > $layout_id = $layout->save(); > } >- print $cgi->redirect("label-manage.pl?label_element=layout" . ($layout_id == -1 ? "&element_id=$layout_id&op=$op&error=1" : '')); >- exit; >+ >+ my $layoutvalue = C4::Creators::Layout->retrieve_all(); >+ my $templatecount = C4::Creators::Template->retrieve_all(); >+ $template->param( layoutvalue => $layoutvalue, >+ templatevalue => $templatecount, >+ ); >+ >+ if ($templatecount == 0) { >+ print $cgi->redirect("/cgi-bin/koha/labels/label-home.pl"); >+ exit; >+ } else { >+ print $cgi->redirect("label-manage.pl?label_element=layout" . ($layout_id == -1 ? "&element_id=$layout_id&op=$op&error=1" : '')); >+ exit; >+ } > } > else { # if we get here, this is a new layout > $layout = C4::Labels::Layout->new(); > } > >-my $barcode_types = _set_selected(get_barcode_types(), $layout, 'barcode_type'); >-my $label_types = _set_selected(get_label_types(), $layout, 'printing_type'); >-my $font_types = _set_selected(get_font_types(), $layout, 'font'); >-my $text_justification_types = _set_selected(get_text_justification_types(), $layout, 'text_justify'); >-my ($select_text_fields, $select_text_fields_cnt) = _select_format_string($layout->get_attr('format_string')); >+ my $barcode_types = _set_selected(get_barcode_types(), $layout, 'barcode_type'); >+ my $label_types = _set_selected(get_label_types(), $layout, 'printing_type'); >+ my $font_types = _set_selected(get_font_types(), $layout, 'font'); >+ my $text_justification_types = _set_selected(get_text_justification_types(), $layout, 'text_justify'); >+ my ($select_text_fields, $select_text_fields_cnt) = _select_format_string($layout->get_attr('format_string')); > >-$template->param( >+ $template->param( > barcode_types => $barcode_types, > label_types => $label_types, > font_types => $font_types, >@@ -151,5 +163,6 @@ $template->param( > callnum_split => $layout->get_attr('callnum_split'), > format_string => $layout->get_attr('format_string'), > layout_string => 1, # FIXME: This should not be hard-coded; It should perhaps be yet another syspref... CN >-); >+ ); >+ > output_html_with_http_headers $cgi, $cookie, $template->output; >diff --git a/labels/label-edit-template.pl b/labels/label-edit-template.pl >index bcee714..d7d891b 100755 >--- a/labels/label-edit-template.pl >+++ b/labels/label-edit-template.pl >@@ -111,8 +111,15 @@ elsif ($op eq 'save') { > $profile->save(); > } > } >- print $cgi->redirect("label-manage.pl?label_element=template"); >- exit; >+ >+ my $profilevalue = C4::Creators::Profile->retrieve_all(); >+ if ($profilevalue == 0) { >+ print $cgi->redirect("label-edit-profile.pl"); >+ exit; >+ }else{ >+ print $cgi->redirect("/cgi-bin/koha/labels/label-home.pl"); >+ exit; >+ } > } > else { # if we get here, this is a new layout > $label_template = C4::Labels::Template->new(); >diff --git a/labels/label-home.pl b/labels/label-home.pl >index ca581ac..4c5645b 100755 >--- a/labels/label-home.pl >+++ b/labels/label-home.pl >@@ -22,9 +22,14 @@ use strict; > use warnings; > > use CGI qw ( -utf8 ); >+use POSIX; > > use C4::Auth qw(get_template_and_user); > use C4::Output qw(output_html_with_http_headers); >+use C4::Creators::Layout; >+use C4::Creators::Template; >+use C4::Creators; >+use C4::Labels; > > my $cgi = new CGI; > my ( $template, $loggedinuser, $cookie ) = get_template_and_user( >@@ -38,4 +43,69 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( > } > ); > >+my $op = $cgi->param('op') || ''; >+my $layout_id = $cgi->param('layout_id') || $cgi->param('element_id') || ''; >+my $layout_choice = $cgi->param('layout_choice') || ''; >+my $layout = C4::Labels::Layout->new(); >+ >+sub _set_selected { >+ my ($type_list, $object, $data_type) = @_; >+ SET_SELECTED: >+ foreach my $type (@$type_list) { >+ if ($layout->get_attr($data_type)) { >+ if ($type->{'type'} eq $layout->get_attr($data_type)) { >+ $type->{'selected'} = 1; >+ } >+ } >+ else { >+ $type->{'selected'} = 1; >+ last SET_SELECTED; >+ } >+}; >+return $type_list; >+} >+ >+sub _select_format_string { # generate field table based on format_string >+ my $format_string = shift; >+ >+ my @text_fields = grep /\w/, split /\s*,\s/, $format_string; >+ my %tf = map {$_ => 1} @text_fields; >+ my @missing_fields = grep { !$tf{$_} } @{ C4::Labels::Layout->PRESET_FIELDS }; >+ my $field_count = scalar(@text_fields) + scalar( @missing_fields); >+ >+ my @fields; >+ my $field_index = 1; >+ foreach my $f (@text_fields) { >+ push @fields, {field_name => ($f . "_tbl"), field_label => $f, order => $field_index}; >+ $field_index++; >+ } >+ foreach my $f (@missing_fields) { >+ push @fields, {field_name => ($f . "_tbl"), field_label => $f}; >+ } >+ return (\@fields, $field_count); >+} >+ >+my $barcode_types = _set_selected(get_barcode_types(), $layout, 'barcode_type'); >+my $label_types = _set_selected(get_label_types(), $layout, 'printing_type'); >+my $font_types = _set_selected(get_font_types(), $layout, 'font'); >+my $text_justification_types = _set_selected(get_text_justification_types(), $layout, 'text_justify'); >+my ($select_text_fields, $select_text_fields_cnt) = _select_format_string($layout->get_attr('format_string')); >+my $units = get_unit_values(); >+ >+$template->param( >+ barcode_types => $barcode_types, >+ label_types => $label_types, >+ font_types => $font_types, >+ text_justification_types => $text_justification_types, >+ fields => $select_text_fields, >+ field_count => $select_text_fields_cnt, >+ units => $units, >+); >+ >+my $layoutvalue = C4::Creators::Layout->retrieve_all(); >+my $templatevalue = C4::Creators::Template->retrieve_all(); >+$template->param( layoutvalue => $layoutvalue, >+ templatevalue => $templatevalue, >+); >+ > output_html_with_http_headers $cgi, $cookie, $template->output; >-- >2.1.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 18060
:
63224
|
63225
|
63228
|
63229
|
63587
|
63588
|
63589
|
64733
| 64766 |
64951
|
67663