@@ -, +, @@
labels or templates exist
---
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(-)
--- a/C4/Creators/Layout.pm
+++ a/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__
--- a/C4/Creators/Profile.pm
+++ a/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 = ();
--- a/C4/Creators/Template.pm
+++ a/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 = ();
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude1.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude1.inc
@@ -13,6 +13,25 @@
}
+[% 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" %]
Acquisition onboarding wizard
This onboarding wizard will take you through the process of setting up Acquistions
@@ -57,3 +76,130 @@
+
+[% ELSIF displayonboarding == "label" %]
+
+[% END %]
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude2.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/onboardinginclude2.inc
@@ -13,7 +13,7 @@
}
- [% IF displayonboardscreen == "acquisitions" %]
+ [% IF displayonboarding == "acquisitions" %]
Acquisition onboarding wizard
Create a budget which is the highest level value in acquisitions accountancy.
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 @@
-
- [% ELSIF displayonboardscreen == "label" %]
- testing
- [% END %]
+ [% ELSIF displayonboarding == "label" %]
+
+[% END %]
+
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/acqui-home.tt
@@ -92,6 +92,7 @@ $(document).ready(function() {
$("#show").click(function(){
$("#aqhelp").show();
});
+
});
//]]>
@@ -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() {
Click here to create a vendor.
2. Create your first basket
- 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
+ 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
To create a basket, click the 'New basket' button on the Vendor Information page which is displayed after you create a vendor
3. Create an order
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-home.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-home.tt
@@ -20,7 +20,13 @@
[% INCLUDE 'labels-toolbar.inc' %]
-
+ [% IF !(layoutvalue) %]
+ [% displayonboarding = "label" %]
+ [% INCLUDE 'onboardinginclude1.inc' %]
+ [% ELSIF !(templatevalue) %]
+ [% displayonboarding = "label" %]
+ [% INCLUDE 'onboardinginclude2.inc' %]
+ [% END %]
--- a/labels/label-edit-layout.pl
+++ a/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;
--- a/labels/label-edit-template.pl
+++ a/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();
--- a/labels/label-home.pl
+++ a/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;
--