source: extensions/AMetaData/admin/amd_metadata_database_database.tpl @ 6950

Last change on this file since 6950 was 6950, checked in by grum, 14 years ago

Implement metadata keywords to piwigo tags convert functionnalies
Add some help text
bug:1858

File size: 10.5 KB
Line 
1{known_script id="jquery.ui" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.core.packed.js"}
2{known_script id="jquery.ui.dialog" src=$ROOT_URL|@cat:"themes/default/js/ui/packed/ui.dialog.packed.js"}
3
4{literal}
5<script type="text/javascript">
6var processAnalyze = {
7      step:0,
8      lists:new Array(),
9      timeStart:0,
10      timeEnd:0
11    }
12
13  function init()
14  {
15    formatNbItemPerRequest({/literal}{$datas.NumberOfItemsPerRequest}{literal});
16  }
17
18  function formatNbItemPerRequest(nbItems)
19  {
20    $("#iamd_NumberOfItemsPerRequest").val(nbItems);
21    $("#iamd_nb_item_per_request_display").html(nbItems);
22  }
23
24  function doAnalyze()
25  {
26    mode="all";
27    modeLabel="";
28
29    if($("#ianalyze_action0").get(0).checked)
30    {
31      mode="notAnalyzed";
32      modeLabel="{/literal}{'g003_analyze_not_analyzed_pictures'|@translate}{literal}";
33    }
34    else if($("#ianalyze_action1").get(0).checked)
35    {
36      mode="all";
37      modeLabel="{/literal}{'g003_analyze_all_pictures'|@translate}{literal}";
38    }
39    else if($("#ianalyze_action2").get(0).checked)
40    {
41      mode="caddieAdd";
42      modeLabel="{/literal}{'g003_analyze_caddie_add_pictures'|@translate}{literal}";
43    }
44    else if($("#ianalyze_action3").get(0).checked)
45    {
46      mode="caddieReplace";
47      modeLabel="{/literal}{'g003_analyze_caddie_replace_pictures'|@translate}{literal}";
48    }
49    else if($("#ianalyze_action4").get(0).checked)
50    {
51      mode="analyzed";
52      modeLabel="{/literal}{'g003_analyze_analyzed_pictures'|@translate}{literal}";
53    }
54
55    ignoreOptions=[];
56    if($('#iFillDataBaseIgnore_magic').get(0).checked)
57    {
58      ignoreOptions.push('magic');
59    }
60    if($('#iFillDataBaseIgnore_exif').get(0).checked)
61    {
62      ignoreOptions.push('exif');
63    }
64    if($('#iFillDataBaseIgnore_iptc').get(0).checked)
65    {
66      ignoreOptions.push('iptc');
67    }
68    if($('#iFillDataBaseIgnore_xmp').get(0).checked)
69    {
70      ignoreOptions.push('xmp');
71    }
72
73
74    doAnalyzeDialog="<br><form id='iDialogProgress' class='formtable'>"+
75      "<div id='iprogressbar_contener' class='gcBorderInput'>"+
76      "<span id='iprogressbar_bg' class='gcBgInput' style='width:0%;'>&nbsp;</span>"+
77      "<span id='iprogressbar_fg' class='gcLink'>0%</span>"+
78      "</div><p>{/literal}{'g003_analyze_in_progress'|@translate}{literal}"+
79      "<br><img src='./plugins/GrumPluginClasses/icons/processing.gif'>"
80      "</p></form>";
81
82    $("#dialog")
83    .html("")
84    .dialog(
85      {
86        resizable: false,
87        width:480,
88        height:120,
89        modal: true,
90        draggable:true,
91        dialogClass: 'gcBgTabSheet gcBorder',
92        title: '{/literal}{"g003_updating_metadata"|@translate}{literal}&nbsp;('+modeLabel+')',
93      }
94    ).html(doAnalyzeDialog);
95
96    NumberOfItemsPerRequest=$("#iamd_NumberOfItemsPerRequest").val();
97
98    $.ajax(
99      {
100        type: "POST",
101        url: "{/literal}{$datas.urlRequest}{literal}",
102        async: true,
103        data:
104          {
105            ajaxfct:"admin.makeStats.getList",
106            selectMode:mode,
107            numOfItems:NumberOfItemsPerRequest,
108            ignoreOptions:ignoreOptions,
109          },
110        success: function(msg)
111          {
112            processAnalyze.step=0;
113            processAnalyze.lists=msg.split(";");
114            processAnalyze.timeStart=new Date();
115            doStep_processList();
116          },
117        error: function()
118          {
119            alert('error');
120          }
121      }
122    );
123  }
124
125
126  function displayTime(eTime)
127  {
128    seconds=(eTime%60).toFixed(2);
129    minutes=((eTime-seconds)/60).toFixed(0);
130    returned=seconds+"s";
131    if(minutes>0) returned=minutes+"m"+returned;
132    return(returned);
133  }
134
135  function doStep_processList()
136  {
137    if(processAnalyze.step < processAnalyze.lists.length)
138    {
139      $.ajax({
140        type: "POST",
141        url: "{/literal}{$datas.urlRequest}{literal}",
142        async: true,
143        data: { ajaxfct:"admin.makeStats.doAnalyze", imagesList:processAnalyze.lists[processAnalyze.step] },
144        success: function(msg)
145          {
146            processAnalyze.step++;
147            doStep_processList();
148          },
149       });
150
151      pct=100*(processAnalyze.step+1)/processAnalyze.lists.length;
152      $("#iprogressbar_bg").css("width", pct+"%");
153      $("#iprogressbar_fg").html(Math.round(pct)+"%");
154    }
155    else
156    {
157      // list completely processed
158      tmp = $.ajax({
159        type: "POST",
160        url: "{/literal}{$datas.urlRequest}{literal}",
161        async: false,
162        data: { ajaxfct:"admin.makeStats.consolidate" }
163       }).responseText;
164
165      processAnalyze.timeEnd = new Date();
166      timeElapsed=processAnalyze.timeEnd.getTime()-processAnalyze.timeStart.getTime();
167
168      $("#dialog")
169      .dialog("destroy")
170      .html("")
171      .get(0).removeAttribute('style');
172
173      $("#dialog")
174      .dialog(
175        {
176          resizable: false,
177          width:480,
178          height:120,
179          modal: true,
180          draggable:true,
181          dialogClass: 'gcBgTabSheet gcBorder',
182          title: '{/literal}{"g003_updating_metadata"|@translate}{literal}',
183          dialogClass: 'gcBgTabSheet gcBorder',
184          open: function(event, ui)
185          {
186            bH=$("div.ui-dialog-buttonpane").get(0).clientHeight;
187            $("#dialog").css('height', (this.clientHeight-bH)+"px");
188          },
189          buttons:
190          {
191            '{/literal}{"g003_ok"|@translate}{literal}':
192              function()
193              {
194                $(this).dialog('destroy').html("").get(0).removeAttribute('style');
195              }
196          }
197        }
198      )
199      .html("<br>{/literal}{'g003_analyze_is_finished'|@translate}{literal}&nbsp;("+displayTime(timeElapsed/1000)+")");
200    }
201  }
202
203  function updateFillDatabaseOption()
204  {
205    $.ajax(
206      {
207        type: "POST",
208        url: "{/literal}{$datas.urlRequest}{literal}",
209        async: true,
210        data: { ajaxfct:"admin.config.setOption", id:'amd_FillDataBaseContinuously', value:$('#iamd_FillDataBaseContinuously').get(0).checked?'y':'n' },
211      }
212    );
213  }
214
215  function displayAnalyzedOption()
216  {
217    if($('#iAnalyzeAnalyzed').css('display')=='none')
218    {
219      $('#iAnalyzeAnalyzed').css('display', 'block');
220      $('#ianalyze_action4').get(0).checked=true;
221    }
222  }
223
224
225
226</script>
227{/literal}
228
229<h2>{'g003_updating_metadata'|@translate}</h2>
230
231<div id="dialog"></div>
232
233<div id='ianalyzearea'>
234  <form class="formtable">
235    <fieldset>
236      <legend>{'g003_options'|@translate}</legend>
237      <label><input onclick='updateFillDatabaseOption();' type="checkbox" id='iamd_FillDataBaseContinuously' {if $amdConfig.amd_FillDataBaseContinuously=='y'}checked{/if}>&nbsp;{'g003_fillDatabaseContinuously'|@translate}</label><br>
238
239      {if !(in_array('exif', $amdConfig.amd_FillDataBaseExcludeFilters) and
240            in_array('xmp', $amdConfig.amd_FillDataBaseExcludeFilters) and
241            in_array('iptc', $amdConfig.amd_FillDataBaseExcludeFilters) and
242            in_array('xmp', $amdConfig.amd_FillDataBaseExcludeFilters)) }
243        <br>
244        {'g003_ignoreMetadata'|@translate}<br>
245        <table style='margin-left:0px;'>
246          <tr style='vertical-align:top;text-align:left;'>
247            <td width='150px'>
248              {if !in_array('magic', $amdConfig.amd_FillDataBaseExcludeFilters)}
249              <label><input onclick='displayAnalyzedOption();' type="checkbox" id='iFillDataBaseIgnore_magic' {if in_array('magic', $amdConfig.amd_FillDataBaseIgnoreSchemas)}checked{/if}>&nbsp;Magic</label><br>
250              {/if}
251              {if !in_array('exif', $amdConfig.amd_FillDataBaseExcludeFilters)}
252              <label><input onclick='displayAnalyzedOption();' type="checkbox" id='iFillDataBaseIgnore_exif' {if in_array('exif', $amdConfig.amd_FillDataBaseIgnoreSchemas)}checked{/if}>&nbsp;EXIF</label><br>
253              {/if}
254              {if !in_array('iptc', $amdConfig.amd_FillDataBaseExcludeFilters)}
255              <label><input onclick='displayAnalyzedOption();' type="checkbox" id='iFillDataBaseIgnore_iptc' {if in_array('iptc', $amdConfig.amd_FillDataBaseIgnoreSchemas)}checked{/if}>&nbsp;IPTC</label><br>
256              {/if}
257              {if !in_array('xmp', $amdConfig.amd_FillDataBaseExcludeFilters)}
258              <label><input onclick='displayAnalyzedOption();' type="checkbox" id='iFillDataBaseIgnore_xmp' {if in_array('xmp', $amdConfig.amd_FillDataBaseIgnoreSchemas)}checked{/if}>&nbsp;XMP</label>
259              {/if}
260            </td>
261            <td style='border-left:1px dotted;'><br><span style='font-style:italic;margin-left:8px;'>{'g003_fillDatabaseIgnoreWarning'|@translate}</span></td>
262          </tr>
263        </table>
264      {/if}
265    </fieldset>
266
267    <fieldset>
268      <legend>{'g003_update_metadata'|@translate}</legend>
269        <label>
270          <input type="radio" value="caddieAdd" name="fAMD_analyze_action" id="ianalyze_action2" checked>&nbsp;
271          {'g003_analyze_caddie_add_pictures'|@translate}
272        </label><br>
273
274        <label>
275          <input type="radio" value="caddieReplace" name="fAMD_analyze_action" id="ianalyze_action3">&nbsp;
276          {'g003_analyze_caddie_replace_pictures'|@translate}
277        </label><br>
278
279
280        <label>
281          <input type="radio" value="notAnalayzed" name="fAMD_analyze_action" id="ianalyze_action0">&nbsp;
282          {'g003_analyze_not_analyzed_pictures'|@translate}
283        </label><br>
284
285        <label>
286          <input type="radio" value="all" name="fAMD_analyze_action" id="ianalyze_action1">&nbsp;
287          {'g003_analyze_all_pictures'|@translate}
288        </label><br>
289
290        <span id='iAnalyzeAnalyzed' style='display:none;'>
291          <label>
292            <input type="radio" value="analyzed" name="fAMD_analyze_action" id="ianalyze_action4">&nbsp;
293            {'g003_analyze_analyzed_pictures'|@translate}
294          </label><br>
295        </span>
296
297        {if $amdConfig.amd_DisplayWarningsMessageUpdate=='y'}
298          <div class="warnings">
299            <p style="font-size: 120%;">{'g003_warning_on_analyze_0'|@translate}</p>
300            <p>{'g003_warning_on_analyze_1'|@translate}</p>
301            <p>{'g003_warning_on_analyze_2'|@translate}</p>
302          </div>
303        {/if}
304
305        <br>
306        <input type="hidden" id="iamd_NumberOfItemsPerRequest" value="{$datas.NumberOfItemsPerRequest}">
307        <!--
308        {'g003_setting_nb_items_per_request'|@translate}&nbsp;
309        <div id="iamd_nb_item_per_request_slider"></div>
310        <div id="iamd_nb_item_per_request_display"></div>
311        <br><br>
312        -->
313        <input type="button" value="{'g003_analyze'|@translate}" onclick="doAnalyze();">
314    </fieldset>
315  </form>
316</div>
317
318
319
320
321<script type="text/javascript">
322  init();
323</script>
Note: See TracBrowser for help on using the repository browser.