source: extensions/AMenuManager/js/amm_randomPictConfig.js @ 16744

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

bug:2696 fixed

  • Property svn:executable set to *
File size: 6.5 KB
Line 
1/**
2 * randomPictConfig
3 *
4 * release 1.0.0
5 */
6function randomPictConfig(opt, keys, token, initValues)
7{
8  var options = {
9          ajaxUrl:'plugins/AMenuManager/amm_ajax.php'
10        },
11      translatedKeys= {
12          g002_setting_randompic_periodicchange_deactivated:'g002_setting_randompic_periodicchange_deactivated',
13          g002_setting_randompic_height_auto:'g002_setting_randompic_height_auto'
14        },
15      properties = {
16          token:token
17        },
18
19
20  /**
21   * submit config
22   */
23  submit = function ()
24    {
25      if(!checkValidity()) return(false);
26
27      displayProcessing(true);
28
29      // build datas
30      var datas = {
31        blockTitles:[],
32        blockHeight:$("#iamm_rp_height_slider").slider('option', 'value'),
33        infosName:$("#iamm_randompicture_showname").inputList('value'),
34        infosComment:$("#iamm_randompicture_showcomment").inputList('value'),
35        freqDelay:$("#iamm_rp_pc_slider").slider('option', 'value')==99?0:$("#iamm_rp_pc_slider").slider('option', 'value'),
36        selectMode:$("#iamm_randompicture_selectedMode").inputRadio('value'),
37        selectCat:$("#iamm_randompicture_selectedCat").categorySelector('value')
38      };
39
40
41
42      list=$('#iamm_randompicture_title').inputText('languagesValues');
43      for(var id in list)
44      {
45        datas.blockTitles.push({id:id, value:list[id]});
46      }
47
48      $.ajax(
49        {
50          type: "POST",
51          url: options.ajaxUrl,
52          async: true,
53          data: { ajaxfct:"admin.randomPict.setConfig", token:properties.token, datas:datas },
54          success:
55            function(msg)
56            {
57              displayProcessing(false);
58
59              returned=msg.split('!');
60
61              if(returned[0]=='OK')
62              {
63                $('#iConfigState')
64                  .html(returned[1])
65                  .removeClass('errors')
66                  .addClass('infos')
67                  .css('display', 'block');
68              }
69              else
70              {
71                $('#iConfigState')
72                  .html(returned[1])
73                  .removeClass('infos')
74                  .addClass('errors')
75                  .css('display', 'block');
76              }
77            }
78        }
79      );
80    },
81
82  /**
83   * check validity of form
84   */
85  checkValidity = function ()
86    {
87      $('.error').removeClass('error');
88      ok=true;
89      $("#iamm_randompicture_selectedCat").categorySelector('isValid', true);
90
91      if($("#iamm_randompicture_selectedMode").inputRadio('value')=='c' &&
92         $("#iamm_randompicture_selectedCat").categorySelector('value').length==0
93        )
94      {
95        ok=false;
96        $("#iamm_randompicture_selectedCat").categorySelector('isValid', false);
97      }
98
99      return(ok);
100    },
101
102  /**
103   * display or hide the processing flower
104   */
105  displayProcessing = function (visible)
106    {
107      if(visible)
108      {
109        $('#iBDProcessing').css("display", "block");
110      }
111      else
112      {
113        $('#iBDProcessing').css("display", "none");
114      }
115    },
116
117  /**
118   * initialize the object and page form
119   */
120  init = function (initValues)
121  {
122    $('#iamm_randompicture_selectedMode').inputRadio(
123      {
124        change:function () { $('#iConfigState').hide(); }
125      }
126    );
127    $('#iamm_randompicture_selectedMode').inputRadio('value', initValues.selectMode);
128
129    $('#iamm_randompicture_selectedCat').categorySelector(
130      {
131        serverUrl:'plugins/GrumPluginClasses/gpc_ajax.php',
132        listMaxWidth:650,
133        listMaxHeight:550,
134        userMode:'public',
135        galleryRoot:false,
136        displayStatus:false,
137        filter:'all',
138        multiple:true,
139        load:
140          function (event)
141          {
142            $(this)
143              .categorySelector('collapse', ':all')
144              .categorySelector('value', initValues.selectCat);
145          },
146        change: function () { $('#iConfigState').hide(); }
147      }
148    );
149
150    $('#iamm_randompicture_showname').inputList(
151      {
152        colsWidth:[300],
153        popupMode:'mouseout',
154        change: function () { $('#iConfigState').hide(); }
155      }
156    ).inputList('value', initValues.infosName).css('display', 'block');
157    $('#iamm_randompicture_showcomment').inputList(
158      {
159        colsWidth:[300],
160        popupMode:'mouseout',
161        change: function () { $('#iConfigState').hide(); }
162      }
163    ).inputList('value', initValues.infosComment).css('display', 'block');
164
165
166    $('#islang').inputList(
167      {
168        listMaxHeight:250,
169        popupMode:'mouseout',
170        change: function () { $('#iConfigState').hide(); }
171      }
172    ).css('display', 'block');
173
174    $('#iamm_randompicture_title').inputText(
175      {
176        languages:initValues.langs,
177        languagesValues:initValues.blockTitles,
178        currentLanguage:initValues.userLang,
179        languageSelector:'islang',
180        displayChar:50,
181        maxChar:255,
182        change: function () { $('#iConfigState').hide(); }
183      }
184    );
185
186    $('#islang').inputList('value', initValues.userLang).css('display', 'block');
187
188
189
190    formatDelay(initValues.freqDelay);
191    $("#iamm_rp_pc_slider").slider(
192      {
193        min:0,
194        max:60000,
195        step:50,
196        value:initValues.freqDelay,
197        slide: function(event, ui) { formatDelay(ui.value); },
198        change: function () { $('#iConfigState').hide(); }
199      });
200    $("#iamm_rp_pc_slider a").addClass('gcBgInput');
201
202    formatHeight(initValues.blockHeight);
203    $("#iamm_rp_height_slider").slider(
204      {
205        min:99,
206        max:300,
207        steps:1,
208        value:initValues.blockHeight,
209        slide: function(event, ui) { formatHeight(ui.value); },
210        change: function () { $('#iConfigState').hide(); }
211      });
212    $("#iamm_rp_height_slider a").addClass('gcBgInput');
213  },
214
215  /**
216   * format delay value for display
217   */
218  formatDelay = function(delay)
219  {
220    $("#iamm_randompicture_periodicchange").val(delay);
221    if(delay==0)
222    {
223      $("#iamm_rp_pc_display").html(translatedKeys.g002_setting_randompic_periodicchange_deactivated);
224    }
225    else
226    {
227      $("#iamm_rp_pc_display").html((delay/1000).toFixed(2)+"s");
228    }
229  },
230
231  formatHeight = function(height)
232  {
233    var vheight = (height==99)?0:height;
234
235    $("#iamm_randompicture_height").val(vheight);
236    if(vheight==0)
237    {
238      $("#iamm_rp_height_display").html(translatedKeys.g002_setting_randompic_height_auto);
239    }
240    else
241    {
242      $("#iamm_rp_height_display").html(vheight+"px");
243    }
244  };
245
246
247  $.extend(options, opt);
248  $.extend(translatedKeys, keys);
249
250  this.submit = function () { submit(); };
251
252  init(initValues);
253}
254
255
Note: See TracBrowser for help on using the repository browser.