Fixes a bug with MARChtml2xml and sync with dev_week
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / cataloguing / addbiblio.tmpl
1 <!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->Koha -- Cataloging: <!-- TMPL_IF NAME="oldbiblionumtagfield" -->Edit MARC Record Number <!-- TMPL_VAR name="biblionumber" --><!-- TMPL_ELSE -->Add MARC Record<!-- /TMPL_IF --><!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
2 <!--TMPL_UNLESS NAME="fromserials" -->
3 <!-- TMPL_INCLUDE NAME="menus.inc" -->
4 <!-- TMPL_INCLUDE NAME="menu-catalogue.inc" -->
5 <!--/TMPL_UNLESS-->
6
7
8 <!-- TMPL_IF name="error" -->
9                         <div class="error">
10                                 <!--TMPL_IF NAME="onloan"-->
11                                 <ul>
12                                         <li>Item currenly onloan you can not DELETE!</li>
13                                         <li><a href="/cgi-bin/koha/mainpage.pl">Return to home page</a></li>
14                                 </ul>
15                                 <!--/TMPL_IF-->
16                                 <!--TMPL_IF NAME="xmlerror"-->
17                                 <ul>
18                                         <li>Non UTF-8 characters present or malformed XML</li>
19                                         <li>Please correct and save.</li>
20                                 </ul>
21                                 <!--/TMPL_IF-->
22                         </div>
23 <!-- /TMPL_IF -->
24 <!--TMPL_UNLESS NAME="onloan"-->
25         <form method="post" name="f" id="f" action="addbiblio.pl">
26 <h1><!-- TMPL_IF NAME="oldbiblionumtagfield" -->Edit MARC Record Number <!-- TMPL_VAR name="oldbiblionumber" --><!-- TMPL_ELSE -->Add MARC Record<!-- /TMPL_IF --> With Framework : <!--TMPL_VAR Name="framework" --></h1>
27
28 <div class="tabitem">
29                 <input type="hidden" name="fromserials" value="<!-- TMPL_VAR NAME="fromserials" -->" />
30                 <input type="hidden" name="op" value="addbiblio" />
31                 <input type="hidden" name="addfield_field" /><input type="hidden" name="duplicateok" value="<!-- TMPL_VAR NAME="duplicateok" -->" />
32                 <input type="hidden" name="frameworkcode" value="<!-- TMPL_VAR NAME="frameworkcode" -->" />
33                 <input type="hidden" name="oldbiblionumber" value="<!-- TMPL_VAR NAME="oldbiblionumber" -->" />
34                 <!-- TMPL_IF name="biblionumber" -->
35                         <input type="button" value="Save Bibliographic Record and go to Items" onclick="Check(this.form);" accesskey="w" class="submit" />
36                 <!-- TMPL_ELSE -->
37                         <!--TMPL_UNLESS NAME="fromserials" -->
38                         <input type="button" value="Add Bibliographic Record and go to Items" onclick="Check(this.form);" accesskey="w" class="submit" />
39                         <!-- TMPL_ELSE -->
40                         <input type="button" value="Add Bibliographic Record" onclick="Check(this.form);" accesskey="w" class="submit" />
41                         <!--/TMPL_UNLESS-->
42                 <!-- /TMPL_IF -->
43         <input type="button" value="z39.50 Search" class="submit" onclick="PopupZ3950(); return false;" / >
44 </div>
45
46 <br>
47         <div class="tabs">
48         <!-- TMPL_LOOP name="BIG_LOOP" -->
49             <a href="#" onclick="active(<!-- TMPL_VAR name="number"-->); return false;" id="link<!-- TMPL_VAR name="number"-->"><!-- TMPL_VAR name="number"--></a>
50         <!--  /TMPL_LOOP -->
51         </div>
52
53 <! -- RESET PAGINATION -->
54 <!-- TMPL_LOOP name="BIG_LOOP" -->
55 <!-- hide every tab except the 1st -->
56 <!-- TMPL_IF name="number" -->
57     <div name="<!-- TMPL_VAR name="number" -->XX" id="<!-- TMPL_VAR name="number" -->XX" class="tab" style="visibility:hidden">
58 <!-- TMPL_ELSE -->
59     <div name="<!-- TMPL_VAR name="number" -->XX" id="<!-- TMPL_VAR name="number" -->XX" class="tab" style="visibility:visible">
60 <!-- /TMPL_IF -->
61 <!-- TMPL_UNLESS name="number" -->
62     <!-- show duplicate warning on tab 0 only -->
63         <!-- TMPL_IF name="duplicatebiblionumber" -->
64                     <div class="error">
65                         <p>Is this a duplicate of <a href="../catalogue/MARCdetail.pl?biblionumber=<!-- TMPL_VAR name="duplicatebiblionumber" -->" onclick="openWindow('../catalogue/MARCdetail.pl?biblionumber=<!-- TMPL_VAR name="duplicatebiblionumber" -->&popup=1', 'Duplicate biblio'; return false;)"><!-- TMPL_VAR name="duplicatetitle" --></a>?</p>
66                         <p>You must either :</p>
67                         <ul>
68                             <li>If it <em>is</em> a duplicate, <a href="additem.pl?biblionumber=<!-- TMPL_VAR name="duplicatebiblionumber" -->">Edit Items</a> of the existing record.</li>
69                             <li>If not, click to <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" /> <a href="#" onclick="confirmnotdup(); return false;">Confirm it's not a duplicate</a></li>
70                         </ul>
71                     </div>
72         <!-- /TMPL_IF -->
73     <!-- /TMPL_UNLESS -->
74     <!-- TMPL_LOOP NAME="innerloop" -->
75                 <div style=";" id="tag<!-- TMPL_VAR name="tag"-->">
76         <!-- TMPL_IF name="tag" -->
77         <p class="MARCtag">
78             <input type="hidden" name="ind_tag" value="<!-- TMPL_VAR NAME="tag" -->">
79             <!-- TMPL_UNLESS name="hide_marc" -->
80                 <a title="<!-- TMPL_VAR NAME="tag_lib" -->"><!-- TMPL_VAR NAME="tag" --></a>
81                 <input tabindex="1" onblur="this.style.backgroundColor='#ffffff';" onfocus="this.style.backgroundColor='#ffff00;'" type="text" <!-- TMPL_IF NAME="fixedfield" --> style="display:none;" <!-- /TMPL_IF --> name="indicator" size="2" maxlength="2" value="<!-- TMPL_VAR NAME="indicator" -->"  class="flat"> -
82             <!-- TMPL_ELSE -->
83                 <input tabindex="1" type="hidden" <!-- TMPL_IF NAME="fixedfield" --> style="display:none;" <!-- /TMPL_IF --> name="indicator" value="<!-- TMPL_VAR NAME="indicator" -->">
84             <!-- /TMPL_UNLESS -->
85             <!-- TMPL_UNLESS NAME="advancedMARCEditor" -->
86             <!-- TMPL_VAR NAME="tag_lib" -->
87             <!-- /TMPL_UNLESS -->
88             <!-- TMPL_IF name="repeatable" --><a href="javascript:AddField('<!-- TMPL_VAR NAME="tag" -->')">+</a><!-- /TMPL_IF -->
89         </p>
90         <!-- /TMPL_IF -->
91         <!-- TMPL_LOOP NAME="subfield_loop" -->
92             <!-- TMPL_IF NAME="visibility" -->
93                 <a tabindex="1" style="color: grey; font-size: 80%; cursor: se-resize;" id="label<!-- TMPL_VAR name="index" -->" onclick="unHideSubfield('subfield<!-- TMPL_VAR NAME="tag" --><!-- TMPL_VAR name="index" -->','label<!-- TMPL_VAR name="index" -->')">
94                     <!-- TMPL_VAR NAME="subfield" -->
95                 </a>
96             <!-- /TMPL_IF -->
97             <div style="<!-- TMPL_VAR NAME='visibility' -->;" id="subfield<!-- TMPL_VAR NAME='tag' --><!-- TMPL_VAR NAME='index' -->">
98                 <p>
99                 <!-- TMPL_UNLESS NAME="advancedMARCEditor" -->
100                     <label <!-- TMPL_IF NAME="fixedfield" --> style="display:none;" <!-- /TMPL_IF --> class="labelsubfield">
101                 <!-- /TMPL_UNLESS -->
102                 <!-- TMPL_UNLESS name="hide_marc" -->
103                     <img style="cursor: crosshair; color: grey; font-size: 80%;" <!-- TMPL_IF NAME="fixedfield" --> style="display:none;" <!-- /TMPL_IF --> src="<!-- TMPL_VAR NAME="themelang" -->/images/up.png" onclick="upSubfield('subfield<!-- TMPL_VAR NAME="tag" --><!-- TMPL_VAR name="index" -->')"/>
104                         <input title="<!-- TMPL_VAR NAME="marc_lib_plain" -->" style=" <!-- TMPL_IF NAME="fixedfield" -->display:none; <!-- /TMPL_IF -->border:0;" type="text" name="subfield" id="subfield<!--TMPL_VAR NAME="id"-->"  value="<!-- TMPL_VAR NAME="subfield" -->" size="1" maxlength="1" class="flat" DISABLE READONLY tabindex=-1 />
105                 <!-- TMPL_ELSE -->
106                     <input type="hidden" name="subfield" id="subfield<!--TMPL_VAR NAME="id"-->" value="<!-- TMPL_VAR NAME="subfield" -->"/>
107                 <!-- /TMPL_UNLESS -->
108                 <!-- TMPL_UNLESS NAME="advancedMARCEditor" -->
109                     <!-- TMPL_IF name="mandatory" --><b><!-- /TMPL_IF -->
110                     <!-- TMPL_VAR NAME="marc_lib" -->
111                     <!-- TMPL_IF name="mandatory" --> *</b><!-- /TMPL_IF -->
112                     </label>
113                 <!-- /TMPL_UNLESS -->
114                 <!-- TMPL_VAR NAME="marc_value" -->
115                 <!-- TMPL_IF NAME="repeatable" -->
116                     <a style="cursor: crosshair; color: grey; font-size: 80%;" onclick="cloneSubfield('subfield<!-- TMPL_VAR NAME="tag" --><!-- TMPL_VAR name="index" -->')">+</a>
117                 <!-- /TMPL_IF -->
118         <input type="hidden" name="tagindex" value="<!-- TMPL_VAR NAME="id" -->"/>
119                 <input type="hidden" name="tag" value="<!-- TMPL_VAR NAME="tag" -->"/>
120                 <input type="hidden" name="subfieldYYY" value="<!-- TMPL_VAR NAME="subfield" -->" size="2" maxlength="1"/>
121                 <input type="hidden" name="mandatory" value="<!-- TMPL_VAR NAME="mandatory" -->"/>
122                 <input type="hidden" name="tag_mandatory" value="<!-- TMPL_VAR NAME="tag_mandatory" -->"/>
123                 </p>
124             </div>
125         <!-- /TMPL_LOOP -->
126         </div>
127     <!-- /TMPL_LOOP -->
128     </div>
129 <!-- /TMPL_LOOP -->
130                 <div name="hidden" id="hidden" class="tab">
131                 <!-- TMPL_LOOP NAME="hidden_loop" -->
132                                 <input type="hidden" name="tag" value="<!-- TMPL_VAR NAME="tag" -->">
133                                 <input type="hidden" name="subfield" id="subfield<!--TMPL_VAR NAME="id"-->" value="<!-- TMPL_VAR NAME="subfield" -->">
134                                 <input type="hidden" name="mandatory" value="<!-- TMPL_VAR NAME="mandatory" -->">
135                                 <input type="hidden" name="tag_mandatory" value="<!-- TMPL_VAR NAME="tag_mandatory" -->">
136                 <!-- /TMPL_LOOP -->
137                 </div>
138                 <!-- TMPL_IF name="oldbiblionumtagfield" -->
139                         <input type="hidden" name="tag" value="<!-- TMPL_VAR NAME="oldbiblionumtagfield" -->">
140                         <input type="hidden" name="subfield" id="subfield<!--TMPL_VAR NAME="id"-->" value="<!-- TMPL_VAR NAME="oldbiblionumtagsubfield" -->">
141                         <input type="hidden" name="field_value" value="<!-- TMPL_VAR NAME="oldbiblionumber" -->">
142                         <input type="hidden" name="mandatory" value="0">
143                         <input type="hidden" name="tag" value="<!-- TMPL_VAR NAME="oldbiblioitemnumtagfield" -->">
144                         <input type="hidden" id="subfield<!--TMPL_VAR NAME="id"-->" name="subfield" value="<!-- TMPL_VAR NAME="oldbiblioitemnumtagsubfield" -->">
145                                 <input type="hidden" name="mandatory" value="0">
146                                 <input type="hidden" name="tag_mandatory" value="<!-- TMPL_VAR NAME="tag_mandatory" -->">
147                 <!-- /TMPL_IF -->
148         </form>
149
150
151
152 <script language="JavaScript" type="text/javascript">
153 function loading(){
154         document.getElementById("loading").style.display = "none";
155 }
156 function _(s) { return s } // dummy function for gettext
157         <!--TMPL_IF name="exit"-->
158 var     finished=CloseMe(<!--TMPL_VAR NAME="biblionumber"-->,'<!--TMPL_VAR NAME="title"-->');
159         <!--/TMPL_IF-->
160 function confirmnotdup(){
161         document.getElementById("confirm_not_duplicate").value = 1;
162         var checkform = document.getElementById("f");
163         Check(checkform);
164 }
165 function active(numlayer)
166 {
167         for (i=0; i <= 9 ; i++ ) {
168                 ong = i+"XX";
169                 link = "link"+i;
170                 if (numlayer==i) {
171                         with(document){
172                         if (document.getElementById(ong)){
173                                 document.getElementById(ong).style.visibility="visible";
174                         }
175                         if(document.getElementById(link)){
176                                 document.getElementById(link).style.color="#000066";
177                                 document.getElementById(link).style.backgroundColor="#FFFFCC";
178                         }
179                         }
180                 } else {
181                         with(document){
182                         if (document.getElementById(ong)){
183                                 document.getElementById(ong).style.visibility="hidden";
184                         }
185                         if (document.getElementById(link)) {
186                                 document.getElementById(link).style.color="#669999";
187                                 document.getElementById(link).style.backgroundColor="#D8DEB8";
188                         }
189                         }
190                 }
191         }
192 }
193 active(0);
194 function Check(f) {
195         document.body.style.cursor ="wait";
196         // Scan for nonempty fields
197         var field_is_nonempty_p = new Array();
198         for (i=0 ; i<f.field_value.length ; i++) {
199             field_is_nonempty_p[f.tag[i].value] = 0;
200         }
201         for (i=0 ; i<f.field_value.length ; i++) {
202             if (f.field_value[i].value.length != 0) {
203                 field_is_nonempty_p[f.tag[i].value] += 1;
204             }
205         }
206
207         // Scan for missing mandatory subfields
208         var total_missing_mandatory_subfields = 0;
209         var missing_mandatory_subfields = new Array();
210         for (i=0 ; i<f.field_value.length-2 ; i++) {
211                 if (f.field_value[i].value.length==0 && f.mandatory[i].value==1) {
212                     // We should not flag an error unless the tag is also
213                     // mandatory, or if something else in the tag is entered
214
215                     if (f.tag_mandatory[i].value == 1 || field_is_nonempty_p[f.tag[i].value]) {
216                                 f.field_value[i].style.backgroundColor="#FF0000";
217                                 total_missing_mandatory_subfields++;
218                         if (f.field_value[i].parentNode.tagName == "B")
219                         {
220                                 missing_mandatory_subfields.push(f.field_value[i].innerHTML + " (tab " +  f.field_value[i].parentNode.parentNode.parentNode.parentNode.id.substr(0,1) + ")");
221                         }
222                         else
223                         {
224                                 missing_mandatory_subfields.push(f.field_value[i].innerHTML + " (tab " +  f.field_value[i].parentNode.parentNode.parentNode.id.substr(0,1) + ")");
225                         }
226
227                         }
228                 } else {
229                         f.field_value[i].style.backgroundColor="#FFFFFF";
230                 }
231         }
232
233         // Scan for missing mandatory tags
234         var total_missing_mandatory_tags = 0;
235         var seen_mandatory_tag_p = new Array();
236         var missing_mandatory_tags = new Array();
237         for (i=0 ; i<f.field_value.length ; i++) {
238             var j = f.tag[i].value;
239             if (!field_is_nonempty_p[j] && f.tag_mandatory[i].value == 1) {
240                 if (seen_mandatory_tag_p[j] != 1) {
241                     seen_mandatory_tag_p[j] = 1;
242                     total_missing_mandatory_tags++;
243                     if (f.field_value[i].parentNode.tagName == "B")
244                     {
245                                 missing_mandatory_tags.push(f.field_value[i].innerHTML + " (tab " +  f.field_value[i].parentNode.parentNode.parentNode.parentNode.id.substr(0,1) + ")");
246                     }
247                     else
248                     {
249                                 missing_mandatory_tags.push(f.field_value[i].innerHTML + " (tab " +  f.field_value[i].parentNode.parentNode.parentNode.id.substr(0,1) + ")");
250                         }
251                 }
252                 f.field_value[i].style.backgroundColor="#FFFF00";
253             }
254         }
255
256         var total_errors = total_missing_mandatory_tags + total_missing_mandatory_subfields;
257         var alertString2;
258         if (total_errors!=0) {
259                 alertString2  = _("Form not submitted because of the following problem(s)");
260                 alertString2 += "\n------------------------------------------------------------------------------------\n";
261                 alertString2 += "\n- "+ total_missing_mandatory_tags +_(" mandatory tags empty");
262                 for (i=0; i<missing_mandatory_tags.length; i++)
263                 {
264                         alertString2 += "\n--->"+ missing_mandatory_tags[i];
265                 }
266                 alertString2 += "\n- "+ total_missing_mandatory_subfields +_(" mandatory fields empty (see bold subfields)");
267                 for (i=0; i<missing_mandatory_subfields.length; i++)
268                 {
269                         alertString2 += "\n--->"+ missing_mandatory_subfields[i];
270                 }
271                 alert(alertString2);
272         } else {
273                 document.forms['f'].submit();
274         }
275 }
276 function Dopop(link,id) {
277  var subf=document.getElementsByName('subfield'+id);
278 var fields=document.getElementsByName('field_value'+id);
279 var defaultvalue="";
280         for (var s=0; s<fields.length; s++){
281                 if (subf.item(s).value == 'a'){
282                 defaultvalue=fields.item(s).value;
283                 }
284         }
285
286         newin=window.open(link+"&result="+defaultvalue,"",'width=550,height=550,toolbar=false,scrollbars=yes');
287
288 }
289
290 function PopupZ3950() {
291     var strQuery="";
292         var error = 0;
293         for (i=0 ; i<document.forms['f'].field_value.length ; i++) {
294                 if (document.forms['f'].tag[i].value == "<!--TMPL_VAR NAME="isbntag"-->"){
295                      if (document.forms['f'].subfieldYYY[i].value =="<!--TMPL_VAR NAME="isbnsub"-->"){
296                         if(document.forms['f'].field_value[i].value.length>0) {
297                         strQuery += "&isbn="+document.forms['f'].field_value[i].value;                  
298                         } else {
299                         error++;
300                         }
301                     }
302                 }
303                 if (document.forms['f'].tag[i].value == "<!--TMPL_VAR NAME="titletag"-->"){
304                     if (document.forms['f'].subfieldYYY[i].value == "<!--TMPL_VAR NAME="titlesub"-->"){
305                         if(document.forms['f'].field_value[i].value.length>0) {
306                            strQuery += "&title="+document.forms['f'].field_value[i].value;
307                         } else {
308                         error++;
309                         }
310                     }
311                 }
312                 if (document.forms['f'].tag[i].value == "<!--TMPL_VAR NAME="authortag"-->"){
313                    if (document.forms['f'].subfieldYYY[i].value == "<!--TMPL_VAR NAME="authorsub"-->"){
314                         if(document.forms['f'].field_value[i].value.length>0) {
315                           strQuery += "&author="+document.forms['f'].field_value[i].value;
316                         } else { 
317                         error++;
318                         }
319                     }
320                 }
321                 if (document.forms['f'].tag[i].value == "<!--TMPL_VAR NAME="issntag"-->"){
322                      if (document.forms['f'].subfieldYYY[i].value == "<!--TMPL_VAR NAME="issnsub"-->"){
323                              if(document.forms['f'].field_value[i].value.length>0) {
324                          strQuery += "&issn="+document.forms['f'].field_value[i].value;
325                         } else {
326                         error++;
327                         }
328                       }
329                 }
330         }
331         if(error < 4){
332         newin=window.open("../z3950/search.pl?oldbiblionumber=<!-- TMPL_VAR NAME="biblionumber" -->"+strQuery,"z3950search",'width=640,height=400,location=yes,toolbar=no,scrollbars=yes');
333         } else {
334                 alert("To perform a z39.50 search, you must enter at least one of the following: \n\n ISBN\n ISSN\n Title\n Author\n");
335         }
336 }
337
338
339 function Changefwk(FwkList) {
340   var fwk = FwkList.options[FwkList.selectedIndex].value;
341   window.location = "addbiblio.pl?oldbiblionumber=<!--TMPL_VAR Name="oldbiblionumber"-->&frameworkcode="+fwk;
342 }
343
344
345
346 function AddField(field) {
347         document.forms['f'].op.value = "addfield";
348         document.forms['f'].addfield_field.value=field;
349         document.f.submit();
350 }
351
352 function cloneSubfield(index) {
353  var original = document.getElementById(index);
354  var clone = original.cloneNode(true);
355  clone.setAttribute("id", index + index); 
356 // orginput : the value of the original field (in [0] if hide_marc=1, otherwise in [1]
357 // image : the up button. don't exist is hide_marc=1
358  <!-- TMPL_IF name="hide_marc" -->
359         var orginput = original.getElementsByTagName('input')[0];
360  <!-- TMPL_ELSE -->
361         var orginput = original.getElementsByTagName('input')[1];
362         image = clone.getElementsByTagName('img')[0];
363         image.setAttribute("onclick","upSubfield('" + index + index + "')");
364  <!-- /TMPL_IF -->
365  trigger = original.getElementsByTagName('a')[0];
366  if (trigger) {
367 //      trigger.parentNode.removeChild(trigger);
368  }
369  clonetrigger = clone.getElementsByTagName('a')[0];
370  clonetrigger.setAttribute("onclick","cloneSubfield('" + index + index + "')");
371  clone.setAttribute("tabindex","1");
372  orginput.value = '';
373  original.parentNode.insertBefore( clone, original); 
374 }
375
376 function upSubfield(index) {
377         try{
378                 var line = document.getElementById(index); // get the line where the user has clicked.
379         } catch(e) {
380                 return;
381         }
382         var tag = line.parentNode; // get the dad of this line. (should be "<div tag=XXX>")
383         
384         // getting all subfields for this tag
385         var subfields = tag.getElementsByTagName('div');
386         var subfieldsLength = subfields.length;
387         if(subfieldsLength<=1) return; // nothing to do if there is just one subfield.
388         // among all subfields 
389         for(var i=0;i<subfieldsLength;i++){ 
390                 if(subfields[i].getAttribute('id') == index){ //looking for the subfield which is clicked :
391                         if(i==0){ // if the clicked subfield is on the top
392                                 tag.appendChild(subfields[0]);
393                                 return;
394                         }else{
395                                 var lineAbove = subfields[i-1];
396                                 tag.insertBefore(line,lineAbove);
397                                 return;
398                         }
399                 }
400         }
401 }
402
403 function unHideSubfield(index,labelindex) {
404         subfield = document.getElementById(index);
405         subfield.style.display = 'block';
406         label = document.getElementById(labelindex);
407         label.style.display='none';     
408 }
409 function CloseMe(biblionumber,title) {
410         var myfield = opener.document.getElementById('biblionumber');
411          myfield.value = biblionumber;
412         var myfield = opener.document.getElementById('title');
413          myfield.value = title;
414         self.close();
415 return false;
416         }
417 </script>
418 <!--/TMPL_UNLESS-->
419 </div>
420 <!-- TMPL_INCLUDE NAME="intranet-bottom.inc" -->