[Koha-patches] [PATCH] Add ajax function to return new weeks array in irregularities check: BUG 1842

Jesse Weaver jesse.weaver at liblime.com
Mon Jul 28 01:30:36 CEST 2008


On Sun, Jul 27, 2008 at 12:25 PM, Ryan Higgins <rch at liblime.com> wrote:

> ---
>  .../prog/en/modules/serials/subscription-add.tmpl  |   40
> ++++++++++++++++++--
>  serials/serials_planning_ajax.pl                   |   31 +++++++++++++++
>  2 files changed, 67 insertions(+), 4 deletions(-)
>  create mode 100755 serials/serials_planning_ajax.pl
>
> diff --git
> a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tmpl
> b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tmpl
> index 134a72a..b048091 100644
> --- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tmpl
> +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tmpl
> @@ -11,6 +11,41 @@ var text = new
> Array(_("Number"),_("Volume"),_("Issue"),_("Month"),_("Week"),_("
>
>  _("Autumn"),_("Winter"),_("Spring"),_("Summer"),_("Fall"),_("Season"),_("Year"));
>  var is_season = 0;
>  var is_hemisphere = 1;
> +<!-- TMPL_IF NAME="weekarrayjs" -->
> +    var weeks = new Array(<!-- TMPL_VAR NAME="weekarrayjs" -->);
> +<!-- /TMPL_IF -->
> +function xmlhttpPost(strURL) {
> +    var xmlHttpReq = false;
> +    var self = this;
> +    // Mozilla/Safari
> +    if (window.XMLHttpRequest) {
> +        self.xmlHttpReq = new XMLHttpRequest();
> +    }
> +    // IE
> +    else if (window.ActiveXObject) {
> +        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
> +    }
> +    self.xmlHttpReq.open('POST', strURL, true);
> +    self.xmlHttpReq.setRequestHeader('Content-Type',
> 'application/x-www-form-urlencoded');
> +    self.xmlHttpReq.onreadystatechange = function() {
> +        if (self.xmlHttpReq.readyState == 4) {
> +            updatepage(self.xmlHttpReq.responseText);
> +        }
> +    }
> +    self.xmlHttpReq.send(getquerystring());
> +}
> +function getquerystring() {
> +    var firstdate = document.getElementById("acqui_date").value;
> +       qstr = 'start=' + escape(firstdate) ;
> +    return qstr;
> +}
> +
> +function updatepage(str){
> +    //document.getElementById("notes").innerHTML = str;
> +       weeks = eval("(" + str + ")");
> +       var titles = weeks;
> +}
> +
>
>  function YMDaToYWDa(S) {
>     with (new Date(Date.UTC(S[0], S[1] - 1, S[2]))) {
> @@ -548,9 +583,6 @@ function irregularity_check(){
>  function irregular_options(periodicity){
>     var titles;
>     var count;
> -<!-- TMPL_IF NAME="weekarrayjs" -->
> -    var weeks = new Array(<!-- TMPL_VAR NAME="weekarrayjs" -->);
> -<!-- /TMPL_IF -->
>     var months = new
> Array(_("January"),_("February"),_("March"),_("April"),_("May"),_("June"),_("July"),_("August"),_("September"),_("October"),_("November"),_("December"));
>     var seasons = new
> Array(_("Autumn"),_("Winter"),_("Spring"),_("Summer"),_("Fall"));
>     var errortext='';
> @@ -918,7 +950,7 @@ window.onload = irregular_order();
>            <label for="firstacquidate"> First issue publication
> date:</label>
>
>                 <img src="<!-- TMPL_VAR Name="themelang"
> -->/lib/calendar/cal.gif" id="button2" style="cursor: pointer;" alt="Show
> Calendar" title="Show Calendar" />
> -                <input type="text" name="firstacquidate" value="<!--
> TMPL_VAR name="firstacquidate" -->" size="13" maxlength="10" id="acqui_date"
> style="border-width: 0px;" />
> +                <input type="text" name="firstacquidate" value="<!--
> TMPL_VAR name="firstacquidate" -->" size="13" maxlength="10" id="acqui_date"
> style="border-width: 0px;"
> onchange='JavaScript:xmlhttpPost("/cgi-bin/koha/serials/serials_planning_ajax.pl");
> return false;'  />
>                 <!-- both scripts for calendar must follow the input field
> -->
>                 <script type="text/javascript">
>                     Calendar.setup({
> diff --git a/serials/serials_planning_ajax.pl
> b/serials/serials_planning_ajax.pl
> new file mode 100755
> index 0000000..200371a
> --- /dev/null
> +++ b/serials/serials_planning_ajax.pl
> @@ -0,0 +1,31 @@
> +#!/usr/bin/perl
> +
> +use strict;
> +use warnings;
> +use CGI;
> +use Date::Calc qw( Add_Delta_Days Weeks_in_Year Week_of_Year
> Monday_of_Week);
> +use C4::Auth;
> +use C4::Context;
> +use C4::Dates;
> +
> +my $query = new CGI;
> +my ( $user, $cookie, $sessionID, $flags ) = checkauth( $query , 0,
> {serials => 1} , "intranet");
> +if($user) {
> +       # using dates in Date::Calc format of (year, month, day)
> +       my @startdate = split( /-/, C4::Dates->new(
> $query->param('start'))->output('iso'));
> +       my $numweeks = $query->param('n');
> +       my ($week,$yr) = Week_of_Year(@startdate);
> +       my @weeks;
> +       my $thisyear=$yr;
> +       my @thisweek = @startdate;
> +       for ( my $i=$week ; $i<$week+Weeks_in_Year($yr) ; $i++ ) {
> +               $thisyear++ if ($i>Weeks_in_Year($yr) );
> +               @thisweek = Add_Delta_Days(@thisweek , 7);
> +               my $weeknumber = Week_of_Year(@thisweek);
> +               my $weekdate =  C4::Dates->new(
> sprintf("%4d-%02d-%02d", at thisweek),'iso')->output() ;
> +               push @weeks, "$weekdate ( $weeknumber )";
> +       }
> +       print $query->header;
> +
> +       print "[ '" . join("' , '", at weeks) . "' ]";
> +}
> --
> 1.5.5.GIT
>

Why make a new ajax request function when jQuery has it built in?
http://docs.jquery.com/Ajax
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/koha-patches/attachments/20080727/34f0ceda/attachment-0002.htm>


More information about the Koha-patches mailing list