PageSourceSearch

https://www.argentina.gob.ar/profiles/argentinagobar/modules/contrib/jgm_subastas/js/aabe.js?tm7h89

js argentina.gob.ar collected 2026-10-09 21:59:02 UTC 10,158 bytes, 264 lines download raw bytes

1(function ($) {
2  $(document).ready(function () {
3    // Campos que siempre deben estar ocultos
4    const camposSiempreOcultos = [
5      '.field-name-field-marca',
6      '.field-name-field-modelo'
7    ];
8    
9    const camposOcultarEnConcesion = [
10      '.field-name-field-tipo-proyecto',
11    ];
12    const camposSoloEnConcesion = [
13      '.field-name-field-destino',
14      '.field-name-field-plazo',
15      '.field-name-field-tipo-de-plazo',
16      '.field-name-field-objeto'
17    ];
18    const camposOcultarEnMueble = [
19      '.field-name-field-tipo-proyecto',
20      '.field-name-field-superficie-decimal',
21      '.field-name-field-ba-os',
22      '.field-name-field-ambientes',
23      '.field-name-field-dormitorios',
24      '.field-name-field-cocheras',
25      '.field-name-field-metros-cuadrados-cubiertos',
26      '.field-name-field-antig-edad',
27      '.group-domicilio-propiedad',
28      '.group-mapa'
29    ];
30    const camposSoloEnMuebles = [
31      '.field-name-field-tipo-de-bien',
32      '.field-name-field-kilometraje',
33      '.field-name-field-a-o',
34      '.field-name-field-dominio',
35      '.field-name-field-etiqueta-del-bien',
36      '.field-name-field-descripci-n-del-bien'
37    ];
38
39    // Función para ocultar campos que siempre deben estar ocultos
40    function ocultarCamposSiempre() {
41      camposSiempreOcultos.forEach(selector => $(selector).hide());
42    }
43
44    // Función para cambiar el label del campo descripción según la etiqueta seleccionada
45    function cambiarLabelDescripcion() {
46      var etiquetaSeleccionada = $('#edit-field-etiqueta-del-bien-und').val();
47      var labelDescripcion = $('label[for="edit-field-descripci-n-del-bien-und-0-value"]');
48      
49      if (etiquetaSeleccionada === '_none') {
50            // Vaciar el campo de entrada
51            $('#edit-field-descripci-n-del-bien-und-0-value').val('');
52      }
53      if (etiquetaSeleccionada === 'marca_modelo') {
54        labelDescripcion.text('Marca / modelo');
55      } else {
56        // Restaurar el label original (puedes ajustar este texto según el label original)
57        labelDescripcion.text('Descripción del bien');
58      }
59    }
60
61
62    function toggleSubtipo() {
63      var tipoSeleccionado = $('input[name="field_tipo_aabe[und]"]:checked').val();
64      if (tipoSeleccionado === 'aabe-mueble') {
65        $('#edit-field-subtipo-aabe').hide();
66      } else {
67        $('#edit-field-subtipo-aabe').show();
68      }
69    }
70
71    function togglePorSubtipo() {
72      var subtipoSeleccionado = $('input[name="field_subtipo_aabe[und]"]:checked').val();
73      var tipoSeleccionado = $('input[name="field_tipo_aabe[und]"]:checked').val();
74      // Asegurarse de que los campos de concesión solo se muestren cuando el tipo NO es mueble
75      if (subtipoSeleccionado === 'concesion' && tipoSeleccionado !== 'aabe-mueble') {
76        camposOcultarEnConcesion.forEach(selector => $(selector).hide());
77        camposSoloEnConcesion.forEach(selector => $(selector).show());
78      } else {
79        camposOcultarEnConcesion.forEach(selector => $(selector).show());
80        camposSoloEnConcesion.forEach(selector => $(selector).hide());
81      }
82      // Cambiar etiqueta de "Precio base" a "Canon base" si es concesión e inmueble
83      if (subtipoSeleccionado === 'concesion' && tipoSeleccionado !== 'aabe-mueble') {
84        // $('label[for="edit-field-precio-subasta-und-0-value"]').text('Canon base');
85        $('label[for="edit-field-precio-subasta-decimal-und-0-value"]').text('Canon base');
86        
87      } else {
88        // $('label[for="edit-field-precio-subasta-und-0-value"]').text('Precio base');
89        $('label[for="edit-field-precio-subasta-decimal-und-0-value"]').text('Precio base');
90        
91      }
92    }
93
94    function togglePorTipo() {
95      var tipoSeleccionado = $('input[name="field_tipo_aabe[und]"]:checked').val();
96      if (tipoSeleccionado === 'aabe-mueble') {
97        camposOcultarEnMueble.forEach(selector => $(selector).hide());
98        camposSoloEnMuebles.forEach(selector => $(selector).show());
99        camposSoloEnConcesion.forEach(selector => $(selector).hide());
100      } else {
101        camposOcultarEnMueble.forEach(selector => $(selector).show());
102        camposSoloEnMuebles.forEach(selector => $(selector).hide());
103        togglePorSubtipo();
104      }
105      // Cambiar solo el primer título del fieldset sin duplicar texto
106      const tituloFieldset = $('.group-propiedad-subasta .fieldset-title').first();
107      const span = tituloFieldset.find('span');
108      const nuevoTexto = (tipoSeleccionado === 'aabe-mueble')
109        ? ' Información del bien mueble'
110        : ' Información de la propiedad';
111      tituloFieldset.html(span.prop('outerHTML') + nuevoTexto);
112      
113      // Asegurarse de que los campos siempre ocultos permanezcan ocultos
114      ocultarCamposSiempre();
115    }
116
117    // función para controlar la visibilidad de "Cuándo cierra la oferta"
118    function toggleCierreOferta() {
119      var tipoSeleccionado = $('input[name="field_tipo_aabe[und]"]:checked').val();
120      var subtipoSeleccionado = $('input[name="field_subtipo_aabe[und]"]:checked').val();
121      var estadoSeleccionado = $('#edit-field-estados-subasta-und').val();
122      var campoCierre = $('#edit-field-cierra-subasta');
123
124    // Verificamos todos los selectores de la fecha de subasta
125      var dia = $('#edit-field-cuando-subasta-und-0-value-day').val();
126      var mes = $('#edit-field-cuando-subasta-und-0-value-month').val();
127      var anio = $('#edit-field-cuando-subasta-und-0-value-year').val();
128
129      // Se considera vacío solo si los tres campos están sin selección
130      var cuandoSubastaVacio = (dia === "" || dia === null) && 
131                               (mes === "" || mes === null) && 
132                               (anio === "" || anio === null);
133
134      // Lógica de ocultación
135      if (
136        tipoSeleccionado === 'aabe-mueble' || 
137        (tipoSeleccionado === 'aabe-inmueble' && subtipoSeleccionado === 'concesion') ||
138        (estadoSeleccionado === '_none' && cuandoSubastaVacio) ||
139        (estadoSeleccionado === 'finalizado') || (estadoSeleccionado === 'desierta')
140      ) {
141        campoCierre.hide();
142      } else {
143        campoCierre.show();
144      }
145    }
146
147    // Ejecutar funciones iniciales
148    ocultarCamposSiempre();
149    toggleSubtipo();
150    togglePorSubtipo();
151    togglePorTipo();
152    cambiarLabelDescripcion(); // Ejecutar al cargar la página
153    toggleCierreOferta(); // 
154
155    $('input[name="field_tipo_aabe[und]"]').change(function () {
156      toggleSubtipo();
157      togglePorTipo(); // Esto incluye ocultar campos de concesión si se cambia a mueble
158      toggleCierreOferta();
159    });
160
161    $('input[name="field_subtipo_aabe[und]"]').change(function () {
162      togglePorSubtipo();
163      // Asegurarse de que los campos siempre ocultos permanezcan ocultos
164      ocultarCamposSiempre();
165      toggleCierreOferta();
166    });
167
168    // Event listener para el cambio en el campo etiqueta del bien
169    $('#edit-field-etiqueta-del-bien-und').change(function () {
170      cambiarLabelDescripcion();
171    });
172
173    // Forzar el listener del campo Estado
174    $(document).on('change', '#edit-field-estados-subasta-und', function () {
175      toggleCierreOferta();
176    });
177
178    // Listeners para los tres selectores de la fecha de subasta
179    $('#edit-field-cuando-subasta-und-0-value-day, #edit-field-cuando-subasta-und-0-value-month, #edit-field-cuando-subasta-und-0-value-year').change(function () {
180      toggleCierreOferta();
181    });
182
183  });
184})(jQuery);
185
186Drupal.behaviors.requiredAsterisk = {
187  attach: function (context, settings) {
188    function toggleAsterisk() {
189      var selectedValue = jQuery('input[name="field_tipo_aabe[und]"]:checked').val();
190
191      var campos = [
192        '#edit-field-superficie-decimal-und-0-value',
193        '#edit-field-domicilio-calle-prop-und-0-value',
194        '#edit-field-latitud-und-0-value',
195        '#edit-field-longitud-und-0-value'
196      ];
197
198      campos.forEach(function (selector) {
199        var label = jQuery(selector, context).closest('.form-item').find('label');
200
201        if (selectedValue === 'aabe-inmueble') {
202          // Agregar asterisco si no existe
203          if (label.find('.form-required').length === 0) {
204            label.append('<span class="form-required" title="Este campo es obligatorio">*</span>');
205          }
206        } else if (selectedValue === 'aabe-mueble') {
207          // Quitar asterisco si existe
208          label.find('.form-required').remove();
209        }
210      });
211    }
212    // Ejecutar al cargar
213    toggleAsterisk();
214
215    // Escuchar cambios en el radio
216    jQuery('input[name="field_tipo_aabe[und]"]', context).once('asterisk-handler').change(function () {
217      toggleAsterisk();
218    });
219  }
220};
221
222(function ($) {
223  Drupal.behaviors.disableEstados = {
224    attach: function (context, settings) {
225
226      function deshabilitarEstados(opciones) {
227        $('#edit-field-estados-subasta-und', context)
228          .find('option')
229          .prop('disabled', false) // habilita todas primero
230          .filter(function () {
231            return opciones.includes($(this).val());
232          })
233          .prop('disabled', true);
234      }
235
236      function aplicarReglas() {
237        var subtipoSeleccionado = $('input[name="field_subtipo_aabe[und]"]:checked').val();
238        var tipoSeleccionado = $('input[name="field_tipo_aabe[und]"]:checked').val();
239
240        if (tipoSeleccionado === 'aabe-inmueble' && subtipoSeleccionado !== 'concesion') {
241          deshabilitarEstados(['subastado', 'adjudicado']);
242        } 
243        else if (tipoSeleccionado === 'aabe-mueble') {
244          deshabilitarEstados(['subastado', 'desierta']);
245        } 
246        else if (tipoSeleccionado === 'aabe-inmueble' && subtipoSeleccionado === 'concesion') {
247          deshabilitarEstados(['subastado', 'desierta']);
248        }
249      }
250
251      // Ejecutar al cargar la página
252      aplicarReglas();
253
254      // Ejecutar al cambiar el tipo o subtipo
255      $('input[name="field_tipo_aabe[und]"], input[name="field_subtipo_aabe[und]"]', context)
256        .once('disableEstadosChange') // evita múltiples binds
257        .on('change', function () {
258          aplicarReglas();
259        });
260
261    }
262  };
263})(jQuery);
264

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.