PageSourceSearch

https://casadecultura.org/View/ModulesVue/Web/const_and_helpers.js?1790282715

js casadecultura.org collected 2026-09-24 20:45:19 UTC 7,730 bytes, 240 lines download raw bytes

1const CONST_url_activitats_img = '/images/activitats/A-';
2const CONST_url_cicles_img = '/images/cicles/C-';
3const CONST_api_web = '/apiweb/';
4const CONST_url_front_img = '/WebFiles/Imatges/Nodes/';
5
6// CURSOS
7
8const CONST_RESTRINGIT_EXCEL = '1';
9const CONST_RESTRINGIT_NOMES_UNA = '2';
10const CONST_RESTRINGIT_NOMES_UN_COP = '3';
11
12// Matricules
13
14const CONST_PAGAMENT_CAP = '0';
15const CONST_PAGAMENT_METALIC = '21';
16const CONST_PAGAMENT_TARGETA= '20';
17const CONST_PAGAMENT_TELEFON = '23';
18const CONST_PAGAMENT_TRANSFERENCIA = '24'; 
19const CONST_PAGAMENT_DOMICILIACIO = '33';
20const CONST_PAGAMENT_CODI_DE_BARRES = '34';
21const CONST_PAGAMENT_RESERVA = '35';
22const CONST_PAGAMENT_LLISTA_ESPERA = '36';    
23const CONST_PAGAMENT_INVITACIO = '60';  
24const CONST_PAGAMENT_DATAFON = '61';
25
26const CONST_ESTAT_LLISTA_ESPERA = '14';
27
28var normalize = (function() {
29    var from = "ÃÀÁÄÂÈÉËÊÌÍÏÎÒÓÖÔÙÚÜÛãàáäâèéëêìíïîòóöôùúüûÑñÇç.", 
30        to   = "AAAAAEEEEIIIIOOOOUUUUaaaaaeeeeiiiioooouuuunncc_",
31        mapping = {};
32    
33    for(var i = 0, j = from.length; i < j; i++ )
34        mapping[ from.charAt( i ) ] = to.charAt( i );
35    
36    return function( str ) {
37        var ret = [];
38        for( var i = 0, j = str.length; i < j; i++ ) {
39            var c = str.charAt( i );
40            if( mapping.hasOwnProperty( str.charAt( i ) ) )
41                ret.push( mapping[ c ] );
42            else
43                ret.push( c );
44        }      
45        return ret.join( '' ).replace( /[^-A-Za-z0-9]+/g, '-' ).toLowerCase();
46    }
47    
48    })();
49
50function EsCapDeSetmana( ObjecteData ) {
51    const dt = new Date(ObjecteData.any, (ObjecteData.mes - 1), ObjecteData.dia, 12, 00,00);    
52    return ( dt.getDay() == 6 || dt.getDay() == 0 );
53}
54
55// Objecte data el retorna la funció ConvertirData(Data, 'Object')
56function DiaSetmana( ObjecteData ){
57    var dias=["diumenge", "dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte"];
58    var dt = new Date(ObjecteData.any, (ObjecteData.mes - 1), ObjecteData.dia, 12, 00,00);    
59    return dias[dt.getUTCDay()];
60};
61
62// Objecte data el retorna la funció ConvertirData(Data, 'Object')
63function MesNom( ObjecteData , $NomesMes = false){
64    let mesos=["de gener", "de febrer", "de març", "d'abril", "de maig", "de juny", "de juliol", "d'agost", "de setembre", "d'octubre", "de novembre", "de desembre"];        
65    let mesosSols = ["gener", "febrer", "març", "abril", "maig", "juny", "juliol", "agost", "setembre", "octubre", "novembre", "desembre"];        
66    let RespostaMesos = []; 
67
68    if($NomesMes) RespostaMesos = mesosSols[(parseInt(ObjecteData.mes) - 1)];
69    else RespostaMesos = mesos[(parseInt(ObjecteData.mes) - 1)];
70    return RespostaMesos;
71};
72
73
74function ConvertirData( DataBDD, ReturnType = 'A' ) {
75    const DataArray = DataBDD.split('-');
76    const Any = DataArray[0];
77    const Mes = DataArray[1];
78    const Dia = DataArray[2];
79
80    if(ReturnType == 'A') return DataArray;
81    else if(ReturnType == 'TDMA') {
82        return Dia + '/' + Mes + '/' + Any;
83    } else if(ReturnType == 'TDM') {
84        return Dia + '/' + Mes;
85    } else if(ReturnType == 'TD') {
86        return Dia;
87    } else if(ReturnType == 'Object') {
88        return {'dia': Dia, 'mes': Mes, 'any': Any };
89    } else if(ReturnType == 'Javascript') {
90        return new Date(Any, (Mes - 1), Dia, 0, 0, 0);
91    } else if(ReturnType == 'Text') {        
92        return String(Dia) + ' ' + MesNom({'dia': Dia, 'mes': Mes, 'any': Any });
93    } 
94
95
96}
97
98function ConvertirHora( HoraBDD , ReturnType = 'THM' ) {
99    const HoraArray = HoraBDD.split(':');
100
101    if( ReturnType == 'THM' ){
102        return HoraArray[0] + '.' + HoraArray[1];
103    }
104}
105
106function ValidaTelefon(valor) {
107    return (/^([0-9]+){9}$/).test(valor);
108}
109
110function ValidaEmail(valor) {
111    const test = /^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;
112    return test.test(valor);
113  }
114
115
116function ValidaDNI(value, NoDni = false) {
117    
118    // Si no tenim DNI, enviem el passaport I VALIDEM automàticament amb més de 8 caràcters    
119    if (NoDni && value.length > 8) return true;
120
121    var validChars = 'TRWAGMYFPDXBNJZSQVHLCKET';
122    var nifRexp = /^[0-9]{8}[TRWAGMYFPDXBNJZSQVHLCKET]{1}$/i;
123    var nieRexp = /^[XYZ]{1}[0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKET]{1}$/i;
124    var str = value.toString().toUpperCase();
125  
126    // Si el format no és nif o nie, pot ser cif... sinó és cif retornem false
127    if (!nifRexp.test(str) && !nieRexp.test(str)) return ValidaCIF(str);
128  
129    var nie = str
130      .replace(/^[X]/, '0')
131      .replace(/^[Y]/, '1')
132      .replace(/^[Z]/, '2');
133  
134    var letter = str.substr(-1);
135    var charIndex = parseInt(nie.substr(0, 8)) % 23;
136  
137    if (validChars.charAt(charIndex) === letter) return true;        
138    else return false;
139
140  }
141
142
143  function ValidaCIF( cif ) {
144    
145    var CIF_REGEX = /^([ABCDEFGHJKLMNPQRSUVW])(\d{7})([0-9A-J])$/;    
146    var match = cif.match( CIF_REGEX );
147
148    if( !match ) return false;
149
150    var letter  = match[1],
151        number  = match[2],
152        control = match[3];
153
154    var even_sum = 0;
155    var odd_sum = 0;
156    var n;
157
158    for ( var i = 0; i < number.length; i++) {
159      n = parseInt( number[i], 10 );
160
161      // Odd positions (Even index equals to odd position. i=0 equals first position)
162      if ( i % 2 === 0 ) {
163        // Odd positions are multiplied first.
164        n *= 2;
165
166        // If the multiplication is bigger than 10 we need to adjust
167        odd_sum += n < 10 ? n : n - 9;
168
169      // Even positions
170      // Just sum them
171      } else {
172        even_sum += n;
173      }
174
175    }
176
177    var control_digit = (10 - (even_sum + odd_sum).toString().substr(-1) );
178    var control_letter = 'JABCDEFGHI'.substr( control_digit, 1 );
179
180    // Control must be a digit
181    if ( letter.match( /[ABEH]/ ) ) {
182      return control == control_digit;
183
184    // Control must be a letter
185    } else if ( letter.match( /[KPQS]/ ) ) {
186      return control == control_letter;
187
188    // Can be either
189    } else {
190      return control == control_digit || control == control_letter;
191    }
192
193  }
194
195// Horaris[] = { DIA, HORA, ESPAI }
196function ResumDates(Horaris){
197
198    let ResumDates = '';
199    let $PrimerDia = '';
200    let $UltimDia = '';                
201    let $HoraInici = '';
202    let $Espai = '';
203
204    Horaris.forEach( H => {
205        $PrimerDia = ( $PrimerDia.length == 0 ) ? H.DIA : $PrimerDia ;
206        $HoraInici = ( $HoraInici.length == 0 ) ? H.HORA : $HoraInici ;
207        $Espai = ( $Espai.length == 0 ) ? H.ESPAI : $Espai ;
208        $UltimDia = H.DIA;
209    });
210
211    //Miro quin dia de la setmana és
212    let PrimerDiaO = ConvertirData( $PrimerDia , 'Object');        
213    let UltimDiaO = ConvertirData( $UltimDia, 'Object');
214    let DiaSetmanaNom = DiaSetmana( PrimerDiaO );                
215
216    if($PrimerDia == $UltimDia ) { ResumDates = 'El ' + DiaSetmanaNom + ' ' + PrimerDiaO.dia + ' ' + MesNom(PrimerDiaO) + ' de ' + PrimerDiaO.any }
217    else { ResumDates = 'Del ' + PrimerDiaO.dia + ' de ' + MesNom(PrimerDiaO) + ' ' + PrimerDiaO.any + ' al ' + UltimDiaO.dia + ' ' + MesNom(UltimDiaO) + ' de ' + UltimDiaO.any  }
218    
219    ResumDates = '<p>' + ResumDates + '</p><p>
219' + ConvertirHora($HoraInici) + ' h - ' + $Espai + '</p>'; 
220    
221    return ResumDates;
222}
223
224/********************************* */
225/*** GESTIÓ D'ERRORS ************* */
226
227// Gestió d'errors als formularis
228function const_and_helpers_iniciaErrors(form) {
229    for(O of Object.keys(form)) {
230        form[O] = true;
231    }
232    return form;
233}
234
235function const_and_helpers_isFormValid(form, field) {    
236    for( key of Object.keys(form)) {
237        if(!form[key]) { return false; }
238    }
239    return true;            
240}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.