浏览代码

Arreglo cuando se modifica una onu

gabriel 7 年之前
父节点
当前提交
f695154121
共有 1 个文件被更改,包括 54 次插入81 次删除
  1. 54 81
      src/FTTHBundle/Resources/views/ONU/form.html.twig

+ 54 - 81
src/FTTHBundle/Resources/views/ONU/form.html.twig

@@ -4,52 +4,13 @@
 {% block formactions %}
     {{ parent() }}
     <script type="text/javascript">
-        //        $(document).ready(function () {
-        //            var objSelectClient = $('input:hidden[id$="clientId"]');
-        //            objSelectClient.on("change", function () { //bind() for older jquery version
-        //                alert("2");
-        //                fcChange();
-        //            }); //could be change() or trigger('change')
-        //
-        //        });
+        var modificacion = false;
         $(function () {
             // buscar la direccion del cliente y la muestra en el mapa.
             var objSelectClient = $('input:hidden[id$="clientId"]');
-//            objSelectClient.on("change", function () { //bind() for older jquery version
-//                fcChange();
-//            }).triggerHandler('change'); //could be change() or trigger('change')
-
-            {#function callbackClientId() {#}
-            {#//            objSelectClient.change(function () {#}
-            {#alert("1");#}
-            {#$.ajax({#}
-            {#url: '{{ path('ajax_client_data') }}',#}
-            {#dataType: 'json',#}
-            {#delay: 250,#}
-            {#data: {#}
-            {#q: $(this).val()#}
-            {#}#}
-            {#}).done(function (data) {#}
-            {#console.log(data);#}
-            {#var extradata = null;#}
-            {#if (data.results[0].location) {#}
-            {#extradata = JSON.parse(data.results[0].location.extraData);#}
-            {#if (extradata.lat == undefined || extradata.lng == undefined) {#}
-            {#extradata = null;#}
-            {#}#}
-            {#}#}
-            {#if (extradata === null) {#}
-            {#googleSearchDirectionAndShowMaps(data.results[0].address);#}
-            {#} else {#}
-            {#$('input[class="search-input"]').val(data.results[0].address);#}
-            {#drawMap(extradata.lat, extradata.lng);#}
-            {#}#}
-            {#});#}
-            {#//            });#}
-//            }
-
             if (objSelectClient.val() != "" && parseInt(objSelectClient.val()) > 0) {
-                calcularDistanciaNap();
+                modificacion = true;
+                callbackClientId(objSelectClient.val());
             } else {
                 drawMap(-32.030232, -61.220883); // galvez
             }
@@ -66,9 +27,12 @@
             }).done(function (data) {
                 var extradata = null;
                 if (data.results[0].location) {
-                    extradata = JSON.parse(data.results[0].location.extraData);
-                    if (extradata.lat == undefined || extradata.lng == undefined) {
-                        extradata = null;
+                    try {
+                        extradata = JSON.parse(data.results[0].location.extraData);
+                        if (extradata.lat == undefined || extradata.lng == undefined) {
+                            extradata = null;
+                        }
+                    } catch (ignore) {
                     }
                 }
                 if (extradata === null) {
@@ -77,6 +41,7 @@
                     $('input[class="search-input"]').val(data.results[0].address);
                     drawMap(extradata.lat, extradata.lng);
                 }
+                calcularDistanciaNap();
             });
         }
 
@@ -122,46 +87,54 @@
          * Busca y calcula la distancia a los nap y la cantidad de puertos libres.
          */
         function calcularDistanciaNap() {
-            var origin = JSON.parse($("input[id*='_location_extraData']").attr('value'));
-            $.ajax({
-                url: '{{ path('ajax_distance_nap_onu') }}',
-                dataType: 'json',
-                type: "GET",
-                data: {
-                    lat: origin.lat,
-                    lng: origin.lng
-                }
-            }).done(function (res) {
-                var select = $("select[id*='_nap']");
-                select.find("option").remove().end();
-                $.each(res, function (i, obj) {
-                    obj = JSON.parse(obj);
-                    for (var i = 0; i < obj.length; i++) {
-                        if (obj[i].distance != -1) {
-                            var tmp = obj[i].name + " ({{ 'Free Port'|trans({}, 'FTTHBundle') }}: " + obj[i].freePort + " - " +
-                                "{{ 'Distance'|trans({}, 'FTTHBundle') }}: " + obj[i].distance + " KM. - " +
-                                "{{ 'Address'|trans({}, 'FTTHBundle') }}: " + obj[i].address + ")";
-                            select.append(
-                                '<option value="' + obj[i].id + '">' + tmp +
-                                '</option>'
-                            );
-                        }
+            var origin = null;
+            try {
+                origin = JSON.parse($("input[id*='_location_extraData']").attr('value'));
+            } catch (ignore) {
+            }
+            if (origin != null) {
+                $.ajax({
+                    url: '{{ path('ajax_distance_nap_onu') }}',
+                    dataType: 'json',
+                    type: "GET",
+                    data: {
+                        lat: origin.lat,
+                        lng: origin.lng
                     }
-                    for (var i = 0; i < obj.length; i++) {
-                        if (obj[i].distance == -1) {
-                            var tmp = obj[i].name + " ({{ 'Free Port'|trans({}, 'FTTHBundle') }}: " + obj[i].freePort;
-                            if (obj[i].address != null && obj[i].address.length > 0) {
-                                tmp += " - " + "{{ 'Address'|trans({}, 'FTTHBundle') }}: " + obj[i].address;
+                }).done(function (res) {
+                    var select = $("select[id*='_nap']");
+                    var codigoNap = select.val();
+                    select.find("option").remove().end();
+                    $.each(res, function (i, obj) {
+                        obj = JSON.parse(obj);
+                        for (var i = 0; i < obj.length; i++) {
+                            if (obj[i].distance != -1) {
+                                var tmp = obj[i].name + " ({{ 'Free Port'|trans({}, 'FTTHBundle') }}: " + obj[i].freePort + " - " +
+                                    "{{ 'Distance'|trans({}, 'FTTHBundle') }}: " + obj[i].distance + " KM. - " +
+                                    "{{ 'Address'|trans({}, 'FTTHBundle') }}: " + obj[i].address + ")";
+                                select.append(
+                                    '<option value="' + obj[i].id + '" >' + tmp +
+                                    '</option>'
+                                );
                             }
-                            tmp += ")";
-                            select.append(
-                                '<option value="' + obj[i].id + '">' + tmp +
-                                '</option>'
-                            );
                         }
-                    }
+                        for (var i = 0; i < obj.length; i++) {
+                            if (obj[i].distance == -1) {
+                                var tmp = obj[i].name + " ({{ 'Free Port'|trans({}, 'FTTHBundle') }}: " + obj[i].freePort;
+                                if (obj[i].address != null && obj[i].address.length > 0) {
+                                    tmp += " - " + "{{ 'Address'|trans({}, 'FTTHBundle') }}: " + obj[i].address;
+                                }
+                                tmp += ")";
+                                select.append(
+                                    '<option value="' + obj[i].id + '" >' + tmp +
+                                    '</option>'
+                                );
+                            }
+                        }
+                    });
+                    select.val(codigoNap);
                 });
-            });
+            }
         }
     </script>