Bugzilla – Attachment 58665 Details for
Bug 17855
New onboarding tool feature to guide users through setting up Koha, and minor web installer UI improvements
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 17855 - The 'All' dropdown box option is working for patron categories, item types, and libraries for the create circulation rule screen of the onboarding tool.
Bug-17855---The-All-dropdown-box-option-is-working.patch (text/plain), 28.08 KB, created by
Alex Buckley
on 2017-01-08 23:29:53 UTC
(
hide
)
Description:
Bug 17855 - The 'All' dropdown box option is working for patron categories, item types, and libraries for the create circulation rule screen of the onboarding tool.
Filename:
MIME Type:
Creator:
Alex Buckley
Created:
2017-01-08 23:29:53 UTC
Size:
28.08 KB
patch
obsolete
>From 4846a773787f7ddd328f109c419ce4bb78d51492 Mon Sep 17 00:00:00 2001 >From: Alex Buckley <alexbuckley@catalyst.net.nz> >Date: Wed, 21 Dec 2016 04:09:35 +0000 >Subject: [PATCH] Bug 17855 - The 'All' dropdown box option is working for > patron categories, item types, and libraries for the create circulation rule > screen of the onboarding tool. > >Test plan: >1. Go through the web installer and the onboarding tool (up to the >point of creating a circulation rule in the onboarding tool) as >outlined here: >https://koha-community.org/manual/installation/html/ > >2. When creating a circulation rule using the onboarding tool >apply it to all patron categories, libraries and item types by >leaving the default 'All' option in the respective dropdown boxes >selected. > >3.Having finished the onboarding tool log into the staff >interface and go to Checkouts > >4. Check out 2 items (of differing item types, e.g. book and cd) >to 2 different patrons (these patrons need to be of different patron types to >test the circulation rule properly), in two two different libraries > >5. Notice that the due date for all the checkouts is the same. This >is because the 'All' dropdown option >is successfully applying the circulation rule to all >libraries, item types, and patron categories as intended. > >Bug 17855 - 'All' option is working to select for >a circulation rule to apply to all patron categories. >Tested where there were two circulation rules; >'All, Books' as 5 days and 'All, Computer Files' as 2 days. >Checked out each to 5 different types of borrowers, >due date reflects the specified loan period. > >Test plan: >1. Go through the web installer and the onboarding tool (up to the point of >creating a circulation rule in the onboarding tool) as outlined here: >https://koha-community.org/manual/installation/html/ > >2. When creating a circulation rule using the onboarding tool >apply it to all patron categories by leaving the default >'All' option in the Patron categories dropdown box >selected. > >3.Having finished the onboarding tool log into the staff interface and >go to Checkouts > >4. Check out an item (this item must be the same item type >that you applied the aforementioned circulation rule to) to 2 different patrons >(these patrons need to be of different patron types to test the > circulation rule properly). > >5. Notice that the due date is the same for both patrons. >This is because the 'All' dropdown button for patron categories >in the onboarding tool is successfully applying the circulation rule >to all patron categories. > >Bug 17855 - Working login of the web installer and >onboarding tool > >Test plan: >1. Go through the web installer and onboarding tool as >outlined here: >https://koha-community.org/manual/installation/html/ > >2. Notice that the you can login after the onboarding >tool in order to access the Koha main page > >Item type 'All' choice now working also. Tested same as previous. > >Library 'All' option now working for circulation rule, though more testing is needed. Cleaned up some other text and added a description to Create a Patron >--- > installer/onboarding.pl | 112 ++++++++++++---- > .../prog/en/modules/onboarding/onboardingstep0.tt | 2 +- > .../prog/en/modules/onboarding/onboardingstep1.tt | 2 +- > .../prog/en/modules/onboarding/onboardingstep3.tt | 10 +- > .../prog/en/modules/onboarding/onboardingstep4.tt | 2 - > .../prog/en/modules/onboarding/onboardingstep5.tt | 142 +++++++++------------ > 6 files changed, 158 insertions(+), 112 deletions(-) > >diff --git a/installer/onboarding.pl b/installer/onboarding.pl >index 0024db5..5435db5 100755 >--- a/installer/onboarding.pl >+++ b/installer/onboarding.pl >@@ -6,6 +6,7 @@ use diagnostics; > > > use Modern::Perl; >+ use C4::InstallAuth; > > #External modules > use CGI qw ( -utf8 ); >@@ -53,7 +54,7 @@ my $query = new CGI; > my $step = $query->param('step'); > > #Getting the appropriate template to display to the user--> >-my ( $template, $loggedinuser, $cookie) = get_template_and_user( >+my ( $template, $loggedinuser, $cookie) = C4::InstallAuth::get_template_and_user( > { > template_name => "/onboarding/onboardingstep" . ( $step ? $step : 0 ) . ".tt", > query => $query, >@@ -180,7 +181,7 @@ if ( $start && $start eq 'Start setting up my Koha' ){ > my $message; > my $category; > >- my ( $template, $loggedinuser, $cookie ) = get_template_and_user( >+ my ( $template, $loggedinuser, $cookie ) = C4::InstallAuth::get_template_and_user( > { > template_name => "/onboarding/onboardingstep2.tt", > query => $input, >@@ -193,7 +194,6 @@ if ( $start && $start eq 'Start setting up my Koha' ){ > > #Once the user submits the page, this code validates the input and adds it > #to the database as a new patron category >- > my $categorycode = $input->param('categorycode'); > my $description = $input->param('description'); > my $overduenoticerequired = $input->param('overduenoticerequired'); >@@ -238,7 +238,6 @@ if ( $start && $start eq 'Start setting up my Koha' ){ > > #Create a patron > }elsif ( $step && $step == 3 ){ >- > my $libraries = Koha::Libraries->search( {}, { order_by => ['branchcode'] }, ); > $template->param(libraries => $libraries, > group_types => [ >@@ -257,15 +256,13 @@ if ( $start && $start eq 'Start setting up my Koha' ){ > categories => $categories, > ); > >- > my $input = new CGI; > my $op = $input->param('op') // 'list'; > > my @messages; > my @errors; >- my $nok = $input->param('nok'); > >- my ($template, $loggedinuser, $cookie)= get_template_and_user({ >+ my ($template, $loggedinuser, $cookie)= C4::InstallAuth::get_template_and_user({ > template_name => "/onboarding/onboardingstep3.tt", > query => $input, > type => "intranet", >@@ -290,25 +287,22 @@ if ( $start && $start eq 'Start setting up my Koha' ){ > $newdata{dateexpiry} = '12/10/2016'; > $newdata{privacy} = "default"; > >- $newdata{'cardnumber'} = undef if $newdata{'cardnumber'} =~ /^\s*$/; >- if(my $error_code = checkcardnumber($newdata{cardnumber},$newdata{borrowernumber})){ >+ if(my $error_code = checkcardnumber($newdata{cardnumber},$newdata{borrowernumber})){ > push @errors, $error_code == 1 > ? 'ERROR_cardnumber_already_exists' >- :$error_code == 2 >+ :$error_code == 2 > ? 'ERROR_cardnumber_length' > :() >- } >+ } > > > #Hand the newdata hash to the AddMember subroutine in the C4::Members module and it creates a patron and hands back a borrowernumber which is being stored > my $borrowernumber = &AddMember(%newdata); >- > #Create a hash named member2 and fillit with the borrowernumber of the borrower that has just been created > my %member2; > $member2{'borrowernumber'}=$borrowernumber; > > my $flag = $input->param('flag'); >- > if ($input->param('newflags')) { > my $dbh=C4::Context->dbh(); > my @perms = $input->multi_param('flag'); >@@ -354,7 +348,7 @@ if ( $start && $start eq 'Start setting up my Koha' ){ > my $op = $input->param('op') // 'list'; > my $message; > >- my( $template, $borrowernumber, $cookie) = get_template_and_user( >+ my( $template, $borrowernumber, $cookie) = C4::InstallAuth::get_template_and_user( > { template_name => "/onboarding/onboardingstep4.tt", > query => $input, > type => "intranet", >@@ -372,14 +366,14 @@ if ( $start && $start eq 'Start setting up my Koha' ){ > my $description = $input->param('description'); > > #store the input from the form - only 2 fields >- $itemtype= Koha::ItemType->new( >+ my $thisitemtype= Koha::ItemType->new( > { itemtype => $itemtype_code, > description => $description, > } > ); >- eval{ $itemtype->store; }; >+ eval{ $thisitemtype->store; }; > #Error messages >- if($itemtype){ >+ if($thisitemtype){ > $message = 'success_on_insert'; > }else{ > $message = 'error_on_insert'; >@@ -387,11 +381,8 @@ if ( $start && $start eq 'Start setting up my Koha' ){ > > $template->param('message' => $message); > } >- >- >- >- > }elsif ( $step && $step == 5){ >+ > #Fetching all the existing categories to display in a drop down box > my $categories; > $categories= Koha::Patron::Categories->search(); >@@ -420,8 +411,7 @@ if ( $start && $start eq 'Start setting up my Koha' ){ > my $input = CGI->new; > my $dbh = C4::Context->dbh; > >- my ($template, $loggedinuser, $cookie) >- = get_template_and_user({template_name => "/onboarding/onboardingstep5.tt", >+ my ($template, $loggedinuser, $cookie) = C4::InstallAuth::get_template_and_user({template_name => "/onboarding/onboardingstep5.tt", > query => $input, > type => "intranet", > authnotrequired => 0, >@@ -442,7 +432,6 @@ if ( $start && $start eq 'Start setting up my Koha' ){ > my $op = $input->param('op') || q{}; > > if($op eq 'add_validate'){ >- > my $type = $input->param('type'); > my $br = $branch; > my $bor = $input->param('categorycode'); >@@ -468,6 +457,81 @@ if ( $start && $start eq 'Start setting up my Koha' ){ > lengthunit => $lengthunit, > onshelfholds => $onshelfholds, > }; >+ my @messages; >+ >+#New code from smart-rules.tt starts here. Needs to be added to library >+#Allows for the 'All' option to work when selecting all libraries for a circulation rule to apply to. >+ if ($branch eq "*") { >+ my $sth_search = $dbh->prepare("SELECT count(*) AS total >+ FROM default_circ_rules"); >+ my $sth_insert = $dbh->prepare("INSERT INTO default_circ_rules >+ (maxissueqty, onshelfholds) >+ VALUES (?, ?)"); >+ my $sth_update = $dbh->prepare("UPDATE default_circ_rules >+ SET maxissueqty = ?, onshelfholds = ?"); >+ >+ $sth_search->execute(); >+ my $res = $sth_search->fetchrow_hashref(); >+ if ($res->{total}) { >+ $sth_update->execute($maxissueqty, $onshelfholds); >+ } else { >+ $sth_insert->execute($maxissueqty, $onshelfholds); >+ } >+ } >+ >+ >+#Allows for the 'All' option to work when selecting all patron categories for a circulation rule to apply to. >+ if ($bor eq "*") { >+ my $sth_search = $dbh->prepare("SELECT count(*) AS total >+ FROM default_circ_rules"); >+ my $sth_insert = $dbh->prepare(q| >+ INSERT INTO default_circ_rules >+ (maxissueqty) >+ VALUES (?) >+ |); >+ my $sth_update = $dbh->prepare(q| >+ UPDATE default_circ_rules >+ SET maxissueqty = ? >+ |); >+ >+ $sth_search->execute(); >+ my $res = $sth_search->fetchrow_hashref(); >+ if ($res->{total}) { >+ $sth_update->execute($maxissueqty); >+ } else { >+ $sth_insert->execute($maxissueqty); >+ } >+ } >+#Allows for the 'All' option to work when selecting all itemtypes for a circulation rule to apply to >+ if ($itemtype eq "*") { >+ my $sth_search = $dbh->prepare("SELECT count(*) AS total >+ FROM default_branch_circ_rules >+ WHERE branchcode = ?"); >+ my $sth_insert = $dbh->prepare("INSERT INTO default_branch_circ_rules >+ (branchcode, onshelfholds) >+ VALUES (?, ?)"); >+ my $sth_update = $dbh->prepare("UPDATE default_branch_circ_rules >+ SET onshelfholds = ? >+ WHERE branchcode = ?"); >+ $sth_search->execute($branch); >+ my $res = $sth_search->fetchrow_hashref(); >+ if ($res->{total}) { >+ $sth_update->execute($onshelfholds, $branch); >+ } else { >+ $sth_insert->execute($branch, $onshelfholds); >+ } >+ } >+#End new code >+ >+ my $issuingrule = Koha::IssuingRules->find({categorycode => $bor, itemtype => $itemtype, branchcode => $br }); >+ if($issuingrule){ >+ $issuingrule->set($params)->store(); >+ push @messages, {type=> 'error', code => 'error_on_insert'};#Stops crash of the onboarding tool if someone makes a circulation rule with the same item type, library and patron categroy as an exisiting circulation rule. >+ >+ }else{ >+ Koha::IssuingRule->new()->set($params)->store(); >+ } >+ } > > my @messages; > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep0.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep0.tt >index 8eed408..9d18344 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep0.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep0.tt >@@ -39,7 +39,7 @@ > <div> > <h1 align="center"> Welcome to Koha</h1> > <h1 id="logo"><img alt="Koha" style="width:50%;margin:auto;display:block;align:center;" src="[% interface %]/[% theme %]/img/koha.org-logo.gif"/></h1> >- <h2 align="center"> We're just going to set up a few things......</h2> >+ <h2 align="center"> You haven't installed some sample data, so we're just going to set up a few more things...</h2> > <form name="startkoha" method="post" action="onboarding.pl"> > <input type="hidden" name="step" value="1"/> > <input type="submit" name="start" value="Start setting up my Koha"/> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep1.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep1.tt >index 44c86ce..bde6ca5 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep1.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep1.tt >@@ -92,7 +92,7 @@ > </li> > <li> > <label for="branchname" class="required">Name: </label> >- <input type="text" style="text-transform:capitalize;" name="branchname" id="branchname" size="80" value="[% library.branchname |html %]" class=" required" required="required" style="width:200px;"> >+ <input type="text" style="text-transform:capitalize;" name="branchname" id="branchname" size="42" value="[% library.branchname |html %]" class=" required" required="required" style="width:200px;"> > <span class="required">Required</span> > </li> > </ol> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep3.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep3.tt >index 8191801..ff0745b 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep3.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep3.tt >@@ -49,7 +49,11 @@ > <fieldset class="rows"> > <input type="hidden" name="step" value="3"/> > <input type="hidden" name="op" value="add_validate" /> >- <ol> >+ <legend id="library_management_lgd">Library Management</legend> >+ <p> >+ Now we will create a patron with superlibrarian permissions. Login with this to access Koha as a staff member will all permissions. >+ </p> >+ <ol> > <h3>Patron Identity</h3> > <li> > <label for="surname" class="required">Surname: </label> >@@ -64,11 +68,11 @@ > </li> > </ol> > >- <legend id="library_management_lgd">Library Management</legend> >+ > <ol> > <li> > <label for="cardnumber" class="required">Card Number: </label> >- <input type="number" min="1" id="cardnumber" name="cardnumber" maxlength="[%maxlength_cardnumber%]" minlength="[%minlength_cardnumber%]" value="[% cardnumber | html %]" class="required" required="required"> >+ <input type="number" min="1" id="cardnumber" class="noEnterSubmit valid" name="cardnumber" maxlength="[%maxlength_cardnumber%]" minlength="[%minlength_cardnumber%]" value="[% cardnumber | html %]" class="required" required="required"> > <span class="required">Required</span> > </li> > <li> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep4.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep4.tt >index 73400ff..fe6fb59 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep4.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep4.tt >@@ -20,8 +20,6 @@ > > [% IF itemtypes.count > 0 %] > <br> >- h no! Patron was not created</p> >- > <h3 align="left">You do not need to create a item type as you have already installed the sample item type data previously</h3> > <form name="skipitemtype" method="post" action="onboarding.pl"> > <input type="hidden" name="step" value="5"/> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep5.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep5.tt >index c00c7ca..6bd611a 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep5.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep5.tt >@@ -1,18 +1,9 @@ >-<!--Includes for creating circulation rule--> > [% INCLUDE 'doc-head-open.inc' %] >- >+<title>Create Circulation rule</title> > [% IF ( finish ) %]<meta http-equiv="refresh" content="10; url=/cgi-bin/koha/mainpage.pl">[% END %] > [% INCLUDE 'installer-doc-head-close.inc' %] > >-<head> >-<title>Create Circulation rule</title> >- >-<!--jQuery scripts for creating circulation rule--> >- >- >- > </head> >- > <div> > <h1 align="center"> Welcome to Koha</h1> > <h1 id="logo"><img alt="Koha" style="width:50%;margin:auto;display:block;align:center;" src="[% interface %]/[% theme %]/img/koha.org-logo.gif"/></h1> >@@ -28,10 +19,8 @@ > [% IF op == "add_validate" %] > <!--New circulation rule created--> > <form name="finish" method="post" action="onboarding.pl"> >- <input type="hidden" name="op" value="finish" /> >- >+ <input type="hidden" name="op" value="finish" /> > <h1 align="left"> New Circulation rule </h1> >- > <div> > <p> Success: New circulation rule created!</p> > <p> To create circulation rule, go to <br> >@@ -40,15 +29,9 @@ > Next up: > <input type="submit" name="op" value="Finish"/> > </form> >- <!-- <div> >- <p> Oh no! Circulation Rule was not created</p> >- </div> --> >- >- >-[% ELSE %] >+[% ELSE %] > <!--Create a circulation rule screen 1--> > <h1 align="left"> Create a new Circulation rule </h1> >- > <form name="createcirculationrule" method="post" action="onboarding.pl"> > <fieldset class="rows"> > <input type="hidden" name="step" value="5"/> >@@ -57,7 +40,7 @@ > <li> > <label for="branch" class="required"> Library branch</label> > <select name="branch" id="branch" required="required"> >- >+ <option value="*">All</option> > [% FOREACH library IN libraries %] > <option name="branch" value="[% library.branchcode %]"> [% library.branchname %]</option> > [% END %] >@@ -65,9 +48,9 @@ > <span class="required">Required</span> > </li> > <li> >- <label for="categorycode" class="required">Patron Category: </label> >- <select name="categorycode" id="categorycode" required="required" onchange = "update_categorycode(this);"> >- <!-- <option name="categorycode" value="All">All--> >+ <label for="categorycode" class="required">Patron Category: </label> >+ <select name="categorycode" id="categorycode" required="required" onchange = "update_categorycode(this);"> >+ <option value="*">All</option> > [% FOREACH category IN categories %] > <option name="categorycode" value = "[% category.categorycode %]"> [%category.description %]</option> > [%END%] >@@ -78,70 +61,67 @@ > <li> > <label for="itemtype"> Item type: </label> > <select id="itemtype" name="itemtype" required="required"> >+ <option value="*">All</option> > [% FOREACH item IN itemtypes %] > <option name="itemtype" value = "[% item.itemtype %]"> [% item.itemtype %] > [%END%] >+ </select> >+ <span class="required"> Required</span> >+ </li> >+ <li> >+ <label for="maxissueqty" class="required">Current checkouts allowed: </label> >+ <input type="number" min="0" name="maxissueqty" id="maxissueqty" size="10" maxlength="10" value="" class="required" required="required" /> >+ <span class="required">Required</span> >+ </li> >+ >+ <li> >+ <label for="issuelength" class="required">Loan Period: </label> >+ <input type="number" min="0" name="issuelength" id="issuelength" size="10" maxlength="10" value="" class="required" required="required" /> >+ <span class="required">Required</span> >+ </li> >+ <li> >+ <label for="lengthunit">Units: </label> >+ <select name="lengthunit" id="lengthunit" required="required"> >+ [% SET units = 'days' %] >+ [% IF category %] <!--Check if category is the correct value name in the context of units of days that a loan period is for in the item borrowing script--> >+ [% SET default_privacy = category.default_privacy %] >+ [% END %] >+ >+ [% SWITCH units %] >+ [% CASE 'days' %] >+ <option value="days" selected="selected">Days</option> >+ <option value="hours">Hours</option> >+ [% CASE 'hours' %] >+ <option value="days">Days</option> >+ <option value="hours" selected="selected">Hours</option> >+ [% END %] > </select> >- <span class="required"> Required</span> >- </li> >- >- <li> >- <label for="maxissueqty" class="required">Current checkouts allowed: </label> >- <input type="number" min="0" name="maxissueqty" id="maxissueqty" size="10" maxlength="10" value="" class="required" required="required" /> >- <span class="required">Required</span> >- </li> >- >- <li> >- <label for="issuelength" class="required">Loan Period: </label> >- <input type="number" min="0" name="issuelength" id="issuelength" size="10" maxlength="10" value="" class="required" required="required" /> >- <span class="required">Required</span> >- </li> >- >- <li> >- <label for="lengthunit">Units: </label> >- <select name="lengthunit" id="lengthunit" required="required"> >- [% SET units = 'days' %] >- >- [% IF category %] <!--Check if category is the correct value name in the context of units of days that a loan period is for in the item borrowing script--> >- [% SET default_privacy = category.default_privacy %] >- [% END %] >- >- [% SWITCH units %] >- [% CASE 'days' %] >- <option value="days" selected="selected">Days</option> >- <option value="hours">Hours</option> >- [% CASE 'hours' %] >- <option value="days">Days</option> >- <option value="hours" selected="selected">Hours</option> >- [% END %] >- </select> >- </li> >- >- <li> >- <label for="renewalsallowed" class="required">Renewals Allowed: </label> >- <input type="number"min="0" name="renewalsallowed" id="renewalsallowed" size="10" maxlength="10" value="" class="required" required="required" /> >- <span class="required">Required</span> >- </li> >- >- <li> >- <label for="renewalperiod" class="required">Renewals Period: </label> >- <input type="number" min="0"name="renewalperiod" id="renewalperiod" size="10" maxlength="10" value="" class="required" required="required" /> >- <span class="required">Required</span> >- </li> >- >- <li> >- <label for="onshelfholds">On shelf holds allowed: </label> >- <select name="onshelfholds" id="onshelfholds" required="required"> >- <option value="yes" selected="selected">Yes</option> >- <option value="anyunavailable">If any unavailable</option> >- <option value="allunavailable">If all unavailable</option> >- </select> >- </li> >- </ol> >+ </li> >+ <li> >+ <label for="renewalsallowed" class="required">Renewals Allowed: </label> >+ <input type="number"min="0" name="renewalsallowed" id="renewalsallowed" size="10" maxlength="10" value="" class="required" required="required" /> >+ <span class="required">Required</span> >+ </li> >+ >+ <li> >+ <label for="renewalperiod" class="required">Renewals Period: </label> >+ <input type="number" min="0"name="renewalperiod" id="renewalperiod" size="10" maxlength="10" value="" class="required" required="required" /> >+ <span class="required">Required</span> >+ </li> >+ >+ <li> >+ <label for="onshelfholds">On shelf holds allowed: </label> >+ <select name="onshelfholds" id="onshelfholds" required="required"> >+ <option value="yes" selected="selected">Yes</option> >+ <option value="anyunavailable">If any unavailable</option> >+ <option value="allunavailable">If all unavailable</option> >+ </select> >+ </li> >+ </ol> > </fieldset><br> > <input type="submit" class="action" value="Submit"/> > </form> >-[% END %] >+[% END %] > > > >-- >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 17855
:
58657
|
58658
|
58659
|
58660
|
58661
|
58662
|
58663
|
58664
|
58665
|
58666
|
58667
|
58668
|
58669
|
58781
|
58782
|
58783
|
58784
|
58785
|
58792
|
58793
|
58794
|
58846
|
58860
|
58861
|
58862
|
58886
|
58892
|
58893
|
58894
|
58895
|
58896
|
58897
|
58898
|
58899
|
58900
|
58901
|
58902
|
58903
|
58904
|
58905
|
58906
|
58907
|
59037
|
59051
|
59140
|
59141
|
59174
|
59188
|
59277
|
59279
|
59280
|
59281
|
59628
|
59703
|
59705
|
59706
|
59707
|
59708
|
59709
|
59710
|
59711
|
59712
|
59742
|
59826
|
59830
|
59840
|
59841
|
59842
|
59856
|
59857
|
60092
|
61667
|
61668
|
61986
|
62186
|
62191
|
62192
|
62193
|
62220
|
62221
|
62222
|
62223
|
62231
|
62233
|
62234
|
62235
|
62236
|
62237
|
62238
|
62239
|
62240
|
62241
|
62242
|
62243
|
62251
|
62252
|
62253
|
62254
|
62255
|
62256
|
62257
|
62258
|
62259
|
62260
|
62261
|
62262
|
62263
|
62281
|
62282
|
62283
|
62284
|
62285
|
62286
|
62287
|
62288
|
62668
|
62669
|
62670
|
62671
|
62672
|
62673
|
62674
|
62675