[IMP] Refactored form view's buttons
[odoo/odoo.git] / addons / web / static / src / xml / base.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- vim:fdl=1:
3 -->
4 <templates id="template" xml:space="preserve">
5 <t t-name="Notification">
6     <div class="oe_notification">
7         <div id="oe_notification_default">
8             <a class="ui-notify-cross ui-notify-close" href="#">x</a>
9             <h1>#{title}</h1>
10             <p>#{text}</p>
11         </div>
12         <div id="oe_notification_alert" class="ui-state-error">
13             <a class="ui-notify-cross ui-notify-close" href="#">x</a>
14             <span style="float:left; margin:2px 5px 0 0;" class="ui-icon ui-icon-alert"></span>
15             <h1>#{title}</h1>
16             <p>#{text}</p>
17         </div>
18     </div>
19 </t>
20 <t t-name="Interface">
21     <div id="oe_loading" class="loading"></div>
22     <table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%" class="main_table">
23     <tr>
24         <td colspan="2" valign="top">
25             <div id="oe_header" class="header"></div>
26             <div id="oe_menu" class="menu"></div>
27         </td>
28     </tr>
29     <tr>
30         <td valign="top" class="login-container" colspan="2">
31             <div id="oe_login" class="login"></div>
32         </td>
33     </tr>
34     <tr class="db_options_row">
35         <td valign="top" class="db_container">
36             <div id="oe_database" class="database"></div>
37         </td>
38         <td valign="top">
39                 <div id="oe_db_options"></div>
40         </td>
41     </tr>
42     <tr>
43         <td colspan="2" valign="top" height="100%">
44             <table cellspacing="0" cellpadding="0" border="0" height="100%" width="100%">
45             <tr>
46                 <td valign="top" id="oe_secondary_menu" class="secondary_menu">
47                 </td>
48                 <td valign="top" class="oe-application-container">
49                     <div id="oe_app" class="oe-application">
50                     </div>
51                 </td>
52             </tr>
53             </table>
54         </td>
55     </tr>
56     <tr>
57         <td colspan="2">
58             <div id="oe_footer" class="oe_footer">
59                 <p class="oe_footer_powered">Powered by <a href="http://www.openerp.com">openerp.com</a>.</p>
60             </div>
61         </td>
62     </tr>
63     </table>
64 </t>
65 <t t-name="Loading">
66     Loading...
67 </t>
68 <t t-name="Database">
69     <ul class="db_options" style="padding: 0px; display: inline;">
70         <li id="db-create">Create</li>
71         <li id="db-drop">Drop</li>
72         <li id="db-backup">Backup</li>
73         <li id="db-restore">Restore</li>
74         <li id="db-change-password">Password</li>
75         <li id="back-to-login">Back to Login</li>
76     </ul>
77 </t>
78 <t t-name="Database.CreateDB">
79     <form name="create_db_form" class="oe_forms" method="POST">
80         <table width="100%">
81             <tr>
82                 <td class="option_string">
83                     CREATE DATABASE
84                 </td>
85             </tr>
86         </table>
87         <table align="center" class="db_option_table">
88             <tr>
89                 <td><label for="super_admin_pwd">Master password:</label></td>
90                 <td><input type="password" name="super_admin_pwd" class="required" value="admin"/></td>
91             </tr>
92             <tr>
93                 <td><label for="db_name">New database name:</label></td>
94                 <td><input type="text" name="db_name" class="required"/></td>
95             </tr>
96             <tr>
97                 <td><label for="demo_data">Load Demonstration data:</label></td>
98                 <td><input type="checkbox" name="demo_data"/></td>
99             </tr>
100             <tr>
101                 <td><label for="db_lang">Default language:</label></td>
102                 <td>
103                     <select name="db_lang" t-if="lang_list">
104                         <t t-foreach="lang_list" t-as="lang">
105                             <option t-att-value="lang[0]" t-att-selected="lang[0] === 'en_US' ? 'selected' : undefined"><t t-esc="lang[1]"/></option>
106                         </t>
107                     </select>
108                 </td>
109             </tr>
110             <tr>
111                 <td><label for="create_admin_pwd">Admin password:</label></td>
112                 <td><input type="password" name="create_admin_pwd" class="required"/></td>
113             </tr>
114             <tr>
115                 <td><label for="create_confirm_pwd">Confirm password:</label></td>
116                 <td><input type="password" name="create_confirm_pwd" class="required"
117                            equalTo="input[name=create_admin_pwd]"/></td>
118             </tr>
119             <tr>
120                 <td colspan="2" align="right"><input type="submit" value="Create"/></td>
121             </tr>
122         </table>
123     </form>
124 </t>
125 <t t-name="DropDB">
126     <form name="drop_db_form" class="oe_forms" method="POST">
127         <table width="100%">
128             <tr>
129                 <td class="option_string">
130                     DROP DATABASE
131                 </td>
132             </tr>
133         </table>
134         <table align="center" class="db_option_table">
135             <tr>
136                 <td><label for="drop_db">Database:</label></td>
137                 <td>
138                     <select t-if="db_list" name="drop_db" autofocus="autofocus">
139                         <t t-foreach="db_list" t-as="db">
140                             <option t-att-value="db"><t t-esc="db"/></option>
141                         </t>
142                     </select>
143                 </td>
144             </tr>
145             <tr>
146                 <td><label for="drop_password">Master Password:</label></td>
147                 <td><input type="password" name="drop_pwd" class="required"/></td>
148             </tr>
149             <tr>
150                 <td colspan="2" align="right"><input type="submit" value="Drop"/></td>
151             </tr>
152         </table>
153     </form>
154 </t>
155 <t t-name="BackupDB">
156     <form name="backup_db_form" class="oe_forms" method="POST" target="backup-target"
157           action="/web/database/backup">
158         <input type="hidden" name="token"/>
159         <table width="100%">
160             <tr>
161                 <td class="option_string">
162                     BACKUP DATABASE
163                 </td>
164             </tr>
165         </table>
166         <table align="center" class="db_option_table">
167             <tr>
168                 <td><label for="backup_db">Database:</label></td>
169                 <td>
170                     <select t-if="db_list" name="backup_db" autofocus="autofocus">
171                         <t t-foreach="db_list" t-as="db">
172                             <option t-att-value="db"><t t-esc="db"/></option>
173                         </t>
174                     </select>
175                 </td>
176             </tr>
177             <tr>
178                 <td><label for="backup_pwd">Master Password:</label></td>
179                 <td><input type="password" name="backup_pwd" class="required"/></td>
180             </tr>
181             <tr>
182                 <td colspan="2" align="right"><input type="submit" value="Backup"/></td>
183             </tr>
184         </table>
185     </form>
186 </t>
187 <t t-name="RestoreDB">
188     <form name="restore_db_form" class="oe_forms" method="POST">
189         <table width="100%">
190             <tr>
191                 <td class="option_string">
192                     RESTORE DATABASE
193                 </td>
194             </tr>
195         </table>
196         <table align="center" class="db_option_table">
197             <tr>
198                 <td><label for="restore_db">File:</label></td>
199                 <td><input type="file" name="db_file" class="required"
200                          autofocus="autofocus"/></td>
201             </tr>
202             <tr>
203                 <td><label for="restore_pwd">Master Password:</label></td>
204                 <td><input type="password" name="restore_pwd" class="required"/></td>
205             </tr>
206         <tr>
207                 <td><label for="new_db">New database name:</label></td>
208                 <td><input type="text" name="new_db" class="required"/></td>
209             </tr>
210         <tr>
211             <td colspan="2" align="right"><input type="submit" value="Restore"/></td>
212             </tr>
213         </table>
214     </form>
215 </t>
216 <t t-name="Change_DB_Pwd">
217     <form name="change_pwd_form" class="oe_forms" method="POST">
218         <table width="100%">
219             <tr>
220                 <td class="option_string">
221                     CHANGE MASTER PASSWORD
222                 </td>
223             </tr>
224         </table>
225         <table align="center" class="db_option_table">
226             <tr>
227                 <td><label for="old_pwd">Master password:</label></td>
228                 <td><input type="password" name="old_pwd" class="required"
229                            minlength="1" autofocus="autofocus"/></td>
230             </tr>
231             <tr>
232             <td><label for="new_pwd">New master password:</label></td>
233             <td><input type="password" name="new_pwd" class="required"
234                        minlength="1"/></td>
235             </tr>
236             <tr>
237                 <td><label for="confirm_pwd">Confirm new master password:</label></td>
238                 <td><input type="password" name="confirm_pwd" class="required"
239                            equalTo="input[name=new_pwd]" minlength="1"/></td>
240             </tr>
241             <tr>
242                 <td colspan="2" align="right"><input type="submit" value="Change Password"/></td>
243             </tr>
244         </table>
245     </form>
246 </t>
247
248 <t t-name="Login_dblist">
249     <select name="db">
250         <t t-foreach="db_list" t-as="db">
251             <t t-if="selected_db === db">
252                 <option t-att-value="db" selected="true">
253                     <t t-esc="db"/></option>
254             </t>
255             <t t-if="selected_db !== db">
256                 <option t-att-value="db"><t t-esc="db"/></option>
257             </t>
258         </t>
259     </select>
260 </t>
261
262 <t t-name="Login">
263     <div>
264     <form class="oe_forms">
265         <fieldset>
266             <legend style="">
267                 <img src="/web/static/src/img/stock_person.png" alt="" />
268             </legend>
269             <div class="oe_box2">
270                 <table align="center" cellspacing="2px" cellpadding="0">
271                     <tr>
272                         <td><label for="db">Database:</label></td>
273                         <td>
274                             <input type="text" name="db" t-att-value="widget.selected_db || ''" autofocus="true"/>
275                         </td>
276                     </tr>
277                     <tr>
278                         <td><label for="login">User:</label></td>
279                         <td><input type="text" name="login"
280                             t-att-value="widget.selected_login || ''" autofocus="true"/></td>
281                     </tr>
282                     <tr>
283                         <td><label for="password">Password:</label></td>
284                         <td><input type="password" name="password"
285                                 t-att-value="widget.selected_password || ''"/></td>
286                     </tr>
287                     <tr>
288                         <td></td>
289                         <td>
290                                 <button type="button" id="oe-db-config">Database</button>
291                             <button type="submit" name="submit">Login</button>
292                         </td>
293                     </tr>
294                 </table>
295             </div>
296         </fieldset>
297         <div class="login_error_message">Bad username or password</div>
298     </form>
299     <div class="oe_login_right_pane">
300         <p>We think that daily job activities can be more intuitive, efficient, automated, .. and even fun.</p>
301         <h3>OpenERP's vision to be:</h3>
302
303         <table cellpadding="0" cellspacing="0" width="100%" style="border:none;">
304             <tbody>
305             <tr>
306                 <td>
307                     <img src="/web/static/src/img/product.png"/>
308                 </td>
309                 <td>
310                     <strong>Full featured</strong><br />
311                     Today's enterprise challenges are multiple. We provide one module for each need.
312                 </td>
313             </tr>
314             <tr>
315                 <td>
316                     <img src="/web/static/src/img/accessories-archiver.png"/>
317                 </td>
318                 <td>
319                     <strong>Open Source</strong><br />
320                     To Build a great product, we rely on the knowledge of thousands of contributors.
321                 </td>
322             </tr>
323             <tr>
324                 <td>
325                     <img src="/web/static/src/img/partner.png" />
326                 </td>
327                 <td>
328                     <strong>User Friendly</strong><br />
329                     In order to be productive, people need clean and easy to use interface.
330                 </td>
331             </tr>
332             </tbody>
333         </table>
334
335     </div>
336     </div>
337 </t>
338 <t t-name="Header">
339     <div>
340         <a t-att-href="'/' + widget.qs" class="company_logo_link">
341             <div class="company_logo" />
342         </a>
343     </div>
344 </t>
345 <t t-name="Header-content">
346     <h1 class="header_title">
347         <t t-esc="user.company_id[1]"/> (<t t-esc="widget.session.db"/>)<br/>
348         <small class="username"><t t-esc="user.name"/></small>
349     </h1>
350     <div class="header_corner">
351         <ul class="block">
352             <li>
353                 <a t-att-href="'/' + widget.qs" title="Home" class="home"><img src="/web/static/src/img/header-home.png" width="16" height="16" border="0"/></a>
354             </li>
355             <li class="preferences">
356                 <a href="javascript:void(0)" title="Preferences" class="preferences"><img src="/web/static/src/img/header-preferences.png" width="16" height="16" border="0"/></a>
357             </li>
358             <li>
359                 <a href="javascript:void(0)" title="About" class="about"><img src="/web/static/src/img/header-about.png" width="16" height="16" border="0"/></a>
360             </li>
361         </ul>
362         <div class="block">
363             <a href="#logout" class="logout">LOGOUT</a>
364         </div>
365
366     </div>
367     <div class="oe-shortcuts"> </div>
368 </t>
369 <ul t-name="Shortcuts">
370     <li t-foreach="shortcuts" t-as="shortcut"
371             t-att-data-id="shortcut.res_id"
372             t-att-data-shortcut-id="shortcut.id"
373         ><t t-esc="shortcut.name"/></li>
374 </ul>
375 <t t-name="Menu">
376     <table align="center">
377     <tr>
378         <td t-foreach="widget.data.data.children" t-as="menu">
379             <a href="#" t-att-data-menu="menu.id">
380                 <t t-esc="menu.name"/>
381             </a>
382         </td>
383     </tr>
384     </table>
385 </t>
386 <t t-name="Menu.secondary">
387     <div t-attf-class="oe_toggle_secondary_menu">
388         <span class="oe_menu_fold" title="Fold menu">&amp;laquo;</span>
389         <span class="oe_menu_unfold" title="Unfold menu">&amp;raquo;</span>
390     </div>
391     <div t-foreach="widget.data.data.children" t-as="menu" style="display: none" class="oe_secondary_menu" t-att-data-menu-parent="menu.id">
392         <t t-foreach="menu.children" t-as="menu">
393             <t t-set="classname">oe_secondary_menu_item</t>
394             <t t-set="level" t-value="0"/>
395             <t t-call="Menu.secondary.children"/>
396         </t>
397     </div>
398 </t>
399 <t t-name="Menu.secondary.children">
400     <t t-set="level" t-value="level + 1"/>
401     <a href="#" t-att-id="menu.children.length ? 'menu_' + menu.id : undefined"
402         t-att-class="classname + (menu.children.length ? ' submenu' : ' leaf') + (menu_first and level == 1 ? ' opened' : '')"
403         t-att-data-menu="menu.children.length ? undefined : menu.id">
404         <span t-attf-style="padding-left: #{(level - 2) * 20}px"> <t t-esc="menu.name"/></span>
405     </a>
406     <div t-attf-class="oe_secondary_submenu" t-if="menu.children.length" t-att-style="menu_first and level == 1 ? undefined : 'display: none'">
407         <t t-foreach="menu.children" t-as="menu">
408             <t t-set="classname">oe_secondary_submenu_item</t>
409             <t t-call="Menu.secondary.children"/>
410         </t>
411     </div>
412 </t>
413 <t t-name="ViewManager">
414     <table class="view-manager-main-table">
415     <tr>
416         <td class="view-manager-main-content">
417             <div class="oe-view-manager-header">
418                 <h2 class="oe_view_title" t-if="self.flags.display_title !== false">
419                     <t t-esc="self.display_title()"/>
420                 </h2>
421                 <div class="oe_vm_switch">
422                     <t t-if="views.length != 1" t-foreach="views" t-as="view">
423                         <button type="button" t-att-data-view-type="view.view_type">
424                             <t t-esc="view.view_type"/>
425                         </button>
426                     </t>
427                 </div>
428             </div>
429             <div t-attf-id="#{prefix}_search" t-opentag="true"/>
430             <t t-foreach="views" t-as="view">
431                 <div t-attf-id="#{prefix}_view_#{view.view_type}"/>
432             </t>
433         </td>
434         <td class="view-manager-main-sidebar" height="100%">
435             <t t-foreach="views" t-as="view">
436                 <div t-attf-id="#{prefix}_sidebar_#{view.view_type}" class="sidebar-main-div closed-sidebar" style="display: none"/>
437             </t>
438         </td>
439     </tr>
440     </table>
441 </t>
442
443 <t t-extend="ViewManager" t-name="ViewManagerAction">
444     <t t-jquery=".oe-view-manager-header" t-operation="prepend">
445         <blockquote t-if="self.action.help and !self.flags.low_profile
446                          and !(self.action.id in self.session.hidden_menutips)">
447             <p><t t-esc="self.action.help"/></p>
448             <div>
449                 <button type="button" name="hide">Hide this tip</button>
450                 <button type="button" name="disable">Disable all tips</button>
451             </div>
452         </blockquote>
453         <a class="oe-shortcut-toggle" title="Add / Remove Shortcut..."
454            href="javascript: void(0)"> </a>
455         <button t-if="self.session.debug" class="oe_get_xml_view">
456             View#<span></span>
457         </button>
458     </t>
459     <t t-jquery=".oe-view-manager-header" t-operation="after">
460         <ul class="oe-view-manager-logs"></ul>
461     </t>
462 </t>
463
464 <t t-name="Sidebar">
465     <a class="toggle-sidebar"></a>
466     <div class="sidebar-content">
467         <div class="sidebar-actions">
468         </div>
469     </div>
470 </t>
471 <t t-name="Sidebar.section">
472     <div t-att-id="section_id" t-att-class="classname">
473         <h2><t t-esc="name"/></h2>
474     </div>
475 </t>
476 <t t-name="Sidebar.section.items">
477             <li t-foreach="items" t-as="item" t-att-class="item.classname">
478                 <a class="oe_sidebar_action_a" t-att-id="item.element_id" t-att-title="item.title" href="#">
479                     <t t-esc="item.label"/>
480                 </a>
481             </li>
482 </t>
483
484 <t t-name="TranslateDialog">
485     <ul class="oe_translate_tabs">
486         <li><a t-attf-href="##{widget.element_id}_fields">Fields</a></li>
487         <li><a t-attf-href="##{widget.element_id}_view">View labels</a></li>
488         <li><a t-attf-href="##{widget.element_id}_sidebar">Sidebar Relates</a></li>
489     </ul>
490     <div t-attf-id="#{widget.element_id}_fields">
491         <table t-if="widget.view.translatable_fields" class="oe_frame oe_forms oe_translation_form" border="0" cellpadding="0" cellspacing="0" width="100%">
492         <tr>
493             <td class="oe_form_separator" width="1%" nowrap="nowrap">
494                 <div class="separator horizontal">Field</div>
495             </td>
496             <th t-foreach="widget.languages" align="left">
497                 <div class="separator horizontal"><t t-esc="name"/></div>
498             </th>
499         </tr>
500         <tr t-foreach="widget.view.translatable_fields" t-as="field">
501             <td class="oe_form_frame_cell" width="1%" nowrap="nowrap">
502                 <label class="oe_label"><t t-esc="field.string"/>:</label>
503             </td>
504             <td t-foreach="widget.languages" t-as="lg" class="oe_form_frame_cell">
505                 <input t-if="field.type == 'char'" type="text" t-attf-name="#{lg.code}-#{field.name}" value="" data-value="" class="oe_trad_field" style="width: 100%"/>
506                 <textarea t-if="field.type == 'text'" t-attf-name="#{lg.code}-#{field.name}" data-value="" class="oe_trad_field" style="width: 100%"></textarea>
507             </td>
508         </tr>
509         </table>
510     </div>
511     <div t-attf-id="#{widget.element_id}_view">
512         Translate view
513     </div>
514     <div t-attf-id="#{widget.element_id}_sidebar">
515         Translate sidebar
516     </div>
517 </t>
518 <t t-name="TreeView">
519     <select t-if="toolbar" style="width: 30%">
520     </select>
521     <table class="oe-treeview-table">
522         <thead>
523             <tr>
524                 <th t-foreach="fields_view" t-as="field"
525                     t-if="!field.attrs.modifiers.tree_invisible"
526                     class="treeview-header">
527                     <t t-esc="fields[field.attrs.name].string" />
528                 </th>
529             </tr>
530         </thead>
531         <tbody>
532         </tbody>
533     </table>
534 </t>
535 <tr t-name="TreeView.rows"
536         t-foreach="records" t-as="record"
537         t-att-id="'treerow_' + record.id"
538         t-att-data-id="record.id" t-att-data-level="level + 1">
539     <t t-set="children" t-value="record[children_field]"/>
540     <t t-set="has_children" t-value="children and children.length"/>
541
542     <td t-foreach="fields_view" t-as="field"
543         t-if="!field.attrs.modifiers.tree_invisible"
544         t-att-data-id="record.id"
545         t-att-style="color_for(record) + (!field_index ? 'background-position: ' + 19*level + 'px; padding-left: ' + 19*level + 'px;' : '')"
546         t-att-class="!field_index and has_children ? 'treeview-tr' : 'treeview-td'">
547         <span t-if="!field.attrs.modifiers.invisible">
548             <t t-esc="render(record[field.attrs.name], fields[field.attrs.name])" />
549         </span>
550     </td>
551 </tr>
552
553 <table t-name="ListView" class="oe-listview-content">
554     <t t-set="columns_count" t-value="visible_columns.length + (options.selectable ? 1 : 0) + (options.deletable ? 1 : 0)"/>
555     <thead class="ui-widget-header">
556         <tr t-if="options.action_buttons !== false or options.pager !== false">
557             <th t-att-colspan="columns_count">
558                 <table>
559                     <tr>
560                         <td t-if="options.action_buttons !== false" class="oe-actions">
561                             <button type="button" class="oe-list-add"
562                                     t-if="options.addable">
563                                 <t t-esc="options.addable"/>
564                             </button>
565                             <button type="button" class="oe-list-delete"
566                                     t-if="options.selectable and options.deletable">
567                                 Delete
568                             </button>
569                         </td>
570                         <t t-call="Listview.navigation.button"/>
571                     </tr>
572                 </table>
573             </th>
574         </tr>
575         <tr t-if="options.header" class="oe-listview-header-columns">
576             <t t-foreach="columns" t-as="column">
577                 <th t-if="column.meta">
578                     <t t-esc="column.string"/>
579                 </th>
580             </t>
581             <th t-if="options.selectable" width="1"  >
582                 <input type="checkbox" class="all-record-selector"/> </th>
583             <t t-foreach="columns" t-as="column">
584                 <th t-if="!column.meta and column.invisible !== '1'" t-att-data-id="column.id"
585                     t-att-class="((options.sortable and column.tag !== 'button') ? 'oe-sortable' : null)">
586                     <t t-if="column.tag !== 'button'"
587                         ><t t-esc="column.string"/></t>
588                 </th>
589             </t>
590             <th t-if="options.deletable" width="1"/>
591         </tr>
592     </thead>
593     <tfoot class="ui-widget-header">
594         <tr>
595             <td t-if="options.selectable"/>
596             <td t-foreach="aggregate_columns" t-as="column" class="oe-list-footer oe-number"
597                 t-att-data-field="column.id" t-att-title="column.label">
598             </td>
599             <td t-if="options.deletable"/>
600         </tr>
601         <tr>
602             <t t-call="Listview.navigation.button"/>
603         </tr>
604     </tfoot>
605 </table>
606 <th t-name="Listview.navigation.button" t-if="options.pager !== false"
607         class="oe-list-pager" t-att-colspan="columns_count">
608     <button type="button" disabled="disabled"
609             data-pager-action="first">First</button>
610     <button type="button" disabled="disabled"
611             data-pager-action="previous">&lt;</button>
612
613     <span class="oe-pager-state">
614     </span>
615
616     <button type="button" disabled="disabled"
617             data-pager-action="next">&gt;</button>
618     <button type="button" disabled="disabled"
619             data-pager-action="last">Last</button>
620 </th>
621 <t t-name="ListView.rows" t-foreach="records.length" t-as="index">
622     <t t-call="ListView.row">
623         <t t-set="record" t-value="records.at(index)"/>
624         <t t-set="row_parity" t-value="index_parity"/>
625     </t>
626 </t>
627 <tr t-name="ListView.row" t-att-class="row_parity"
628         t-att-data-id="record.get('id')"
629         t-att-style="view.color_for(record)">
630     <t t-foreach="columns" t-as="column">
631         <td t-if="column.meta">
632
633         </td>
634     </t>
635     <t t-if="options.radio">
636         <th t-if="options.selectable" class="oe-record-selector" width="1">
637             <input type="radio" name ="radiogroup"/>
638         </th>
639     </t>
640     <t t-if="!options.radio">
641         <th t-if="options.selectable" class="oe-record-selector" width="1">
642             <input type="checkbox"/>
643         </th>
644     </t>
645
646
647     <t t-foreach="columns" t-as="column">
648         <t t-set="align" t-value="column.type === 'integer' or column.type == 'float'"/>
649         <td t-if="!column.meta and column.invisible !== '1'" t-att-title="column.help"
650             t-att-class="'oe-field-cell' + (align ? ' oe-number' : '')"
651             t-att-data-field="column.id">
652             <t t-raw="render_cell(record, column)"/>
653         </td>
654     </t>
655     <td t-if="options.deletable" class='oe-record-delete' width="1">
656         <button type="button" name="delete">♻</button>
657     </td>
658 </tr>
659 <t t-name="ListView.row.form">
660     <t t-raw="frame.render()"/>
661 </t>
662
663 <t t-name="FormView">
664     <div class="oe_form_header">
665         <div class="oe_form_buttons" t-if="widget.options.action_buttons !== false">
666             <button type="button" class="oe_form_button_save oe_form_on_editable">Save</button>
667             <button type="button" class="oe_form_button_toggle">
668                 <span class="oe_form_on_editable">Cancel</span>
669                 <span class="oe_form_on_readonly">Edit</span>
670             </button>
671             <button type="button" class="oe_form_button_new oe_form_on_readonly">Create</button>
672             <button type="button" class="oe_form_button_duplicate oe_form_on_readonly">Duplicate</button>
673             <button type="button" class="oe_form_button_delete oe_form_on_readonly">Delete</button>
674         </div>
675         <div class="oe_form_pager" t-if="widget.options.pager !== false">
676             <button type="button" data-pager-action="first">First</button>
677             <button type="button" data-pager-action="previous">&lt;&lt;</button>
678
679             <span class="oe_pager_index">0</span> / <span class="oe_pager_count">0</span>
680
681             <button type="button" data-pager-action="next">&gt;&gt;</button>
682             <button type="button" data-pager-action="last">Last</button>
683         </div>
684     </div>
685     <t t-raw="frame.render()"/>
686 </t>
687 <t t-name="FormView.sidebar.attachments">
688     <div class="oe-sidebar-attachments-toolbar">
689         <div class="oe-binary-file-set" style="float: right">
690             <form class="oe-binary-form" t-attf-target="#{element_id}_iframe"
691                 method="post" enctype="multipart/form-data" action="/web/binary/upload_attachment">
692                 <input type="hidden" name="session_id" t-att-value="session.session_id"/>
693                 <input type="hidden" name="callback" t-attf-value="#{element_id}_iframe"/>
694                 <input type="hidden" name="model" t-att-value="view.dataset.model"/>
695                 <input type="hidden" name="id" t-att-value="view.datarecord.id"/>
696                 <button class="button" type="button">
697                     <img src="/web/static/src/img/throbber.gif" width="16" height="16" style="display: none"/>
698                     <span>Add</span>
699                 </button>
700                 <input type="file" class="oe-binary-file" name="ufile" title="Add attachment"
701                     t-att-onclick="view.datarecord.id ? null : 'alert(\'No record selected ! You can only attach to existing record.\'); return false;'"/>
702             </form>
703             <iframe t-attf-id="#{element_id}_iframe" t-attf-name="#{element_id}_iframe" style="display: none"> </iframe>
704         </div>
705     </div>
706     <br style="clear: both"/>
707     <ul class="oe-sidebar-attachments-items">
708         <li t-foreach="attachments" t-as="attachment">
709             <t t-if="attachment.type == 'binary'" t-set="attachment.url" t-value="'/web/binary/saveas?session_id='
710                 + session.session_id + '&amp;model=ir.attachment&amp;id=' + attachment.id
711                 + '&amp;field=datas&amp;fieldname=name&amp;t=' + (new Date().getTime())"/>
712             <a class="oe-sidebar-attachments-link" t-att-href="attachment.url" target="_blank">
713                 <t t-esc="attachment.name"/>
714             </a>
715             <a href="#" class="oe-sidebar-attachment-delete" t-att-data-id="attachment.id" t-attf-title="Delete the attachment #{attachment.name}">
716                 <img src="/web/static/src/img/attachments-close.png" width="15" height="15" border="0"/>
717             </a>
718         </li>
719     </ul>
720 </t>
721 <t t-name="Widget">
722     Unhandled widget
723     <t t-raw="console.log('Unhandled widget', widget)"/>
724 </t>
725 <t t-name="WidgetFrame">
726     <table border="0" width="100%" cellpadding="0" cellspacing="0" class="oe_frame oe_forms">
727     <tr t-foreach="widget.table" t-as="row">
728         <t t-foreach="row" t-as="td">
729             <td t-att-colspan="td.colspan gt 1 ? td.colspan : undefined"
730                 t-att-width="td.width"
731                 t-att-nowrap="td.nowrap or td.is_field_m2o? 'true' : undefined"
732                 t-att-valign="td.table ? 'top' : undefined"
733                 t-attf-class="oe_form_frame_cell #{td.classname} #{td.element_class}"
734             >
735                 <t t-raw="td.render()"/>
736             </td>
737         </t>
738     </tr>
739     </table>
740 </t>
741 <t t-name="WidgetNotebook">
742     <ul>
743         <li t-foreach="widget.pages" t-as="page">
744             <a href="#">
745                 <t t-esc="page.string"/>
746             </a>
747         </li>
748     </ul>
749     <t t-foreach="widget.pages" t-as="page">
750         <t t-raw="page.render()"/>
751     </t>
752 </t>
753 <t t-name="WidgetNotebookPage">
754     <div>
755         <t t-call="WidgetFrame"/>
756     </div>
757 </t>
758 <t t-name="WidgetSeparator">
759     <div t-if="widget.orientation !== 'vertical'" t-att-class="'separator ' + widget.orientation">
760         <t t-esc="widget.string"/>
761     </div>
762 </t>
763 <t t-name="WidgetLabel">
764     <label t-att-for="widget.element_id"
765            t-attf-class="oe_label#{widget.help ? '_help' : ''} oe_align_#{widget.align}"
766            t-att-title="widget.help">
767         <t t-esc="widget.string"/>
768         <span t-if="widget.help">?</span>
769         <t t-if="widget.string and widget.node.tag != 'label'">:</t>
770     </label>
771 </t>
772 <t t-name="WidgetParagraph">
773     <p t-attf-class="oe_form_paragraph oe_align_#{widget.align}"><t t-esc="widget.string"/></p>
774 </t>
775 <t t-name="FieldChar">
776     <input t-att-type="widget.password ? 'password' : 'text'" size="1"
777         t-att-name="widget.name"
778         t-att-id="widget.element_id"
779         t-attf-class="field_#{widget.type}"
780         t-attf-style="width: #{widget.field.translate ? '99' : '100'}%"
781     />
782     <img class="oe_field_translate" t-if="widget.field.translate" src="/web/static/src/img/icons/terp-translate.png" width="16" height="16" border="0"/>
783 </t>
784 <t t-name="FieldChar.readonly">
785     <div
786         t-att-id="widget.element_id"
787         t-attf-class="field_#{widget.type}"
788         t-attf-style="width: #{widget.field.translate ? '99' : '100'}%">
789     </div>
790 </t>
791 <t t-name="FieldURI.readonly">
792     <a href="#">#</a>
793 </t>
794 <t t-name="FieldEmail">
795     <table cellpadding="0" cellspacing="0" border="0" width="100%">
796     <tr>
797         <td width="100%">
798             <t t-call="FieldChar"/>
799         </td>
800         <td width="16">
801             <button type="button" class="button" title="Send an e-mail with your default e-mail client">
802                 <img src="/web/static/src/img/icons/terp-mail-message-new.png"/>
803             </button>
804         </td>
805     </tr>
806     </table>
807 </t>
808 <t t-name="FieldUrl">
809     <table cellpadding="0" cellspacing="0" border="0" width="100%">
810     <tr>
811         <td width="100%">
812             <t t-call="FieldChar"/>
813         </td>
814         <td width="16">
815             <button type="button" class="button" title="Open this resource">
816                 <img src="/web/static/src/img/icons/gtk-ok.png"/>
817             </button>
818         </td>
819     </tr>
820     </table>
821 </t>
822 <t t-name="FieldText">
823     <textarea rows="6"
824         t-att-name="widget.name"
825         t-att-id="widget.element_id"
826         t-attf-class="field_#{widget.type}"
827         t-attf-style="width: #{widget.field.translate ? '99' : '100'}%"
828     ></textarea>
829     <img class="oe_field_translate" t-if="widget.field.translate" src="/web/static/src/img/icons/terp-translate.png" width="16" height="16" border="0"/>
830 </t>
831 <t t-name="web.datetimepicker">
832     <div class="oe_datepicker_root">
833         <input type="text" size="1" style="width: 100%"/>
834         <img class="oe_input_icon oe_datepicker_trigger" src="/web/static/src/img/ui/field_calendar.png"
835              title="Select date" width="16" height="16" border="0"/>
836         <div class="oe_datepicker ui-widget-content ui-corner-all" style="display: none; position: absolute; z-index: 1;">
837             <div class="oe_datepicker_container"/>
838             <button type="button" class="oe_datepicker_close ui-state-default ui-priority-primary ui-corner-all" style="float: right;">Done</button>
839         </div>
840     </div>
841 </t>
842 <t t-name="FieldSelection">
843     <select
844         t-att-name="widget.name"
845         t-att-id="widget.element_id"
846         t-attf-class="field_#{widget.type}"
847         style="width: 100%">
848             <t t-foreach="widget.values" t-as="option">
849                 <option><t t-esc="option[1]"/></option>
850             </t>
851     </select>
852 </t>
853 <t t-name="FieldMany2One">
854     <div class="oe-m2o">
855         <input type="text" size="1" style="width: 100%;"
856                 t-att-id="widget.element_id"/>
857         <span class="oe-m2o-drop-down-button">
858             <img src="/web/static/src/img/down-arrow.png" /></span>
859         <span class="oe-m2o-cm-button" t-att-id="widget.name + '_open'">
860             <img src="/web/static/src/img/icons/gtk-index.png"/></span>
861         <div t-att-id="widget.cm_id" class="contextMenu" style="display:none">
862         </div>
863     </div>
864 </t>
865 <t t-name="FieldMany2One.context_menu">
866     <ul>
867         <li t-att-id="widget.cm_id + '_open'" style="color:grey" class="oe_m2o_menu_item_mandatory">Open...</li>
868         <li t-att-id="widget.cm_id + '_create'" class="oe_m2o_menu_item_noreadonly">Create...</li>
869         <li t-att-id="widget.cm_id + '_search'" class="oe_m2o_menu_item_noreadonly">Search...</li>
870         <t t-set="i" t-value="0"/>
871         <t t-foreach="widget.related_entries" t-as="entry">
872             <li t-att-id="widget.cm_id + '_related_' + i" style="color:grey" class="oe_m2o_menu_item_mandatory">
873                 ... <t t-esc="(entry[2] || {})['name'] || ''"/>
874             </li>
875             <t t-set="i" t-value="i+1"/>
876         </t>
877     </ul>
878 </t>
879 <t t-name="FieldOne2Many">
880 </t>
881 <t t-name="FieldMany2Many">
882     <div t-att-id="widget.list_id"></div>
883 </t>
884 <t t-name="FieldReference">
885     <table border="0" width="100%" cellpadding="0" cellspacing="0" class="oe_frame oe_forms">
886     <tr>
887         <td t-attf-class="oe_form_frame_cell oe_form_selection #{widget.selection.element_class}">
888             <t t-raw="widget.selection.render()"/>
889         </td>
890         <td t-attf-class="oe_form_frame_cell oe_form_many2one #{widget.m2o.element_class}" nowrap="true" style="display: none">
891             <t t-raw="widget.m2o.render()"/>
892         </td>
893     </tr>
894     </table>
895 </t>
896 <t t-name="FieldBoolean">
897     <input type="checkbox"
898         t-att-name="widget.name"
899         t-att-id="widget.element_id"
900         t-attf-class="field_#{widget.type}"/>
901 </t>
902 <t t-name="FieldProgressBar">
903     <div t-opentag="true" class="oe-progressbar">
904         <span></span>
905     </div>
906 </t>
907 <t t-name="FieldBinaryImage">
908     <table cellpadding="0" cellspacing="0" border="0">
909     <tr>
910         <td align="center">
911             <img src="/web/static/src/img/placeholder.png" class="oe-binary-image"
912                 t-att-border="widget.readonly ? 0 : 1"
913                 t-att-id="widget.element_id + '_field'"
914                 t-att-name="widget.name"
915                 t-attf-class="field_#{widget.type}"
916                 t-att-width="widget.node.attrs.img_width || widget.node.attrs.width"
917                 t-att-height="widget.node.attrs.img_height || widget.node.attrs.height"
918             />
919         </td>
920     </tr>
921     <tr>
922         <td align="center" valign="bottom" height="25">
923             <div class="oe-binary">
924                 <table cellspacing="0" cellpadding="0" border="0">
925                 <tr>
926                     <td>
927                         <div class="oe-binary-file-set" style="width: 40px; height:22px;">
928                             <form class="oe-binary-form" t-att-target="widget.iframe"
929                                 method="post" enctype="multipart/form-data" action="/web/binary/upload">
930                                 <input type="hidden" name="session_id" value=""/>
931                                 <input type="hidden" name="callback" t-att-value="widget.iframe"/>
932                                 <button class="button" type="button" title="Set Image">
933                                     <img src="/web/static/src/img/icons/STOCK_DIRECTORY.png"/>
934                                 </button>
935                                 <input type="file" class="oe-binary-file" name="ufile"/>
936                             </form>
937                         </div>
938                     </td>
939                     <td>
940                         <button class="button oe-binary-file-clear" type="button" title="Clear">
941                             <img src="/web/static/src/img/icons/STOCK_MISSING_IMAGE.png"/>
942                         </button>
943                     </td>
944                 </tr>
945                 </table>
946             </div>
947             <div class="oe-binary-progress" style="display: none">
948                 <img src="/web/static/src/img/throbber.gif" width="16" height="16"/>
949                 <b>Uploading ...</b>
950             </div>
951             <iframe t-att-id="widget.iframe" t-att-name="widget.iframe" style="display: none"> </iframe>
952         </td>
953     </tr>
954     </table>
955 </t>
956 <t t-name="FieldBinaryFile">
957     <table cellpadding="0" cellspacing="0" border="0" width="100%">
958     <tr>
959         <td width="100%">
960             <input type="text" size="1"
961                 t-att-name="widget.name"
962                 t-att-id="widget.element_id + '_field'"
963                 t-attf-class="field_#{widget.type}" style="width: 100%"
964             />
965         </td>
966         <td class="oe-binary" nowrap="true">
967             <table cellspacing="0" cellpadding="0" border="0">
968             <tr>
969                 <td>
970                     <div class="oe-binary-file-set" style="width: 80px; height:22px;">
971                         <form class="oe-binary-form" t-att-target="widget.iframe"
972                             method="post" enctype="multipart/form-data" action="/web/binary/upload">
973                             <input type="hidden" name="session_id" value=""/>
974                             <input type="hidden" name="callback" t-att-value="widget.iframe"/>
975                             <button class="button" type="button" title="Set Image">
976                                 <img src="/web/static/src/img/icons/STOCK_DIRECTORY.png"/>
977                                 <span>Select</span>
978                             </button>
979                             <input type="file" class="oe-binary-file" name="ufile"/>
980                         </form>
981                     </div>
982                 </td>
983                 <td>
984                     <button class="button oe-binary-file-save" type="button" title="Save As">
985                         <img src="/web/static/src/img/icons/gtk-save.png"/>
986                         <span>Save As</span>
987                     </button>
988                 </td>
989                 <td>
990                     <button class="button oe-binary-file-clear" type="button" title="Clear">
991                         <img src="/web/static/src/img/icons/STOCK_MISSING_IMAGE.png"/>
992                         <span>Clear</span>
993                     </button>
994                 </td>
995             </tr>
996             </table>
997         </td>
998         <td class="oe-binary-progress" style="display: none" nowrap="true">
999             <img src="/web/static/src/img/throbber.gif" width="16" height="16"/>
1000             <b>Uploading ...</b>
1001             <iframe t-att-id="widget.iframe" t-att-name="widget.iframe" style="display: none"> </iframe>
1002         </td>
1003     </tr>
1004     </table>
1005 </t>
1006 <t t-name="WidgetButton">
1007     <button type="button"
1008         t-att-title="widget.help"
1009         style="width: 100%" class="button">
1010         <img t-if="widget.node.attrs.icon" t-att-src="'/web/static/src/img/icons/' + widget.node.attrs.icon + '.png'" width="16" height="16"/>
1011         <span t-if="widget.string"><t t-esc="widget.string"/></span>
1012     </button>
1013 </t>
1014
1015 <t t-name="SearchView">
1016     <form class="oe_forms">
1017         <t t-call="SearchView.render_lines"/>
1018         <div class="oe_search-view-buttons" style="text-align: right;">
1019             <input type="submit" value="Search"/>
1020             <input type="reset" value="Clear"/>
1021             <button class="oe_search-view-custom-filter-btn"><span>Advanced Filter</span></button>
1022             <select class="oe_search-view-filters-management">
1023             </select>
1024         </div>
1025     </form>
1026 </t>
1027 <t t-name="SearchView.managed-filters">
1028     <option value="_filters">-- Filters --</option>
1029     <t t-set="i" t-value="0"/>
1030     <t t-foreach="filters" t-as="filter">
1031         <option t-att-value="'get:' + i"><t t-esc="filter.name"/></option>
1032         <t t-set="i" t-value="i+1"/>
1033     </t>
1034     <option value="_actions">-- Actions --</option>
1035     <option value="save_filter">Save Filter</option>
1036     <option value="manage_filters">Manage Filters</option>
1037 </t>
1038 <t t-name="SearchView.managed-filters.add">
1039     <div>
1040         <p>Filter Name:</p>
1041         <input type="text"/>
1042         <p>(Any existing filter with the same name will be replaced)</p>
1043     </div>
1044 </t>
1045 <t t-name="SearchView.render_lines">
1046     <table class="oe-searchview-render-line" border="0" cellspacing="0" cellpadding="0"
1047            t-foreach="lines" t-as="line">
1048         <tr>
1049             <td t-foreach="line" t-as="widget">
1050                 <t t-raw="widget.render(defaults)"/>
1051             </td>
1052         </tr>
1053     </table>
1054 </t>
1055 <button t-name="SearchView.filter" type="button"
1056         t-att-id="element_id"
1057         t-att-title="attrs.help"
1058         t-att-class="classes.join(' ')"
1059         t-att-autofocus="attrs.default_focus === '1' ? 'autofocus' : undefined">
1060     <img t-if="attrs.icon" t-att-src="'/web/static/src/img/icons/' + attrs.icon + '.png'" width="16" height="16"/>
1061     <br t-if="attrs.icon and attrs.string"/>
1062     <t t-esc="attrs.string"/>
1063 </button>
1064 <span t-name="SearchView.filters" class="filter_label_group"
1065     ><t t-foreach="filters" t-as="filter"
1066         ><t t-raw="filter.render(defaults)"/></t
1067 ></span>
1068 <t t-name="SearchView.field">
1069     <label t-att-class="'oe_label' + (attrs.help ? '_help' : '')"
1070            t-att-title="attrs.help"
1071            t-att-for="element_id">
1072         <t t-esc="attrs.string || attrs.name"/>
1073         <span t-if="attrs.help">?</span>
1074     </label>
1075     <div style="white-space: nowrap;">
1076         <input type="text" size="15" t-att-name="attrs.name"
1077                t-att-autofocus="attrs.default_focus === '1' ? 'autofocus' : undefined"
1078                t-att-id="element_id"
1079                t-att-value="defaults[attrs.name] || ''"/>
1080         <t t-if="filters.length" t-raw="filters.render(defaults)"/>
1081     </div>
1082 </t>
1083 <t t-name="SearchView.date">
1084     <label t-att-class="'oe_label' + (attrs.help ? '_help' : '')"
1085            t-att-title="attrs.help"
1086            t-att-for="element_id">
1087         <t t-esc="attrs.string || attrs.name"/>
1088         <span t-if="attrs.help">?</span>
1089     </label>
1090     <div style="white-space: nowrap;">
1091         <span t-att-id="element_id"></span>
1092         <t t-if="filters.length" t-raw="filters.render(defaults)"/>
1093     </div>
1094 </t>
1095 <t t-name="SearchView.field.selection">
1096     <label t-att-title="attrs.help"
1097            t-att-class="'oe_label' + (attrs.help ? '_help' : '')"
1098            t-att-for="element_id">
1099         <t t-esc="attrs.string || attrs.name"/>
1100         <span t-if="attrs.help">?</span>
1101     </label>
1102     <div style="white-space: nowrap;">
1103         <select t-att-name="attrs.name" t-att-id="element_id"
1104                 t-att-autofocus="attrs.default_focus === '1' || undefined">
1105             <option t-if="prepend_empty"/>
1106             <t t-foreach="attrs.selection" t-as="option">
1107                 <t t-set="selected" t-value="defaults[attrs.name] === option[0]"/>
1108                 <option t-if="selected"
1109                         t-att-value="option_index" selected="selected">
1110                     <t t-esc="option[1]"/>
1111                 </option>
1112                 <option t-if="!selected" t-att-value="option_index">
1113                     <t t-esc="option[1]"/>
1114                 </option>
1115             </t>
1116         </select>
1117         <t t-if="filters.length" t-raw="filters.render(defaults)"/>
1118     </div>
1119 </t>
1120 <t t-name="SearchView.util.expand">
1121     <div t-att-class="'searchview_group ' + (expand == '0' ? 'folded' : 'expanded')"
1122          t-att-id="element_id">
1123         <a t-if="label" class="searchview_group_string" href="#">
1124             <t t-esc="label"/>
1125         </a>
1126         <div class="searchview_group_content">
1127             <t t-raw="content"/>
1128         </div>
1129     </div>
1130 </t>
1131 <t t-name="SearchView.group">
1132     <t t-call="SearchView.util.expand">
1133         <t t-set="expand" t-value="attrs.expand"/>
1134         <t t-set="label" t-value="attrs.string"/>
1135         <t t-set="content">
1136             <t t-call="SearchView.render_lines"/>
1137         </t>
1138     </t>
1139 </t>
1140 <t t-name="SearchView.extended_search">
1141     <t t-call="SearchView.util.expand">
1142         <t t-set="expand" t-value="false"/>
1143         <t t-set="label" t-value="'Advanced Filters'"/>
1144         <t t-set="content">
1145             <div class="searchview_extended_groups_list">
1146             </div>
1147         </t>
1148     </t>
1149 </t>
1150 <t t-name="SearchView.extended_search.group">
1151     <div t-att-id="element_id" class="searchview_extended_group">
1152         <select class="searchview_extended_group_choice">
1153             <option value="any">Any of the following conditions must match</option>
1154             <option value="all">All the following conditions must match</option>
1155             <option value="none">None of the following conditions must match</option>
1156         </select>
1157         <a class="searchview_extended_delete_group"
1158                 href="javascript:void(0)"><span></span></a>
1159         <div class="searchview_extended_propositions_list">
1160         </div>
1161         <a class="searchview_extended_add_proposition" href="javascript:void(0)">
1162             <span>Add condition</span></a>
1163         <div class="oe_adv_filters_and"><span>and</span></div>
1164     </div>
1165 </t>
1166 <t t-name="SearchView.extended_search.proposition">
1167     <div t-att-id="element_id">
1168         <select class="searchview_extended_prop_field">
1169             <t t-foreach="attrs.fields" t-as="field">
1170                 <option t-if="typeof field.store === 'undefined' || field.store || field.fnct_search"
1171                         t-att="{'selected': field === attrs.selected ? 'selected' : null}"
1172                         t-att-value="field.name">
1173                     <t t-esc="field.string"/>
1174                 </option>
1175             </t>
1176         </select>
1177         <select class="searchview_extended_prop_op"/>
1178         <span class="searchview_extended_prop_value"/>
1179         <a class="searchview_extended_delete_prop"
1180                 href="javascript:void(0)"><span> </span></a>
1181     </div>
1182 </t>
1183 <t t-name="SearchView.extended_search.proposition.char">
1184     <input t-att-id="element_id" class="field_char"/>
1185 </t>
1186 <t t-name="SearchView.extended_search.proposition.empty">
1187     <span t-att-id="element_id"></span>
1188 </t>
1189 <t t-name="SearchView.extended_search.proposition.integer">
1190     <input type="number" t-att-id="element_id" class="field_integer" step="1"/>
1191 </t>
1192 <t t-name="SearchView.extended_search.proposition.float">
1193     <input type="number" t-att-id="element_id" class="field_float" step="0.01"/>
1194 </t>
1195 <t t-name="SearchView.extended_search.proposition.boolean">
1196 </t>
1197 <t t-name="SearchView.extended_search.proposition.selection">
1198     <select t-att-id="element_id">
1199         <t t-foreach="field.selection" t-as="element">
1200         <option t-att-value="element[0]"><t t-esc="element[1]"/></option>
1201         </t>
1202     </select>
1203 </t>
1204 <t t-name="DialogWarning">
1205     <table cellspacing="0" cellpadding="0" border="0" class="oe-dialog-warning">
1206     <tr>
1207         <td><img src="/web/static/src/img/warning.png" class="oe-dialog-icon"/></td>
1208         <td>
1209             <p>
1210                 <t t-js="d">
1211                     var message = d.message ? d.message : d.error.data.fault_code;
1212                     d.html_error = context.engine.tools.html_escape(message)
1213                         .replace(/\n/g, '<br/>');
1214                 </t>
1215                 <t t-raw="html_error"/>
1216             </p>
1217         </td>
1218     </tr>
1219     </table>
1220 </t>
1221 <t t-name="DialogTraceback">
1222     <pre><t t-esc="error.message"/></pre>
1223     <hr/>
1224     <pre><t t-esc="error.data.debug"/></pre>
1225 </t>
1226 <t t-name="SelectCreatePopup">
1227     <div t-att-id="element_id">
1228         <table style="width:100%">
1229             <tr style="width:100%">
1230                 <td style="width:100%">
1231                     <div t-att-id="element_id + '_search'" style="width:100%"></div>
1232                 </td>
1233             </tr>
1234             <tr style="width:100%">
1235                 <td style="width:100%">
1236                     <div t-att-id="element_id + '_view_list'" style="width:100%"></div>
1237                 </td>
1238             </tr>
1239         </table>
1240         <div t-att-id="element_id + '_view_form'" style="width:100%"></div>
1241     </div>
1242 </t>
1243 <t t-name="SelectCreatePopup.search.buttons">
1244     <button type="button" class="oe_selectcreatepopup-search-select" disabled="disabled">Select</button>
1245     <button type="button" class="oe_selectcreatepopup-search-close">Cancel</button>
1246 </t>
1247 <t t-name="SelectCreatePopup.form.buttons">
1248     <t t-if="widget.options.disable_multiple_selection">
1249         <button type="button" class="oe_selectcreatepopup-form-save">Save</button>
1250     </t>
1251     <t t-if="! widget.options.disable_multiple_selection">
1252         <button type="button" class="oe_selectcreatepopup-form-save-new">Save &amp; New</button>
1253         <button type="button" class="oe_selectcreatepopup-form-save">Save &amp; Close</button>
1254     </t>
1255     <button type="button" class="oe_selectcreatepopup-form-close">Cancel</button>
1256 </t>
1257 <t t-name="FormOpenPopup">
1258     <div t-att-id="element_id">
1259         <div t-att-id="element_id + '_view_form'" style="width:100%"></div>
1260     </div>
1261 </t>
1262 <t t-name="FormOpenPopup.form.buttons">
1263     <button type="button" class="oe_formopenpopup-form-save">Save</button>
1264     <button type="button" class="oe_formopenpopup-form-close">Cancel</button>
1265 </t>
1266 <t t-name="ListView.row.frame" t-extend="WidgetFrame">
1267     <t t-jquery="tr">
1268         $(document.createElement('t'))
1269             .append(this.contents())
1270             .attr({
1271                 't-foreach': this.attr('t-foreach'),
1272                 't-as': this.attr('t-as')
1273             })
1274             .replaceAll(this)
1275             .after($(document.createElement('td')).append(
1276                 $(document.createElement('button')).attr({
1277                     'class': 'oe-edit-row-save', 'type': 'button'}).text('Save')))
1278             .before($(document.createElement('td')).append(
1279                 $(document.createElement('button')).attr({
1280                     'class': 'oe-edit-row-cancel', 'type': 'button'}).text('Cancel')))
1281             .unwrap();
1282     </t>
1283 </t>
1284 <t t-name="view_editor">
1285     <table class="oe_view_editor">
1286         <t t-call="view_editor.row"/>
1287     </table>
1288 </t>
1289 <tr t-name="view_editor.row"  class="oe_view_editor_row" t-att-id="'viewedit-' + rec.id"  t-att-level="rec.level" t-foreach="data" t-as="rec">
1290     <td class="oe_view_editor_colum"  width="85%">
1291         <table class="oe_view_editor_tree_grid">
1292             <tr>
1293                 <td width="16px" t-att-style="'background-position: ' + 20*rec.level + 'px; padding-left: ' + 20*rec.level + 'px'">
1294                     <img t-if="rec.child_id.length" t-att-id="'parentimg-' + rec.id"
1295                         src="/web/static/src/img/collapse.gif" width="16" height="16" border="0"/>
1296                 </td>
1297                 <td style="cursor: pointer;">
1298                     <a style="text-decoration:none" href="javascript:void(0);"> <t t-esc="rec.name"/> </a>
1299                 </td>
1300             </tr>
1301         </table>
1302     </td>
1303     <td align="left" class="oe_view_editor_colum"  width="15%">
1304         <table  width="100%">
1305             <tr>
1306                 <td width="20%">
1307                     <img t-if="rec.att_list.length"
1308                         id="side-add" src="/web/static/src/img/icons/gtk-add.png" style="cursor: pointer;"/>
1309                 </td>
1310                 <td width="20%">
1311                     <img  id="side-remove" src="/web/static/src/img/icons/gtk-remove.png" style="cursor: pointer;"/>
1312                 </td>
1313                 <td width="20%">
1314                     <img t-if="rec.att_list.length"
1315                         id="side-edit" src="/web/static/src/img/icons/gtk-edit.png" style="cursor: pointer;"/>
1316                 </td>
1317                 <td width="20%">
1318                     <img t-if="rec.att_list.length"
1319                         id="side-up" src="/web/static/src/img/icons/gtk-go-up.png" style="cursor: pointer;"/>
1320                 </td>
1321                 <td width="20%">
1322                     <img t-if="rec.att_list.length"
1323                         id="side-down" src="/web/static/src/img/icons/gtk-go-down.png" style="cursor: pointer;"/>
1324                 </td>
1325             </tr>
1326         </table>
1327     </td>
1328     <t t-if="rec.child_id.length">
1329         <t t-set="data" t-value="rec.child_id"/>
1330         <t t-call="view_editor.row"/>
1331     </t>
1332 </tr>
1333
1334 <t t-name="ExportView">
1335     <a id="exportview" href="javascript: void(0)" style="text-decoration: none;color: #3D3D3D;">Export</a>
1336 </t>
1337 <table t-name="ExportTreeView" class="oe-export"
1338        style="background-color: #F3F3F3;">
1339     <tr>
1340         <td colspan="3">
1341             This wizard will export all data that matches the current search criteria to a CSV file.
1342             You can export all data or only the fields that can be reimported after modification.
1343         </td>
1344     </tr>
1345     <tr>
1346         <td colspan="3">
1347             <label for="import_compat">Export Type:</label>
1348             <select id="import_compat" name="import_compat">
1349                 <option value="yes">Import Compatible Export</option>
1350                 <option value="">Export all Data</option>
1351             </select>
1352
1353             <label for="export_format">Export Formats</label>
1354             <select id="export_format" name="export_format"></select>
1355         </td>
1356     </tr>
1357
1358     <tr>
1359         <th>Available fields</th>
1360         <th/>
1361         <th>
1362             Fields to export
1363             <a style="color: blue; text-decoration: none;" href="#" id="export_new_list">Save fields list</a>
1364             <div id="savenewlist"></div>
1365             <div id="ExistsExportList"></div>
1366         </th>
1367     </tr>
1368     <tr style="height: 400px;">
1369         <td class="oe_export_fields_selector_left">
1370             <div id="left_field_panel">
1371             </div>
1372         </td>
1373         <td class="oe_export_fields_selector_center">
1374             <button id="add_field">Add</button>
1375             <button id="remove_field">Remove</button>
1376             <button id="remove_all_field">Remove All</button>
1377         </td>
1378         <td class="oe_export_fields_selector_right">
1379             <select name="fields_list" id="fields_list"
1380                     multiple="multiple"></select>
1381         </td>
1382     </tr>
1383 </table>
1384
1385 <table t-name="ExportTreeView-Secondary"
1386        id="field-tree-structure" class="oe_export_fields_selector_export"
1387        cellspacing="0" cellpadding="0">
1388     <tr><th class="oe_export_tree_header"> Name </th></tr>
1389     <t t-call="ExportTreeView-Secondary.children"/>
1390 </table>
1391 <tr t-name="ExportTreeView-Secondary.children"
1392     t-foreach="fields" t-as="field"
1393     t-att-id="'treerow-' + field.id" class="oe_export_row">
1394     <td>
1395         <table class="tree_grid" border="0">
1396             <tr class="oe_export_row">
1397                 <t t-foreach="(field.id).split('/')" t-as="level" >
1398                     <t t-if="(field.id).split('/')[0] != level">
1399                         <td width="18">&amp;nbsp;</td>
1400                     </t>
1401                 </t>
1402                 <td valign="top" align="left" style="cursor: pointer;" width="18">
1403                     <t t-if="field.children">
1404                         <t t-if="(field.id).split('/').length != 3">
1405                             <img t-att-id="'parentimg-' + field.id" src="/web/static/src/img/expand.gif" width="16" height="16" border="0"/>
1406                         </t>
1407                     </t>
1408                 </td>
1409                 <td id="tree-column" valign="middle" align="left" style="cursor: pointer;">
1410                     <a t-att-id="'export-' + field.id"  t-att-string="field.string" href="javascript: void(0);" style="text-decoration: none;">
1411                         <t t-esc="field.string"/>
1412                     </a>
1413                 </td>
1414             </tr>
1415         </table>
1416     </td>
1417 </tr>
1418
1419 <t t-name="ExportNewList">
1420     <tr>
1421         <th><label>Save as:</label></th>
1422         <td><input size="10" type="text" id="savelist_name"/></td>
1423         <td><button class="oe_export_button_export" id="add_export_list">Ok</button></td>
1424     </tr>
1425 </t>
1426
1427 <t t-name="Exists.ExportList">
1428     <label for="saved_export_list">Saved exports:</label>
1429
1430     <select id="saved_export_list">
1431         <option></option>
1432         <t t-foreach="existing_exports" t-as="export">
1433             <option t-att-value="export.id"><t t-esc="export.name"/></option>
1434         </t>
1435     </select>
1436     <button class="oe_export_button_export" id="delete_export_list" type="button">Delete</button>
1437 </t>
1438 <t t-name="Change_Pwd">
1439     <form name="change_password_form" class="oe_forms" method="POST">
1440         <table align="center">
1441             <tr>
1442                 <td><label for="old_pwd">Old Password:</label></td>
1443                 <td><input type="password" name="old_pwd"
1444                            minlength="1" autofocus="autofocus"/></td>
1445             </tr>
1446             <tr>
1447             <td><label for="new_password">New Password:</label></td>
1448             <td><input type="password" name="new_password"
1449                        minlength="1" autofocus="autofocus"/></td>
1450             </tr>
1451             <tr>
1452                 <td><label for="confirm_pwd">Confirm Password:</label></td>
1453                 <td><input type="password" name="confirm_pwd"
1454                              minlength="1"/></td>
1455             </tr>
1456             <tr>
1457                 <td colspan="2" align="right"><input type="submit" value="Change Password"/></td>
1458             </tr>
1459         </table>
1460     </form>
1461 </t>
1462
1463 <t t-name="ImportView">
1464     <a id="importview" href="javascript: void(0)" style="text-decoration: none;color: #3D3D3D;">Import</a>
1465 </t>
1466 <t t-name="ImportDataView">
1467 <form name="import_data" id="import_data" action="" method="post" enctype="multipart/form-data"
1468         class="oe-import oe-import-no-result">
1469     <input type="hidden" name="session_id" t-att-value="session.session_id"/>
1470     <h2 class="separator horizontal">1. Import a .CSV file</h2>
1471     <p>Select a .CSV file to import. If you need a sample of file to import,
1472        you should use the export tool with the "Import Compatible" option.
1473     </p>
1474     <p>
1475         <label for="csvfile">CSV File:</label>
1476         <input type="file" id="csvfile" size="50" name="csvfile"/>
1477     </p>
1478     <h2 class="separator horizontal oe-import-result">2. Check your file format</h2>
1479     <div id="result" class="oe-import-result"></div>
1480     <fieldset class="oe-closed oe-import-result">
1481         <legend>Import Options</legend>
1482         <table>
1483             <tr>
1484                 <td colspan="4">
1485                     <label for="file_has_headers">Does your file have titles?</label>
1486                     <input type="checkbox" checked="checked"
1487                            id="file_has_headers"/>
1488                 </td>
1489             </tr>
1490             <tr>
1491                 <td><label for="csv_separator">Separator:</label></td>
1492                 <td><input type="text" name="csvsep" id="csv_separator" value=","/></td>
1493                 <td><label for="csv_delimiter">Delimiter:</label></td>
1494                 <td><input type="text" name="csvdel" id="csv_delimiter" value='"'/></td>
1495             </tr>
1496             <tr>
1497                 <td><label for="csv_encoding">Encoding:</label></td>
1498                 <td>
1499                     <select name="csvcode" id="csv_encoding">
1500                         <option value="utf-8">UTF-8</option>
1501                         <option value="latin1">Latin 1</option>
1502                     </select>
1503                 </td>
1504                 <td><label for="csv_skip" title="For use if CSV files have titles on multiple lines, skips more than a single line during import">
1505                     Lines to skip<sup>?</sup>:</label></td>
1506                 <td><input type="number" id="csv_skip" value="0" min="0"/></td>
1507             </tr>
1508         </table>
1509     </fieldset>
1510 </form>
1511 </t>
1512 <t t-name="ImportView.result">
1513     <table class="oe_import_grid" width="100%" style="margin: 5px 0;">
1514         <tr t-if="headers" class="oe_import_grid-header">
1515             <td t-foreach="headers" t-as="header" class="oe_import_grid-cell">
1516                 <t t-esc="header"/></td>
1517         </tr>
1518         <tr>
1519             <td t-foreach="records[0]" t-as="column">
1520                 <input class="sel_fields" placeholder="--- Don't Import ---"/><span class="oe-m2o-drop-down-button">
1521                         <img src="/web/static/src/img/down-arrow.png" /></span>
1522             </td>
1523         </tr>
1524         <tr t-foreach="records" t-as="record" class="oe_import_grid-row">
1525             <td t-foreach="record" t-as="cell" class="oe_import_grid-cell">
1526                 <t t-esc="cell"/></td>
1527         </tr>
1528     </table>
1529 </t>
1530 <t t-name="ImportView.error">
1531     <p style="white-space:pre-line;">The import failed due to:<t t-esc="error.message"/></p>
1532     <t t-if="error.preview">
1533         <p>Here is a preview of the file we could not import:</p>
1534         <pre><t t-esc="error.preview"/></pre>
1535     </t>
1536 </t>
1537
1538 <t t-name="About-Page">
1539     <div>
1540         <h1>OpenERP Web</h1>
1541         <h3 style="padding:0 5px 5px">Version <t t-esc="version_info.version"/></h3>
1542         <p>
1543             Copyright © 2011-TODAY OpenERP SA. All Rights Reserved.<br />
1544             OpenERP is a trademark of the <a target="_blank" href="http://openerp.com/" style="text-decoration: underline;">OpenERP SA Company</a>.
1545         </p>
1546         <p>
1547             Licenced under the terms of <a target="_blank" href="http://www.gnu.org/licenses/agpl.html" style="text-decoration: underline;">GNU Affero General Public License</a>
1548         </p>
1549         <br />
1550         <h1>About OpenERP</h1>
1551         <p>
1552             <a target="_blank" href="http://openerp.com/" style="text-decoration: underline;">OpenERP</a> is a free enterprise-scale software system that is designed to boost
1553             productivity and profit through data integration. It connects, improves and
1554             manages business processes in areas such as sales, finance, supply chain,
1555             project management, production, services, CRM, etc...
1556         </p>
1557         <p>
1558             The system is platform-independent, and can be installed on Windows, Mac OS X,
1559             and various Linux and other Unix-based distributions. Its architecture enables
1560             new functionality to be rapidly created, modifications to be made to a
1561             production system and migration to a new version to be straightforward.
1562         </p>
1563         <p>
1564             Depending on your needs, OpenERP is available through a web or application client.
1565         </p>
1566     </div>
1567 </t>
1568 <t t-name="FieldStatus.content">
1569     <ul class="oe-arrow-list">
1570         <t t-set="size" t-value="widget.to_show.length"/>
1571         <t t-foreach="_.range(size)" t-as="i">
1572             <li t-att-class="widget.to_show[i][0] === widget.selected_value ? 'oe-arrow-list-selected' : ''">
1573                 <span class="oe-arrow-list-before" t-if="i &gt; 0"></span><span><t t-esc="widget.to_show[i][1]"/></span><span class="oe-arrow-list-after" t-if="i &lt; size - 1"></span>
1574             </li>
1575         </t>
1576     </ul>
1577 </t>
1578 <t t-name="EmptyComponent">
1579     <div></div>
1580 </t>
1581 </templates>