source: extensions/rv_autocomplete/admin/custom.tpl @ 22375

Last change on this file since 22375 was 22375, checked in by ddtddt, 11 years ago

[extensions] - rv_autocomplete - localisation step 1

File size: 6.3 KB
Line 
1<div class="titrePage">
2  <h2>RV Autocomplete {$TABSHEET_TITLE}</h2>
3</div>
4
5<div id="acFormContainer" style="text-align:left">
6<form>
7<table>
8<tr>
9<td>
10        <label for=ac_name style="min-width:100px">{'Query:'|@translate}</label>
11</td>
12<td>
13        <input id="ac_name" type="text" size="48">
14</td>
15</tr>
16<tr>
17<td colspan=2>
18<small>{'Use <b>\</b> to break search (e.g. Central Park\, NY will not match NY but it will display it)'|@translate}
19</small>
20</td>
21</tr>
22
23
24<tr>
25<td>
26<label for=ac_counter>{'Weight:'|@translate}</label>
27</td>
28<td>
29        <input id="ac_counter" type="text" size="3">
30</td>
31</tr>
32
33<tr>
34<td>
35<label for=ac_url>{'Url:'|@translate}</label>
36</td>
37<td>
38        <input id="ac_url" type="text" size="48">
39</td>
40</tr>
41
42<tr>
43<td colspan=2>
44<small>{'Leave empty for automatic gallery search <br>OR enter an url ($r/ at the start of url means this gallery)<br>OR enter q=Term to search for a specific term'|@translate}
45</small>
46</td>
47</tr>
48</table>
49</form>
50</div>
51
52<p><a class="openAddNew">{'Create a new suggestion'|@translate}</a></p>
53<table id="csTable" class="table2">
54<thead>
55<tr class="throw">
56<th>{'Name'|@translate}</th>
57<th>{'Weight'|@translate}</th>
58<th>{'URL'|@translate}</th>
59<th>{'Actions'|@translate}</th>
60</tr>
61</thead>
62<tbody>
63</tbody>
64</table>
65
66<p><a class="openAddNew">{'Create a new suggestion'|@translate}</a></p>
67
68{include file='include/colorbox.inc.tpl'}
69
70{combine_css path="themes/default/js/ui/theme/jquery.ui.core.css"}
71{combine_css path="themes/default/js/ui/theme/jquery.ui.button.css"}
72{combine_css path="themes/default/js/ui/theme/jquery.ui.dialog.css"}
73{combine_css path="themes/default/js/ui/theme/jquery.ui.theme.css"}
74
75{combine_script id="jquery.ui.dialog" load="footer" require="jquery.ui.button"}
76{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
77
78
79{combine_script id="jquery.dataTables" load="footer" path="plugins/`$RVAC_ID`/admin/res/jquery.dataTables.js"}
80
81
82{html_style}{literal}
83.ui-accordion-header-icon {display: none}
84
85.dtBar {
86        text-align: right;
87}
88
89.dtBar DIV {
90        display: inline;
91        padding-right: 10px;
92}
93
94#csTable_filter {
95        display: block;
96        float: left;
97        padding-left: 10px;
98}
99
100.dataTables_paginate A {
101        padding-left: 3px;
102}
103
104#csTable TH {
105        cursor: pointer;
106}
107
108.sorting_asc:after { content: " \2193" }
109.sorting_desc:after { content: " \2191" }
110{/literal}{/html_style}
111
112{footer_script}
113var iniDatas = [
114{foreach from=$suggestions item=s name=sloop}
115{ldelim}id:{$s.id},name:"{$s.name|@escape:javascript}",counter:{$s.counter},url:"{$s.url|@escape:javascript}",U_LINK:"{$s.U_LINK|@escape:javascript}"{rdelim}{if !$smarty.foreach.sloop.last},{/if}
116{/foreach}
117];
118var SHelper = {ldelim}
119{literal}
120
121buildRowData: function(item) {
122        var rowData = [];
123        rowData.push(item.name);
124        rowData.push(item.counter);
125        rowData.push( "<a href=\""+item.U_LINK+"\" onclick=\"return SHelper.zoom(this.href)\">"
126                + (item.url ? item.url : "show" )
127                + "</a>"
128        );
129        rowData.push("<a href=\"\" onclick=\"return SHelper.del(this)\">Delete</a>"
130                + " <a href=\"\" onclick=\"return SHelper.edit(this)\">Edit</a>"
131        );
132        return rowData;
133},
134
135buildRow: function(item) {
136        var rd = SHelper.buildRowData(item)
137         , row = "<tr>";
138         
139        for (var i =0; i<rd.length; i++)
140                row += "<td>"+rd[i]+"</td>";
141
142        row += "</tr>";
143
144        return $(row).data("ac", item)
145},
146
147rowFromNode: function(node) {
148        return $(node).parents("tr");
149},
150
151zoom: function(url){
152        jQuery.colorbox( {
153                href: url,
154                iframe: 1,
155                width: "90%", height: "90%"
156        });
157        return false;
158},
159
160del: function(node){
161        if (!confirm("Are you sure?")) return false;
162        var row = SHelper.rowFromNode(node)
163                , item=row.data("ac");
164               
165        row.fadeTo(500, 0.4);
166        (new PwgWS("")).callService(
167                "rvac.delCustom", {id: item.id} ,
168                {
169                        method: "POST",
170                        onFailure: function(num, text) { row.stop(); row.fadeTo(0,1); alert(num + " " + text); },
171                        onSuccess: function(result) {
172                                // row.remove();
173                                dataTable.fnDeleteRow( row[0] );
174                        }
175                }
176        );
177
178        return false;
179},
180
181add: function() {
182        $("#ac_name,#ac_counter,#ac_url").val( "" );
183        $("#acFormContainer")
184                .dialog("option", "buttons", [{text: "Create", click: function() {
185                                (new PwgWS("")).callService(
186                                        "rvac.addCustom", { name:$("#ac_name").val(), counter:$("#ac_counter").val(), url:$("#ac_url").val() },
187                                        {
188                                                method: "POST",
189                                                onFailure: function(num, text) {
190                                                        alert(num + " " + text);
191                                                },
192                                                onSuccess: function(result) {
193                                                        //$("#csTable").append( SHelper.buildRow(result) );
194                                                        var rd = SHelper.buildRowData(result);
195                                                        var node = dataTable.fnGetNodes( dataTable.fnAddData(rd)[0] );
196                                                        $(node).data("ac", result);
197
198                                                        $("#ac_name,#ac_counter,#ac_url").val( "" );
199                                                }
200                                        }
201                                );
202                        }
203                }, { text: "Close", click: function(){ $(this).dialog("close") }} ])
204                .dialog("open");
205},
206
207edit: function(node) {
208        var row = SHelper.rowFromNode(node)
209                , item=row.data("ac");
210
211        $("#ac_name").val( item.name );
212        $("#ac_counter").val( item.counter );
213        $("#ac_url").val( item.url );
214
215        $("#acFormContainer")
216                .dialog("option", "buttons", [{text: "Modify", click: function() {
217                                (new PwgWS("")).callService(
218                                        "rvac.modCustom", {id: item.id, name:$("#ac_name").val(), counter:$("#ac_counter").val(), url:$("#ac_url").val() },
219                                        {
220                                                method: "POST",
221                                                onFailure: function(num, text) {
222                                                        alert(num + " " + text);
223                                                },
224                                                onSuccess: function(result) {
225                                                        /*row.after( SHelper.buildRow(result) )
226                                                                .remove();*/
227
228                                                        dataTable.fnUpdate(SHelper.buildRowData(result), row[0]);
229                                                        row.data("ac", result);
230
231                                                        $("#acFormContainer").dialog("close");
232                                                }
233                                        }
234                                );
235                        }
236                }, { text: "Close", click: function(){ $(this).dialog("close") }} ])
237                .dialog("open");
238
239        return false;
240}
241}
242
243$().ready( function() {
244        var table = $("#csTable");
245        $.each(iniDatas, function(i, item) {
246                table.append( SHelper.buildRow(item) );
247        });
248        dataTable = table.dataTable( {
249                sDom : '<"dtBar"filp>rt<"dtBar"ilp>',
250                iDisplayLength: 100,
251                aoColumnDefs: [
252                        { bSearchable: false, aTargets: [1,3] },
253                        { bSortable: false, aTargets: [3] }
254                ],
255                asStripeClasses: ["row1", "row2"],
256                bAutoWidth: false,
257                aaSorting: []
258        });
259       
260        $("#acFormContainer").dialog({
261                autoOpen: false,
262                modal: true,
263                width: "auto"
264        });
265        $(".openAddNew").click( SHelper.add ).button();
266       
267        $("tr", table).hover(
268                function() {
269                        $(this).addClass("ui-state-highlight");
270                },
271                function() {
272                        $(this).removeClass("ui-state-highlight");
273                }
274        );
275});
276{/literal}
277{/footer_script}
Note: See TracBrowser for help on using the repository browser.