[Koha-patches] [PATCH] (bug #3170) check if mandatory fields are not empty
Nahuel ANGELINETTI
nahuel.angelinetti at biblibre.com
Tue Apr 28 17:06:44 CEST 2009
This patch make authority and biblio add/edit to check that at least one subfield of mandatory fields are filled-in.
---
.../prog/en/modules/authorities/authorities.tmpl | 48 ++++++++++++++++++-
.../prog/en/modules/cataloguing/addbiblio.tmpl | 49 ++++++++++++++++++-
2 files changed, 92 insertions(+), 5 deletions(-)
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/authorities.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/authorities.tmpl
index c27a01f..f21e161 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/authorities.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/authorities.tmpl
@@ -35,12 +35,24 @@
*/
function AreMandatoriesNotOk(){
var mandatories = new Array();
+ var mandatoriesfields = new Array();
var tab = new Array();
var label = new Array();
var flag=0;
- <!-- TMPL_LOOP NAME='BIG_LOOP' --><!-- TMPL_LOOP NAME='innerloop' --><!-- TMPL_LOOP NAME='subfield_loop'--><!-- TMPL_IF NAME='mandatory'-->mandatories.push("<!-- TMPL_VAR NAME='id' -->");
+
+ <!-- TMPL_LOOP NAME='BIG_LOOP' -->
+ <!-- TMPL_LOOP NAME='innerloop' -->
+ <!-- TMPL_IF NAME="mandatory" -->
+ mandatoriesfields.push(new Array("<!-- TMPL_VAR NAME="tag" -->","<!-- TMPL_VAR NAME="index" -->"));
+ <!-- /TMPL_IF -->
+ <!-- TMPL_LOOP NAME='subfield_loop'-->
+ <!-- TMPL_IF NAME='mandatory'-->mandatories.push("<!-- TMPL_VAR NAME='id' -->");
tab.push("<!-- TMPL_VAR NAME='number' -->");
- label.push("<!-- TMPL_VAR NAME='marc_lib' ESCAPE=JS-->");<!-- /TMPL_IF --><!-- /TMPL_LOOP --><!-- /TMPL_LOOP --><!-- /TMPL_LOOP -->
+ label.push("<!-- TMPL_VAR NAME='marc_lib' ESCAPE=JS-->");
+ <!-- /TMPL_IF -->
+ <!-- /TMPL_LOOP -->
+ <!-- /TMPL_LOOP -->
+ <!-- /TMPL_LOOP -->
var StrAlert = _("Can't save this record because the following field aren't filled :\n\n");
for(var i=0,len=mandatories.length; i<len ; i++){
//alert ( mandatories[i]);
@@ -51,6 +63,38 @@ function AreMandatoriesNotOk(){
StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
}
}
+
+ /* Check for mandatories field(not subfields) */
+ for(var i=0,len=mandatoriesfields.length; i<len; i++){
+ isempty = true;
+ arr = mandatoriesfields[i];
+ divid = "tag_" + arr[0] + "_" + arr[1];
+ varegexp = new RegExp("^tag_" + arr[0] + "_code_");
+
+ elem = document.getElementById(divid);
+ eleminputs = elem.getElementsByTagName('input');
+
+ for(var j=0,len2=eleminputs.length; j<len2; j++){
+
+ if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
+ /* tag_801_subfield_c_841304_545657 */
+ inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[1]);
+
+ for( var k=0; k<len2; k++){
+ if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
+ isempty = false
+ }
+ }
+ }
+ }
+
+ if(isempty){
+ flag = 1;
+ StrAlert += "\t* Field " + arr[0] + " is mandatory, at least one of its subfields must be filled\n";
+ }
+
+ }
+
if(flag){
return StrAlert;
} else {
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tmpl
index 407d4a0..f9a4487 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tmpl
@@ -72,14 +72,25 @@ function PopupZ3950() {
*/
function AreMandatoriesNotOk(){
var mandatories = new Array();
+ var mandatoriesfields = new Array();
var tab = new Array();
var label = new Array();
var flag=0;
var tabflag= new Array();
- <!-- TMPL_LOOP NAME='BIG_LOOP' --><!-- TMPL_LOOP NAME='innerloop' --><!-- TMPL_LOOP NAME='subfield_loop'--><!-- TMPL_IF NAME='mandatory'-->mandatories.push("<!-- TMPL_VAR NAME='id' -->");
+ <!-- TMPL_LOOP NAME='BIG_LOOP' -->
+ <!-- TMPL_LOOP NAME='innerloop' -->
+ <!-- TMPL_IF NAME="mandatory" -->
+ mandatoriesfields.push(new Array("<!-- TMPL_VAR NAME="tag" -->","<!-- TMPL_VAR NAME="index" -->"));
+ <!-- /TMPL_IF -->
+ <!-- TMPL_LOOP NAME='subfield_loop'-->
+ <!-- TMPL_IF NAME='mandatory'-->
+ mandatories.push("<!-- TMPL_VAR NAME='id' -->");
tab.push("<!-- TMPL_VAR NAME='number' -->");
label.push("<!-- TMPL_VAR NAME='marc_lib' -->");
- <!-- /TMPL_IF --><!-- /TMPL_LOOP --><!-- /TMPL_LOOP --><!-- /TMPL_LOOP -->
+ <!-- /TMPL_IF -->
+ <!-- /TMPL_LOOP -->
+ <!-- /TMPL_LOOP -->
+ <!-- /TMPL_LOOP -->
var StrAlert = _("Can't save this record because the following field aren't filled :\n\n");
for(var i=0,len=mandatories.length; i<len ; i++){
var tag=mandatories[i].substr(4,3);
@@ -105,7 +116,39 @@ function AreMandatoriesNotOk(){
//StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
flag=1;
}
- }
+ }
+
+ /* Check for mandatories field(not subfields) */
+ for(var i=0,len=mandatoriesfields.length; i<len; i++){
+ isempty = true;
+ arr = mandatoriesfields[i];
+ divid = "tag_" + arr[0] + "_" + arr[1];
+ varegexp = new RegExp("^tag_" + arr[0] + "_code_");
+
+ elem = document.getElementById(divid);
+ eleminputs = elem.getElementsByTagName('input');
+
+ for(var j=0,len2=eleminputs.length; j<len2; j++){
+
+ if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
+ /* tag_801_subfield_c_841304_545657 */
+ inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[1]);
+
+ for( var k=0; k<len2; k++){
+ if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
+ isempty = false
+ }
+ }
+ }
+ }
+
+ if(isempty){
+ flag = 1;
+ StrAlert += "\t* Field " + arr[0] + " is mandatory, at least one of its subfields must be filled.\n";
+ }
+
+ }
+
if(flag){
return StrAlert;
} else {
--
1.6.0.4
More information about the Koha-patches
mailing list