diff --git a/C4/Patroncards/Profile.pm b/C4/Patroncards/Profile.pm new file mode 100644 index 0000000000..0553288513 --- /dev/null +++ b/C4/Patroncards/Profile.pm @@ -0,0 +1,47 @@ +package C4::Patroncards::Profile; + +use strict; +use warnings; + +use base qw(C4::Creators::Profile); + +use autouse 'Data::Dumper' => qw(Dumper); + +BEGIN { + use version; our $VERSION = qv('1.0.0_1'); +} + +__PACKAGE__ =~ m/^C4::(.+)::.+$/; +my $me = $1; + +sub new { + my $self = shift; + push @_, "creator", $me; + return $self->SUPER::new(@_); +} + +sub save { + my $self = shift; + push @_, "creator", $me; + return $self->SUPER::save(@_); +} + +sub retrieve { + my $self = shift; + push @_, "creator", $me; + return $self->SUPER::retrieve(@_); +} + +sub delete { + if (ref($_[0])) { + my $self = shift; # check to see if this is a method call + push @_, "creator", $me; + return $self->SUPER::delete(@_); + } + else { + push @_, "creator", $me; + return __PACKAGE__->SUPER::delete(@_); # XXX: is this too hackish? + } +} + +1; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/edit-profile.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/edit-profile.tmpl new file mode 100644 index 0000000000..362b58f7fb --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/patroncards/edit-profile.tmpl @@ -0,0 +1,162 @@ + + Koha › Tools › Patroncards + + + + + + + + +
+
+
+
+
+

Edit Printer Profile

+
+
+
Profile settings +
    +
  1. + + Printer name: + " /> + + + +
  2. +
  3. + + Paper bin: + " /> + + + +
  4. +
  5. + + + + Template name: Profile Unassigned + +
  6. +
  7. + + +
  8. +
+
+ +
Offset: +
    +
  1. + " /> +
  2. +
  3. + " /> +
  4. +
+
+ +
Creep: +
    +
  1. + " /> +
  2. +
  3. + " /> +
  4. +
+
+
+ + Cancel + + " /> +
+
+
+
+
+
+
+ +
+
+ diff --git a/patroncards/edit-profile.pl b/patroncards/edit-profile.pl new file mode 100755 index 0000000000..a759531c0a --- /dev/null +++ b/patroncards/edit-profile.pl @@ -0,0 +1,105 @@ +#!/usr/bin/perl +# +# Copyright 2006 Katipo Communications. +# Parts Copyright 2009 Foundations Bible College. +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, +# Suite 330, Boston, MA 02111-1307 USA + +use strict; +use warnings; + +use CGI; + +use C4::Auth qw(get_template_and_user); +use C4::Output qw(output_html_with_http_headers); +use C4::Creators::Lib 1.000000 qw(get_all_templates get_unit_values); +use C4::Patroncards::Profile 1.000000; + +my $cgi = new CGI; +my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { + template_name => "patroncards/edit-profile.tmpl", + query => $cgi, + type => "intranet", + authnotrequired => 0, + flagsrequired => { catalogue => 1 }, + debug => 1, + } +); + +my $op = $cgi->param('op') || ''; +my $profile_id = $cgi->param('profile_id') || $cgi->param('element_id'); +my $profile = undef; +my $template_list = undef; +my @label_template = (); + +my $units = get_unit_values(); + +if ($op eq 'edit') { + $profile = C4::Patroncards::Profile->retrieve(profile_id => $profile_id); + $template_list = get_all_templates(table_name => 'creator_templates', field_list => 'template_id,template_code, profile_id'); +} +elsif ($op eq 'save') { + my @params = ( + printer_name => $cgi->param('printer_name'), + paper_bin => $cgi->param('paper_bin'), + offset_horz => $cgi->param('offset_horz'), + offset_vert => $cgi->param('offset_vert'), + creep_horz => $cgi->param('creep_horz'), + creep_vert => $cgi->param('creep_vert'), + units => $cgi->param('units'), + ); + if ($profile_id) { # if a label_id was passed in, this is an update to an existing layout + $profile = C4::Patroncards::Profile->retrieve(profile_id => $profile_id); + $profile->set_attr(@params); + $profile->save(); + } + else { # if no label_id, this is a new layout so insert it + $profile = C4::Patroncards::Profile->new(@params); + $profile->save(); + } + print $cgi->redirect("manage.pl?card_element=profile"); + exit; +} +else { # if we get here, this is a new layout + $profile = C4::Patroncards::Profile->new(); +} + +if ($profile_id) { + @label_template = grep{($_->{'profile_id'} == $profile->get_attr('profile_id')) && ($_->{'template_id'} == $profile->get_attr('template_id'))} @$template_list; +} + +foreach my $unit (@$units) { + if ($unit->{'type'} eq $profile->get_attr('units')) { + $unit->{'selected'} = 1; + } +} + +$template->param(profile_id => $profile->get_attr('profile_id')) if $profile->get_attr('profile_id') > 0; + +$template->param( + label_template => $label_template[0]->{'template_code'} || '', + printer_name => $profile->get_attr('printer_name'), + paper_bin => $profile->get_attr('paper_bin'), + offset_horz => $profile->get_attr('offset_horz'), + offset_vert => $profile->get_attr('offset_vert'), + creep_horz => $profile->get_attr('creep_horz'), + creep_vert => $profile->get_attr('creep_vert'), + units => $units, + op => $op, +); + +output_html_with_http_headers $cgi, $cookie, $template->output;