From 546e6520cad8a4468d1b8abad11a0d0bf6f62f2f Mon Sep 17 00:00:00 2001 From: Hayley Mapley <hayleymapley@catalyst.net.nz> Date: Tue, 9 Apr 2019 14:54:39 +1200 Subject: [PATCH] Bug 18308: Changed ordering of onboarding steps This patch cleans up the previous patches according to comment 23, fixes various typos, and changes the order of steps in the onboarding so that the setting of minPasswordLength occurs before the admin password is set. Test plan: 1) Drop and recreate your database, and restart_all 2) Go through installation and onboarding 3) Note that the order of steps is: 1 Create a library 2 Create a ptron category 3 Create Koha administrator patron 4 Create a new item type 5 Create a new circulation rule 6 Set minPasswordLength syspref/Complete 4) Repeat steps 1 & 2 5) Note that the order of steps is now: 1 Create a library 2 Create a patron category 3 Set minPasswordLength syspref 4 Create Koha administrator patron 5 Create a new item type 6 Create a new circulation rule/Complete 6) Verify that the minPasswordLength syspref is set to the value from onboarding 7) Verify that the patron, item type, and circulation rule made in the onboarding exist in the administration 8) Sign off! Sponsored-by Catalyst IT Signed-off-by: Liz Rea <wizzyrea@gmail.com> --- installer/onboarding.pl | 49 ++++--- .../prog/en/modules/onboarding/onboardingstep3.tt | 127 ++++-------------- .../prog/en/modules/onboarding/onboardingstep4.tt | 102 +++++++++++--- .../prog/en/modules/onboarding/onboardingstep5.tt | 147 +++++---------------- .../prog/en/modules/onboarding/onboardingstep6.tt | 106 +++++++++++++-- .../prog/en/modules/onboarding/onboardingstep8.tt | 140 ++++++++++++++++++++ 6 files changed, 409 insertions(+), 262 deletions(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep8.tt diff --git a/installer/onboarding.pl b/installer/onboarding.pl index 785b686ddd..3d2e2a4597 100755 --- a/installer/onboarding.pl +++ b/installer/onboarding.pl @@ -56,6 +56,7 @@ my $schema = Koha::Database->new()->schema(); my @messages; +#Create library if ( $step == 1 ) { if ( $op eq 'add_validate_library' ) { @@ -84,7 +85,10 @@ if ( $step == 1 ) { $step++ if Koha::Libraries->count; } + +#Create patron category if ( $step == 2 ) { + if ( $op eq "add_validate_category" ) { my $searchfield = $input->param('description') // q||; @@ -136,10 +140,29 @@ if ( $step == 2 ) { $step++ if Koha::Patron::Categories->count; } + +#Set minPasswordLength syspref if ( $step == 3 ) { + + if ( $op eq 'set_validate_min_password_length' ) { + my $minPasswordLength = $input->param('pref_minPasswordLength'); + warn $minPasswordLength; + C4::Context->set_preference( 'minPasswordLength', $minPasswordLength ); + unless ($@) { + push @messages, { code => 'success_on_update_minPasswordLength_syspref' }; + $step++; + } + else { + push @messages, { code => 'error_on_update_minPasswordLength_syspref' }; + } + } +} + +#Create Koha administrator +if ( $step == 4 ) { + if ( $op eq 'add_validate_patron' ) { - #Create a patron my $firstpassword = $input->param('password') || ''; my $secondpassword = $input->param('password2') || ''; my $cardnumber = $input->param('cardnumber'); @@ -202,7 +225,10 @@ if ( $step == 3 ) { $step++ if Koha::Patrons->search( { flags => 1 } )->count; } -if ( $step == 4 ) { + +#Create item type +if ( $step == 5 ) { + if ( $op eq 'add_validate_itemtype' ) { my $description = $input->param('description'); my $itemtype_code = $input->param('itemtype'); @@ -226,7 +252,9 @@ if ( $step == 4 ) { $step++ if Koha::ItemTypes->count; } -if ( $step == 5 ) { + +#Create circulation rule +if ( $step == 6 ) { if ( $op eq 'add_validate_circ_rule' ) { @@ -290,21 +318,6 @@ if ( $step == 5 ) { $step++ if Koha::IssuingRules->count; } -if ( $step == 6 ) { - if ( $op eq 'set_validate_min_password_length' ) { - my $minPasswordLength = $input->param('pref_minPasswordLength'); - warn $minPasswordLength; - C4::Context->set_preference( 'minPasswordLength', $minPasswordLength ); - unless ($@) { - push @messages, { code => 'success_on_update_minPasswordLength_syspref' }; - $step++; - } - else { - push @messages, { code => 'error_on_update_minPasswordLength_syspref' }; - } - } -} - my $libraries = Koha::Libraries->search( {}, { order_by => ['branchcode'] }, ); $template_params->{libraries} = $libraries; 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 eed7068f05..c792e3b576 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep3.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep3.tt @@ -1,6 +1,5 @@ -[% USE Koha %] [% INCLUDE 'doc-head-open.inc' %] -<title>Koha › Web installer › Create Koha administrator patron</title> +<title>Koha › Web installer › Set minPasswordLength system preference</title> [% INCLUDE 'installer-doc-head-close.inc' %] </head> @@ -9,114 +8,38 @@ <div class="row"> <div id="onboarding-step3" class="installer-main col-sm-8 col-sm-offset-2 col-md-8 col-md-offset-2"> <h1 id="logo"><a href="#">Koha</a></h1> - <h2>Web installer › Create Koha administrator patron</h2> - [% INCLUDE 'onboarding_messages.inc' %] - - <p> - Now we will create a patron with superlibrarian permissions. Log in with this to access Koha as a staff member with all permissions. - </p> - <form name="createpatron" id="createpatron" method="post" action="onboarding.pl"> - <fieldset class="rows"> - <input type="hidden" name="step" value="3" /> - <input type="hidden" name="op" value="add_validate_patron" /> - <h3>Administrator identity</h3> - <ol> - <li> - <label for="surname" class="required">Surname: </label> - <input type="text" id="surname" name="surname" value="[% surname | html %]" class="required" required="required" /> - <span class="required">Required</span> - </li> - <li> - <label for="firstname" class="required">First name: </label> - <input type="text" name="firstname" id="firstname" size="20" value="[% firstname | html %]" class="required" required="required"> - <span class="required">Required</span> - </li> - </ol> - - <ol> - <li> - <label for="cardnumber" class="required">Card number: </label> - [% IF patrons && patrons > 1 %] - <input type="text" id="cardnumber" class="noEnterSubmit valid" name="cardnumber" value="[% newcardnumber | html %]" class="required" required="required"> - [% ELSE %] - <input type="text" id="cardnumber" name="cardnumber" value="[% cardnumber | html %]" class="required" required="required"> - [% END %] - <span class="required">Required</span> - </li> - <li> - - <!--require a foreach loop to get all the values for the library that the user has either imported (in web installer) or created in the first step of this onboarding tool--> - <label for="libraries" class="required"> Library: </label> - <select name="libraries" size="1" id="libraries"> - [% FOREACH library IN libraries %] - <option value="[% library.branchcode | html %]"> [% library.branchname | html %] </option> - [% END %] - </select> - <span class="required"> Required</span> - </li> - <li> - <label for="categorycode_entry" class="required"> Patron category</label> - <select id="categorycode_entry" name="categorycode_entry"> - [% FOREACH category IN categories %] - <option value = "[% category.categorycode | html %]">[% category.description | html %]</option> - [% END %] - </select> - <span class="required">Required</span><br><br> - <b>Note:</b> If you installed sample patron categories please select the "Staff" option in the patron categories dropdown box. - </li> - </ol> - - <h3>Administrator account permissions</h3> - <ol> - <li> - <input type="hidden" name="newflags" value="1" /> - <input type="hidden" class="flag parent" id="flag-0" name="flag" value="superlibrarian" /> - <code> superlibrarian</code> - </li> - </ol> - - <h3>Administrator login</h3> - <ol> - <li> - <label for="userid" class="required">Username: </label> - <input type="text" name="userid" id ="userid" size="20" value="[% userid | html %]" class="required" required="required" /> - <span class="required">Required</span> - </li> - <li> - <label for="password" class="required">Password: </label> - <input type="password" name="password" id="password" size="20" value="[% member.password | html %]" class="required" required="required"> - <span class="required">Required</span> - </li> - <li> - <label for="password2" class="required">Confirm password: </label> - <input type="password" id="password2" name="password2" size="20" value="" class="required" required="required"> - <span class="required">Required</span> - </li> - </ol> - <p> - To create another patron, go to: - <span class="breadcrumbs">Patrons › New patron</span> - </p> - <p> - To edit patron permissions, go to: - <span class="breadcrumbs">More › Set permissions</span> - </p> - </fieldset> - - <input type="submit" class="btn btn-primary" value="Submit" /> - </form> + <h2>Web installer › Set minPasswordLength system preference </h2> + + [% INCLUDE 'onboarding_messages.inc' %] + + The minPasswordLength system preference is a setting for the shortest length library staff and patrons can set their passwords to. + <form name="setMinPasswordLength" method="post" action="onboarding.pl"> + <fieldset class="rows"> + <input type="hidden" name="step" value="3"/> + <input type="hidden" name="op" value="set_validate_min_password_length" /> + <ol> + <li> + <label for="minPasswordname" class="required"> Set your minPasswordLength</label> + <input type="number" id="pref_minPasswordLength" name="pref_minPasswordLength" value="[% minPasswordLength | html %]" min=1></input> + <span class="required">Required</span> + </li> + </ol> + <p> + To amend the minPasswordLength system preference go to: + <span class="breadcrumbs">Administration › Global system preferences › Patrons </span> + </p> + </fieldset> + <input type="submit" class="btn btn-primary" value="Submit" /> + </form> </div> <!-- / #onboarding-step3 --> </div> <!-- / .row --> - </div><!-- / .container-fluid --> + </div> <!-- / .container-fluid --> [% MACRO jsinclude BLOCK %] [% INCLUDE 'validator-strings.inc' %] [% INCLUDE 'installer-strings.inc' %] <script src="[% interface | html %]/[% theme | html %]/js/onboarding.js"></script> - [% PROCESS 'password_check.inc' %] - [% PROCESS 'add_password_check' new_password => 'password' %] [% END %] [% INCLUDE 'installer-intranet-bottom.inc' %] - 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 ba41c63488..e5ade1f501 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep4.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep4.tt @@ -1,5 +1,6 @@ +[% USE Koha %] [% INCLUDE 'doc-head-open.inc' %] -<title>Koha › Web installer › Create a new item type </title> +<title>Koha › Web installer › Create Koha administrator patron</title> [% INCLUDE 'installer-doc-head-close.inc' %] </head> @@ -8,39 +9,102 @@ <div class="row"> <div id="onboarding-step4" class="installer-main col-sm-8 col-sm-offset-2 col-md-8 col-md-offset-2"> <h1 id="logo"><a href="#">Koha</a></h1> - <h2>Web installer › Create a new item type </h2> + <h2>Web installer › Create Koha administrator patron</h2> [% INCLUDE 'onboarding_messages.inc' %] - <!--Create a item type screen 1--> - - <p> Item types are used to group related items. Examples of item types might be books, CDs, or DVDs.</p> - <p> When adding to your institution's catalog you will create an item of a particular item type.</p> - <p> Importantl: Item types are what you apply circulation rules to. Circulation rules govern how your institution will lend its items: Checkout length, renewal policy, hold policy, etc. For example a circulation rule applied to the DVD item type may enforce a payment of $1.00 for checking out any DVD.</p> - - <form id="createitemform" method="post" action="onboarding.pl"> + <p> + Now we will create a patron with superlibrarian permissions. Log in with this to access Koha as a staff member with all permissions. + </p> + <form name="createpatron" id="createpatron" method="post" action="onboarding.pl"> <fieldset class="rows"> <input type="hidden" name="step" value="4" /> - <input type="hidden" name="op" value="add_validate_itemtype" /> + <input type="hidden" name="op" value="add_validate_patron" /> + <h3>Administrator identity</h3> <ol> <li> - <label for="itemtype" class="required">Item type code: </label> - <input type="text" name="itemtype" pattern="[0-9A-Za-z]{1,10}" id="itemtype" size="10" maxlength="10" class="required" required="required" value="[% itemtype.itemtype | html %]" /> + <label for="surname" class="required">Surname: </label> + <input type="text" id="surname" name="surname" value="[% surname | html %]" class="required" required="required" /> + <span class="required">Required</span> + </li> + <li> + <label for="firstname" class="required">First name: </label> + <input type="text" name="firstname" id="firstname" size="20" value="[% firstname | html %]" class="required" required="required"> <span class="required">Required</span> </li> + </ol> + <ol> <li> - <label for="description" class="required">Description: </label> - <input type="text" name="description" id="description" size="42" value="[% itemtype.description | html %]" class="required" required="required"> + <label for="cardnumber" class="required">Card number: </label> + [% IF patrons && patrons > 1 %] + <input type="text" id="cardnumber" class="noEnterSubmit valid" name="cardnumber" value="[% newcardnumber | html %]" class="required" required="required"> + [% ELSE %] + <input type="text" id="cardnumber" name="cardnumber" value="[% cardnumber | html %]" class="required" required="required"> + [% END %] <span class="required">Required</span> </li> + <li> + + <!--require a foreach loop to get all the values for the library that the user has either imported (in web installer) or created in the first step of this onboarding tool--> + <label for="libraries" class="required"> Library: </label> + <select name="libraries" size="1" id="libraries"> + [% FOREACH library IN libraries %] + <option value="[% library.branchcode | html %]"> [% library.branchname | html %] </option> + [% END %] + </select> + <span class="required"> Required</span> + </li> + <li> + <label for="categorycode_entry" class="required"> Patron category</label> + <select id="categorycode_entry" name="categorycode_entry"> + [% FOREACH category IN categories %] + <option value = "[% category.categorycode | html %]">[% category.description | html %]</option> + [% END %] + </select> + <span class="required">Required</span><br><br> + <b>Note:</b> If you installed sample patron categories please select the "Staff" option in the patron categories dropdown box. + </li> + </ol> + + <h3>Administrator account permissions</h3> + <ol> + <li> + <input type="hidden" name="newflags" value="1" /> + <input type="hidden" class="flag parent" id="flag-0" name="flag" value="superlibrarian" /> + <code> superlibrarian</code> + </li> </ol> - <p> To create another item type later and for more settings go to: - <span class="breadcrumbs"> Administration › Item types </span> + <h3>Administrator login</h3> + <ol> + <li> + <label for="userid" class="required">Username: </label> + <input type="text" name="userid" id ="userid" size="20" value="[% userid | html %]" class="required" required="required" /> + <span class="required">Required</span> + </li> + <li> + <label for="password" class="required">Password: </label> + <input type="password" name="password" id="password" size="20" value="[% member.password | html %]" class="required" required="required"> + <span class="required">Required</span> + </li> + <li> + <label for="password2" class="required">Confirm password: </label> + <input type="password" id="password2" name="password2" size="20" value="" class="required" required="required"> + <span class="required">Required</span> + </li> + </ol> + <p> + To create another patron, go to: + <span class="breadcrumbs">Patrons › New patron</span> + </p> + <p> + To edit patron permissions, go to: + <span class="breadcrumbs">More › Set permissions</span> </p> - <input type="submit" class="btn btn-primary" value="Submit" /> </fieldset> + + <input type="submit" class="btn btn-primary" value="Submit" /> </form> </div> <!-- / #onboarding-step4 --> </div> <!-- / .row --> @@ -50,6 +114,8 @@ [% INCLUDE 'validator-strings.inc' %] [% INCLUDE 'installer-strings.inc' %] <script src="[% interface | html %]/[% theme | html %]/js/onboarding.js"></script> + [% PROCESS 'password_check.inc' %] + [% PROCESS 'add_password_check' new_password => 'password' %] [% END %] -[% INCLUDE 'installer-intranet-bottom.inc' %] \ No newline at end of file +[% INCLUDE 'installer-intranet-bottom.inc' %] 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 bdeda07463..a024db23c6 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep5.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep5.tt @@ -1,11 +1,5 @@ [% INCLUDE 'doc-head-open.inc' %] -<title>Koha › Web installer › - [% IF all_done %] - Complete - [% ELSE %] - Create circulation rule - [% END %] -</title> +<title>Koha › Web installer › Create a new item type </title> [% INCLUDE 'installer-doc-head-close.inc' %] </head> @@ -14,111 +8,40 @@ <div class="row"> <div id="onboarding-step5" class="installer-main col-sm-8 col-sm-offset-2 col-md-8 col-md-offset-2"> <h1 id="logo"><a href="#">Koha</a></h1> - - <h2>Web installer › Create a new circulation rule </h2> - - [% INCLUDE 'onboarding_messages.inc' %] - - <form name="createcirculationrule" method="post" action="onboarding.pl"> - <fieldset class="rows"> - <input type="hidden" name="step" value="5"/> - <input type="hidden" name="op" value="add_validate_circ_rule" /> - <ol> - <li> - <label for="branchname" class="required"> Library branch</label> - <select name="branch" id="branchname" required="required"> - <option value=""> Choose</option> - <option value="*" selected="selected">All</option> - [% FOREACH library IN libraries %] - <option value="[% library.branchcode | html %]"> [% library.branchname | html %]</option> - [% END %] - </select> - <span class="required">Required</span> - </li> - <li> - <label for="categorycode" class="required">Patron category: </label> - <select name="categorycode" id="categorycode" required="required"> - <option value=""> Choose</option> - <option value="*" selected="selected">All</option> - [% FOREACH category IN categories %] - <option value = "[% category.categorycode | html %]"> [% category.description | html %]</option> - [%END%] - </select> - <span class="required">Required</span> - </li> - - <li> - <label for="itemtype"> Item type: </label> - <select id="itemtype" name="itemtype" required="required"> - <option value=""> Choose </option> - <option value="*" selected="selected">All</option> - [% FOREACH item IN itemtypes %] - <option value = "[% item.itemtype | html %]"> [% item.itemtype | html %] - [%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" value="50" 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" value="14" class="required" required="required" /> - <span class="required">Required</span> - </li> - <li> - <label for="lengthunit">Units: </label> - <select name="lengthunit" id="lengthunit" required="required"> - <option value=""> Choose </option> - [% SET units = 'days' %] - [% IF category %] - [% 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" max="10" value="10" 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" value="14" 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="">Choose</option> - <option value="1" selected="selected">Yes</option> - <option value="0">If any unavailable</option> - <option value="2">If all unavailable</option> - </select> - </li> - </ol> - <p> - To create circulation rule, go to: - <span class="breadcrumbs">Administration › Circulation and fine rules </span> - </p> - - </fieldset> - + <h2>Web installer › Create a new item type </h2> + + [% INCLUDE 'onboarding_messages.inc' %] + + <!--Create an item type screen 1--> + + <p> Item types are used to group related items. Examples of item types might be books, CDs, or DVDs.</p> + <p> When adding to your institution's catalog you will create an item of a particular item type.</p> + <p> Importantl: Item types are what you apply circulation rules to. Circulation rules govern how your institution will lend its items: Checkout length, renewal policy, hold policy, etc. For example a circulation rule applied to the DVD item type may enforce a payment of $1.00 for checking out any DVD.</p> + + <form id="createitemform" method="post" action="onboarding.pl"> + <fieldset class="rows"> + <input type="hidden" name="step" value="5" /> + <input type="hidden" name="op" value="add_validate_itemtype" /> + <ol> + <li> + <label for="itemtype" class="required">Item type code: </label> + <input type="text" name="itemtype" pattern="[0-9A-Za-z]{1,10}" id="itemtype" size="10" maxlength="10" class="required" required="required" value="[% itemtype.itemtype | html %]" /> + <span class="required">Required</span> + </li> + + <li> + <label for="description" class="required">Description: </label> + <input type="text" name="description" id="description" size="42" value="[% itemtype.description | html %]" class="required" required="required"> + <span class="required">Required</span> + </li> + </ol> + + <p> To create another item type later and for more settings go to: + <span class="breadcrumbs"> Administration › Item types </span> + </p> <input type="submit" class="btn btn-primary" value="Submit" /> - </form> + </fieldset> + </form> </div> <!-- / #onboarding-step5 --> </div> <!-- / .row --> </div><!-- / .container-fluid --> @@ -129,4 +52,4 @@ <script src="[% interface | html %]/[% theme | html %]/js/onboarding.js"></script> [% END %] -[% INCLUDE 'installer-intranet-bottom.inc' %] \ No newline at end of file +[% INCLUDE 'installer-intranet-bottom.inc' %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep6.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep6.tt index 19f945b854..8abdf21dbd 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep6.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep6.tt @@ -3,7 +3,7 @@ [% IF all_done %] Complete [% ELSE %] - Set minPasswordLength system preference + Create circulation rule [% END %] </title> [% INCLUDE 'installer-doc-head-close.inc' %] @@ -12,42 +12,124 @@ <body id="installer" class="installer"> <div class="container-fluid"> <div class="row"> - <div id="onboarding-step5" class="installer-main col-sm-8 col-sm-offset-2 col-md-8 col-md-offset-2"> + <div id="onboarding-step6" class="installer-main col-sm-8 col-sm-offset-2 col-md-8 col-md-offset-2"> <h1 id="logo"><a href="#">Koha</a></h1> + [% IF all_done %] <h2>Web installer › Complete</h2> [% INCLUDE 'onboarding_messages.inc' %] - <h3>Congratulations you have finished and are ready to use Koha</h3> + <h3>Congratulations, you have finished and are ready to use Koha</h3> <a class="btn btn-success" href="/cgi-bin/koha/mainpage.pl">Start using Koha</a> [% ELSE %] - <h2>Web installer › Set minPasswordLength system preference </h2> + <h2>Web installer › Create a new circulation rule </h2> [% INCLUDE 'onboarding_messages.inc' %] - The minPasswordLength system preference is a setting for the shortest length library staff and patrons can set their passwords to. - <form name="setMinPasswordLength" method="post" action="onboarding.pl"> + <form name="createcirculationrule" method="post" action="onboarding.pl"> <fieldset class="rows"> <input type="hidden" name="step" value="6"/> - <input type="hidden" name="op" value="set_validate_min_password_length" /> + <input type="hidden" name="op" value="add_validate_circ_rule" /> <ol> <li> - <label for="minPasswordname" class="required"> Set your minPasswordLength</label> - <input type="number" id="pref_minPasswordLength" name="pref_minPasswordLength" value="[% minPasswordLength%]" min=1></input> + <label for="branchname" class="required"> Library branch</label> + <select name="branch" id="branchname" required="required"> + <option value=""> Choose</option> + <option value="*" selected="selected">All</option> + [% FOREACH library IN libraries %] + <option value="[% library.branchcode | html %]"> [% library.branchname | html %]</option> + [% END %] + </select> + <span class="required">Required</span> + </li> + <li> + <label for="categorycode" class="required">Patron category: </label> + <select name="categorycode" id="categorycode" required="required"> + <option value=""> Choose</option> + <option value="*" selected="selected">All</option> + [% FOREACH category IN categories %] + <option value = "[% category.categorycode | html %]"> [% category.description | html %]</option> + [%END%] + </select> <span class="required">Required</span> </li> + + <li> + <label for="itemtype"> Item type: </label> + <select id="itemtype" name="itemtype" required="required"> + <option value=""> Choose </option> + <option value="*" selected="selected">All</option> + [% FOREACH item IN itemtypes %] + <option value = "[% item.itemtype | html %]"> [% item.itemtype | html %] + [%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" value="50" 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" value="14" class="required" required="required" /> + <span class="required">Required</span> + </li> + <li> + <label for="lengthunit">Units: </label> + <select name="lengthunit" id="lengthunit" required="required"> + <option value=""> Choose </option> + [% SET units = 'days' %] + [% IF category %] + [% 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" max="10" value="10" 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" value="14" 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="">Choose</option> + <option value="1" selected="selected">Yes</option> + <option value="0">If any unavailable</option> + <option value="2">If all unavailable</option> + </select> + </li> </ol> <p> - To amend the minPasswordLength system preference go to: - <span class="breadcrumbs">Administration › Global system preferences › Patrons </span> + To create circulation rule, go to: + <span class="breadcrumbs">Administration › Circulation and fine rules </span> </p> + </fieldset> + <input type="submit" class="btn btn-primary" value="Submit" /> </form> [% END %] </div> <!-- / #onboarding-step6 --> </div> <!-- / .row --> - </div> <!-- / #container-fluid --> + </div><!-- / .container-fluid --> [% MACRO jsinclude BLOCK %] [% INCLUDE 'validator-strings.inc' %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep8.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep8.tt new file mode 100644 index 0000000000..680be3a0a2 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep8.tt @@ -0,0 +1,140 @@ +[% INCLUDE 'doc-head-open.inc' %] +<title>Koha › Web installer › + [% IF all_done %] + Complete + [% ELSE %] + Create circulation rule + [% END %] +</title> +[% INCLUDE 'installer-doc-head-close.inc' %] +</head> + +<body id="installer" class="installer"> + <div class="container-fluid"> + <div class="row"> + <div id="onboarding-step7" class="installer-main col-sm-8 col-sm-offset-2 col-md-8 col-md-offset-2"> + <h1 id="logo"><a href="#">Koha</a></h1> + + [% IF all_done %] + <h2>Web installer › Complete</h2> + [% INCLUDE 'onboarding_messages.inc' %] + <h3>Congratulations, you have finished and are ready to use Koha</h3> + <a class="btn btn-success" href="/cgi-bin/koha/mainpage.pl">Start using Koha</a> + [% ELSE %] + + <h2>Web installer › Create a new circulation rule </h2> + + [% INCLUDE 'onboarding_messages.inc' %] + + <form name="createcirculationrule" method="post" action="onboarding.pl"> + <fieldset class="rows"> + <input type="hidden" name="step" value="7"/> + <input type="hidden" name="op" value="add_validate_circ_rule" /> + <ol> + <li> + <label for="branchname" class="required"> Library branch</label> + <select name="branch" id="branchname" required="required"> + <option value=""> Choose</option> + <option value="*" selected="selected">All</option> + [% FOREACH library IN libraries %] + <option value="[% library.branchcode | html %]"> [% library.branchname | html %]</option> + [% END %] + </select> + <span class="required">Required</span> + </li> + <li> + <label for="categorycode" class="required">Patron category: </label> + <select name="categorycode" id="categorycode" required="required"> + <option value=""> Choose</option> + <option value="*" selected="selected">All</option> + [% FOREACH category IN categories %] + <option value = "[% category.categorycode | html %]"> [% category.description | html %]</option> + [%END%] + </select> + <span class="required">Required</span> + </li> + + <li> + <label for="itemtype"> Item type: </label> + <select id="itemtype" name="itemtype" required="required"> + <option value=""> Choose </option> + <option value="*" selected="selected">All</option> + [% FOREACH item IN itemtypes %] + <option value = "[% item.itemtype | html %]"> [% item.itemtype | html %] + [%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" value="50" 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" value="14" class="required" required="required" /> + <span class="required">Required</span> + </li> + <li> + <label for="lengthunit">Units: </label> + <select name="lengthunit" id="lengthunit" required="required"> + <option value=""> Choose </option> + [% SET units = 'days' %] + [% IF category %] + [% 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" max="10" value="10" 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" value="14" 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="">Choose</option> + <option value="1" selected="selected">Yes</option> + <option value="0">If any unavailable</option> + <option value="2">If all unavailable</option> + </select> + </li> + </ol> + <p> + To create another circulation rule, go to: + <span class="breadcrumbs">Administration › Circulation and fine rules </span> + </p> + + </fieldset> + + <input type="submit" class="btn btn-primary" value="Submit" /> + </form> + [% END %] + </div> <!-- / #onboarding-step7 --> + </div> <!-- / .row --> + </div><!-- / .container-fluid --> + +[% MACRO jsinclude BLOCK %] + [% INCLUDE 'validator-strings.inc' %] + [% INCLUDE 'installer-strings.inc' %] + <script src="[% interface | html %]/[% theme | html %]/js/onboarding.js"></script> +[% END %] + +[% INCLUDE 'installer-intranet-bottom.inc' %] -- 2.11.0