+++ /dev/null
-#!/usr/bin/perl
-
-# Converted to new plugin style (Bug 13437)
-
-# Copyright 2000-2002 Katipo Communications
-#
-# This file is part of Koha.
-#
-# Koha is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# Koha is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Koha; if not, see <http://www.gnu.org/licenses>.
-
-use Modern::Perl;
-use CGI qw ( -utf8 );
-
-use C4::Context;
-use C4::Output qw( output_html_with_http_headers );
-use C4::Auth qw( get_template_and_user );
-
-my $builder = sub {
- my ( $params ) = @_;
- my $function_name = $params->{id};
- my $res="
-<script>
-function Click$function_name(i) {
- newin=window.open(\"../cataloguing/plugin_launcher.pl?plugin_name=macles.pl&index=\"+i,\"MACLES\",',toolbar=false,scrollbars=yes');
-}
-</script>
-";
- return $res;
-};
-
-my $launcher = sub {
- my ( $params ) = @_;
- my $input = $params->{cgi};
- my $index= $input->param('index');
-
- my $dbh = C4::Context->dbh;
- my $rq=$dbh->prepare("SELECT authorised_value, lib from authorised_values where category=\"MACLES\" order by authorised_value DESC");
- #tabs
- $rq->execute;
- my @BIGLOOP;
- my (%numbers,@lists,$table);
- while (my $tab = $rq->fetchrow_hashref){
- my $number=substr($tab->{authorised_value},0,1);
- if ($tab->{authorised_value}=~/[0-9]XX/){
- $numbers{$number}->{'hdr_tab'}=$tab->{lib};
- $numbers{$number}->{'Table'}=($number=~/[1-7]/);
- } elsif ($tab->{authorised_value}=~/.X./){
- $tab->{authorised_value}=~s/X/\./;
- $table=1;
- unshift @{$numbers{$number}->{"col_hdr"}},{"colvalue"=>$tab->{authorised_value},"collib"=>$tab->{lib}};
- } elsif ($tab->{authorised_value}=~/..X/){
- $tab->{authorised_value}=~s/X/\./;
- unshift @{$numbers{$number}->{"row_hdr"}},{"rowvalue"=>$tab->{authorised_value},"rowlib"=>$tab->{lib}}
- } elsif ($tab->{'authorised_value'}=~/,/){
- my @listval=split /,/,$tab->{'authorised_value'};
-# $tab->{authorised_value}=~s/,/","/g;
-# $tab->{authorised_value}="(".$tab->{authorised_value}.")";
- my %mulrows;
- foreach my $val (@listval){
- unshift @{$numbers{$number}->{$val}},$tab->{'lib'};
- my $mulrow=substr($val,0,2);
- $mulrows{$mulrow}=1;
- }
- foreach my $mulrow (sort keys %mulrows){
- unshift @{$numbers{$number}->{$mulrow}},{'listlib' => $tab->{'lib'},'listvalue' => $tab->{'authorised_value'}};
- }
- } else {
- unshift @{$numbers{$number}->{$tab->{'authorised_value'}}},$tab->{'lib'};
- }
- }
- foreach my $num ( sort keys %numbers ) {
- my @tmpcolhdr;
- my @tmprowhdr;
- @tmpcolhdr = @{ $numbers{$num}->{'col_hdr'} }
- if ( $numbers{$num}->{'col_hdr'} );
- @tmprowhdr = @{ $numbers{$num}->{"row_hdr"} }
- if ( $numbers{$num}->{'row_hdr'} );
- my @lines;
- my @lists;
- my %BIGLOOPcell;
- foreach my $row (@tmprowhdr) {
- my $tmprowvalue = $row->{rowvalue};
- my $rowcode;
- $rowcode = $1 if $tmprowvalue =~ /[0-9]([0-9])\./;
- my @cells;
- if ( scalar(@tmpcolhdr) > 0 ) {
-
- #cas du tableau bidim
- foreach my $col (@tmpcolhdr) {
- my $tmpcolvalue = $col->{colvalue};
- my $colcode;
- $colcode = $1 if $tmpcolvalue =~ /[0-9]\.([0-9])/;
- my %cell;
- $cell{celvalue} = $num . $rowcode . $colcode;
- $cell{rowvalue} = $tmprowvalue;
- $cell{colvalue} = $tmpcolvalue;
- if ( $numbers{$num}->{ $num . $rowcode . $colcode } ) {
-
- foreach (
- @{ $numbers{$num}->{ $num . $rowcode . $colcode } }
- )
- {
- push @{ $cell{libs} }, { 'lib' => $_ };
- }
- }
- else {
- push @{ $cell{libs} },
- { 'lib' => $num . $rowcode . $colcode };
- }
- push @cells, \%cell;
- }
- if ( $numbers{$num}->{ $num . $rowcode } ) {
- my @tmpliblist = @{ $numbers{$num}->{ $num . $rowcode } };
- push @lists,
- { 'lib' => $row->{rowlib}, 'liblist' => \@tmpliblist };
- }
- }
- else {
-
- #Cas de la liste simple
- foreach my $key ( sort keys %{ $numbers{$num} } ) {
- my %cell;
- if ( $key =~ /$num$rowcode[0-9]/ ) {
- $cell{celvalue} = $key;
- foreach my $lib ( @{ $numbers{$num}->{$key} } ) {
- push @{ $cell{'libs'} }, { 'lib' => $lib };
- }
- push @cells, \%cell;
- }
- }
- }
- push @lines,
- {
- 'cells' => \@cells,
- 'rowvalue' => $row->{rowvalue},
- 'rowlib' => $row->{rowlib}
- };
- }
- $BIGLOOPcell{'Lists'} = \@lists if ( scalar(@lists) > 0 );
- $BIGLOOPcell{'lines'} = \@lines if ( scalar(@lines) > 0 );
- $BIGLOOPcell{'col_hdr'} = \@tmpcolhdr if ( scalar(@tmpcolhdr) > 0 );
- $BIGLOOPcell{'Table'} = $numbers{$num}->{'Table'};
- $BIGLOOPcell{'hdr_tab'} = $numbers{$num}->{'hdr_tab'};
- $BIGLOOPcell{'number'} = $num;
- push @BIGLOOP, \%BIGLOOPcell;
- }
-
- my ($template, $loggedinuser, $cookie)
- = get_template_and_user({template_name => "cataloguing/value_builder/macles.tt",
- query => $input,
- type => "intranet",
- flagsrequired => {editcatalogue => '*'},
- });
- $template->param(BIGLOOP=>\@BIGLOOP);
- $template->param("index"=>$index);
- output_html_with_http_headers $input, $cookie, $template->output;
-};
-
-return { builder => $builder, launcher => $launcher };
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<title>Gestion des index MACLES</title>
-[% INCLUDE 'doc-head-close.inc' %]
-<script>
-//<![CDATA[
-
- $(document).ready(function() {
- $('#macles').tabs();
- });
-//]]>
-</script>
-</head>
-
-<body id="cat_macles" class="cat" onload="Activate(0);load_macles();" >
-
-<h1>Gestion des index MACLES</h1>
-<form name="f_pop" action="">
-
-<div id="macles" class="toptabs numbered">
- [% IF ( BIGLOOP ) %]<ul>
- [% FOREACH BIGLOO IN BIGLOOP %]
- <li><a href="#tab[% BIGLOO.number | uri %]XX">[% BIGLOO.number | html %]</a></li>
- [% END %]
- </ul>[% END %]
- <!-- RESET PAGINATION -->
- [% FOREACH BIGLOO IN BIGLOOP %]
- [% IF ( BIGLOO.number ) %]
- <div id="tab[% BIGLOO.number | html %]XX">
- [% ELSE %]
- <div id="tab[% BIGLOO.number | html %]XX">
- [% END %]
- <h2> [% BIGLOO.hdr_tab | html %]</h2>
- <a href="#" class="button" onclick="add_macles('630');">Envoyer</a>
- <!-- <input type="submit" class="button" value="Envoyer" /> -->
- <a class="button" href="" onclick="load_macles(630);">Réinitialiser</a>
- <a class="button" href="javascript:uncheck_tab([% BIGLOO.number | html %])">déselectionner onglet</a>
- <input type="reset" class="button" value="déselectionner tout" />
- [% IF ( BIGLOO.Table ) %]
- <table>
- <tr>
- <th>Espace\Temps</th>
- [% FOREACH col_hd IN BIGLOO.col_hdr %]
- <th scope="col" id="[% col_hd.colvalue | html %]"> [% col_hd.collib | html %] <br /><input type="checkbox" name="[% col_hd.colvalue | html %]" onclick="check_col('[% col_hd.colvalue | html %]')" />
- </th>
- [% END %]
- </tr>
- [% FOREACH line IN BIGLOO.lines %]
- <tr>
- <th scope="row" id="[% line.rowvalue | html %]"> [% line.rowlib | html %] <br /><input type="checkbox" name="[% line.rowvalue | html %]" onclick="check_row('[% line.rowvalue | html %]')" />
- </th>
- [% FOREACH cell IN line.cells %]
- <td headers="[% cell.rowvalue | html %] [% cell.colvalue | html %]">
- [% BLOCK spantitle %][% FOREACH lib IN cell.libs %][% lib.lib | html %] - [% END %][% END %]
- <span title="[% INCLUDE spantitle %]">
- [% cell.celvalue | html %] <br /><input type="checkbox" name="[% cell.celvalue | html %]" value="[% cell.celvalue | html %]" />
- </span>
- </td>
- [% END %]
- </tr>
- [% END %]
- </table>
- [% END %]
- [% IF ( BIGLOO.Lists ) %]
- <h2>sélection au moyen d'une liste de descripteurs</h2>
- [% FOREACH List IN BIGLOO.Lists %]
- <h3>[% List.lib | html %]</h3>
- [% FOREACH liblis IN List.liblist %]
- <a href="#[% liblis.listvalue | uri %]" onclick="check_multiple([% liblis.listvalue | html %])"> [% liblis.listlib | html %]</a><br />
- [% END %]
- [% END %]
- [% END %]
- [% UNLESS ( BIGLOO.Table ) %]
- <!-- Listes simples :Onglets 0 et 9-->
- [% FOREACH line IN BIGLOO.lines %]
- <h3>[% line.rowvalue | html %] - [% line.rowlib | html %] <input type="checkbox" name="[% line.rowvalue | html %]" onclick="check_row('[% line.rowvalue | html %]')" /></h3>
- [% FOREACH cell IN line.cells %]
- <p>[% cell.celvalue | html %] - [% FOREACH lib IN cell.libs %]
- [% lib.lib | html %]
- [% END %]
- <input type="checkbox" name="[% cell.celvalue | html %]" value="[% cell.celvalue | html %]" />
- </p>
- [% END %]
- [% END %]
- [% END %]
- </div>
- [% END %]
-</div>
-</form>
-<script>
-//<![CDATA[
-function Activate(numlayer)
-{
- for (var i=0; i <= 9 ; i++ ) {
- var ong = i+"XX";
- var link = "link"+i;
- if (numlayer==i) {
- with(document){
- if (document.getElementById(ong)){
- document.getElementById(ong).style.visibility="visible";
- }
- if(document.getElementById(link)){
- document.getElementById(link).style.color="#000066";
- document.getElementById(link).style.backgroundColor="#FFFFCC";
- }
- }
- } else {
- with(document){
- if (document.getElementById(ong)){
- document.getElementById(ong).style.visibility="hidden";
- }
- if (document.getElementById(link)) {
- document.getElementById(link).style.color="#669999";
- document.getElementById(link).style.backgroundColor="#D8DEB8";
- }
- }
- }
- }
-}
-
-function add_macles(myvalue)
-{
- var myinputs=document.getElementsByTagName("input");
- var mycountMACLESgen=0;
- var tab = new Array();
- for (var i=0;i<myinputs.length;i++){
- if (myinputs[i].checked) {
- tab[mycountMACLESgen]=myinputs[i].value;
- mycountMACLESgen++;
- }
- }
- if (mycountMACLESgen==1){opener.document.f.[% index | html %].value = tab[0];
- } else {
- var mytags=opener.document.getElementsByTagName("input");
- var index_string="[% index | html %]";
- index_string=index_string.substr(0,index_string.lastIndexOf("_"));
- index_string=index_string.substr(0,index_string.lastIndexOf("_"));
- index_string=index_string+".*";
- var mycountMACLESinit=0;
- var indexmin=0;
- var tab_ids_fields=new Array();
- //Compter le nombre de MACLES present
- for (i=0;i<mytags.length;i++){
- if (mytags[i].name.match(index_string)){
- if (mytags[i].value==myvalue) {
- if (indexmin==0){
- indexmin=i
- }
- }
- tab_ids_fields[mycountMACLESinit]=mytags[i].getAttribute("id");
- mycountMACLESinit++;
- }
- }
- // Si Nombre de Macles <Nombre de cases cochees, ajouter le nombre de champ manquant
- if (mycountMACLESinit < mycountMACLESgen){
- //for (i=0;i< (mycountMACLESgen - mycountMACLESinit);i++){
- // PluginAddField(myvalue);
- //}
- alert(_("veuillez d'abord creer le nombre de champs necessaires "));
- } else {
- // Pour chaque valeur cochee, ajouter la valeur dans un noeud MACLES.
- for (i=0;i<tab.length;i++){
- // Se positionner sur le prochain noeud MACLES
- opener.document.f.elements[tab_ids_fields[i]].value = tab[i];
- }
- }
- }
- window.close();
- return false;
-}
-
-function uncheck_tab(number)
-{
- var myinputs=document.getElementsByTagName("input");
- var myRegEx=new RegExp(number+"..");
- for(i=0;i<myinputs.length;i++){
- if ((myinputs[i].name.search(myRegEx)>=0) && myinputs[i].checked == true) {
- myinputs[i].checked = false;
- }
- }
-}
-function check_col(col)
-{
- var myref=document.getElementsByName(col);
- var myinputs=document.getElementsByTagName("input");
- var myRegEx=new RegExp(col);
- for(i=0;i<myinputs.length;i++){
- if (myinputs[i].name.search(myRegEx)>=0) {
- if (myref[0].checked){
- myinputs[i].checked = true;
- } else {
- myinputs[i].checked = false;
- }
- }
- }
- return false;
-}
-
-function check_multiple()
-{
- for(myi=0;myi<check_multiple.arguments.length;myi++){
- var myinput=document.getElementsByName(""+check_multiple.arguments[myi]);
- myinput[0].checked=true;
- }
- return false;
-}
-
-function check_row(row)
-{
- var myref=document.getElementsByName(row);
- var myinputs=document.getElementsByTagName("input");
- var myRegEx=new RegExp(row);
-// alert myRegEx;
- for(i=0;i<myinputs.length;i++){
- if (myinputs[i].name.search(myRegEx)>=0){
- if (myref[0].checked){
- myinputs[i].checked = true;
- } else {
- myinputs[i].checked = false;
- }
- }
- }
- return false;
-}
-
-function load_macles()
-{
- document.forms.f_pop.reset;
- var mystart="[% index | html %]";
- mystart=mystart.substr(0,mystart.lastIndexOf("_"));
- mystart=mystart.substr(0,mystart.lastIndexOf("_"));
- mystart=mystart+".*";
- var mytags=opener.document.getElementsByTagName("input");
- for (i=0;i<mytags.length;i++){
- if (mytags[i].name.match(mystart)){
- var checkvalue=mytags[i].value;
- var myinput=document.getElementsByName(checkvalue);
- if (myinput.length>0){
- myinput[0].checked=true;
- }
- }
- }
- return false;
-}
-//]]>
-</script>
-</body>
-</html>