[MERGE] from trunk
bzr revid: xmo@openerp.com-20120522132246-49w7jbkaytd7q3k2
This commit is contained in:
+56
-56
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-14 15:27+0100\n"
|
||||
"PO-Revision-Date: 2011-10-07 12:50+0000\n"
|
||||
"Last-Translator: Niels Huylebroeck <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-05-15 14:32+0000\n"
|
||||
"Last-Translator: Els Van Vossel (Agaplan) <Unknown>\n"
|
||||
"Language-Team: Dutch (Belgium) <nl_BE@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
|
||||
"X-Generator: Launchpad (build 15238)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-16 05:10+0000\n"
|
||||
"X-Generator: Launchpad (build 15247)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:172
|
||||
@@ -27,60 +27,60 @@ msgstr ""
|
||||
#: addons/web/static/src/js/view_form.js:424
|
||||
#: addons/web/static/src/js/view_form.js:1239
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
msgstr "OK"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:180
|
||||
msgid "Send OpenERP Enterprise Report"
|
||||
msgstr ""
|
||||
msgstr "OpenERP-Entrepriserapport versturen"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:194
|
||||
msgid "Dont send"
|
||||
msgstr ""
|
||||
msgstr "Niet versturen"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:256
|
||||
#, python-format
|
||||
msgid "Loading (%d)"
|
||||
msgstr ""
|
||||
msgstr "Laden (%d)"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:288
|
||||
msgid "Invalid database name"
|
||||
msgstr ""
|
||||
msgstr "Ongeldige databasenaam"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:483
|
||||
msgid "Backed"
|
||||
msgstr ""
|
||||
msgstr "Back-up klaar"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:484
|
||||
msgid "Database backed up successfully"
|
||||
msgstr ""
|
||||
msgstr "Databaseback-up geslaagd"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:527
|
||||
msgid "Restored"
|
||||
msgstr ""
|
||||
msgstr "Teruggezet"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:527
|
||||
msgid "Database restored successfully"
|
||||
msgstr ""
|
||||
msgstr "Database met succes teruggezet"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:708
|
||||
#: addons/web/static/src/xml/base.xml:359
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
msgstr "Info"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:787
|
||||
#: addons/web/static/src/xml/base.xml:356
|
||||
msgid "Preferences"
|
||||
msgstr ""
|
||||
msgstr "Voorkeuren"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:790
|
||||
@@ -102,7 +102,7 @@ msgstr "Annuleren"
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:791
|
||||
msgid "Change password"
|
||||
msgstr ""
|
||||
msgstr "Wachtwoord wijzigen"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:792
|
||||
@@ -119,24 +119,24 @@ msgstr "Opslaan"
|
||||
#: addons/web/static/src/xml/base.xml:226
|
||||
#: addons/web/static/src/xml/base.xml:1729
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
msgstr "Wachtwoord wijzigen"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:1096
|
||||
#: addons/web/static/src/js/chrome.js:1100
|
||||
msgid "OpenERP - Unsupported/Community Version"
|
||||
msgstr ""
|
||||
msgstr "OpenERP - Niet-ondersteunde/Communityversie"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/chrome.js:1131
|
||||
#: addons/web/static/src/js/chrome.js:1135
|
||||
msgid "Client Error"
|
||||
msgstr ""
|
||||
msgstr "Clientfout"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_export.js:6
|
||||
msgid "Export Data"
|
||||
msgstr ""
|
||||
msgstr "Gegevens exporteren"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_export.js:19
|
||||
@@ -154,37 +154,37 @@ msgstr "Sluiten"
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_export.js:20
|
||||
msgid "Export To File"
|
||||
msgstr ""
|
||||
msgstr "Naar bestand exporteren"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_export.js:125
|
||||
msgid "Please enter save field list name"
|
||||
msgstr ""
|
||||
msgstr "Geef eerst de naam van de lijst"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_export.js:360
|
||||
msgid "Please select fields to save export list..."
|
||||
msgstr ""
|
||||
msgstr "Kies velden voor de lijst"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_export.js:373
|
||||
msgid "Please select fields to export..."
|
||||
msgstr ""
|
||||
msgstr "Kies te exporteren velden"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_import.js:34
|
||||
msgid "Import Data"
|
||||
msgstr ""
|
||||
msgstr "Gegevens importeren"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_import.js:70
|
||||
msgid "Import File"
|
||||
msgstr ""
|
||||
msgstr "Bestand importeren"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/data_import.js:105
|
||||
msgid "External ID"
|
||||
msgstr ""
|
||||
msgstr "Externe id"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/formats.js:300
|
||||
@@ -192,14 +192,14 @@ msgstr ""
|
||||
#: addons/web/static/src/js/formats.js:322
|
||||
#: addons/web/static/src/js/view_page.js:251
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
msgstr "Downloaden"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/formats.js:305
|
||||
#: addons/web/static/src/js/formats.js:327
|
||||
#, python-format
|
||||
msgid "Download \"%s\""
|
||||
msgstr ""
|
||||
msgstr "Download \"%s\""
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:191
|
||||
@@ -216,70 +216,70 @@ msgstr ""
|
||||
#: addons/web/static/src/js/search.js:291
|
||||
#: addons/web/static/src/js/search.js:296
|
||||
msgid "OK"
|
||||
msgstr ""
|
||||
msgstr "OK"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:286
|
||||
#: addons/web/static/src/xml/base.xml:1292
|
||||
#: addons/web/static/src/js/search.js:291
|
||||
msgid "Add to Dashboard"
|
||||
msgstr ""
|
||||
msgstr "Aan dashboard toevoegen"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:415
|
||||
#: addons/web/static/src/js/search.js:420
|
||||
msgid "Invalid Search"
|
||||
msgstr ""
|
||||
msgstr "Ongeldige zoekopdracht"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:415
|
||||
#: addons/web/static/src/js/search.js:420
|
||||
msgid "triggered from search view"
|
||||
msgstr ""
|
||||
msgstr "geactiveerd door zoekweergave"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:503
|
||||
#: addons/web/static/src/js/search.js:508
|
||||
#, python-format
|
||||
msgid "Incorrect value for field %(fieldname)s: [%(value)s] is %(message)s"
|
||||
msgstr ""
|
||||
msgstr "Onjuiste waarde voor veld %(fieldname)s: [%(value)s] is %(message)s"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:839
|
||||
#: addons/web/static/src/js/search.js:844
|
||||
msgid "not a valid integer"
|
||||
msgstr ""
|
||||
msgstr "geen geldig geheel getal"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:853
|
||||
#: addons/web/static/src/js/search.js:858
|
||||
msgid "not a valid number"
|
||||
msgstr ""
|
||||
msgstr "geen geldig getal"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:931
|
||||
#: addons/web/static/src/xml/base.xml:968
|
||||
#: addons/web/static/src/js/search.js:936
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
msgstr "Ja"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:932
|
||||
#: addons/web/static/src/js/search.js:937
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
msgstr "Nee"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:1290
|
||||
#: addons/web/static/src/js/search.js:1295
|
||||
msgid "contains"
|
||||
msgstr ""
|
||||
msgstr "bevat"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:1291
|
||||
#: addons/web/static/src/js/search.js:1296
|
||||
msgid "doesn't contain"
|
||||
msgstr ""
|
||||
msgstr "bevat niet"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:1292
|
||||
@@ -293,7 +293,7 @@ msgstr ""
|
||||
#: addons/web/static/src/js/search.js:1349
|
||||
#: addons/web/static/src/js/search.js:1370
|
||||
msgid "is equal to"
|
||||
msgstr ""
|
||||
msgstr "is gelijk aan"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:1293
|
||||
@@ -307,7 +307,7 @@ msgstr ""
|
||||
#: addons/web/static/src/js/search.js:1350
|
||||
#: addons/web/static/src/js/search.js:1371
|
||||
msgid "is not equal to"
|
||||
msgstr ""
|
||||
msgstr "is niet gelijk aan"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:1294
|
||||
@@ -321,7 +321,7 @@ msgstr ""
|
||||
#: addons/web/static/src/js/search.js:1351
|
||||
#: addons/web/static/src/js/search.js:1372
|
||||
msgid "greater than"
|
||||
msgstr ""
|
||||
msgstr "is groter dan"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:1295
|
||||
@@ -335,7 +335,7 @@ msgstr ""
|
||||
#: addons/web/static/src/js/search.js:1352
|
||||
#: addons/web/static/src/js/search.js:1373
|
||||
msgid "less than"
|
||||
msgstr ""
|
||||
msgstr "is kleiner dan"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:1296
|
||||
@@ -349,7 +349,7 @@ msgstr ""
|
||||
#: addons/web/static/src/js/search.js:1353
|
||||
#: addons/web/static/src/js/search.js:1374
|
||||
msgid "greater or equal than"
|
||||
msgstr ""
|
||||
msgstr "is groter of gelijk aan"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:1297
|
||||
@@ -363,7 +363,7 @@ msgstr ""
|
||||
#: addons/web/static/src/js/search.js:1354
|
||||
#: addons/web/static/src/js/search.js:1375
|
||||
msgid "less or equal than"
|
||||
msgstr ""
|
||||
msgstr "is kleiner dan of gelijk aan"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:1360
|
||||
@@ -371,31 +371,31 @@ msgstr ""
|
||||
#: addons/web/static/src/js/search.js:1365
|
||||
#: addons/web/static/src/js/search.js:1388
|
||||
msgid "is"
|
||||
msgstr ""
|
||||
msgstr "is gelijk aan"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:1384
|
||||
#: addons/web/static/src/js/search.js:1389
|
||||
msgid "is not"
|
||||
msgstr ""
|
||||
msgstr "is niet gelijk aan"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:1396
|
||||
#: addons/web/static/src/js/search.js:1401
|
||||
msgid "is true"
|
||||
msgstr ""
|
||||
msgstr "is waar"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/search.js:1397
|
||||
#: addons/web/static/src/js/search.js:1402
|
||||
msgid "is false"
|
||||
msgstr ""
|
||||
msgstr "is onwaar"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:20
|
||||
#, python-format
|
||||
msgid "Manage Views (%s)"
|
||||
msgstr ""
|
||||
msgstr "Weergaven beheren (%s)"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:46
|
||||
@@ -411,7 +411,7 @@ msgstr "Creër"
|
||||
#: addons/web/static/src/xml/base.xml:483
|
||||
#: addons/web/static/src/xml/base.xml:755
|
||||
msgid "Edit"
|
||||
msgstr ""
|
||||
msgstr "Bewerken"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:48
|
||||
@@ -423,18 +423,18 @@ msgstr "Verwijderen"
|
||||
#: addons/web/static/src/js/view_editor.js:71
|
||||
#, python-format
|
||||
msgid "Create a view (%s)"
|
||||
msgstr ""
|
||||
msgstr "Een weergave maken (%s)"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:168
|
||||
msgid "Do you really want to remove this view?"
|
||||
msgstr ""
|
||||
msgstr "Wilt u deze weergave echt verwijderen?"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:364
|
||||
#, python-format
|
||||
msgid "View Editor %d - %s"
|
||||
msgstr ""
|
||||
msgstr "Bekijk editor %d - %s"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:367
|
||||
@@ -449,7 +449,7 @@ msgstr ""
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:381
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
msgstr "Voorbeeld"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web/static/src/js/view_editor.js:501
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
// TODO: t-set + t-value + children node == scoped variable ?
|
||||
var QWeb2 = {
|
||||
expressions_cache: {},
|
||||
RESERVED_WORDS: 'true,false,NaN,null,undefined,debugger,console,in,instanceof,new,function,return,this,typeof,eval,Math,RegExp,Array,Object,Date'.split(','),
|
||||
RESERVED_WORDS: 'true,false,NaN,null,undefined,debugger,console,in,instanceof,new,function,return,this,typeof,eval,void,Math,RegExp,Array,Object,Date'.split(','),
|
||||
ACTIONS_PRECEDENCE: 'foreach,if,call,set,esc,escf,raw,rawf,js,debug,log'.split(','),
|
||||
WORD_REPLACEMENT: {
|
||||
'and': '&&',
|
||||
|
||||
@@ -56,7 +56,6 @@
|
||||
}
|
||||
.openerp th, .openerp td {
|
||||
padding: 0;
|
||||
line-height: 18px;
|
||||
text-align: left;
|
||||
}
|
||||
.openerp th {
|
||||
@@ -117,6 +116,9 @@
|
||||
float: right;
|
||||
margin-left: 8px;
|
||||
}
|
||||
.openerp .oe_text_right {
|
||||
text-align: right;
|
||||
}
|
||||
.openerp .oe_clear {
|
||||
clear: both;
|
||||
}
|
||||
@@ -515,6 +517,7 @@
|
||||
border-right: 1px solid #afafb6;
|
||||
text-shadow: 0 1px 1px white;
|
||||
padding-bottom: 16px;
|
||||
line-height: 18px;
|
||||
}
|
||||
.openerp a.oe_logo {
|
||||
width: 220px;
|
||||
@@ -1002,9 +1005,6 @@
|
||||
.openerp .oe_view_manager_header .oe_view_manager_buttons {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.openerp .oe_view_manager_body h4 {
|
||||
margin: 8px 0;
|
||||
}
|
||||
.openerp .oe_view_manager_pager {
|
||||
line-height: 26px;
|
||||
}
|
||||
@@ -1420,11 +1420,12 @@
|
||||
}
|
||||
.openerp .oe_view_nocontent > img {
|
||||
float: left;
|
||||
margin-right: 1.5em;
|
||||
margin: 1.5em;
|
||||
}
|
||||
.openerp .oe_view_nocontent > div {
|
||||
overflow: hidden;
|
||||
padding: 6px;
|
||||
padding: 35px 0px 0px 0px;
|
||||
max-width: 700px;
|
||||
font-size: 125%;
|
||||
}
|
||||
.openerp .oe_view_topbar {
|
||||
@@ -1477,7 +1478,7 @@
|
||||
}
|
||||
.openerp .oe_form_topbar button {
|
||||
font-size: 12px;
|
||||
height: 24px;
|
||||
height: 24px !important;
|
||||
line-height: 24px;
|
||||
vertical-align: top;
|
||||
padding: 0 10px;
|
||||
@@ -1556,7 +1557,7 @@
|
||||
padding: 8px 0;
|
||||
border-bottom: 1px solid #dddddd;
|
||||
}
|
||||
.openerp .oe_application .oe_form_sheet_width {
|
||||
.openerp .oe_application .oe_form_sheet_width, .openerp .oe_application .oe_form_bottom {
|
||||
min-width: 650px;
|
||||
max-width: 980px;
|
||||
margin: 0 auto;
|
||||
@@ -1570,44 +1571,30 @@
|
||||
-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
|
||||
-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
.openerp .oe_form_autolayout .oe_button {
|
||||
height: 20px;
|
||||
}
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell {
|
||||
.openerp .oe_form .oe_form_group_cell {
|
||||
line-height: 18px;
|
||||
padding: 2px;
|
||||
height: 20px;
|
||||
}
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell > .oe_form_field_many2one,
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell > .oe_form_field_many2one input,
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell > .oe_form_field_char input,
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell > .oe_form_field_text textarea,
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell > .oe_form_field_email,
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell > .oe_form_field_email input,
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell > .oe_form_field_url,
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell > .oe_form_field_url input,
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell > .oe_form_field_float input,
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell > .oe_form_field_selection select,
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell > div > .oe_datepicker_root,
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell > div > .oe_datepicker_root > input.oe_datepicker_master {
|
||||
.openerp .oe_form .oe_form_group_cell > .oe_form_field_many2one,
|
||||
.openerp .oe_form .oe_form_group_cell > .oe_form_field_many2one input,
|
||||
.openerp .oe_form .oe_form_group_cell > .oe_form_field_char input,
|
||||
.openerp .oe_form .oe_form_group_cell > .oe_form_field_text textarea,
|
||||
.openerp .oe_form .oe_form_group_cell > .oe_form_field_email,
|
||||
.openerp .oe_form .oe_form_group_cell > .oe_form_field_email input,
|
||||
.openerp .oe_form .oe_form_group_cell > .oe_form_field_url,
|
||||
.openerp .oe_form .oe_form_group_cell > .oe_form_field_url input,
|
||||
.openerp .oe_form .oe_form_group_cell > .oe_form_field_float input,
|
||||
.openerp .oe_form .oe_form_group_cell > .oe_form_field_selection select,
|
||||
.openerp .oe_form .oe_form_group_cell > div > .oe_datepicker_root,
|
||||
.openerp .oe_form .oe_form_group_cell > div > .oe_datepicker_root > input.oe_datepicker_master {
|
||||
width: 100%;
|
||||
}
|
||||
.openerp .oe_form_autolayout .oe_form_button.oe_button {
|
||||
color: #4c4c4c;
|
||||
}
|
||||
.openerp .oe_form_autolayout .oe_form_button.oe_button span {
|
||||
position: relative;
|
||||
vertical-align: top;
|
||||
}
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell > .oe_form_button.oe_button {
|
||||
white-space: nowrap;
|
||||
min-width: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.openerp .oe_form_autolayout .oe_form_group_cell.oe_form_group_nested {
|
||||
.openerp .oe_form .oe_form_group_cell.oe_form_group_nested {
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_form .oe_form_label_help[for], .openerp .oe_form .oe_form_label[for] {
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
padding-right: 8px;
|
||||
}
|
||||
@@ -1666,7 +1653,6 @@
|
||||
-moz-border-radius: 0px;
|
||||
-webkit-border-radius: 0px;
|
||||
border-radius: 0px;
|
||||
color: #666666;
|
||||
}
|
||||
.openerp .oe_form .oe_form_field_many2one input,
|
||||
.openerp .oe_form .oe_form_field_binary input,
|
||||
@@ -1735,6 +1721,7 @@
|
||||
border: 1px solid #dd0000 !important;
|
||||
}
|
||||
.openerp .oe_form .oe_button.oe_field_button {
|
||||
display: block;
|
||||
-webkit-border-top-left-radius: 0px;
|
||||
-webkit-border-bottom-left-radius: 0px;
|
||||
-moz-border-radius-topleft: 0px;
|
||||
@@ -1757,10 +1744,24 @@
|
||||
right: 5px;
|
||||
top: 3px;
|
||||
}
|
||||
.openerp .oe_form .oe_form_button.oe_button {
|
||||
height: 22px;
|
||||
color: #4c4c4c;
|
||||
}
|
||||
.openerp .oe_form .oe_form_button.oe_button span {
|
||||
position: relative;
|
||||
vertical-align: top;
|
||||
}
|
||||
.openerp .oe_form .oe_form_button > img {
|
||||
vertical-align: -3px;
|
||||
padding: 0 2px;
|
||||
}
|
||||
.openerp .oe_form .oe_form_group_cell > .oe_form_button.oe_button {
|
||||
display: block;
|
||||
white-space: nowrap;
|
||||
min-width: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.openerp .oe_form .oe-binary-file-set {
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
@@ -1780,6 +1781,9 @@
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_horizontal_border {
|
||||
border-bottom: 1px solid black;
|
||||
}
|
||||
.openerp .oe_horizontal_separator {
|
||||
font-weight: bold;
|
||||
font-size: 16px;
|
||||
@@ -1904,7 +1908,30 @@
|
||||
}
|
||||
.openerp .oe_form .oe_form_group_odd_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell,
|
||||
.openerp .oe_form .oe_form_group_label_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell {
|
||||
padding: 2px 2px 2px 8px !important;
|
||||
padding-left: 8px;
|
||||
}
|
||||
.openerp .oe_form .oe_form_subtotal_footer {
|
||||
float: right;
|
||||
}
|
||||
.openerp .oe_form .oe_form_subtotal_footer > div {
|
||||
text-align: right;
|
||||
padding: 3px;
|
||||
}
|
||||
.openerp .oe_form .oe_form_subtotal_footer label {
|
||||
font-weight: normal !important;
|
||||
}
|
||||
.openerp .oe_form .oe_form_subtotal_footer span {
|
||||
display: inline-block;
|
||||
min-width: 80px;
|
||||
text-align: right;
|
||||
}
|
||||
.openerp .oe_form .oe_form_subtotal_footer .oe_form_subtotal_footer_separator {
|
||||
border-top: 1px solid #cacaca;
|
||||
font-size: 120%;
|
||||
font-weight: bold;
|
||||
}
|
||||
.openerp .oe_form .oe_form_subtotal_footer .oe_form_subtotal_footer_separator label {
|
||||
font-weight: bold !important;
|
||||
}
|
||||
.openerp .oe-listview-content {
|
||||
width: 100%;
|
||||
|
||||
@@ -118,7 +118,6 @@ $colour4: #8a89ba
|
||||
border-right: none
|
||||
th, td
|
||||
padding: 0
|
||||
line-height: 18px
|
||||
text-align: left
|
||||
th
|
||||
font-weight: bold
|
||||
@@ -156,6 +155,8 @@ $colour4: #8a89ba
|
||||
.oe_right
|
||||
float: right
|
||||
margin-left: 8px
|
||||
.oe_text_right
|
||||
text-align: right
|
||||
.oe_clear
|
||||
clear: both
|
||||
.oe_wait
|
||||
@@ -434,6 +435,7 @@ $colour4: #8a89ba
|
||||
border-right: 1px solid #afafb6
|
||||
text-shadow: 0 1px 1px white
|
||||
padding-bottom: 16px
|
||||
line-height: 18px
|
||||
a.oe_logo
|
||||
width: 220px
|
||||
display: block
|
||||
@@ -795,11 +797,6 @@ $colour4: #8a89ba
|
||||
.oe_view_manager_buttons
|
||||
white-space: nowrap
|
||||
// }}}
|
||||
// ViewManager.body {{{
|
||||
.oe_view_manager_body
|
||||
h4
|
||||
margin: 8px 0
|
||||
// }}}
|
||||
// ViewManager.pager {{{
|
||||
.oe_view_manager_pager
|
||||
line-height: 26px
|
||||
@@ -1161,11 +1158,12 @@ $colour4: #8a89ba
|
||||
.oe_view_nocontent
|
||||
> img
|
||||
float: left
|
||||
margin-right: 1.5em
|
||||
margin: 1.5em
|
||||
> div
|
||||
// don't encroach on my arrow
|
||||
overflow: hidden
|
||||
padding: 6px
|
||||
padding: 35px 0px 0px 0px
|
||||
max-width: 700px
|
||||
font-size: 125%
|
||||
.oe_view_topbar
|
||||
border-bottom: 1px solid #cacaca
|
||||
@@ -1203,7 +1201,7 @@ $colour4: #8a89ba
|
||||
line-height: 30px
|
||||
button
|
||||
font-size: 12px
|
||||
height: 24px
|
||||
height: 24px !important
|
||||
line-height: 24px
|
||||
vertical-align: top
|
||||
padding: 0 10px
|
||||
@@ -1269,7 +1267,7 @@ $colour4: #8a89ba
|
||||
background: url(/web/static/src/img/form_sheetbg.png)
|
||||
padding: 8px 0
|
||||
border-bottom: 1px solid #ddd
|
||||
.oe_form_sheet_width
|
||||
.oe_form_sheet_width, .oe_form_bottom
|
||||
min-width: 650px
|
||||
max-width: 980px
|
||||
margin: 0 auto
|
||||
@@ -1280,10 +1278,8 @@ $colour4: #8a89ba
|
||||
border: 1px solid #afafb6
|
||||
@include box-shadow(0 0 10px rgba(0,0,0,0.3))
|
||||
// }}}
|
||||
// FormView.autolayout {{{
|
||||
.oe_form_autolayout
|
||||
.oe_button
|
||||
height: 20px
|
||||
// FormView.layout {{{
|
||||
.oe_form
|
||||
.oe_form_group_cell
|
||||
line-height: 18px
|
||||
padding: 2px
|
||||
@@ -1301,21 +1297,13 @@ $colour4: #8a89ba
|
||||
.oe_form_group_cell > div > .oe_datepicker_root,
|
||||
.oe_form_group_cell > div > .oe_datepicker_root > input.oe_datepicker_master
|
||||
width: 100%
|
||||
.oe_form_button.oe_button
|
||||
color: #4c4c4c
|
||||
span
|
||||
position: relative
|
||||
vertical-align: top
|
||||
.oe_form_group_cell > .oe_form_button.oe_button
|
||||
white-space: nowrap
|
||||
min-width: 100%
|
||||
width: 100%
|
||||
.oe_form_group_cell.oe_form_group_nested
|
||||
padding: 0
|
||||
// }}}
|
||||
// FormView.label {{{
|
||||
.oe_form
|
||||
.oe_form_label_help[for], .oe_form_label[for]
|
||||
font-weight: bold
|
||||
white-space: nowrap
|
||||
padding-right: 8px
|
||||
span
|
||||
@@ -1367,7 +1355,6 @@ $colour4: #8a89ba
|
||||
padding-left: 8px
|
||||
@include box-shadow(none)
|
||||
@include radius(0px)
|
||||
color: #666
|
||||
.oe_form_field_many2one input,
|
||||
.oe_form_field_binary input,
|
||||
.oe_form_field_binary input,
|
||||
@@ -1424,10 +1411,8 @@ $colour4: #8a89ba
|
||||
input, select, textarea
|
||||
background-color: #F66 !important
|
||||
border: 1px solid #D00 !important
|
||||
// }}}
|
||||
// FormView.buttons {{{
|
||||
.oe_form
|
||||
.oe_button.oe_field_button
|
||||
display: block
|
||||
-webkit-border-top-left-radius: 0px
|
||||
-webkit-border-bottom-left-radius: 0px
|
||||
-moz-border-radius-topleft: 0px
|
||||
@@ -1447,9 +1432,23 @@ $colour4: #8a89ba
|
||||
filter: alpha(opacity=50)
|
||||
right: 5px
|
||||
top: 3px
|
||||
// }}}
|
||||
// FormView.buttons {{{
|
||||
.oe_form
|
||||
.oe_form_button.oe_button
|
||||
height: 22px
|
||||
color: #4c4c4c
|
||||
span
|
||||
position: relative
|
||||
vertical-align: top
|
||||
.oe_form_button > img
|
||||
vertical-align: -3px
|
||||
padding: 0 2px
|
||||
.oe_form_group_cell > .oe_form_button.oe_button
|
||||
display: block
|
||||
white-space: nowrap
|
||||
min-width: 100%
|
||||
width: 100%
|
||||
// }}}
|
||||
// FormView.binaryfile {{{
|
||||
/* http://www.quirksmode.org/dom/inputfile.html
|
||||
@@ -1476,6 +1475,8 @@ $colour4: #8a89ba
|
||||
padding: 0
|
||||
// }}}
|
||||
// FormView.separator {{{
|
||||
.oe_horizontal_border
|
||||
border-bottom: 1px solid black
|
||||
.oe_horizontal_separator
|
||||
font-weight: bold
|
||||
font-size: 16px
|
||||
@@ -1587,7 +1588,24 @@ $colour4: #8a89ba
|
||||
min-width: 120px
|
||||
.oe_form_group_odd_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell,
|
||||
.oe_form_group_label_border > tbody > tr.oe_form_group_row > td.oe_form_group_cell
|
||||
padding: 2px 2px 2px 8px !important
|
||||
padding-left: 8px
|
||||
.oe_form_subtotal_footer
|
||||
float: right
|
||||
> div
|
||||
text-align: right
|
||||
padding: 3px
|
||||
label
|
||||
font-weight: normal !important
|
||||
span
|
||||
display: inline-block
|
||||
min-width: 80px
|
||||
text-align: right
|
||||
.oe_form_subtotal_footer_separator
|
||||
border-top: 1px solid #cacaca
|
||||
font-size: 120%
|
||||
font-weight: bold
|
||||
label
|
||||
font-weight: bold !important
|
||||
// }}}
|
||||
// ListView {{{
|
||||
.oe-listview-content
|
||||
|
||||
@@ -43,11 +43,15 @@ instance.web.Notification = instance.web.Widget.extend({
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* The very minimal function everything should call to create a dialog
|
||||
* in OpenERP Web Client.
|
||||
*/
|
||||
instance.web.dialog = function(element) {
|
||||
var result = element.dialog.apply(element, _.rest(_.toArray(arguments)));
|
||||
result.dialog("widget").addClass("openerp");
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
instance.web.Dialog = instance.web.Widget.extend({
|
||||
dialog_title: "",
|
||||
@@ -162,7 +166,7 @@ instance.web.CrashManager = instance.web.CallbackEnabled.extend({
|
||||
}
|
||||
},
|
||||
on_managed_error: function(error) {
|
||||
instance.web.dialog($('<div>' + QWeb.render('CrashManager.warning', {error: error}) + '</div>'), {
|
||||
instance.web.dialog($('<div>' + QWeb.render('CrashManager.warning', {error: error}) + '</div>'), {
|
||||
title: "OpenERP " + _.str.capitalize(error.type),
|
||||
buttons: [
|
||||
{text: _t("Ok"), click: function() { $(this).dialog("close"); }}
|
||||
@@ -181,7 +185,7 @@ instance.web.CrashManager = instance.web.CallbackEnabled.extend({
|
||||
// Call the send method from server to send mail with details
|
||||
new instance.web.DataSet(self, 'publisher_warranty.contract').call_and_eval('send', [error.data,explanation,remark,issuename]).then(function(result){
|
||||
if (result === false) {
|
||||
alert('There was a communication error.')
|
||||
alert('There was a communication error.');
|
||||
} else {
|
||||
$this.dialog('close');
|
||||
}
|
||||
@@ -269,12 +273,12 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
|
||||
start: function() {
|
||||
var self = this;
|
||||
var fetch_db = this.rpc("/web/database/get_list", {}).pipe(
|
||||
function(result) {
|
||||
self.db_list = result.db_list;
|
||||
function(result) {
|
||||
self.db_list = result.db_list;
|
||||
},
|
||||
function (_, ev) {
|
||||
function (_, ev) {
|
||||
ev.preventDefault();
|
||||
self.db_list = null;
|
||||
self.db_list = null;
|
||||
});
|
||||
var fetch_langs = this.rpc("/web/session/get_lang_list", {}).then(function(result) {
|
||||
self.lang_list = result.lang_list;
|
||||
@@ -284,11 +288,15 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
|
||||
do_render: function() {
|
||||
var self = this;
|
||||
self.$element.html(QWeb.render("DatabaseManager", { widget : self }));
|
||||
self.$element.find(".oe_database_manager_menu").tabs();
|
||||
self.$element.find(".oe_database_manager_menu").tabs({
|
||||
show: function(event, ui) {
|
||||
$('*[autofocus]:first', ui.panel).focus();
|
||||
}
|
||||
});
|
||||
self.$element.find("form[name=create_db_form]").validate({ submitHandler: self.do_create });
|
||||
self.$element.find("form[name=drop_db_form]").validate({ submitHandler: self.do_drop });
|
||||
self.$element.find("form[name=backup_db_form]").validate({ submitHandler: self.do_backup });
|
||||
self.$element.find("form[name=restore_db_form]").validate({ submitHandler: self.do_restore });
|
||||
self.$element.find("form[name=drop_db_form]").validate({ submitHandler: self.do_drop });
|
||||
self.$element.find("form[name=backup_db_form]").validate({ submitHandler: self.do_backup });
|
||||
self.$element.find("form[name=restore_db_form]").validate({ submitHandler: self.do_restore });
|
||||
self.$element.find("form[name=change_pwd_form]").validate({
|
||||
messages: {
|
||||
old_pwd: "Please enter your previous password",
|
||||
@@ -300,7 +308,7 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
|
||||
},
|
||||
submitHandler: self.do_change_password
|
||||
});
|
||||
self.$element.find("#back_to_login").click(self.do_exit);
|
||||
self.$element.find("#back_to_login").click(self.do_exit);
|
||||
},
|
||||
destroy: function () {
|
||||
this.$element.find('#db-create, #db-drop, #db-backup, #db-restore, #db-change-password, #back-to-login').unbind('click').end().empty();
|
||||
@@ -409,12 +417,12 @@ instance.web.DatabaseManager = instance.web.Widget.extend({
|
||||
self.display_error({
|
||||
title: 'Access Denied',
|
||||
error: 'Incorrect super-administrator password'
|
||||
})
|
||||
});
|
||||
} else {
|
||||
self.display_error({
|
||||
title: 'Restore Database',
|
||||
error: 'Could not restore the database'
|
||||
})
|
||||
});
|
||||
}
|
||||
},
|
||||
complete: function() {
|
||||
@@ -451,7 +459,7 @@ instance.web.Login = instance.web.Widget.extend({
|
||||
if (this.has_local_storage && this.remember_credentials) {
|
||||
this.selected_db = localStorage.getItem('last_db_login_success');
|
||||
this.selected_login = localStorage.getItem('last_login_login_success');
|
||||
if (jQuery.deparam(jQuery.param.querystring()).debug != undefined) {
|
||||
if (jQuery.deparam(jQuery.param.querystring()).debug !== undefined) {
|
||||
this.selected_password = localStorage.getItem('last_password_login_success');
|
||||
}
|
||||
}
|
||||
@@ -471,7 +479,7 @@ instance.web.Login = instance.web.Widget.extend({
|
||||
self.$element.find('.oe_login_bottom').show();
|
||||
self.$element.find('.oe_login_pane').show();
|
||||
self.load_db_list();
|
||||
})
|
||||
});
|
||||
});
|
||||
self.load_db_list();
|
||||
},
|
||||
@@ -486,7 +494,7 @@ instance.web.Login = instance.web.Widget.extend({
|
||||
});
|
||||
},
|
||||
set_db_list: function (list) {
|
||||
this.$element.find("[name=db]").replaceWith(instance.web.qweb.render('Login.dblist', { db_list: list, selected_db: this.selected_db}))
|
||||
this.$element.find("[name=db]").replaceWith(instance.web.qweb.render('Login.dblist', { db_list: list, selected_db: this.selected_db}));
|
||||
},
|
||||
on_submit: function(ev) {
|
||||
if(ev) {
|
||||
@@ -525,7 +533,7 @@ instance.web.Login = instance.web.Widget.extend({
|
||||
if(self.remember_credentials) {
|
||||
localStorage.setItem('last_db_login_success', db);
|
||||
localStorage.setItem('last_login_login_success', login);
|
||||
if (jQuery.deparam(jQuery.param.querystring()).debug != undefined) {
|
||||
if (jQuery.deparam(jQuery.param.querystring()).debug !== undefined) {
|
||||
localStorage.setItem('last_password_login_success', password);
|
||||
}
|
||||
} else {
|
||||
@@ -641,8 +649,9 @@ instance.web.Menu = instance.web.Widget.extend({
|
||||
* @param {Number} id the action_id to match
|
||||
*/
|
||||
open_action: function (id) {
|
||||
var menu_id, $menu = this.$element.add(this.$secondary_menus).find('a[data-action-id=' + id + ']');
|
||||
if (menu_id = $menu.data('menu')) {
|
||||
var $menu = this.$element.add(this.$secondary_menus).find('a[data-action-id=' + id + ']');
|
||||
var menu_id = $menu.data('menu');
|
||||
if (menu_id) {
|
||||
this.open_menu(menu_id);
|
||||
}
|
||||
},
|
||||
@@ -669,7 +678,7 @@ instance.web.Menu = instance.web.Widget.extend({
|
||||
action_id = $items.data('action-id');
|
||||
id = $items.data('menu');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.open_menu(id);
|
||||
this.current_menu = id;
|
||||
@@ -709,7 +718,9 @@ instance.web.UserMenu = instance.web.Widget.extend({
|
||||
});
|
||||
this.$element.on('click', '.oe_dropdown_options li a[data-menu]', function() {
|
||||
var f = self['on_menu_' + $(this).data('menu')];
|
||||
f && f($(this));
|
||||
if (f) {
|
||||
f($(this));
|
||||
}
|
||||
self.$element.find('.oe_dropdown_options').hide();
|
||||
return false;
|
||||
});
|
||||
@@ -837,7 +848,7 @@ instance.web.WebClient = instance.web.Widget.extend({
|
||||
start: function() {
|
||||
var self = this;
|
||||
this.$element.addClass("openerp openerp-web-client-container");
|
||||
if (jQuery.param != undefined && jQuery.deparam(jQuery.param.querystring()).kitten != undefined) {
|
||||
if (jQuery.param !== undefined && jQuery.deparam(jQuery.param.querystring()).kitten !== undefined) {
|
||||
this.$element.addClass("kitten-mode-activated");
|
||||
this.$element.delegate('img.oe-record-edit-link-img', 'hover', function(e) {
|
||||
self.$element.toggleClass('clark-gable');
|
||||
@@ -899,7 +910,7 @@ instance.web.WebClient = instance.web.Widget.extend({
|
||||
message: message,
|
||||
data: {debug: file + ':' + line}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
this.notification = new instance.web.Notification(this);
|
||||
this.notification.appendTo(this.$element);
|
||||
@@ -954,9 +965,18 @@ instance.web.WebClient = instance.web.Widget.extend({
|
||||
}
|
||||
},
|
||||
on_hashchange: function(event) {
|
||||
var self = this;
|
||||
var state = event.getState(true);
|
||||
if (!_.isEqual(this._current_state, state)) {
|
||||
this.action_manager.do_load_state(state, !!this._current_state);
|
||||
if(state.action_id === undefined && state.menu_id) {
|
||||
self.menu.has_been_loaded.then(function() {
|
||||
self.menu.do_reload().then(function() {
|
||||
self.menu.menu_click(state.menu_id)
|
||||
});
|
||||
});
|
||||
} else {
|
||||
this.action_manager.do_load_state(state, !!this._current_state);
|
||||
}
|
||||
}
|
||||
this._current_state = state;
|
||||
},
|
||||
@@ -970,7 +990,7 @@ instance.web.WebClient = instance.web.Widget.extend({
|
||||
},
|
||||
do_action: function(action) {
|
||||
var self = this;
|
||||
// TODO replace by client action menuclick
|
||||
// TODO replace by client action menuclick
|
||||
if(action.menu_id) {
|
||||
this.do_reload().then(function () {
|
||||
self.menu.menu_click(action.menu_id);
|
||||
@@ -989,7 +1009,7 @@ instance.web.EmbeddedClient = instance.web.Widget.extend({
|
||||
template: 'EmptyComponent',
|
||||
init: function(parent, action_id, options) {
|
||||
this._super(parent);
|
||||
// TODO take the xmlid of a action instead of its id
|
||||
// TODO take the xmlid of a action instead of its id
|
||||
this.action_id = action_id;
|
||||
this.options = options || {};
|
||||
this.am = new instance.web.ActionManager(this);
|
||||
@@ -1030,7 +1050,7 @@ instance.web.embed = function (origin, dbname, login, key, action, options) {
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -709,6 +709,12 @@ instance.web.Widget = instance.web.Class.extend(instance.web.WidgetMixin, {
|
||||
this.$element = elem;
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Shortcut for $element.find() like backbone
|
||||
*/
|
||||
"$": function() {
|
||||
return this.$element.find.apply(this.$element,arguments);
|
||||
},
|
||||
/**
|
||||
* Informs the action manager to do an action. This supposes that
|
||||
* the action manager can be found amongst the ancestors of the current widget.
|
||||
|
||||
@@ -579,6 +579,33 @@ $.async_when = function() {
|
||||
return old_async_when.apply(this, arguments);
|
||||
};
|
||||
|
||||
/**
|
||||
* Registry for all the client actions key: tag value: widget
|
||||
*/
|
||||
instance.web.client_actions = new instance.web.Registry();
|
||||
|
||||
/**
|
||||
* Client action to reload the whole interface.
|
||||
* If params has an entry 'menu_id', it opens the given menu entry.
|
||||
*/
|
||||
instance.web.client_actions.add("reload", "instance.web.Reload");
|
||||
|
||||
instance.web.Reload = instance.web.Widget.extend({
|
||||
init: function(parent, params) {
|
||||
this._super(parent);
|
||||
this.menu_id = (params && params.menu_id) || false;
|
||||
},
|
||||
start: function() {
|
||||
if (this.menu_id) {
|
||||
// open the given menu id
|
||||
var url_without_fragment = window.location.toString().split("#", 1)[0];
|
||||
window.location = url_without_fragment + "#menu_id=" + this.menu_id;
|
||||
} else {
|
||||
window.location.reload();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax:
|
||||
|
||||
@@ -1079,44 +1079,44 @@ instance.web.ProxyDataSet = instance.web.DataSetSearch.extend({
|
||||
this.create_function = null;
|
||||
this.write_function = null;
|
||||
this.read_function = null;
|
||||
this.default_get_function = null;
|
||||
this.unlink_function = null;
|
||||
},
|
||||
read_ids: function () {
|
||||
read_ids: function (ids, fields, options) {
|
||||
if (this.read_function) {
|
||||
return this.read_function.apply(null, arguments);
|
||||
return this.read_function(ids, fields, options, this._super);
|
||||
} else {
|
||||
return this._super.apply(this, arguments);
|
||||
}
|
||||
},
|
||||
default_get: function(fields, options) {
|
||||
return this._super(fields, options).then(this.on_default_get);
|
||||
if (this.default_get_function) {
|
||||
return this.default_get_function(fields, options, this._super);
|
||||
} else {
|
||||
return this._super.apply(this, arguments);
|
||||
}
|
||||
},
|
||||
on_default_get: function(result) {},
|
||||
create: function(data, callback, error_callback) {
|
||||
this.on_create(data);
|
||||
if (this.create_function) {
|
||||
return this.create_function(data, callback, error_callback);
|
||||
return this.create_function(data, this._super).then(callback, error_callback);
|
||||
} else {
|
||||
console.warn("trying to create a record using default proxy dataset behavior");
|
||||
return $.async_when({"result": undefined}).then(callback);
|
||||
return this._super.apply(this, arguments);
|
||||
}
|
||||
},
|
||||
on_create: function(data) {},
|
||||
write: function (id, data, options, callback) {
|
||||
this.on_write(id, data);
|
||||
write: function (id, data, options, callback, error_callback) {
|
||||
if (this.write_function) {
|
||||
return this.write_function(id, data, options, callback);
|
||||
return this.write_function(id, data, options, this._super).then(callback, error_callback);
|
||||
} else {
|
||||
console.warn("trying to write a record using default proxy dataset behavior");
|
||||
return $.async_when({"result": true}).then(callback);
|
||||
return this._super.apply(this, arguments);
|
||||
}
|
||||
},
|
||||
on_write: function(id, data) {},
|
||||
unlink: function(ids, callback, error_callback) {
|
||||
this.on_unlink(ids);
|
||||
console.warn("trying to unlink a record using default proxy dataset behavior");
|
||||
return $.async_when({"result": true}).then(callback);
|
||||
if (this.unlink_function) {
|
||||
return this.unlink_function(ids, this._super).then(callback, error_callback);
|
||||
} else {
|
||||
return this._super.apply(this, arguments);
|
||||
}
|
||||
},
|
||||
on_unlink: function(ids) {}
|
||||
});
|
||||
|
||||
instance.web.CompoundContext = instance.web.Class.extend({
|
||||
|
||||
@@ -984,9 +984,6 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
|
||||
},
|
||||
process: function($tag, layout) {
|
||||
var self = this;
|
||||
if ($tag.attr('layout') === 'auto') {
|
||||
$tag.addClass('oe_form_autolayout');
|
||||
}
|
||||
layout = $tag.attr('layout') || layout || 'auto';
|
||||
$tag.removeAttr('layout');
|
||||
var tagname = $tag[0].nodeName.toLowerCase();
|
||||
@@ -2310,16 +2307,6 @@ instance.web.form.FieldSelection = instance.web.form.AbstractField.extend(_.exte
|
||||
});
|
||||
})();
|
||||
|
||||
instance.web.form.dialog = function(content, options) {
|
||||
options = _.extend({
|
||||
width: '90%',
|
||||
height: 'auto',
|
||||
min_width: '800px'
|
||||
}, options || {});
|
||||
var dialog = new instance.web.Dialog(null, options, content).open();
|
||||
return dialog.$element;
|
||||
};
|
||||
|
||||
/**
|
||||
* A mixin containing some useful methods to handle completion inputs.
|
||||
*/
|
||||
@@ -2756,20 +2743,18 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
|
||||
view.view_type = 'form';
|
||||
}
|
||||
view.options.not_interactible_on_create = true;
|
||||
} else if (view.view_type === "kanban") {
|
||||
if (self.get("effective_readonly")) {
|
||||
view.options.action_buttons = false;
|
||||
view.options.quick_creatable = false;
|
||||
}
|
||||
}
|
||||
views.push(view);
|
||||
});
|
||||
this.views = views;
|
||||
|
||||
this.viewmanager = new instance.web.ViewManager(this, this.dataset, views, {
|
||||
$sidebar: false,
|
||||
});
|
||||
this.viewmanager.template = 'One2Many.viewmanager';
|
||||
this.viewmanager.registry = instance.web.views.extend({
|
||||
list: 'instance.web.form.One2ManyListView',
|
||||
form: 'instance.web.form.One2ManyFormView',
|
||||
kanban: 'instance.web.form.One2ManyKanbanView',
|
||||
});
|
||||
this.viewmanager = new instance.web.form.One2ManyViewManager(this, this.dataset, views, {});
|
||||
this.viewmanager.o2m = self;
|
||||
var once = $.Deferred().then(function() {
|
||||
self.init_form_last_update.resolve();
|
||||
});
|
||||
@@ -2953,6 +2938,42 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
|
||||
},
|
||||
});
|
||||
|
||||
instance.web.form.One2ManyViewManager = instance.web.ViewManager.extend({
|
||||
template: 'One2Many.viewmanager',
|
||||
init: function(parent, dataset, views, flags) {
|
||||
this._super(parent, dataset, views, _.extend({}, flags, {$sidebar: false}));
|
||||
this.registry = this.registry.extend({
|
||||
list: 'instance.web.form.One2ManyListView',
|
||||
form: 'instance.web.form.One2ManyFormView',
|
||||
kanban: 'instance.web.form.One2ManyKanbanView',
|
||||
});
|
||||
},
|
||||
switch_view: function(mode, unused) {
|
||||
if (mode !== 'form') {
|
||||
return this._super(mode, unused);
|
||||
}
|
||||
var self = this;
|
||||
var id = self.o2m.dataset.index !== null ? self.o2m.dataset.ids[self.o2m.dataset.index] : null;
|
||||
var pop = new instance.web.form.FormOpenPopup(self.o2m.view);
|
||||
pop.show_element(self.o2m.field.relation, id, self.o2m.build_context(), {
|
||||
title: _t("Open: ") + self.name,
|
||||
write_function: function(id, data, options) {
|
||||
return self.o2m.dataset.write(id, data, {}).then(function() {
|
||||
self.o2m.reload_current_view();
|
||||
});
|
||||
},
|
||||
alternative_form_view: self.o2m.field.views ? self.o2m.field.views["form"] : undefined,
|
||||
parent_view: self.o2m.view,
|
||||
child_name: self.o2m.name,
|
||||
read_function: function() {
|
||||
return self.o2m.dataset.read_ids.apply(self.o2m.dataset, arguments);
|
||||
},
|
||||
form_view_options: {'not_interactible_on_create':true},
|
||||
readonly: self.o2m.get("effective_readonly")
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
instance.web.form.One2ManyDataSet = instance.web.BufferedDataSet.extend({
|
||||
get_context: function() {
|
||||
this.context = this.o2m.build_context([this.o2m.name]);
|
||||
@@ -2968,7 +2989,6 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({
|
||||
} else {
|
||||
var self = this;
|
||||
var pop = new instance.web.form.SelectCreatePopup(this);
|
||||
pop.on_default_get.add(self.dataset.on_default_get);
|
||||
pop.select_element(
|
||||
self.o2m.field.relation,
|
||||
{
|
||||
@@ -3001,7 +3021,11 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({
|
||||
var pop = new instance.web.form.FormOpenPopup(self.o2m.view);
|
||||
pop.show_element(self.o2m.field.relation, id, self.o2m.build_context(), {
|
||||
title: _t("Open: ") + self.name,
|
||||
auto_write: false,
|
||||
write_function: function(id, data) {
|
||||
return self.o2m.dataset.write(id, data, {}, function(r) {
|
||||
self.o2m.reload_current_view();
|
||||
});
|
||||
},
|
||||
alternative_form_view: self.o2m.field.views ? self.o2m.field.views["form"] : undefined,
|
||||
parent_view: self.o2m.view,
|
||||
child_name: self.o2m.name,
|
||||
@@ -3011,11 +3035,6 @@ instance.web.form.One2ManyListView = instance.web.ListView.extend({
|
||||
form_view_options: {'not_interactible_on_create':true},
|
||||
readonly: self.o2m.get("effective_readonly")
|
||||
});
|
||||
pop.on_write.add(function(id, data) {
|
||||
self.o2m.dataset.write(id, data, {}, function(r) {
|
||||
self.o2m.reload_current_view();
|
||||
});
|
||||
});
|
||||
},
|
||||
do_button_action: function (name, id, callback) {
|
||||
var self = this;
|
||||
@@ -3046,28 +3065,6 @@ var lazy_build_o2m_kanban_view = function() {
|
||||
if (! instance.web_kanban || instance.web.form.One2ManyKanbanView)
|
||||
return;
|
||||
instance.web.form.One2ManyKanbanView = instance.web_kanban.KanbanView.extend({
|
||||
open_record: function(id) {
|
||||
var self = this;
|
||||
var pop = new instance.web.form.FormOpenPopup(self.o2m.view);
|
||||
pop.show_element(self.o2m.field.relation, id, self.o2m.build_context(), {
|
||||
title: _t("Open: ") + self.name,
|
||||
auto_write: false,
|
||||
alternative_form_view: self.o2m.field.views ? self.o2m.field.views["form"] : undefined,
|
||||
parent_view: self.o2m.view,
|
||||
child_name: self.o2m.name,
|
||||
read_function: function() {
|
||||
return self.o2m.dataset.read_ids.apply(self.o2m.dataset, arguments);
|
||||
},
|
||||
form_view_options: {'not_interactible_on_create':true},
|
||||
readonly: self.o2m.get("effective_readonly"),
|
||||
});
|
||||
pop.on_write.add(function(id, data) {
|
||||
self.o2m.dataset.write(id, data, {}, function(r) {
|
||||
self.o2m.reload_current_view();
|
||||
});
|
||||
});
|
||||
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
@@ -3347,60 +3344,166 @@ instance.web.form.Many2ManyListView = instance.web.ListView.extend(/** @lends in
|
||||
});
|
||||
|
||||
/**
|
||||
* @class
|
||||
* @extends instance.web.OldWidget
|
||||
* Class with everything which is common between FormOpenPopup and SelectCreatePopup.
|
||||
*/
|
||||
instance.web.form.SelectCreatePopup = instance.web.OldWidget.extend(/** @lends instance.web.form.SelectCreatePopup# */{
|
||||
template: "SelectCreatePopup",
|
||||
instance.web.form.AbstractFormPopup = instance.web.OldWidget.extend({
|
||||
template: "AbstractFormPopup.render",
|
||||
/**
|
||||
* options:
|
||||
* -readonly: only applicable when not in creation mode, default to false
|
||||
* - alternative_form_view
|
||||
* - write_function
|
||||
* - read_function
|
||||
* - create_function
|
||||
* - parent_view
|
||||
* - child_name
|
||||
* - form_view_options
|
||||
*/
|
||||
init_popup: function(model, row_id, domain, context, options) {
|
||||
this.row_id = row_id;
|
||||
this.model = model;
|
||||
this.domain = domain || [];
|
||||
this.context = context || {};
|
||||
this.options = options;
|
||||
_.defaults(this.options, {
|
||||
});
|
||||
},
|
||||
init_dataset: function() {
|
||||
var self = this;
|
||||
this.created_elements = [];
|
||||
this.dataset = new instance.web.ProxyDataSet(this, this.model, this.context);
|
||||
this.dataset.read_function = this.options.read_function;
|
||||
this.dataset.create_function = function(data, sup) {
|
||||
var fct = self.options.create_function || sup;
|
||||
return fct.call(this, data).then(function(r) {
|
||||
self.created_elements.push(r.result);
|
||||
});
|
||||
};
|
||||
this.dataset.write_function = function(id, data, options, sup) {
|
||||
var fct = self.options.write_function || sup;
|
||||
return fct.call(this, id, data, options).then(self.on_write_completed);
|
||||
};
|
||||
this.dataset.parent_view = this.options.parent_view;
|
||||
this.dataset.child_name = this.options.child_name;
|
||||
},
|
||||
display_popup: function() {
|
||||
var self = this;
|
||||
this.renderElement();
|
||||
new instance.web.Dialog(this, {
|
||||
width: '90%',
|
||||
min_width: '800px',
|
||||
close: function() {
|
||||
self.check_exit();
|
||||
},
|
||||
title: this.options.title || "",
|
||||
}, this.$element).open();
|
||||
this.start();
|
||||
},
|
||||
on_write_completed: function() {},
|
||||
setup_form_view: function() {
|
||||
var self = this;
|
||||
if (this.row_id) {
|
||||
this.dataset.ids = [this.row_id];
|
||||
this.dataset.index = 0;
|
||||
} else {
|
||||
this.dataset.index = null;
|
||||
}
|
||||
var options = _.clone(self.options.form_view_options) || {};
|
||||
if (this.row_id !== null) {
|
||||
options.initial_mode = this.options.readonly ? "view" : "edit";
|
||||
}
|
||||
this.view_form = new instance.web.FormView(this, this.dataset, false, options);
|
||||
if (this.options.alternative_form_view) {
|
||||
this.view_form.set_embedded_view(this.options.alternative_form_view);
|
||||
}
|
||||
this.view_form.appendTo(this.$element.find(".oe-form-view-popup-form-placeholder"));
|
||||
this.view_form.on_loaded.add_last(function() {
|
||||
var $buttons = self.view_form.$element.find(".oe_form_buttons");
|
||||
var multi_select = self.row_id === null && ! self.options.disable_multiple_selection;
|
||||
$buttons.html(QWeb.render("AbstractFormPopup.buttons", {multi_select: multi_select}));
|
||||
var $snbutton = $buttons.find(".oe_abstractformpopup-form-save-new");
|
||||
$snbutton.click(function() {
|
||||
$.when(self.view_form.do_save()).then(function() {
|
||||
self.view_form.reload_mutex.exec(function() {
|
||||
self.view_form.on_button_new();
|
||||
});
|
||||
});
|
||||
});
|
||||
var $sbutton = $buttons.find(".oe_abstractformpopup-form-save");
|
||||
$sbutton.click(function() {
|
||||
$.when(self.view_form.do_save()).then(function() {
|
||||
self.view_form.reload_mutex.exec(function() {
|
||||
self.check_exit();
|
||||
});
|
||||
});
|
||||
});
|
||||
var $cbutton = $buttons.find(".oe_abstractformpopup-form-close");
|
||||
$cbutton.click(function() {
|
||||
self.check_exit();
|
||||
});
|
||||
if (self.row_id !== null && self.options.readonly) {
|
||||
$snbutton.hide();
|
||||
$sbutton.hide();
|
||||
$cbutton.text(_t("Close"));
|
||||
}
|
||||
self.view_form.do_show();
|
||||
});
|
||||
},
|
||||
on_select_elements: function(element_ids) {
|
||||
},
|
||||
check_exit: function() {
|
||||
if (this.created_elements.length > 0) {
|
||||
this.on_select_elements(this.created_elements);
|
||||
}
|
||||
this.destroy();
|
||||
},
|
||||
destroy: function () {
|
||||
this.$element.dialog('close');
|
||||
this._super();
|
||||
},
|
||||
});
|
||||
|
||||
/**
|
||||
* Class to display a popup containing a form view.
|
||||
*/
|
||||
instance.web.form.FormOpenPopup = instance.web.form.AbstractFormPopup.extend({
|
||||
show_element: function(model, row_id, context, options) {
|
||||
this.init_popup(model, row_id, [], context, options);
|
||||
_.defaults(this.options, {
|
||||
});
|
||||
this.display_popup();
|
||||
},
|
||||
start: function() {
|
||||
this._super();
|
||||
this.init_dataset();
|
||||
this.setup_form_view();
|
||||
},
|
||||
});
|
||||
|
||||
/**
|
||||
* Class to display a popup to display a list to search a row. It also allows
|
||||
* to switch to a form view to create a new row.
|
||||
*/
|
||||
instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend({
|
||||
/**
|
||||
* options:
|
||||
* - initial_ids
|
||||
* - initial_view: form or search (default search)
|
||||
* - disable_multiple_selection
|
||||
* - alternative_form_view
|
||||
* - create_function (defaults to a naive saving behavior)
|
||||
* - parent_view
|
||||
* - child_name
|
||||
* - form_view_options
|
||||
* - list_view_options
|
||||
* - read_function
|
||||
*/
|
||||
select_element: function(model, options, domain, context) {
|
||||
this.init_popup(model, null, domain, context, options);
|
||||
var self = this;
|
||||
this.model = model;
|
||||
this.domain = domain || [];
|
||||
this.context = context || {};
|
||||
this.options = _.defaults(options || {}, {"initial_view": "search", "create_function": function() {
|
||||
return self.create_row.apply(self, arguments);
|
||||
}, read_function: null});
|
||||
this.initial_ids = this.options.initial_ids;
|
||||
this.created_elements = [];
|
||||
this.renderElement();
|
||||
instance.web.form.dialog(this.$element, {
|
||||
close: function() {
|
||||
self.check_exit();
|
||||
},
|
||||
title: options.title || ""
|
||||
_.defaults(this.options, {
|
||||
initial_view: "search",
|
||||
});
|
||||
this.start();
|
||||
this.initial_ids = this.options.initial_ids;
|
||||
this.display_popup();
|
||||
},
|
||||
start: function() {
|
||||
this._super();
|
||||
var self = this;
|
||||
this.dataset = new instance.web.ProxyDataSet(this, this.model,
|
||||
this.context);
|
||||
this.dataset.create_function = function() {
|
||||
return self.options.create_function.apply(null, arguments).then(function(r) {
|
||||
self.created_elements.push(r.result);
|
||||
});
|
||||
};
|
||||
this.dataset.write_function = function() {
|
||||
return self.write_row.apply(self, arguments);
|
||||
};
|
||||
this.dataset.read_function = this.options.read_function;
|
||||
this.dataset.parent_view = this.options.parent_view;
|
||||
this.dataset.child_name = this.options.child_name;
|
||||
this.dataset.on_default_get.add(this.on_default_get);
|
||||
this.init_dataset();
|
||||
if (this.options.initial_view == "search") {
|
||||
self.rpc('/web/session/eval_domain_and_context', {
|
||||
domains: [],
|
||||
@@ -3419,10 +3522,6 @@ instance.web.form.SelectCreatePopup = instance.web.OldWidget.extend(/** @lends i
|
||||
this.new_object();
|
||||
}
|
||||
},
|
||||
stop: function () {
|
||||
this.$element.dialog('close');
|
||||
this._super();
|
||||
},
|
||||
setup_search_view: function(search_defaults) {
|
||||
var self = this;
|
||||
if (this.searchview) {
|
||||
@@ -3480,22 +3579,6 @@ instance.web.form.SelectCreatePopup = instance.web.OldWidget.extend(/** @lends i
|
||||
self.view_list.do_search(results.domain, results.context, results.group_by);
|
||||
});
|
||||
},
|
||||
create_row: function() {
|
||||
var self = this;
|
||||
var wdataset = new instance.web.DataSetSearch(this, this.model, this.context, this.domain);
|
||||
wdataset.parent_view = this.options.parent_view;
|
||||
wdataset.child_name = this.options.child_name;
|
||||
return wdataset.create.apply(wdataset, arguments);
|
||||
},
|
||||
write_row: function() {
|
||||
var self = this;
|
||||
var wdataset = new instance.web.DataSetSearch(this, this.model, this.context, this.domain);
|
||||
wdataset.parent_view = this.options.parent_view;
|
||||
wdataset.child_name = this.options.child_name;
|
||||
return wdataset.write.apply(wdataset, arguments);
|
||||
},
|
||||
on_select_elements: function(element_ids) {
|
||||
},
|
||||
on_click_element: function(ids) {
|
||||
this.selected_ids = ids || [];
|
||||
if(this.selected_ids.length > 0) {
|
||||
@@ -3505,52 +3588,14 @@ instance.web.form.SelectCreatePopup = instance.web.OldWidget.extend(/** @lends i
|
||||
}
|
||||
},
|
||||
new_object: function() {
|
||||
var self = this;
|
||||
if (this.searchview) {
|
||||
this.searchview.hide();
|
||||
}
|
||||
if (this.view_list) {
|
||||
this.view_list.$element.hide();
|
||||
}
|
||||
this.dataset.index = null;
|
||||
this.view_form = new instance.web.FormView(this, this.dataset, false, self.options.form_view_options);
|
||||
if (this.options.alternative_form_view) {
|
||||
this.view_form.set_embedded_view(this.options.alternative_form_view);
|
||||
}
|
||||
this.view_form.appendTo(this.$element.find(".oe-select-create-popup-view-form"));
|
||||
this.view_form.on_loaded.add_last(function() {
|
||||
var $buttons = self.view_form.$element.find(".oe_form_buttons");
|
||||
$buttons.html(QWeb.render("SelectCreatePopup.form.buttons", {widget:self}));
|
||||
var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save-new");
|
||||
$nbutton.click(function() {
|
||||
$.when(self.view_form.do_save()).then(function() {
|
||||
self.view_form.reload_mutex.exec(function() {
|
||||
self.view_form.on_button_new();
|
||||
});
|
||||
});
|
||||
});
|
||||
var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save");
|
||||
$nbutton.click(function() {
|
||||
$.when(self.view_form.do_save()).then(function() {
|
||||
self.view_form.reload_mutex.exec(function() {
|
||||
self.check_exit();
|
||||
});
|
||||
});
|
||||
});
|
||||
var $cbutton = $buttons.find(".oe_selectcreatepopup-form-close");
|
||||
$cbutton.click(function() {
|
||||
self.check_exit();
|
||||
});
|
||||
});
|
||||
this.view_form.do_show();
|
||||
this.setup_form_view();
|
||||
},
|
||||
check_exit: function() {
|
||||
if (this.created_elements.length > 0) {
|
||||
this.on_select_elements(this.created_elements);
|
||||
}
|
||||
this.destroy();
|
||||
},
|
||||
on_default_get: function(res) {}
|
||||
});
|
||||
|
||||
instance.web.form.SelectCreateListView = instance.web.ListView.extend({
|
||||
@@ -3567,101 +3612,6 @@ instance.web.form.SelectCreateListView = instance.web.ListView.extend({
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @class
|
||||
* @extends instance.web.OldWidget
|
||||
*/
|
||||
instance.web.form.FormOpenPopup = instance.web.OldWidget.extend(/** @lends instance.web.form.FormOpenPopup# */{
|
||||
template: "FormOpenPopup",
|
||||
/**
|
||||
* options:
|
||||
* - alternative_form_view
|
||||
* - auto_write (default true)
|
||||
* - read_function
|
||||
* - parent_view
|
||||
* - child_name
|
||||
* - form_view_options
|
||||
* - readonly
|
||||
*/
|
||||
show_element: function(model, row_id, context, options) {
|
||||
this.model = model;
|
||||
this.row_id = row_id;
|
||||
this.context = context || {};
|
||||
this.options = _.defaults(options || {}, {"auto_write": true});
|
||||
this.renderElement();
|
||||
instance.web.dialog(this.$element, {
|
||||
title: options.title || '',
|
||||
modal: true,
|
||||
width: 960,
|
||||
height: 600
|
||||
});
|
||||
this.start();
|
||||
},
|
||||
start: function() {
|
||||
this._super();
|
||||
this.dataset = new instance.web.form.FormOpenDataset(this, this.model, this.context);
|
||||
this.dataset.fop = this;
|
||||
this.dataset.ids = [this.row_id];
|
||||
this.dataset.index = 0;
|
||||
this.dataset.parent_view = this.options.parent_view;
|
||||
this.dataset.child_name = this.options.child_name;
|
||||
this.setup_form_view();
|
||||
},
|
||||
on_write: function(id, data) {
|
||||
if (!this.options.auto_write)
|
||||
return;
|
||||
var self = this;
|
||||
var wdataset = new instance.web.DataSetSearch(this, this.model, this.context, this.domain);
|
||||
wdataset.parent_view = this.options.parent_view;
|
||||
wdataset.child_name = this.options.child_name;
|
||||
wdataset.write(id, data, {}, function(r) {
|
||||
self.on_write_completed();
|
||||
});
|
||||
},
|
||||
on_write_completed: function() {},
|
||||
setup_form_view: function() {
|
||||
var self = this;
|
||||
var FormClass = instance.web.views.get_object('form');
|
||||
var options = _.clone(self.options.form_view_options) || {};
|
||||
options.initial_mode = this.options.readonly ? "view" : "edit";
|
||||
this.view_form = new FormClass(this, this.dataset, false, options);
|
||||
if (this.options.alternative_form_view) {
|
||||
this.view_form.set_embedded_view(this.options.alternative_form_view);
|
||||
}
|
||||
this.view_form.appendTo(this.$element.find(".oe-form-open-popup-form-view"));
|
||||
this.view_form.on_loaded.add_last(function() {
|
||||
var $buttons = self.view_form.$element.find(".oe_form_buttons");
|
||||
$buttons.html(QWeb.render("FormOpenPopup.form.buttons"));
|
||||
var $nbutton = $buttons.find(".oe_formopenpopup-form-save");
|
||||
$nbutton.click(function() {
|
||||
self.view_form.do_save().then(function() {
|
||||
self.destroy();
|
||||
});
|
||||
});
|
||||
var $cbutton = $buttons.find(".oe_formopenpopup-form-close");
|
||||
$cbutton.click(function() {
|
||||
self.destroy();
|
||||
});
|
||||
if (self.options.readonly) {
|
||||
$nbutton.hide();
|
||||
$cbutton.text(_t("Close"));
|
||||
}
|
||||
self.view_form.do_show();
|
||||
});
|
||||
this.dataset.on_write.add(this.on_write);
|
||||
}
|
||||
});
|
||||
|
||||
instance.web.form.FormOpenDataset = instance.web.ProxyDataSet.extend({
|
||||
read_ids: function() {
|
||||
if (this.fop.options.read_function) {
|
||||
return this.fop.options.read_function.apply(null, arguments);
|
||||
} else {
|
||||
return this._super.apply(this, arguments);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
instance.web.form.FieldReference = instance.web.form.AbstractField.extend(_.extend({}, instance.web.form.ReinitializeFieldMixin, {
|
||||
template: 'FieldReference',
|
||||
init: function(field_manager, node) {
|
||||
|
||||
@@ -20,6 +20,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
|
||||
'sortable': true,
|
||||
// whether the view rows can be reordered (via vertical drag & drop)
|
||||
'reorderable': true,
|
||||
'action_buttons': true,
|
||||
},
|
||||
/**
|
||||
* Core class for list-type displays.
|
||||
|
||||
@@ -295,7 +295,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
|
||||
if (view.embedded_view) {
|
||||
controller.set_embedded_view(view.embedded_view);
|
||||
}
|
||||
controller.do_switch_view.add_last(this.on_mode_switch);
|
||||
controller.do_switch_view.add_last(_.bind(this.switch_view, this));
|
||||
controller.do_prev_view.add_last(this.on_prev_view);
|
||||
var container = this.$element.find(".oe_view_manager_view_" + view_type);
|
||||
view_promise = controller.appendTo(container);
|
||||
@@ -342,6 +342,14 @@ instance.web.ViewManager = instance.web.Widget.extend({
|
||||
});
|
||||
return view_promise;
|
||||
},
|
||||
/**
|
||||
* Method used internally when a view asks to switch view. This method is meant
|
||||
* to be extended by child classes to change the default behavior, which simply
|
||||
* consist to switch to the asked view.
|
||||
*/
|
||||
switch_view: function(view_type, no_store) {
|
||||
return this.on_mode_switch(view_type, no_store);
|
||||
},
|
||||
/**
|
||||
* Returns to the view preceding the caller view in this manager's
|
||||
* navigation history (the navigation history is appended to via
|
||||
@@ -1272,11 +1280,6 @@ instance.web.str_to_xml = function(s) {
|
||||
return xDoc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registry for all the client actions key: tag value: widget
|
||||
*/
|
||||
instance.web.client_actions = new instance.web.Registry();
|
||||
|
||||
/**
|
||||
* Registry for all the main views
|
||||
*/
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="db_name">New database name:</label></td>
|
||||
<td><input type="text" name="db_name" class="required" matches="^[a-zA-Z][a-zA-Z0-9_]+$"/></td>
|
||||
<td><input type="text" name="db_name" class="required" matches="^[a-zA-Z][a-zA-Z0-9_]+$" autofocus="true"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><label for="demo_data">Load Demonstration data:</label></td>
|
||||
@@ -1534,7 +1534,7 @@
|
||||
</t>
|
||||
</select>
|
||||
</t>
|
||||
<t t-name="SelectCreatePopup">
|
||||
<t t-name="AbstractFormPopup.render">
|
||||
<div>
|
||||
<table style="width:100%">
|
||||
<tr style="width:100%">
|
||||
@@ -1548,31 +1548,22 @@
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="oe-select-create-popup-view-form" style="width:100%"></div>
|
||||
<div class="oe-form-view-popup-form-placeholder oe-select-create-popup-view-form" style="width:100%"></div>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="SelectCreatePopup.search.buttons">
|
||||
<button type="button" class="oe_button oe_selectcreatepopup-search-select" disabled="disabled">Select</button>
|
||||
<button type="button" class="oe_button oe_selectcreatepopup-search-close">Cancel</button>
|
||||
</t>
|
||||
<t t-name="SelectCreatePopup.form.buttons">
|
||||
<t t-if="widget.options.disable_multiple_selection">
|
||||
<button type="button" class="oe_button oe_selectcreatepopup-form-save">Save</button>
|
||||
<t t-name="AbstractFormPopup.buttons">
|
||||
<t t-if="! multi_select">
|
||||
<button type="button" class="oe_button oe_abstractformpopup-form-save">Save</button>
|
||||
</t>
|
||||
<t t-if="! widget.options.disable_multiple_selection">
|
||||
<button type="button" class="oe_button oe_selectcreatepopup-form-save-new">Save & New</button>
|
||||
<button type="button" class="oe_button oe_selectcreatepopup-form-save">Save & Close</button>
|
||||
<t t-if="multi_select">
|
||||
<button type="button" class="oe_button oe_abstractformpopup-form-save-new">Save & New</button>
|
||||
<button type="button" class="oe_button oe_abstractformpopup-form-save">Save & Close</button>
|
||||
</t>
|
||||
<button type="button" class="oe_button oe_selectcreatepopup-form-close">Cancel</button>
|
||||
</t>
|
||||
<t t-name="FormOpenPopup">
|
||||
<div>
|
||||
<div class="oe-form-open-popup-form-view" style="width:100%"></div>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="FormOpenPopup.form.buttons">
|
||||
<button type="button" class="oe_button oe_formopenpopup-form-save">Save</button>
|
||||
<button type="button" class="oe_button oe_formopenpopup-form-close">Cancel</button>
|
||||
<button type="button" class="oe_button oe_abstractformpopup-form-close">Cancel</button>
|
||||
</t>
|
||||
<t t-extend="ListView.row">
|
||||
<!-- adds back padding to row being rendered after edition, if necessary
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# Bulgarian translation for openerp-web
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-06 17:33+0100\n"
|
||||
"PO-Revision-Date: 2012-05-16 09:33+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Bulgarian <bg@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-17 04:49+0000\n"
|
||||
"X-Generator: Launchpad (build 15259)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:11
|
||||
msgid "Calendar"
|
||||
msgstr "Календар"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:466
|
||||
#: addons/web_calendar/static/src/js/calendar.js:467
|
||||
msgid "Responsible"
|
||||
msgstr "Отговорник"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/js/calendar.js:504
|
||||
#: addons/web_calendar/static/src/js/calendar.js:505
|
||||
msgid "Navigator"
|
||||
msgstr "Навигатор"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_calendar/static/src/xml/web_calendar.xml:5
|
||||
#: addons/web_calendar/static/src/xml/web_calendar.xml:6
|
||||
msgid " "
|
||||
msgstr ""
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-14 15:27+0100\n"
|
||||
"PO-Revision-Date: 2012-02-08 16:45+0000\n"
|
||||
"PO-Revision-Date: 2012-05-15 14:13+0000\n"
|
||||
"Last-Translator: Els Van Vossel (Agaplan) <Unknown>\n"
|
||||
"Language-Team: Dutch (Belgium) <nl_BE@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
|
||||
"X-Generator: Launchpad (build 15238)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-16 05:10+0000\n"
|
||||
"X-Generator: Launchpad (build 15247)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_dashboard/static/src/js/dashboard.js:63
|
||||
@@ -36,12 +36,12 @@ msgstr "Zonder categorie"
|
||||
#: addons/web_dashboard/static/src/js/dashboard.js:324
|
||||
#, python-format
|
||||
msgid "Execute task \"%s\""
|
||||
msgstr ""
|
||||
msgstr "Taak \"%s\" uitvoeren"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_dashboard/static/src/js/dashboard.js:325
|
||||
msgid "Mark this task as done"
|
||||
msgstr ""
|
||||
msgstr "Taak als voltooid markeren"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:4
|
||||
|
||||
@@ -161,70 +161,6 @@
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
.openerp .oe-dashboard-config-overview .oe-config-progress {
|
||||
border: 1px inset #d9d9d9;
|
||||
background-color: #f2f2f2;
|
||||
padding: 0.5em;
|
||||
-webkit-border-radius: 0.5em;
|
||||
-moz-border-radius: 0.5em;
|
||||
border-radius: 0.5em;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview .oe-config-progress-title {
|
||||
font-size: 1.1em;
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
margin: 0 0 0.5em 0;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview .oe-config-tip {
|
||||
color: #222;
|
||||
text-shadow: #eee 0 1px 0;
|
||||
text-align: center;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview dt {
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
border-top: 1px solid #eee;
|
||||
padding-top: 0.5em;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview dt:first-child {
|
||||
border-top: none;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview dd {
|
||||
margin-left: 1em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview ul {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview li {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
text-indent: 20px;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview li:hover {
|
||||
cursor: pointer;
|
||||
background-color: #f7f7f7;
|
||||
}
|
||||
|
||||
.openerp .oe-dashboard-config-overview li.oe-done {
|
||||
cursor: default;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.openerp .oe-dashboard-layout_2-1 .index_0 .oe-dashboard-config-overview ul,
|
||||
.openerp .oe-dashboard-layout_1-2 .index_1 .oe-dashboard-config-overview ul {
|
||||
-moz-column-count: 2;
|
||||
-webkit-column-count: 2;
|
||||
column-count: 2;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview li span.ui-icon {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.openerp .oe-dashboard-home-tile {
|
||||
text-align: center;
|
||||
margin: 10px;
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-14 15:27+0100\n"
|
||||
"PO-Revision-Date: 2012-02-08 16:53+0000\n"
|
||||
"PO-Revision-Date: 2012-05-15 14:14+0000\n"
|
||||
"Last-Translator: Els Van Vossel (Agaplan) <Unknown>\n"
|
||||
"Language-Team: Dutch (Belgium) <nl_BE@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-15 05:07+0000\n"
|
||||
"X-Generator: Launchpad (build 15238)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-16 05:10+0000\n"
|
||||
"X-Generator: Launchpad (build 15247)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_kanban/static/src/js/kanban.js:10
|
||||
@@ -37,17 +37,17 @@ msgstr "Wilt u dit record verwijderen?"
|
||||
#. openerp-web
|
||||
#: addons/web_kanban/static/src/xml/web_kanban.xml:5
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
msgstr "Maken"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_kanban/static/src/xml/web_kanban.xml:41
|
||||
msgid "Show more... ("
|
||||
msgstr ""
|
||||
msgstr "Meer tonen... ("
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_kanban/static/src/xml/web_kanban.xml:41
|
||||
msgid "remaining)"
|
||||
msgstr ""
|
||||
msgstr "resterend)"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_kanban/static/src/xml/web_kanban.xml:59
|
||||
|
||||
@@ -238,6 +238,10 @@
|
||||
/* apply block formatting context */
|
||||
overflow: hidden;
|
||||
}
|
||||
.openerp .oe_kanban_no_group .oe_kanban_quick_create {
|
||||
width: 200px;
|
||||
padding: 10px;
|
||||
}
|
||||
.openerp .oe_kanban_quick_create input {
|
||||
display: block;
|
||||
/* margins within width */
|
||||
|
||||
@@ -11,10 +11,8 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
||||
default_nr_columns: 3,
|
||||
view_type: "kanban",
|
||||
init: function (parent, dataset, view_id, options) {
|
||||
this._super(parent);
|
||||
this.set_default_options(options);
|
||||
this.dataset = dataset;
|
||||
this.view_id = view_id;
|
||||
this._super(parent, dataset, view_id, options);
|
||||
_.defaults(this.options, {"quick_creatable": true, "creatable": true});
|
||||
this.fields_view = {};
|
||||
this.fields_keys = [];
|
||||
this.group_by = null;
|
||||
@@ -37,6 +35,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
||||
this.add_group_mutex = new $.Mutex();
|
||||
},
|
||||
on_loaded: function(data) {
|
||||
this.fields_view = data;
|
||||
this.$buttons = $(QWeb.render("KanbanView.buttons", {'widget': this}));
|
||||
if (this.options.$buttons) {
|
||||
this.$buttons.appendTo(this.options.$buttons);
|
||||
@@ -46,12 +45,25 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
||||
this.$buttons
|
||||
.on('click','button.oe_kanban_button_new', this.do_add_record);
|
||||
this.$groups = this.$element.find('.oe_kanban_groups tr');
|
||||
this.fields_view = data;
|
||||
this.fields_keys = _.keys(this.fields_view.fields);
|
||||
this.add_qweb_template();
|
||||
this.has_been_loaded.resolve();
|
||||
return $.when();
|
||||
},
|
||||
_is_quick_create_enabled: function() {
|
||||
if (! this.options.quick_creatable)
|
||||
return false;
|
||||
if (this.fields_view.arch.attrs.quick_create !== undefined)
|
||||
return JSON.parse(this.fields_view.arch.attrs.quick_create);
|
||||
return !! this.group_by;
|
||||
},
|
||||
_is_create_enabled: function() {
|
||||
if (! this.options.creatable)
|
||||
return false;
|
||||
if (this.fields_view.arch.attrs.create !== undefined)
|
||||
return JSON.parse(this.fields_view.arch.attrs.create);
|
||||
return true;
|
||||
},
|
||||
add_qweb_template: function() {
|
||||
for (var i=0, ii=this.fields_view.arch.children.length; i < ii; i++) {
|
||||
var child = this.fields_view.arch.children[i];
|
||||
@@ -360,6 +372,12 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({
|
||||
start: function() {
|
||||
var self = this,
|
||||
def = this._super();
|
||||
if (! self.view.group_by) {
|
||||
self.$element.addClass("oe_kanban_no_group");
|
||||
self.quick = new instance.web_kanban.QuickCreate(this, self.dataset, {}, false)
|
||||
.on('added', self, self.proxy('quick_created'));
|
||||
self.quick.replace($(".oe_kanban_no_group_qc_placeholder"));
|
||||
}
|
||||
this.$records = $(QWeb.render('KanbanView.group_records_container', { widget : this}));
|
||||
this.$records.appendTo(this.view.$element.find('.oe_kanban_groups_records'));
|
||||
this.$element.find(".oe_kanban_fold_icon").click(function() {
|
||||
@@ -369,9 +387,16 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({
|
||||
});
|
||||
this.$element.find('.oe_kanban_add').click(function () {
|
||||
if (self.quick) { return; }
|
||||
self.quick = new instance.web_kanban.QuickCreate(this)
|
||||
.on('added', self, self.proxy('quick_add'));
|
||||
var ctx = {};
|
||||
ctx['default_' + self.view.group_by] = self.value;
|
||||
self.quick = new instance.web_kanban.QuickCreate(this, self.dataset, ctx, true)
|
||||
.on('added', self, self.proxy('quick_created'))
|
||||
.on('close', self, function() {
|
||||
this.quick.destroy();
|
||||
delete this.quick;
|
||||
});
|
||||
self.quick.appendTo(self.$element.find('.oe_kanban_group_header'));
|
||||
self.quick.focus();
|
||||
});
|
||||
this.$records.find('.oe_kanban_show_more').click(this.do_show_more);
|
||||
if (this.state.folded) {
|
||||
@@ -440,20 +465,6 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({
|
||||
});
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Handles user event from nested quick creation view
|
||||
*
|
||||
* @param {String} name name to give to the new record
|
||||
*/
|
||||
quick_add: function (name) {
|
||||
var context = {};
|
||||
context['default_' + this.view.group_by] = this.value;
|
||||
// FIXME: what if name_create fails?
|
||||
new instance.web.Model(this.dataset.model).call(
|
||||
'name_create', [name], {context: new instance.web.CompoundContext(
|
||||
this.dataset.get_context(), context)})
|
||||
.then(this.proxy('quick_created'))
|
||||
},
|
||||
/**
|
||||
* Handles a non-erroneous response from name_create
|
||||
*
|
||||
@@ -461,10 +472,7 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({
|
||||
*/
|
||||
quick_created: function (record) {
|
||||
var id = record[0], self = this;
|
||||
this.quick.destroy();
|
||||
delete this.quick;
|
||||
new instance.web.Model(this.dataset.model).call(
|
||||
'read', [[id], this.view.fields_keys], {})
|
||||
this.dataset.read_ids([id], this.view.fields_keys)
|
||||
.then(function (records) {
|
||||
self.view.dataset.ids.push(id);
|
||||
self.do_add_records(records, 'prepend');
|
||||
@@ -682,16 +690,68 @@ instance.web_kanban.KanbanRecord = instance.web.OldWidget.extend({
|
||||
*/
|
||||
instance.web_kanban.QuickCreate = instance.web.Widget.extend({
|
||||
template: 'KanbanView.quick_create',
|
||||
|
||||
|
||||
/**
|
||||
* close_btn: If true, the widget will display a "Close" button able to trigger
|
||||
* a "close" event.
|
||||
*/
|
||||
init: function(parent, dataset, context, buttons) {
|
||||
this._super(parent);
|
||||
this._dataset = dataset;
|
||||
this._buttons = buttons || false;
|
||||
this._context = context || {};
|
||||
},
|
||||
start: function () {
|
||||
var self = this;
|
||||
var $input = this.$element.find('input');
|
||||
$input.focus();
|
||||
this.$element.on('submit', function () {
|
||||
self.trigger('added', $input.val());
|
||||
return false;
|
||||
self.$input = this.$element.find('input');
|
||||
self.$input.keyup(function(event){
|
||||
if(event.keyCode == 13){
|
||||
self.quick_add();
|
||||
}
|
||||
});
|
||||
$(".oe-kanban-quick_create_add", this.$element).click(function () {
|
||||
self.quick_add();
|
||||
});
|
||||
$(".oe-kanban-quick_create_close", this.$element).click(function () {
|
||||
self.trigger('close');
|
||||
});
|
||||
},
|
||||
focus: function() {
|
||||
this.$element.find('input').focus();
|
||||
},
|
||||
/**
|
||||
* Handles user event from nested quick creation view
|
||||
*/
|
||||
quick_add: function () {
|
||||
var self = this;
|
||||
this._dataset.call(
|
||||
'name_create', [self.$input.val(), new instance.web.CompoundContext(
|
||||
this._dataset.get_context(), this._context)])
|
||||
.pipe(function(record) {
|
||||
self.$input.val("");
|
||||
self.trigger('added', record);
|
||||
}, function(error, event) {
|
||||
event.preventDefault();
|
||||
return self.slow_create();
|
||||
});
|
||||
},
|
||||
slow_create: function() {
|
||||
var self = this;
|
||||
var pop = new instance.web.form.SelectCreatePopup(this);
|
||||
pop.select_element(
|
||||
self._dataset.model,
|
||||
{
|
||||
title: _t("Create: ") + (this.string || this.name),
|
||||
initial_view: "form",
|
||||
disable_multiple_selection: true
|
||||
},
|
||||
[],
|
||||
{"default_name": self.$input.val()}
|
||||
);
|
||||
pop.on_select_elements.add(function(element_ids) {
|
||||
self.$input.val("");
|
||||
self.trigger('added', element_ids);
|
||||
});
|
||||
return this._super();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
@@ -12,7 +12,9 @@
|
||||
</t>
|
||||
<div t-name="KanbanView.buttons" class="oe_kanban_buttons">
|
||||
<t t-if="widget.options.action_buttons !== false">
|
||||
<button type="button" class="oe_button oe_kanban_button_new oe_form_button_hi">Create</button>
|
||||
<t t-if="widget._is_create_enabled()">
|
||||
<button type="button" class="oe_button oe_kanban_button_new oe_form_button_hi">Create</button>
|
||||
</t>
|
||||
</t>
|
||||
</div>
|
||||
<t t-name="KanbanView.group_header">
|
||||
@@ -20,7 +22,9 @@
|
||||
<t t-if="widget.view.group_by">
|
||||
<div class="oe_kanban_group_header">
|
||||
<div class="oe_kanban_fold_icon"></div>
|
||||
<div class="oe_kanban_add"></div>
|
||||
<t t-if="widget.view._is_quick_create_enabled()">
|
||||
<div class="oe_kanban_add"></div>
|
||||
</t>
|
||||
<div class="oe_fold_column">
|
||||
<div t-attf-class="oe_kanban_group_title #{widget.undefined_title ? 'oe_kanban_group_title_undefined' : ''}">
|
||||
<t t-esc="widget.title"/>
|
||||
@@ -35,6 +39,9 @@
|
||||
<p t-if="widget.title" class="oe_kanban_group_title_vertical"><t t-esc="widget.title"/></p>
|
||||
</div>
|
||||
</t>
|
||||
<t t-if="! widget.view.group_by && widget.view._is_quick_create_enabled()">
|
||||
<span class="oe_kanban_no_group_qc_placeholder"/>
|
||||
</t>
|
||||
</td>
|
||||
</t>
|
||||
<t t-name="KanbanView.group_records_container">
|
||||
@@ -63,8 +70,11 @@
|
||||
</tr>
|
||||
</table>
|
||||
</t>
|
||||
<form t-name="KanbanView.quick_create" class="oe_kanban_quick_create">
|
||||
<input/>
|
||||
<button type="submit">Add</button>
|
||||
</form>
|
||||
<div t-name="KanbanView.quick_create" class="oe_kanban_quick_create">
|
||||
<input t-att-placeholder="_t('Type name to create')"/>
|
||||
<t t-if="widget._buttons">
|
||||
<button class="oe-kanban-quick_create_add">Add</button>
|
||||
<button class="oe-kanban-quick_create_close">Close</button>
|
||||
</t>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-07 10:13+0100\n"
|
||||
"PO-Revision-Date: 2012-02-08 16:52+0000\n"
|
||||
"PO-Revision-Date: 2012-05-15 14:19+0000\n"
|
||||
"Last-Translator: Els Van Vossel (Agaplan) <Unknown>\n"
|
||||
"Language-Team: Dutch (Belgium) <nl_BE@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-15 05:06+0000\n"
|
||||
"X-Generator: Launchpad (build 15238)\n"
|
||||
"X-Launchpad-Export-Date: 2012-05-16 05:10+0000\n"
|
||||
"X-Generator: Launchpad (build 15247)\n"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:17
|
||||
@@ -50,12 +50,12 @@ msgstr "Verkeerde gebruikersnaam of wachtwoord"
|
||||
#. openerp-web
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:42
|
||||
msgid "Powered by openerp.com"
|
||||
msgstr ""
|
||||
msgstr "Door openerp.com"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:49
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
msgstr "Home"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:57
|
||||
@@ -80,7 +80,7 @@ msgstr "Er kunnen geen records worden weergegeven"
|
||||
#. openerp-web
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:183
|
||||
msgid "Open this resource"
|
||||
msgstr ""
|
||||
msgstr "Openen"
|
||||
|
||||
#. openerp-web
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:223
|
||||
|
||||
Reference in New Issue
Block a user