Bugzilla – Attachment 58782 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 - onboarding.pl script created
Bug-17855---onboardingpl-script-created.patch (text/plain), 38.26 KB, created by
Alex Buckley
on 2017-01-10 21:46:49 UTC
(
hide
)
Description:
Bug 17855 - onboarding.pl script created
Filename:
MIME Type:
Creator:
Alex Buckley
Created:
2017-01-10 21:46:49 UTC
Size:
38.26 KB
patch
obsolete
>From f461319485efba9115c328ca7e268dbbaed37f70 Mon Sep 17 00:00:00 2001 >From: Alex Buckley <alexbuckley@catalyst.net.nz> >Date: Mon, 12 Dec 2016 22:28:01 +0000 >Subject: [PATCH] Bug 17855 - onboarding.pl script created > >Initial 3 screens of the onboarding tool >have been created > >Test plan: >1. Go through the web installer are outlined in this guide: >https://koha-community.org/manual/installation/html/ > >2. Because the onboarding tool and web installer have not yet >been implemented to see the first screen of the >onboarding tool write in the URL >localhost:8081//cgi-bin/koha/installer/onboarding.pl?step=1 >Then just select the 'Submit' or 'Next>>' buttons to see the subsequent >two pages of the onboarding tool > >Initial 3 HTML screens of the onboarding tool and >the perl onboarding.pl script >--- > installer/onboarding.pl | 143 ++++++++++++++ > .../prog/en/modules/installer/step3.tt | 91 ++++----- > .../en/modules/onboarding/.onboardingstep1.tt.swp | Bin 0 -> 36864 bytes > .../en/modules/onboarding/.onboardingstep2.tt.swp | Bin 0 -> 20480 bytes > .../prog/en/modules/onboarding/onboardingstep1.tt | 109 +++++++++++ > .../prog/en/modules/onboarding/onboardingstep2.tt | 213 +++++++++++++++++++++ > 6 files changed, 512 insertions(+), 44 deletions(-) > create mode 100755 installer/onboarding.pl > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/.onboardingstep1.tt.swp > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/.onboardingstep2.tt.swp > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep1.tt > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep2.tt > >diff --git a/installer/onboarding.pl b/installer/onboarding.pl >new file mode 100755 >index 0000000..3aa6dff >--- /dev/null >+++ b/installer/onboarding.pl >@@ -0,0 +1,143 @@ >+#!/usr/bin/perl >+#Recommended pragmas >+use strict; >+use warnings; >+use diagnostics; >+ >+ >+use C4::Koha; >+#Pragmas for creating library >+use Modern::Perl; >+use CGI qw (-utf8); >+use C4::Auth; >+use C4::Context; >+use C4::Output; >+use Koha::Items; >+use Koha::Libraries; >+use Koha::LibraryCategories; >+ >+ >+use POSIX; >+use C4::Templates; >+use C4::Languages qw(getAllLanguages getTranslatedLanguages); >+use C4::Installer; >+use Koha; >+use installer::install.pl; >+ >+#Setting variables from install.pl origin >+my $query = new CGI; >+my $step = $query->param('step'); >+ >+my ( $template, $loggedinuser, $cookie) = get_template_and_user( >+ { >+ template_name => "/onboarding/onboardingstep" . ( $step ? $step : 1 ) . ".tt", >+ query => $query, >+ type => "intranet", >+ authnotrequired => 0, >+ debug => 1, >+ } >+); >+ >+#Check database connection >+my %info; >+$info{'dbname'} = C4::Context->config("database"); >+$info{'dbms'} = >+( C4::Context->config("db_scheme") >+ ? C4::Context->config("db_scheme") >+ : "mysql" ); >+ >+$info{'hostname'} = C4::Context->config("hostname"); >+$info{'port'} = C4::Context->config("port"); >+$info{'user'} = C4::Context->config("user"); >+$info{'password'} = C4::Context->config("pass"); >+my $dbh = DBI->connect( >+ "DBI:$info{dbms}:dbname=$info{dbname};host=$info{hostname}" >+ . ( $info{port} ? ";port=$info{port}" : "" ), >+ $info{'user'}, $info{'password'} >+); >+ >+ >+ >+ >+#Performing each step of the onboarding tool >+if ( $step && $step == 1 ) { >+#This is the Initial step of the onboarding tool to create a library >+ >+#store inputted parameters in variables >+ my $branchcode = $input->param('branchcode'); >+ my $categorycode = $input->param('categorycode'); >+ my $op = $input->param('op') || 'list'; >+ my @messages; >+ my $library; >+ >+#Find branchcode if it exists >+ if ( $op eq 'add_form' ) { >+ if ($branchcode) { >+ $library = Koha::Libraries->find($branchcode); >+ } >+ >+ $template->param( >+ library => $library, >+ categories => [ Koha::LibraryCategories->search( {}, { order_by => [ 'categorytype', 'categoryname' ] } ) ], >+ $library ? ( selected_categorycodes => [ map { $_->categorycode } $library->get_categories ] ) : (), >+ ); >+ } elsif ( $op eq 'add_validate' ) { >+ my @fields = qw( >+ branchname >+ ); >+ >+ my $is_a_modif = $input->param('is_a_modif'); >+ >+ my @categories; >+ for my $category ( Koha::LibraryCategories->search ) { >+ push @categories, $category >+ if $input->param( "selected_categorycode_" . $category->categorycode ); >+ } >+ if ($is_a_modif) { >+ my $library = Koha::Libraries->find($branchcode); >+ for my $field (@fields) { >+ $library->$field( scalar $input->param($field) ); >+ } >+ $library->update_categories( \@categories ); >+ >+ eval { $library->store; }; >+ >+ if ($@) { >+ push @messages, { type => 'alert', code => 'error_on_update' }; >+ } else { >+ push @messages, { type => 'message', code => 'success_on_update' }; >+ } >+ } else { >+ $branchcode =~ s|\s||g; >+ my $library = Koha::Library->new( >+ { branchcode => $branchcode, >+ ( map { $_ => scalar $input->param($_) || undef } @fields ) >+ } >+ ); >+ eval { $library->store; }; >+ $library->add_to_categories( \@categories ); >+ if ($@) { >+ push @messages, { type => 'alert', code => 'error_on_insert' }; >+ } else { >+ push @messages, { type => 'message', code => 'success_on_insert' }; >+ } >+ } >+ $op = 'list'; >+ [% END %] >+ >+ if ($op eq 'list'){ >+ print redirect(-url=>'koha/cgi-bin/koha/onboarding/onboarding.cgi?step=2'); >+ } >+ [% END %] >+[% END %] >+[% END %] >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step3.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step3.tt >index b7b5449..19dd551 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step3.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/installer/step3.tt >@@ -1,5 +1,5 @@ > [% INCLUDE 'doc-head-open.inc' %]<title>Koha › Web installer › Step 3</title> >-[% IF ( finish ) %]<meta http-equiv="refresh" content="10; url=/cgi-bin/koha/mainpage.pl">[% END %] >+[% IF ( finish ) %]<meta http-equiv="refresh" content="10; url=/cgi-bin/koha/installer/onboarding.pl">[% END %] > [% INCLUDE 'installer-doc-head-close.inc' %] > <div> > <h1 id="logo"><img alt="Koha" src="[% interface %]/[% theme %]/img/koha.org-logo.gif" /> Koha web installer › Step 3</h1> >@@ -64,7 +64,7 @@ > [% END %] > [% IF ( finish ) %] > <h1>Congratulations, installation complete</h1> >- <p>If this page does not redirect in 5 seconds, click <a href="/">here</a>.</p> >+ <p>If this page does not redirect in 5 seconds, click <a href="/cgi-bin/koha/installer/onboarding.pl">here</a>.</p> > [% END %] > [% IF ( choosemarc ) %] > <h2 align="center">Select your MARC flavor</h2> >@@ -97,51 +97,54 @@ > <input type="hidden" name="step" value="3" /> > <input type="hidden" name="op" value="addframeworks" /> > >- [% IF ( frameworksloop ) %] >- <h2>MARC frameworks: [% marcflavour %]</h2> >- [% IF ( en_marc_frameworks ) %] >- <h4><span class="error">No MARC frameworks are available for your language. Defaulting to the frameworks supplied for English (en)<span></h4> >- [% END %] >- [% FOREACH frameworksloo IN frameworksloop %] >- <div> >- <h3>[% frameworksloo.label %]</h3> >- [% FOREACH framework IN frameworksloo.frameworks %] <table style="border:1px;vertical-align:top;"> >- <tr> >+ [% IF ( frameworksloop ) %] >+ <h2>MARC frameworks: [% marcflavour %]</h2> >+ [% IF ( en_marc_frameworks ) %] >+ <h4><span class="error">No MARC frameworks are available for your language. >+ Defaulting to the frameworks supplied for English (en)<span></h4> >+ [% END %] >+ [% FOREACH frameworksloo IN frameworksloop %] >+ <div> >+ <h3>[% frameworksloo.label %]</h3> >+ [% FOREACH framework IN frameworksloo.frameworks %] >+ <table style="border:1px;vertical-align:top;"> >+ <tr> > <td style = "border:1px; vertical-align:top;"> >- [% IF (frameworksloo.label == "Default" ) %] >- <input type="hidden" name="framework" value="[% framework.fwkfile %]" id =="[%framework.fwkname%]" /> >- [% ELSE %] >- <input type="checkbox" name="framework" value="[% framework.fwkfile %]" id =="[%framework.fwkname%]" /> >+ [% IF (frameworksloo.label == "Default" ) %] >+ <ul> >+ </ul> >+ [% ELSE %] >+ <input type="checkbox" name="framework" value="[% framework.fwkfile %]" id =="[%framework.fwkname%]" /> > [% END %] >- </td> >- <td> >- [% IF (frameworksloo.label == "Default" ) %] >+ </td> >+ <td> >+ [% IF (frameworksloo.label == "Default" ) %] > <ul> >- <label for="[% framework.fwkname %]"> >- <li>[% framework.fwkdescription %]</li> >- <em>([% framework.fwkname %])</em> >- </label> >- </ul> >- </td> >- [% ELSE %] >- <td> >- <label for= "[% framework.fwkname %]"> >- [% framework.fwkdescription %] >- <em>([% framework.fwkname %])</em> >- </label> >- </td> >- [% END %] >- </tr> >+ <label for="[% framework.fwkname %]"> >+ <li> [% framework.fwkdescription %]</li> >+ <em>([% framework.fwkname %])</em> >+ </label> >+ </ul> >+ </td> >+ [% ELSE %] >+ <td> >+ <label for= "[% framework.fwkname %]"> >+ [% framework.fwkdescription %] >+ <em>([% framework.fwkname %])</em> >+ </label> >+ </td> >+ [% END %] >+ </tr> > </table> >- [% END %] >- </div> >- [% END %] >+ [% END %] >+ </div> >+ [% END %] > <h2>Other data</h2> >- [% END %] >- [% IF ( en_sample_data ) %] >- <h4><span class="error">No sample data and settings ar e available for your language. >- 132 Defaulting to the samples supplied for English (en)<span></h4> >- [% END %] >+ [% END %] >+ [% IF ( en_sample_data ) %] >+ <h4><span class="error">No sample data and settings are available for your language. >+ Defaulting to the samples supplied for English (en)<span></h4> >+ [% END %] > [% FOREACH levelloo IN levelloop %] > <div> > <h3>[% levelloo.label %]</h3> >@@ -157,12 +160,12 @@ > </td> > <td> > [% IF (levelloo.label == "Default") %] >- <ul> >+ <ul> > <label for="[% framework.fwkname %]"> > <li> [% framework.fwkdescription %]</li> > <em>([% framework.fwkname %])</em> > </label> >- </ul> >+ </ul> > </td> > [% ELSE %] > <td> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/.onboardingstep1.tt.swp b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/.onboardingstep1.tt.swp >new file mode 100644 >index 0000000000000000000000000000000000000000..f2938d7b8f1bb34842e4e0f3decf84858ce5e1fb >GIT binary patch >literal 36864 >zcmeHQeUKbSbsuBLHkQB2hJ+#&+!}xA4r_OHl7$^<Zx!Vv#j@p-?K{~dit3o%?b{t` >zc4nEGJ!vhAP%$>eSDZM7DT4h+Vmm+?3`K!MlBxt!5k(w3MY$>=2>}8DR~)B`1VU{5 >z0r|b2p4pz+nc2NNDZ*%`>UTRI-EUsM?&<FL`t`f|hTC@E#I7x0qv5z%)6W0N>{~zh >zfwQ#-O-)-eTCQRH^d$E<<g|?@U#dGta+7KAkOV7~p<y{T7iT5E)3qw5?c-(K53ahd >z)2eX0(s7zSi+dHvt~-X?H0_ph>iN7oRrW_Sn9o-6w2;7QB7qCEO&g~+P+>3E*Ro45 >z*>{?hyC`NMfkFa>1PTch5-224NT85FA%Q{yBmuvBmiAlteT@{y<?{E8#P2!s`fB<6 >z`o!~}lh?14zqclypCzx?$lnJto=={n=aOvkQ%InYKp}xb0)+$$2^112Bv448kU$}U >zLIQ;ZPD=?GO-+0GwVL+uc_=>C|3m%%Cl_hjkAZ	tS=LJO<ne90m3PuUx2UUk9E7 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 >X`J)RRI>`o3ZZTfMVDJeRVRZRF=$P)W > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/.onboardingstep2.tt.swp b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/.onboardingstep2.tt.swp >new file mode 100644 >index 0000000000000000000000000000000000000000..6bf5a5aab8a177ae652336fe547df4e59adb405f >GIT binary patch >literal 20480 >zcmeHPS&SS<8SW6rkduV_vD_wENAb*fcWozG&kU?*$MKrIyhmaum~l^c?M!=nx|;5u >z-JM_q36X$DTO<$;B@ZY<LPA0uQXX(5P9Z=j0W8D=A_xT$aRkIA@c>^{AKTN@bL`?> >zklYh}+ecMb{q_BI{q_HG^}vIZ)8yXlK?%RxCF#tcW=>sncS~0qlC-MSY{hhWO3&X4 >zt1B8^t+Mr=*`yEp1?Kn%s=-Vu?lNw}GIF}<qB81wPnOMUIcnw_Olum{$uYCa6kF5H >zTIAMosWp;y`wQ4xtTZ)c;2L4zR%vu(_yBM0UU?6B^P85gk#?ueOc_WSNEt{ONEt{O >zNEt{ONEt{O;0(Cd_0orMeVtFow12%WcD>$zKI&g*W9hs6=VSi$Vl3T%OfM+|DFZ13 >zDFZ13DFZ13DFZ13DFZ13DFZ13DFgol1{6(_?m)c?H~8WI5A6T1y-|{$11<rN180E( >zK!EE23HbMIlJrmDCE!KiS>VIKF5tOaC20Z}175uaX}~kUCxNE`7uXB@>t;!M8Tbb9 >zG_Vew0PX_*c9SGs08Rim0l&CWl0FMu08Rm8z!30O;4Q%OZ$SM(0r>mt@jY-ExCER7 >z=73S)r@JNTFz}Zfa1Z<h_&V?~@FWg0=7EF2DDXDmt2q345V#HaAr4BKzzN{5;Oxu5 >zM*+^?S>OraBf#UpV}L|@{PH=68dP<QJ#+B_9=Vg0XC}y<XZq&kx%13&b!L)P#c0xk >zJS-PaQzxJE-uAC7p@;)A@kFIsK@RTZ;tU(SRNjQCh4Pl$kSM@^->%KJVe%MJ6_?hS >z-O936YHLkuGFMlrP2b<tZL0NcVBX`8m`Vf6Ni0JqI(SY_>Z8BBp;W0smYLnPfLTv$ >z;>k?{!N*8GCqC|8L*CGf-MchCM>6j{-F|t;QcR*6isKaIpkBE+?^B2Ifb>2^=%&?l >ziQBS3o=ewV*(Xw?j%w?o<9qbAy>RqLk^dn2aYI=*s9AIC1^GTa#)T1daQV3|xsd$c >z)2ti}D0Jnp4@7Dq=j(36fc|BY>(hvck|G6kN>iNJXw?qrhis>U0?JgTQBOndZ#)$Z >zx2uRhCa5S-3cq@43RJWS=G&`}*HSF`!<=w|2PK~i)bYzRqq9Hcmvw4r4t2x!u{B3- >z&zINqRpPiU1AVv3Y>nEPHC=P-V~4EuBk{cTVWJp%%`C_UU3TRnnW1ZBPH}Cl1VLN! >zx%x<K1m~jzs;+AqHG?6=tgy=~nr4Zj0@CCd(E}G#!K$Qd;I?Cw^eBRd`h~KLMC;CD >zrfZ1lGLWpo-^fH!`5IV|b81b`RCQCt8s-$Ofm=VTPMxe}U`n8Fonf$B%mHs36I}AD >zo6kWj?Rp9{p8P?O%CE@L$np-=ZJ9uZ(s-X`a<Q&E#8XE&5kdDhRkRkN>$>AQSt(j; >za32&t<Y%sUnTNUwBfj&yP(UxyO^4bp7CNV?s?>3on}*TqQ=gx;!pw^IdCw}xO+sy( >z*@UTT)8=dHTAiAH#fSkVZUO;WvRJ1btTgmm-EHTlkEo*NK7xYBg@+~=OUJt?Q;b`G >zLeX@^U^P$ieAVLXL!|ehsAIG9q(LTU&<`C)sZl3M9nm6NP4wt!A-;Y^9=>zn85)Xi >z#`1*eRV|tlzSfvJ8cw&o40oh0-=0inHVniiE@K8JCu)(AObLC@r9|oAA8Rs&>V`9! >zV%GmjLRz#NTd92=^UB@4@e<}KbY=|2yqNtW%Y9CDFiY;Grp=57HC>;xY#jl_<O4+0 >z9m`N!WDL6-lO7=#u&3bjXAvcd?LoAtbIPjXy~Xy{RtqwOa_h7~4F#R-&NI1lPIRg` >zhl)|0C<f()ccMM3icO{$9;nRDlq=<#`Pr$d>GI6tTzP(Sc7hbhK6%cdibIK7XABo? >zgG3WV8;C`1ooVRcq`^$L?hy2dYK!n$GArMG#A7U|;ppt*@s27MP)8+R2{Vlr0SyUN >zVcl^tk~&K-jW3oTn4Ldenw=<DO2^0N{gO-3)ey6eiGoqO3VG4dIBnQ-8U|bA<5R6G >zHs)VyJ7dH^O}N=l%x0r1ZZc@SMk=E2-dX|6=yNAdHmThr9`O#}+7k3C-rr(#AUYX( >zjH|oQHyPKo&i<Isd8ty~?_Uz{hcl(ArHL{b0^j(rih%R1ZmMF6iYBWHHjbKNCnjR- >zWO$hw1hzZ0cNS(*Gn!)w^ZlF+8-n+J)X1OTgBbY<v{6h3k#{@`CuPo7Y7NC>qv>$c >zIjIoaX!0<5P@}GhxuiE;-2SI9Q$NmaRoMT5fB)C8?_UPK4QRmI`7`YL^T0_!0<OTe >z{~7QYa1S5>FTkdM68Hr0Zs1ke@h<>Pzy%2K1K9G<0u|s8a1i(v?Dr>t)4(0TZ(+l~ >z0$c(P12+TTg6;k^@F`#d_#JHc%fK2i4GaOlfers%;5)z<fF)oTa2a;|=YSP}+w{MO >zE&pTS5^x5%9rzw>`ek4gcm;fLPBcITs(=EV1uDS%fHS~*fk%Lcfzv?JPs|T}{&+*Y >zPo|h%Z&Da?T?})cG`MZf>x~tz(PgD+U^_J7-3(qBI;+^h3<>#qF7(m%#_C76?cTg& >zUgF>~B{a}uuQ>Dnz?9$Efw%&_{@%k^QN^<LRYh&_nITGO{Jv)*&y11>JY?cBlov@{ >zfI_$%&Bl}Z$mUlcIb7-28vcdE|MdEGm2=3KuP@`lVGZ9^#o82DN%7Z_&0T_Q(es&( >zFDJaQMtqG9YII5o^@vwHb0V`1r<k$H;FMfkz|suEM#myN_^{_adcZTsjv5os8@DP& >zv}5yiIxwcP!A(V&2899{IwksKSCs~;9(=IIS~e#a=WMnNQv>Gl&X75myhv?Xj7_jP >zx6N!$%Eei`rkMJp=$_2niLN=B%;uKG*aVxC+sx*I80X8&J3-?@GL0DFo2-8m{4ET| >zUu?vd<YK9=8(PT9;A4O56JRNs9$yeLs4ocuY=WQCVEhc;{uq<va&a90L$Mn&InXq_ >zwH0JMnLxk(Z6a`dn+e4D6dp^WgiDw>P}vDWlli;~@+{3vl@}H^8q{a68f*zY|6SVx >z-tN{AYkKqmEm*rF*XVXIR#bO~1m7!MrM)4y|NjBI^&Z&2-2Ol28?ax2z5g*_2>2yz >z{fj^i7zdt*UH=*2)4&B_7`PGm5p4U<1FOIdz;4*}KZh;<Mc{tGf(?HZcn9zr?Dv;| >z7lCJhDPSLP3-D*y@vi~j1fBx8ul|p);lBhlfgErJHoOI#1P%ayfc)I1|30t=oCe+n >z6oCSe2aW(^!2Q5|z`ej>;1F;S7zIXvVc-Ce1F}E{*bfMfk_`Ox-L=X<WF(8*-YZk@ >z)Ud3)RSf)g!IVJOaMTBXeVfn4KLy3U!0K*u@;dzmObTm=-LyI0oMyG5!>jHGk3^4A >zd(34s@Whj*HP*e3?q0J{ni_*sflT9YCxdkwjyf28w%Au^ik=tBA$O6IZmUhB?RDVa >zghQ_<8N4RW?jj>_JmAEX;oRDeA0vyCRDNvQfFv*j#Ywr7uiD*N4hmlITw-G#`tuH~ >zwLLw>6ONef?%rg_70D+$eq%@DaHtG-5x-6Q{T;wj=WD1r(SA_Y@PjeD=6W&&eK_W4 >z4IQ)_|F#Qv#&S22)K;$lfR2ov<i4OZ?n4#6qK>?N#x9<vr0hLTz4AHUsxHi-ETsEx >z{O);pm2D))hFHmSW_Ue3=*q1Q_jpwDj^F{$+l>J#MYBck2RI8Fuq{EU*z_gDH3X^g >zYybM&zi4C33-s}KL>rDX&u<nS#DzXV@3j|Wzz^;=5_lED*XAYqa~yh1(5<o?dBc3< >zJb7o-9n(`Y?Tx@wbcdHvICiyOe1{j<ahNs`*s)}~x*^<u18no+HHsju_{(n3o7D<$ >zP&8m<D~j=U$?aTl`804L!nELo=D$d!7T#>=Dq>K^)rC{z9?JAmz0uB<=zCiwQQM$@ >zdgwDzmy>~0cMGaS=jjts7f78LViY6>*StY%@L=LJLHMBI8HW13S5lBC@fuDyy(hW$ >z@G%kNCKt=xQy+D6a~^uf`CXMT!(s`pX;kfyI$I<7*T&!>^;dca4r;2dFvJleki<nO >zCqY2X3bkC}Ts9Fm<t<$fVar~yNjN_cS$K@R9*PZw*=nHAZj^{mOvDhnP21crHWKo& >zz>~E?spW)13~hX~A%zK-0Jc3YMMMpGhzGs!05NQeWZyL)?-#CirNNqrcYt(31BCQw >z1$W4E!Vxrs2m<bwR}lbqj#V*ki&e!{>lI&Wc&RO%rRzmR*XU}UICa)E@Riu|U@ynN >zZ?UFLoED-y8rU&~J2GZx`{|JPBjnkM_-3ro!c|!GnI8NwLI~L&EPd78f{A_vUz>wV >Sidn61SXgA}#?HOEGxQ%)n?fuA > >literal 0 >HcmV?d00001 > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep1.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep1.tt >new file mode 100644 >index 0000000..936272c >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep1.tt >@@ -0,0 +1,109 @@ >+ >+ >+<!--Includes for creating library--> >+[% INCLUDE 'doc-head-open.inc' %] >+ >+<head> >+<title>Welcome › to › Koha</title> >+ >+<!--jQuery code for create library--> >+<script type="text/javascript" src="[% interface %]/lib/tiny_mce/tiny_mce.js"></script> >+<script type="text/javascript"> >+ //<![CDATA[ >+ $(document).ready(function() { >+ $("#branchest").dataTable($.extend(true, {}, dataTablesDefaults, { >+ "aoColumnDefs": [ >+ { "aTargets": [ -1 ], "bSortable": false, "bSearchable": false }, >+ ], >+ "iDisplayLength": 10, >+ "sPaginationType": "four_button" >+ })); >+ >+ [% UNLESS library %] >+ $("#Aform").on("submit", function( event ) { >+ if ( $("#branchcode").val().match(/\s/) ) { >+ event.preventDefault(); >+ alert(_("The library code entered contains whitespace characters. Please remove any whitespace characters from the library code")); >+ return false; >+ } else { >+ return true; >+ } >+ }); >+ [% END %].. >+ }); >+ //]]> >+</script> >+</head> >+ >+[% IF ( finish ) %]<meta http-equiv="refresh" content="10; url=/cgi-bin/koha/mainpage.pl">[% END %] >+[% INCLUDE 'installer-doc-head-close.inc' %] >+<div> >+ <h1 align="center"> Welcome to Koha</h1> >+ <h1 id="logo"><img alt="Koha" src="[% interface %]/[% theme %]/img/koha.org-logo.gif"/></h1> >+ <form name="startonboarding" method="post" action="onboarding.pl"> >+ <input type="hidden" name="step" value="0"> >+ <a href="onboarding.pl?setupmyKoha=yes" <button>Set up my koha</button></a> >+</div> >+ >+<!--Onboarding tool step 1 - Create a new library screen 1--> >+[% IF (setupmyKoha) %] >+ <h1 align="left"> New Library</h2> >+ <form name="LibraryCreation" method="post" action="onboarding.pl"> >+ <fieldset class="rows"> >+ <input type="hidden" name="step" value="1"/> >+ <input type="hidden" name="op" value="add_validate" /> >+ <input type="hidden" name="op" value="createlibrary"/> >+ <ol> >+ <li> >+ <label for="branchcode" class="required">Library code: </label> >+ <input type="text" name="branchcode" id="branchcode" size="10" maxlength="10" value="[% library.branchcode |html %]" class="required" required="required" /> >+ <span class="required">Required</span> >+ </li> >+ <li> >+ <label for="branchname" class="required">Name: </label> >+ <input type="text" name="branchname" id="branchname" size="80" value="[% library.branchname |html %]" class=" required" required="required" /> >+ <span class="required">Required</span> >+ </li> >+ </ol> >+ </fieldset> >+ <fieldset class="action"> >+ <input type="submit" value="Create Library"/> >+ </fieldset> >+ </form> >+[% END %] >+ >+<!--Create a library screen 2--> >+[% IF (createlibrary) %] >+ [% IF (library) %] >+ <!--New Library created--> >+ <form name="createlibrary" method="post" action="onboarding.pl"> >+ <input type="hidden" name="step" value="1"/> >+ <input type="hidden" name="op" value="addpatroncategory"/> >+ <h1 align="left"> New Library</h1> >+ >+ <div> >+ <p> Success: Library created!</p><br> >+ <p> To add another library and for more settings, <br> >+ go to Tools->Administration->Libraries and Groups >+ </div> >+ Next up: >+ <input type="submit" value="Add a patron category"/> >+ </form> >+ [% ELSE %] <!-- Library not created successfully--> >+ <div> >+ <p> Library was not successfully created</p> >+ </div> >+ [% END %] >+ [% END %] >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >+ >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep2.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep2.tt >new file mode 100644 >index 0000000..33189b7 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/onboarding/onboardingstep2.tt >@@ -0,0 +1,213 @@ >+<!--Pragmas for using and including packages for create patron category--> >+[% USE Koha %] >+[% USE KohaDates %] >+[% USE Price %] >+[% INCLUDE 'doc-head-open.inc' %] >+[% INCLUDE 'doc-head-close.inc' %] >+[% INCLUDE 'calendar.inc' %] >+[% INCLUDE 'datatables.inc' %] >+ >+ >+<head> >+<title> Add a patron category</title> >+ >+<!--JQuery scripts for create patron category--> >+<script type="text/javascript"> >+ var MSG_CATEGORYCODE_CHARS = _("Category code can only contain the following characters: letters, numbers, - and _."); >+ var MSG_BOTH_ENROLLMENTPERIODS = _("Please choose only one enrollment period setting."); >+ var MSG_ONE_ENROLLMENTPERIOD = ("Please choose an enrollment period in months OR by date."); >+</script> >+<script type="text/javascript" src="[% themelang %]/js/categories.js"></script> >+<style type="text/css">#enrolmentmessage.hint { display : none; }</style> >+ >+</head> >+ >+ [% IF (addpatroncategory) %] >+ <!--Onboarding tool step 2-Create a patron category screen 1-->........ >+ <div id="doc3" class="yui-t2"> >+ <div id="bd"> >+ <div id="yui-main"> >+ <div class="yui-b"> >+ [% FOR m IN messages %] >+ <div class="dialog [% m.type %]"> >+ [% SWITCH m.code %] >+ [% CASE 'error_on_insert' %] >+ An error occurred when inserting this patron category. The patron category might already exist. >+ [% CASE 'success_on_insert' %] >+ Patron category inserted successfully. >+ [% CASE 'already_exists' %] >+ This patron category already exists. >+ [% CASE %] >+ [% m.code %] >+ [% END %] >+ </div> >+ [% END %] >+ >+ <form id="category_form" action="/cgi-bin/koha/admin/categories.pl" method="post"> >+ <input type="hidden" name="step" value="2"/> >+ <input type="hidden" name="op" value="add_validate" /> >+ <input type="hidden" name="op" value="addpatroncategory"/> >+ >+ <h1 align="left"> New Patron Category</h2> >+ <div style="border-width:5px;"> >+ <fieldset class="rows"> >+ <ol> >+ <li> >+ <label for="categorycode" class="required">Category code: </label> >+ <input type="text" name="categorycode" id="categorycode" size="10" maxlength="10" class="required" re quir ed="required" /> >+ <span class="required">Required</span> >+ </li> >+ >+ <li> >+ <label for="description" class="required">Description: </label> >+ <input type="text" name="description" id="description" size="40" maxlength="80" class="required" requ ired="re quired" value="[% category.description |html %]" /> >+ <span class="required">Required</span> >+ </li> >+ >+ <li> >+ <label for="overduenoticerequired">Overdue notice required: </label> >+ <select name="overduenoticerequired" id="overduenoticerequired"> >+ [% IF category.overduenoticerequired %] >+ <option value="0">No</option> >+ <option value="1" selected="selected">Yes</option> >+ [% ELSE %] >+ <option value="0" selected="selected">No</option> >+ <option value="1">Yes</option> >+ [% END %] >+ </select> >+ </li> >+ >+ <li> >+ <label for="category_type" class="required">Category type: </label> >+ <select name="category_type" id="category_type"> >+ [% UNLESS category %] >+ <option value="" selected="selected">Select a category type</option> >+ [% ELSE %] >+ <option value="">Select a category type</option> >+ [% END %] >+ >+ [% IF category and category.category_type == 'A' %] >+ <option value="A" selected="selected">Adult</ option> >+ [% ELSE %] >+ <option value="A">Adult</option> >+ [% END %] >+ >+ [% IF category and category.category_type == 'C' %] >+ <option value="C" selected="selected">Child</ option> >+ [% ELSE %] >+ <option value="C">Child</option>[% END %] >+ >+ [% IF category and category.category_type == 'S' %] >+ <option value="S" selected="selected">Staff</option> >+ [% ELSE %] >+ <option value="S">Staff</option> >+ [% END %] >+ >+ [% IF category and category.category_type == 'I' %] >+ <option value="I" selected="selected">Organization</option> >+ [% ELSE %] >+ <option value="I">Organization</option> >+ [% END %] >+ >+ [% IF category and category.category_type == 'P' %] >+ <option value="P" selected="selected">Professional</option> >+ [% ELSE %] >+ <option value="P">Professional</option> >+ [% END %] >+ >+ [% IF category and category.category_type == 'X' %] >+ <option value="X" selected="selected">Statistical</option> >+ [% ELSE %] >+ <option value="X">Statistical</option> >+ [% END %] >+ </select> >+ <span class="required">Required</span> >+ </li> >+ >+ <li> >+ <label for="default_privacy">Default privacy: </label> >+ <select id="default_privacy" name="default_privacy"> >+ [% SET default_privacy = 'default' %] >+ >+ [% IF category %] >+ [% SET default_privacy = category.default_privacy %] >+ [% END %] >+ >+ [% SWITCH default_privacy %] >+ [% CASE 'forever' %] >+ <option value="default">Default</option> >+ <option value="never">Never</option> >+ <option value="forever" selected="selected">Forever</option> >+ [% CASE 'never' %] >+ <option value="default">Default</option> >+ <option value="never" selected="selected">Never</option> >+ <option value="forever">Forever</option> >+ [% CASE %] >+ <option value="default" selected="selected">Default</option> >+ <option value="never">Never</option> >+ <option value="forever">Forever</option> >+ [% END %] >+ </select> >+ <span>Controls how long a patrons checkout history is kept for new patrons of this category. "Never" anonymizes checkouts on return, and "Forever" keeps a patron's checkout history indefinitely. When set to "Default", the amount of history kept is controlled by the cronjob <i>batch_anonymise.pl</i> which should be set up by your system administrator.</span> >+ </li> >+ >+ <li> >+ <span class="label">Enrollment period: </span> >+ <fieldset> >+ <legend>Choose one</legend> >+ <ol> >+ <li> >+ <label for="enrolmentperiod" style="width:6em;">In months: </label> >+ <input type="text" class="enrollmentperiod" name="enrolmentperiod" id="enrolmentperio d" size="3" maxlength="3" value="[% IF category.enrolmentperiod %][% category.enrolmentperiod %][% END %]" /> months >+ </li> >+ <li> >+ <label for="enrolmentperioddate" style="width:6em;">Until date: </label> >+ <input type="text" class="enrollmentperiod" name="enrolmentperioddate" id="enrolmentp erioddate" value="[% category.enrolmentperioddate | $KohaDates %]" /> >+ </li> >+ </ol> >+ </fieldset> >+ </li> >+ >+ <fieldset class="action"> >+ <input type="submit" value="Create Patron Category" /> >+ </fieldset> >+ </form> >+ [% END %] >+ >+ [% IF (addpatroncategory) %] >+ [% IF (categorycode) %] >+ <form name="createpatroncategory" method="post" action="onboarding.pl">... >+ <input type="hidden" name="op" value="addpatron"/> >+ <h1 align="left"> New patron category</h1> >+ <div style="border-width:5px;">. >+ <p> Success: Patron category created!</p> >+ <p> To add another patron category and for more settings<br> >+ go to More->Administration->Patrons & Circulation->Patron Categories</p> >+ </div> >+ Next up: >+ <input type="submit" value="Add a patron"> >+ >+ [% ELSE %] >+ <p> Patron category was not successfully created</p> >+ [% 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