source: extensions/GMaps/admin/gmaps_maps.tpl @ 15345

Last change on this file since 15345 was 15345, checked in by grum, 12 years ago

feature:2638 - Compatibility with Piwigo 2.4

File size: 29.8 KB
Line 
1{combine_script id="jquery.ui" require='jquery' path="themes/default/js/ui/jquery.ui.core.js"}
2{combine_script id="jquery.ui.widget" require='jquery.ui' path="themes/default/js/ui/jquery.ui.widget.js"}
3{combine_script id="jquery.ui.mouse" require='jquery.ui.widget' path="themes/default/js/ui/jquery.ui.mouse.js"}
4{combine_script id="jquery.ui.position" require='jquery.ui.widget' path="themes/default/js/ui/jquery.ui.position.js"}
5{combine_script id="jquery.ui.sortable" require='jquery.ui.widget' path="themes/default/js/ui/jquery.ui.sortable.js"}
6{combine_script id="jquery.ui.dialog" require='jquery.ui.widget' src="themes/default/js/ui/jquery.ui.dialog.js"}
7{combine_script id="jquery.ui.slider" require='jquery.ui.widget' src="themes/default/js/ui/jquery.ui.slider.js"}
8
9{combine_script  id="maps.google.com/api" path="http://maps.google.com/maps/api/js?sensor=false"}
10
11<!--
12 Note : the position of control (navigation, mapType) were implemented, but the
13 result after trying positionning is strange...
14 so, these functionnalities are deactivated
15-->
16
17
18{literal}
19<script type="text/javascript">
20
21
22
23
24  function userDefManage ()
25  {
26    var properties = {
27      id:'',
28      gMap:null,
29    }
30
31    /**
32     * initialize the page
33     */
34    this.init = function ()
35    {
36      computedHeight=$(window).height()-100;
37      computedWidth=$(window).width()-100;
38      $('#iDialogEdit')
39        .dialog(
40          {
41            autoOpen:false,
42            width:computedWidth,
43            height:computedHeight,
44            modal: true,
45            dialogClass: 'gcBgTabSheet gcBorder',
46            title: '{/literal}{"gmaps_config_map"|@translate}{literal}',
47            buttons:
48              {
49                '{/literal}{"gmaps_ok"|@translate}{literal}':
50                  function()
51                  {
52                    if(checkValidity()) doUpdate();
53                  },
54                '{/literal}{"gmaps_cancel"|@translate}{literal}':
55                  function()
56                  {
57                    $('#iDialogEdit').dialog("close");
58                  }
59              }
60          }
61        );
62
63      $('[name=fBDDisplayType]').bind('change', changeDisplayType);
64
65      $('#iBDSizeModeA, #iBDSizeModeF').bind('change',
66        function ()
67        {
68          switch($(this).val())
69          {
70            case 'A':
71              $('#iBDMapWidthSliderRow, #iBDMapHeightSliderRow').hide();
72              break;
73            case 'F':
74              $('#iBDMapWidthSliderRow, #iBDMapHeightSliderRow').show();
75              break;
76          }
77        }
78      );
79
80      $("#iBDMapWidthSlider").slider(
81        {
82          min:100,
83          max:1280,
84          step:5,
85          value:100,
86          slide: function(event, ui) { changeSize(ui.value, 'iBDMapWidthSlider'); }
87        });
88      $("#iBDMapHeightSlider").slider(
89        {
90          min:100,
91          max:1280,
92          step:5,
93          value:100,
94          slide: function(event, ui) { changeSize(ui.value, 'iBDMapHeightSlider'); }
95        });
96      $("#iBDMapZoomLevelSlider").slider(
97        {
98          min:1,
99          max:20,
100          step:1,
101          value:8,
102          slide: function(event, ui) { changeZoom(ui.value, 'plugin'); }
103        });
104      $("#iBDMapWidthSlider a, #iBDMapHeightSlider a, #iBDMapZoomLevelSlider").addClass('gcBgInput');
105
106      $('#iBDMapMapType').bind('change', function () { changeMapType('plugin'); } );
107      $('#iBDMapMapTypeControlType').bind('change', changeTypeControlType);
108      //$('#iBDMapTypeControlPos').bind('change', changeTypeControlPosition);
109      $('#iBDMapNavigationControlType').bind('change', changeNavigationControlType);
110      //$('#iBDMapNavigationControlPos').bind('change', changeNavigationControlPosition);
111      $('#iBDMapScaleControl').bind('change', changeScaleControl);
112      $('#iBDMapStreetViewControl').bind('change', changeStreetViewControl);
113
114
115      loadList();
116    }
117
118    /**
119     *
120     */
121    var changeDisplayType = function ()
122    {
123      switch($('[name=fBDDisplayType]:checked').val())
124      {
125        case 'IC':
126          $('#iBDZoomLevelTxt').hide();
127          $('#iBDZoomLevelMaxTxt').show();
128          $('[name=fBDSizeMode]').attr('disabled', false);
129          break;
130        case 'IP':
131          $('#iBDZoomLevelTxt').show();
132          $('#iBDZoomLevelMaxTxt').hide();
133          $('[name=fBDSizeMode]').attr('disabled', false);
134          break;
135        case 'MP':
136          $('#iBDZoomLevelTxt').show();
137          $('#iBDZoomLevelMaxTxt').hide();
138          $('#iBDSizeModeF').attr('checked', true).change();
139          $('[name=fBDSizeMode]').attr('disabled', true);
140          break;
141      }
142    }
143
144
145    /**
146     *
147     */
148    var changeStreetViewControl = function ()
149    {
150      if(properties.gMap!=null)
151      {
152        properties.gMap.setOptions(
153          {
154            streetViewControl: ($('#iBDMapStreetViewControl').val()=='n')?false:true,
155          }
156        );
157      }
158    }
159
160    /**
161     * change the display control display mode
162     */
163    var changeScaleControl = function ()
164    {
165      if(properties.gMap!=null)
166      {
167        properties.gMap.setOptions(
168          {
169            scaleControl: ($('#iBDMapScaleControl').val()=='n')?false:true,
170          }
171        );
172      }
173    }
174
175    /**
176     * change the display control type
177     */
178    var changeTypeControlType = function ()
179    {
180      if(properties.gMap!=null)
181      {
182        cType=parseInt($('#iBDMapMapTypeControlType').val());
183
184        properties.gMap.setOptions(
185          {
186            mapTypeControl: (cType==-1)?false:true,
187            mapTypeControlOptions:
188              {
189                style:cType
190              }
191          }
192        );
193      }
194    }
195
196    /**
197     * change the display control position
198     */
199    /*
200    var changeTypeControlPosition = function ()
201    {
202      if(properties.gMap!=null)
203      {
204        properties.gMap.setOptions(
205          {
206            mapTypeControlOptions:
207              {
208                position:parseInt($('#iBDMapTypeControlPos').val())
209              }
210          }
211        );
212      }
213    }
214    */
215
216
217    /**
218     * change the zoom control type
219     */
220    var changeNavigationControlType = function ()
221    {
222      if(properties.gMap!=null)
223      {
224        cType=parseInt($('#iBDMapNavigationControlType').val());
225
226        properties.gMap.setOptions(
227          {
228            navigationControl: (cType==-1)?false:true,
229            navigationControlOptions:
230              {
231                style:cType
232              }
233          }
234        );
235      }
236    }
237
238    /**
239     * change the zoom control position
240     */
241    /*
242    var changeNavigationControlPosition = function ()
243    {
244      if(properties.gMap!=null)
245      {
246        properties.gMap.setOptions(
247          {
248            navigationControlOptions:
249              {
250                position:parseInt($('#iBDMapTypeControlPos').val())
251              }
252          }
253        );
254      }
255    }
256    */
257
258    /**
259     * change the width/height
260     * @param value : the width or height
261     * @param id : define if the width is changed or the height
262     */
263    var changeSize = function (value, id)
264    {
265      $('#'+id+'Display').html(value+'px');
266      $('#'+id+'Value').val(value);
267
268      $('#iBDExampleMap').css(
269        {
270          width:$('#iBDMapWidthSliderValue').val()+'px',
271          height:$('#iBDMapHeightSliderValue').val()+'px'
272        }
273      );
274
275      if(properties.gMap!=null) google.maps.event.trigger(properties.gMap, 'resize');
276    }
277
278    /**
279     * change the zoom value
280     * @param value : the zoom value (1 - 20)
281     * @param caller : designed to determine who's calling the function and avoid
282     *                 recursivity in events call ; values = 'plugin' or 'map'
283     */
284    var changeZoom = function (value, caller)
285    {
286      $('#iBDMapZoomLevelSliderDisplay').html(value);
287      $('#iBDMapZoomLevelSliderValue').val(value);
288
289      if(properties.gMap!=null && caller=='plugin')
290      {
291        properties.gMap.setZoom(parseInt(value));
292      }
293      else if(caller=='map')
294      {
295        $('#iBDMapZoomLevelSlider').slider('option', 'value', value);
296      }
297    }
298
299    /**
300     * change the display mode (map type)
301     * @param caller : designed to determine who's calling the function and avoid
302     *                 recursivity in events call ; values = 'plugin' or 'map'
303     */
304    var changeMapType = function (caller)
305    {
306      if(properties.gMap!=null && caller=='plugin')
307      {
308        properties.gMap.setOptions(
309          {
310            mapTypeId: $('#iBDMapMapType').val()
311          }
312        );
313      }
314      else if(caller=='map')
315      {
316        $('#iBDMapMapType').val(properties.gMap.getMapTypeId());
317      }
318    }
319
320
321    /**
322     * initialize the map
323     */
324    var initializeMap = function ()
325    {
326      var latlng=new google.maps.LatLng(0, 0);
327
328      mapTypeControlOptions={ };
329
330      var map = new google.maps.Map($("#iBDExampleMap").get(0),
331        {
332          mapTypeId: $('#iBDMapMapType').val(),
333          zoom: parseInt($('#iBDMapZoomLevelSliderValue').val()),
334          center:latlng,
335          navigationControl: ($('#iBDMapNavigationControlType').val()!='-1')?true:false,
336          navigationControlOptions:
337            {
338              style:($('#iBDMapNavigationControlType').val()!='-1')?parseInt($('#iBDMapNavigationControlType').val()):0,
339            },
340          scaleControl: ($('#iBDMapScaleControl').val()=='n')?false:true,
341          mapTypeControl:($('#iBDMapMapTypeControlType').val()!='-1')?true:false,
342          mapTypeControlOptions:
343            {
344              style:($('#iBDMapMapTypeControlType').val()!='-1')?parseInt($('#iBDMapMapTypeControlType').val()):0,
345            },
346          markerTitle:'',
347          streetViewControl:($('#iBDMapStreetViewControl').val()=='n')?false:true,
348        }
349      );
350
351      properties.gMap=map;
352
353      google.maps.event.addListener(
354        properties.gMap,
355        'zoom_changed',
356        function()
357        {
358          changeZoom(properties.gMap.getZoom(), 'map');
359        }
360      );
361
362      google.maps.event.addListener(
363        properties.gMap,
364        'maptypeid_changed',
365        function()
366        {
367          changeMapType('map');
368        }
369      );
370    }
371
372    /**
373     * manage the tabsheet
374     *
375     * @param String tabsheet : id of the tabsheet to display
376     */
377    this.displayTab = function (tabsheet)
378    {
379      switch(tabsheet)
380      {
381        case 'general':
382          $('#iTabGeneral').css('display', 'block');
383          $('#iTabDimensions').css('display', 'none');
384          $('#iTabMapType').css('display', 'none');
385          $('#iTabZoomLevel').css('display', 'none');
386          break;
387        case 'dimensions':
388          $('#iTabGeneral').css('display', 'none');
389          $('#iTabDimensions').css('display', 'block');
390          $('#iTabMapType').css('display', 'none');
391          $('#iTabZoomLevel').css('display', 'none');
392          break;
393        case 'mapType':
394          $('#iTabGeneral').css('display', 'none');
395          $('#iTabDimensions').css('display', 'none');
396          $('#iTabMapType').css('display', 'block');
397          $('#iTabZoomLevel').css('display', 'none');
398          break;
399        case 'zoomLevel':
400          $('#iTabGeneral').css('display', 'none');
401          $('#iTabDimensions').css('display', 'none');
402          $('#iTabMapType').css('display', 'none');
403          $('#iTabZoomLevel').css('display', 'block');
404          break;
405      }
406    }
407
408
409    /**
410     * open the dialog box to edit the map properties
411     *
412     * @param String id : if set to '' => open dialogbox in 'add' mode
413     *                    otherwise edit the given map
414     */
415    this.editMap = function (id)
416    {
417      properties.id=id;
418      updateDialog('');
419      this.displayTab('general');
420      // >> because li items don't have id... :-(
421      $('#itab2 li').removeClass('selected_tab').addClass('normal_tab');
422      $('#itab2 li:first').addClass('selected_tab');
423      // <<
424
425      $('#iDialogEdit')
426        .bind('dialogopen', function ()
427          {
428            if(properties.id!='')
429            {
430              displayProcessing(true);
431
432              $.ajax(
433                {
434                  type: "POST",
435                  url: "{/literal}{$datas.urlRequest}{literal}",
436                  async: true,
437                  data: { ajaxfct:"admin.maps.getMap", id:properties.id },
438                  success:
439                    function(msg)
440                    {
441                      updateDialog(msg);
442                      initializeMap();
443                      displayProcessing(false);
444                    }
445                }
446              );
447            }
448            else
449            {
450              initializeMap();
451            }
452          }
453        )
454        .dialog("open");
455    }
456
457    /**
458     * delete a map
459     *
460     * @param String id : id of the map to delete
461     */
462    this.deleteMap = function (id)
463    {
464      $('#iDialogDelete')
465        .html('<br>{/literal}{"gmaps_pleaseConfirmMetadataDelete_1"|@translate}<br><br>{"gmaps_pleaseConfirmMetadataDelete_2"|@translate}{literal}')
466        .dialog(
467          {
468            autoOpen:true,
469            modal: true,
470            dialogClass: 'gcBgTabSheet gcBorder',
471            title: '{/literal}{"gmaps_deleteMap"|@translate}{literal}',
472            buttons:
473              {
474                '{/literal}{"gmaps_delete"|@translate}{literal}':
475                  function()
476                  {
477                    $(this).html("<br><img src='./plugins/GrumPluginClasses/icons/processing.gif'>");
478                    $.ajax(
479                      {
480                        type: "POST",
481                        url: "{/literal}{$datas.urlRequest}{literal}",
482                        async: true,
483                        data: { ajaxfct:"admin.maps.deleteMap", id:id },
484                        success:
485                          function(msg)
486                          {
487                            $('#iDialogDelete').dialog("destroy");
488                            loadList();
489                          }
490                      }
491                    );
492                  },
493                '{/literal}{"gmaps_cancel"|@translate}{literal}':
494                  function()
495                  {
496                    $('#iDialogDelete').dialog("destroy");
497                  }
498              }
499          }
500        );
501    }
502
503    /**
504     * update values of the dialog box
505     *
506     * @param String items : json string ; if empty assume to reset all fields
507     *                       with blank
508     */
509    var updateDialog = function (items)
510    {
511      if(items=='')
512      {
513        tmp={
514          sizeMode:'A',
515          displayTYpe:'IC',
516          nbAssoc:0,
517        }
518        $('#iBDName').val('');
519        $('#iBDDisplayTypeIC').attr('checked', true);
520        $('#iBDSizeModeA').attr('checked', true);
521        $('#iBDMapWidthSliderValue').val('470');
522        $('#iBDMapHeightSliderValue').val('210');
523        $('#iBDMapWidthSlider').slider('option', 'value', 470);
524        $('#iBDMapHeightSlider').slider('option', 'value', 210);
525        $('#iBDMapZoomLevelMaxActivated').attr('checked', false);
526        $('#iBDMapZoomLevelSliderValue').val(4);
527        $('#iBDMapZoomLevelSlider').slider('option', 'value', 4);
528        $('#iBDMapMapType').val('hybrid');
529        $('#iBDMapMapTypeControlType').val('0'); // default - auto
530        //$('#iBDMapTypeControlPos').val('3'); // top right
531        $('#iBDMapNavigationControlType').val('0'); // default - auto
532        //$('#iBDMapNavigationControlPos').val('1'); // top left
533        $('#iBDMapScaleControl').val('y'); // default - visible
534        $('#iBDExampleMap').html('').css(
535          {
536            width:$('#iBDMapWidthSliderValue').val()+'px',
537            height:$('#iBDMapHeightSliderValue').val()+'px'
538          }
539        );
540        $('#iBDMapStreetViewControl').val('n');
541
542        properties.gMap=null;
543      }
544      else
545      {
546        tmp=$.parseJSON(items);
547
548        $('#iBDNumId').val(tmp.id);
549        $('#iBDName').val(tmp.name);
550        $('#iBDDisplayType'+tmp.displayType).attr('checked', true);
551        $('#iBDSizeMode'+tmp.sizeMode).attr('checked', true);
552        $('#iBDMapWidthSliderValue').val(tmp.width);
553        $('#iBDMapHeightSliderValue').val(tmp.height);
554        $('#iBDMapWidthSlider').slider('option', 'value', tmp.width);
555        $('#iBDMapHeightSlider').slider('option', 'value', tmp.height);
556        $('#iBDMapZoomLevelMaxActivated').attr('checked', tmp.zoomLevelMaxActivated=='y');
557        $('#iBDMapZoomLevelSliderValue').val(tmp.zoomLevel);
558        $('#iBDMapZoomLevelSlider').slider('option', 'value', tmp.zoomLevel);
559        $('#iBDMapMapType').val(tmp.mapType);
560        $('#iBDMapMapTypeControlType').val(tmp.mapTypeControl);
561        $('#iBDMapNavigationControlType').val(tmp.navigationControl);
562        $('#iBDMapScaleControl').val(tmp.scaleControl);
563        $('#iBDMapStreetViewControl').val(tmp.streetViewControl);
564
565        $('#iBDExampleMap').html('').css(
566          {
567            width:tmp.width+'px',
568            height:tmp.height+'px'
569          }
570        );
571      }
572
573      $('#iBDDisplayType'+tmp.displayType+', #iBDSizeMode'+tmp.sizeMode).change();
574      changeDisplayType();
575      changeSize($('#iBDMapWidthSliderValue').val(), 'iBDMapWidthSlider');
576      changeSize($('#iBDMapHeightSliderValue').val(), 'iBDMapHeightSlider');
577      changeZoom($('#iBDMapZoomLevelSliderValue').val(), '');
578      changeStreetViewControl($('#iBDMapStreetViewControl').val());
579
580      if(tmp.nbAssoc>0)
581      {
582        $('[name=fBDDisplayType]').attr('disabled', true);
583        $('#iBDDisplayTypeRow').show();
584      }
585      else
586      {
587        $('[name=fBDDisplayType]').attr('disabled', false);
588        $('#iBDDisplayTypeRow').hide();
589      }
590
591    }
592
593    /**
594     * reload the user defined map list
595     */
596    var loadList = function ()
597    {
598      $('#iListMaps').html("<br>{/literal}{'gmaps_loading'|@translate}{literal}<br><img src='./plugins/GrumPluginClasses/icons/processing.gif'>");
599
600      $.ajax(
601        {
602          type: "POST",
603          url: "{/literal}{$datas.urlRequest}{literal}",
604          async: true,
605          data: { ajaxfct:"admin.maps.getList" },
606          success:
607            function(msg)
608            {
609              $("#iListMaps").html(msg);
610            }
611        }
612      );
613    }
614
615    /**
616     * check the validity of a given map id
617     *  a valid id only contains chars : A-Z0-9_
618     *
619     * @param String tagId : the tagId
620     * @return Boolean : true if ok, otherwise false
621     */
622    var checkIdValidity = function (tagId)
623    {
624      re=/^[a-z0-9_]+$/i;
625      if(re.exec(tagId)==null) return(false);
626      return(true);
627    }
628
629
630    /**
631     * check for the validity of the map settings
632     */
633    var checkValidity = function ()
634    {
635      $('.error').removeClass('error');
636
637      ok=true;
638
639      return(ok);
640    }
641
642    /**
643     * send map update to the server, and close the dialog box if everything
644     * is ok
645     */
646    var doUpdate = function ()
647    {
648      displayProcessing(true);
649
650      // build datas
651      datas = {
652        name:$('#iBDName').val(),
653        displayType:$('[name=fBDDisplayType]:checked').val(),
654        sizeMode:$('[name=fBDSizeMode]:checked').val(),
655        width:$('#iBDMapWidthSliderValue').val(),
656        height:$('#iBDMapHeightSliderValue').val(),
657        zoomLevelMaxActivated:$('#iBDMapZoomLevelMaxActivated').attr('checked')?'y':'n',
658        zoomLevel:$('#iBDMapZoomLevelSliderValue').val(),
659        mapType:$('#iBDMapMapType').val(),
660        mapTypeControl:$('#iBDMapMapTypeControlType').val(),
661        navigationControl:$('#iBDMapNavigationControlType').val(),
662        scaleControl:$('#iBDMapScaleControl').val(),
663        streetViewControl:$('#iBDMapStreetViewControl').val(),
664        style:'',
665      }
666
667      $.ajax(
668        {
669          type: "POST",
670          url: "{/literal}{$datas.urlRequest}{literal}",
671          async: true,
672          data: { ajaxfct:"admin.maps.setMap", id:properties.id, datas:datas },
673          success:
674            function(msg)
675            {
676              displayProcessing(false);
677
678              if(msg.match(/^[0-9]+$/i)!=null)
679              {
680                // result Ok ! => close the dialog box and reload the list
681                $('#iDialogEdit').dialog("close");
682                loadList();
683              }
684              else
685              {
686                returned=msg.split('!');
687                $('#'+returned[0]).addClass('error');
688                alert(returned[1]);
689              }
690            }
691        }
692      );
693    }
694
695    /**
696     * display or hide the processing flower
697     */
698    var displayProcessing = function (visible)
699    {
700      if(visible)
701      {
702        $('#iBDProcessing').css("display", "block");
703      }
704      else
705      {
706        $('#iBDProcessing').css("display", "none");
707      }
708    }
709
710    this.init();
711  }
712
713
714</script>
715{/literal}
716
717
718
719<h2>{'gmaps_maps_management'|@translate}</h2>
720
721
722<div class='addMap'>
723  <a onclick="udm.editMap('');">{'gmaps_add_a_new_map'|@translate}</a>
724</div>
725
726
727<table id='iHeaderListMaps' class="littlefont">
728  <tr>
729    <th>{'gmaps_name'|@translate}</th>
730    <th style="width:150px;">{'gmaps_displayType'|@translate}</th>
731    <th style="width:90px;">{'gmaps_dimensions'|@translate}</th>
732    <th style="width:90px;">{'gmaps_zoomLevel'|@translate}</th>
733    <th style="width:90px;">{'gmaps_mapType'|@translate}</th>
734    <th style="width:90px;">{'gmaps_googleMapTypeControl'|@translate}</th>
735    <th style="width:90px;">{'gmaps_googleMapNavigationControl'|@translate}</th>
736    <th style="width:90px;">{'gmaps_googleMapScaleControl'|@translate}</th>
737    <th style="width:90px;">{'gmaps_googleMapStreetViewControl'|@translate}</th>
738    <th width="40px">&nbsp;</th>
739  </tr>
740</table>
741
742<div id='iListMaps' class="{$themeconf.name}">
743</div>
744<div id="iListMapsNb"></div>
745
746
747<div id="iDialogDelete">
748</div>
749
750
751<div id="iDialogEdit">
752  <div id='iBDProcessing' style="display:none;position:absolute;width:100%;height:100%;background:#000000;opacity:0.75">
753      <img src="plugins/GrumPluginClasses/icons/processing.gif" style="margin-top:100px;">
754  </div>
755
756  {$mapTabsheet}
757
758  <form>
759    <div id='iTabsContainer' style='height:100px;'>
760      <div id='iTabGeneral' style='display:none;'>
761        <table class='formtable'>
762          <tr>
763            <td>{'gmaps_name'|@translate}</td>
764            <td>
765              <input type='text' id='iBDName' maxlength=80 size=60 value=''>
766            </td>
767          </tr>
768
769          <tr>
770            <td>{'gmaps_displayType'|@translate}</td>
771            <td>
772              <div style='display:inline-block;'>
773                <label><input type='radio' id='iBDDisplayTypeIC' name='fBDDisplayType' value='IC'>&nbsp;{'gmaps_displayTypeIC'|@translate}</label><br>
774                <label><input type='radio' id='iBDDisplayTypeIP' name='fBDDisplayType' value='IP'>&nbsp;{'gmaps_displayTypeIP'|@translate}</label><br>
775                <label><input type='radio' id='iBDDisplayTypeMP' name='fBDDisplayType' value='MP'>&nbsp;{'gmaps_displayTypeMP'|@translate}</label>
776              </div>
777              <div id='iBDDisplayTypeRow' class='helps' style='float:right;display:inline-block;margin-top:0px;'>{'gmaps_display_type_cannot_be_changed'|@translate}</div>
778            </td>
779          </tr>
780
781
782        </table>
783      </div>
784
785      <div id='iTabDimensions' style='display:none;'>
786
787        <table class="formtable">
788          <tr>
789            <td>{'gmaps_map_dimensions_are'|@translate}</td>
790            <td colspan="3">
791              <label><input type="radio" id="iBDSizeModeA" name="fBDSizeMode" value="A">&nbsp;{'gmaps_interface_dimensions_a'|@translate}</label><br>
792              <label><input type="radio" id="iBDSizeModeF" name="fBDSizeMode" value="F">&nbsp;{'gmaps_interface_dimensions_f'|@translate}</label>
793            </td>
794          </tr>
795
796          <tr id='iBDMapWidthSliderRow'>
797            <td>&nbsp;</td>
798            <td style='padding-left:30px;'>{'gmaps_width'|@translate}</td>
799            <td>
800              <input type="hidden" id="iBDMapWidthSliderValue" value="">
801              <div id="iBDMapWidthSlider" class="gcBgInput gcBorderInput"></div>
802            </td>
803            <td width="70px">
804              <div id="iBDMapWidthSliderDisplay"></div>
805            </td>
806          </tr>
807          <tr id='iBDMapHeightSliderRow'>
808            <td>&nbsp;</td>
809            <td style='padding-left:30px;'>{'gmaps_height'|@translate}</td>
810            <td>
811              <input type="hidden" id="iBDMapHeightSliderValue" value="">
812              <div id="iBDMapHeightSlider" class="gcBgInput gcBorderInput"></div>
813            </td>
814            <td width="70px">
815              <div id="iBDMapHeightSliderDisplay"></div>
816            </td>
817          </tr>
818        </table>
819      </div>
820
821      <div id='iTabMapType' style='display:none;'>
822        <table class='formtable'>
823          <tr>
824            <td>{'gmaps_mapType'|@translate}</td>
825            <td>
826              <select id='iBDMapMapType'>
827                <option value='hybrid'>{'gmaps_googleMapType_hybrid'|@translate}</option>
828                <option value='satellite'>{'gmaps_googleMapType_satellite'|@translate}</option>
829                <option value='roadmap'>{'gmaps_googleMapType_roadmap'|@translate}</option>
830                <option value='terrain'>{'gmaps_googleMapType_terrain'|@translate}</option>
831              </select>
832            </td>
833          </tr>
834
835          <tr>
836            <td>{'gmaps_googleMapControlType'|@translate}</td>
837            <td>
838              <select id='iBDMapMapTypeControlType'>
839                <option value='-1'>{'gmaps_googleMapTypeControl_-1'|@translate}</option>
840                <option value='0'>{'gmaps_googleMapTypeControl_0'|@translate}</option>
841                <option value='1'>{'gmaps_googleMapTypeControl_1'|@translate}</option>
842                <option value='2'>{'gmaps_googleMapTypeControl_2'|@translate}</option>
843              </select>
844            </td>
845          </tr>
846
847          <!--
848          <tr>
849            <td>{'gmaps_googleMapControlPos'|@translate}</td>
850            <td>
851              <select id='iBDMapTypeControlPos'>
852                <option value='2'>{'gmaps_googleMapControlPos_T'|@translate}</option>
853                <option value='7'>{'gmaps_googleMapControlPos_B'|@translate}</option>
854                <option value='4'>{'gmaps_googleMapControlPos_L'|@translate}</option>
855                <option value='5'>{'gmaps_googleMapControlPos_R'|@translate}</option>
856                <option value='1'>{'gmaps_googleMapControlPos_TL'|@translate}</option>
857                <option value='3'>{'gmaps_googleMapControlPos_TR'|@translate}</option>
858                <option value='6'>{'gmaps_googleMapControlPos_BL'|@translate}</option>
859                <option value='8'>{'gmaps_googleMapControlPos_BR'|@translate}</option>
860              </select>
861            </td>
862          </tr>
863          -->
864
865          <tr>
866            <td>{'gmaps_googleMapStreetViewControl'|@translate}</td>
867            <td>
868              <select id='iBDMapStreetViewControl'>
869                <option value='y'>{'gmaps_y'|@translate}</option>
870                <option value='n'>{'gmaps_n'|@translate}</option>
871              </select>
872            </td>
873          </tr>
874
875        </table>
876      </div>
877
878
879      <div id='iTabZoomLevel' style='display:none;'>
880        <table class='formtable'>
881
882          <tr id='iBDZoomLevelMaxTxt'>
883            <td>{'gmaps_zoomLevel_max'|@translate}</td>
884            <td>
885              <label><input type='checkbox' id='iBDMapZoomLevelMaxActivated'>&nbsp;{'gmaps_apply_zoomLevel_max'|@translate}</label>
886            </td>
887          </tr>
888
889          <tr>
890            <td><span id='iBDZoomLevelTxt'>{'gmaps_zoomLevel'|@translate}</span></td>
891            <td>
892              <table class="formclass">
893                <tr>
894                  <td>
895                    <input type="hidden" id="iBDMapZoomLevelSliderValue" value="">
896                    <div id="iBDMapZoomLevelSlider" class="gcBgInput gcBorderInput"></div>
897                  </td>
898                  <td width="70px">
899                    <div id="iBDMapZoomLevelSliderDisplay"></div>
900                  </td>
901                </tr>
902              </table>
903            </td>
904          </tr>
905
906          <tr>
907            <td>{'gmaps_googleMapControlType'|@translate}</td>
908            <td>
909              <select id='iBDMapNavigationControlType'>
910                <option value='-1'>{'gmaps_googleMapNavigationControl_-1'|@translate}</option>
911                <option value='0'>{'gmaps_googleMapNavigationControl_0'|@translate}</option>
912                <option value='1'>{'gmaps_googleMapNavigationControl_1'|@translate}</option>
913                <option value='2'>{'gmaps_googleMapNavigationControl_2'|@translate}</option>
914                <option value='3'>{'gmaps_googleMapNavigationControl_3'|@translate}</option>
915              </select>
916            </td>
917          </tr>
918
919          <!--
920          <tr>
921            <td>{'gmaps_googleMapControlPos'|@translate}</td>
922            <td>
923              <select id='iBDMapNavigationControlPos'>
924                <option value='2'>{'gmaps_googleMapControlPos_T'|@translate}</option>
925                <option value='7'>{'gmaps_googleMapControlPos_B'|@translate}</option>
926                <option value='4'>{'gmaps_googleMapControlPos_L'|@translate}</option>
927                <option value='5'>{'gmaps_googleMapControlPos_R'|@translate}</option>
928                <option value='1'>{'gmaps_googleMapControlPos_TL'|@translate}</option>
929                <option value='3'>{'gmaps_googleMapControlPos_TR'|@translate}</option>
930                <option value='6'>{'gmaps_googleMapControlPos_BL'|@translate}</option>
931                <option value='8'>{'gmaps_googleMapControlPos_BR'|@translate}</option>
932              </select>
933            </td>
934          </tr>
935          -->
936
937          <tr>
938            <td>{'gmaps_googleMapScaleControl'|@translate}</td>
939            <td>
940              <select id='iBDMapScaleControl'>
941                <option value='y'>{'gmaps_display_visible'|@translate}</option>
942                <option value='n'>{'gmaps_display_hidden'|@translate}</option>
943              </select>
944            </td>
945          </tr>
946
947        </table>
948      </div>
949    </div>
950
951    <div id='iBDExampleMap' style='margin-left:auto;margin-right:auto;margin-top:20px;border:1px solid;'></div>
952
953  </form>
954</div>
955
956
957{literal}
958<script type="text/javascript">
959  var udm=new userDefManage();
960</script>
961{/literal}
962
Note: See TracBrowser for help on using the repository browser.