[Merge] Merge with trunk.

bzr revid: mdi@tinyerp.com-20121102104628-qcf3cgpqgecbqml1
This commit is contained in:
Divyesh Makwana (Open ERP) 2012-11-02 16:16:28 +05:30
commit ede1da0a64
26 changed files with 688 additions and 267 deletions

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
"PO-Revision-Date: 2012-08-24 09:16+0000\n"
"PO-Revision-Date: 2012-10-26 12:17+0000\n"
"Last-Translator: Herczeg Péter <herczegp@gmail.com>\n"
"Language-Team: Hungarian <hu@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-10-21 05:02+0000\n"
"X-Generator: Launchpad (build 16165)\n"
"X-Launchpad-Export-Date: 2012-10-27 05:15+0000\n"
"X-Generator: Launchpad (build 16194)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:176
@ -755,7 +755,7 @@ msgstr "Választani kell legalább egy rekordot!"
#. openerp-web
#: addons/web/static/src/js/views.js:875
msgid "Uploading..."
msgstr ""
msgstr "Feltöltés"
#. openerp-web
#: addons/web/static/src/js/views.js:885

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
"PO-Revision-Date: 2012-10-23 14:30+0000\n"
"PO-Revision-Date: 2012-11-01 12:07+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: Russian <ru@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-10-24 05:20+0000\n"
"X-Generator: Launchpad (build 16179)\n"
"X-Launchpad-Export-Date: 2012-11-02 05:20+0000\n"
"X-Generator: Launchpad (build 16218)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:176
@ -306,7 +306,7 @@ msgstr "Группировать по: %s"
#. openerp-web
#: addons/web/static/src/js/search.js:1132
msgid "GroupBy"
msgstr ""
msgstr "Группировать по"
#. openerp-web
#: addons/web/static/src/js/search.js:1267
@ -535,7 +535,7 @@ msgstr "Удалить"
#. openerp-web
#: addons/web/static/src/xml/base.xml:762
msgid "Duplicate"
msgstr "Клонировать"
msgstr "Дублировать"
#. openerp-web
#: addons/web/static/src/js/view_form.js:133
@ -867,13 +867,13 @@ msgstr "Удалить"
#: addons/web/static/src/xml/base.xml:166
#: addons/web/static/src/xml/base.xml:329
msgid "Backup"
msgstr "Резервное копирование"
msgstr "Резервная копия"
#. openerp-web
#: addons/web/static/src/xml/base.xml:195
#: addons/web/static/src/xml/base.xml:330
msgid "Restore"
msgstr "Востановить"
msgstr "Восстановить"
#. openerp-web
#: addons/web/static/src/xml/base.xml:332
@ -908,7 +908,7 @@ msgstr "Язык по умолчанию:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:91
msgid "Admin password:"
msgstr "Пароль Администратора:"
msgstr "Пароль администратора:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:95
@ -1080,7 +1080,7 @@ msgstr "Изменить действие"
#. openerp-web
#: addons/web/static/src/xml/base.xml:486
msgid "Edit Workflow"
msgstr "Редактировать Процесс"
msgstr "Редактировать процесс"
#. openerp-web
#: addons/web/static/src/xml/base.xml:491
@ -1222,7 +1222,7 @@ msgstr "При изменении:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:981
msgid "Relation:"
msgstr "Отношение:"
msgstr "Связь:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:985
@ -1411,12 +1411,12 @@ msgstr "Применить"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1509
msgid "Save & New"
msgstr "Сохранить и Создать"
msgstr "Сохранить и создать"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1510
msgid "Save & Close"
msgstr "Сохранить и Закрыть"
msgstr "Сохранить и закрыть"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1617
@ -1556,7 +1556,7 @@ msgid ""
"For use if CSV files have titles on multiple lines, skips more than a single "
"line during import"
msgstr ""
"Применимо если в CSV файле заголовки расположены в нескольких строках и из "
"Применимо если в CSV файле заголовки расположены в нескольких строках и их "
"необходимо пропустить"
#. openerp-web
@ -1669,9 +1669,6 @@ msgstr "Предпросмотр файла, который система не
#~ msgid "Activate the developper mode"
#~ msgstr "Активировать режим разработчика"
#~ msgid "Notebook Page \""
#~ msgstr "Страница Блокнота \""
#~ msgid "Filter disabled due to invalid syntax"
#~ msgstr "Фильтр отключен из-за неверного синтаксиса"
@ -1686,3 +1683,6 @@ msgstr "Предпросмотр файла, который система не
#~ msgid "Advanced Filters"
#~ msgstr "Расширенные фильтры"
#~ msgid "Notebook Page \""
#~ msgstr "Страница блокнота \""

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
"PO-Revision-Date: 2012-01-31 06:25+0000\n"
"Last-Translator: ERP Basing <erp@basing.si>\n"
"PO-Revision-Date: 2012-11-01 16:38+0000\n"
"Last-Translator: Dusan Laznik <laznik@mentis.si>\n"
"Language-Team: Slovenian <sl@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-10-21 05:02+0000\n"
"X-Generator: Launchpad (build 16165)\n"
"X-Launchpad-Export-Date: 2012-11-02 05:20+0000\n"
"X-Generator: Launchpad (build 16218)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:176
@ -129,62 +129,62 @@ msgstr "OpenERP-Community Version"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:619
msgid "less than a minute ago"
msgstr ""
msgstr "manj kot minuto nazaj"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:620
msgid "about a minute ago"
msgstr ""
msgstr "približno pred minuto"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:621
#, python-format
msgid "%d minutes ago"
msgstr ""
msgstr "pred %d minutami"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:622
msgid "about an hour ago"
msgstr ""
msgstr "pred približno eno uro"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:623
#, python-format
msgid "%d hours ago"
msgstr ""
msgstr "Pred %d urami"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:624
msgid "a day ago"
msgstr ""
msgstr "pred enim dnevom"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:625
#, python-format
msgid "%d days ago"
msgstr ""
msgstr "pred %d dnevi"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:626
msgid "about a month ago"
msgstr ""
msgstr "približno pred enim mesecem"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:627
#, python-format
msgid "%d months ago"
msgstr ""
msgstr "pred %d meseci"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:628
msgid "about a year ago"
msgstr ""
msgstr "približno pred enim letom"
#. openerp-web
#: addons/web/static/src/js/coresetup.js:629
#, python-format
msgid "%d years ago"
msgstr ""
msgstr "Pred %d leti"
#. openerp-web
#: addons/web/static/src/js/data_export.js:6
@ -293,13 +293,13 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/js/search.js:999
msgid "Filter"
msgstr ""
msgstr "Filter:"
#. openerp-web
#: addons/web/static/src/js/search.js:1108
#, python-format
msgid "Group by: %s"
msgstr ""
msgstr "Združi po: %s"
#. openerp-web
#: addons/web/static/src/js/search.js:1132
@ -347,7 +347,7 @@ msgstr "Filtri"
#. openerp-web
#: addons/web/static/src/js/search.js:1762
msgid "Advanced"
msgstr ""
msgstr "Napredeno"
#. openerp-web
#: addons/web/static/src/js/search.js:1853
@ -632,7 +632,7 @@ msgstr "Dodaj: "
#. openerp-web
#: addons/web/static/src/js/view_form.js:4230
msgid "Save As..."
msgstr ""
msgstr "Shrani kot ..."
#. openerp-web
#: addons/web/static/src/js/view_form.js:4230
@ -669,7 +669,7 @@ msgstr "Skupina"
#. openerp-web
#: addons/web/static/src/js/view_list.js:549
msgid "Do you really want to remove these records?"
msgstr ""
msgstr "Res želite odstraniti te zapise?"
#. openerp-web
#: addons/web/static/src/js/views.js:925
@ -679,7 +679,7 @@ msgstr "Opozorilo"
#. openerp-web
#: addons/web/static/src/js/view_list.js:716
msgid "You must select at least one record."
msgstr ""
msgstr "Izbrati morate vsaj en zapis"
#. openerp-web
#: addons/web/static/src/js/view_list.js:1243
@ -727,17 +727,17 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/js/views.js:716
msgid "Print"
msgstr ""
msgstr "Tiskanje"
#. openerp-web
#: addons/web/static/src/js/views.js:717
msgid "Attachment"
msgstr ""
msgstr "Priponka"
#. openerp-web
#: addons/web/static/src/js/views.js:718 addons/web/static/src/xml/base.xml:276
msgid "More"
msgstr ""
msgstr "Dodatno"
#. openerp-web
#: addons/web/static/src/js/views.js:810
@ -757,7 +757,7 @@ msgstr "Izbrati morate vsaj en zapis."
#. openerp-web
#: addons/web/static/src/js/views.js:875
msgid "Uploading..."
msgstr ""
msgstr "Pošiljanje ..."
#. openerp-web
#: addons/web/static/src/js/views.js:885
@ -963,7 +963,7 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:327
msgid "Log out"
msgstr ""
msgstr "Odjava"
#. openerp-web
#: addons/web/static/src/xml/base.xml:333
@ -1028,7 +1028,7 @@ msgstr "Potrditev gesla:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:390
msgid "Open"
msgstr ""
msgstr "Odpri"
#. openerp-web
#: addons/web/static/src/xml/base.xml:390
@ -1123,18 +1123,18 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:527
msgid "Add..."
msgstr ""
msgstr "Dodaj ..."
#. openerp-web
#: addons/web/static/src/xml/base.xml:622
#: addons/web/static/src/xml/base.xml:687
msgid "or"
msgstr ""
msgstr "ali"
#. openerp-web
#: addons/web/static/src/xml/base.xml:687
msgid "Discard"
msgstr ""
msgstr "Opusti"
#. openerp-web
#: addons/web/static/src/xml/base.xml:806
@ -1220,7 +1220,7 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:981
msgid "Relation:"
msgstr ""
msgstr "Relacija:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:985
@ -1235,7 +1235,7 @@ msgstr "Odpri vir"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1063
msgid "Select date"
msgstr ""
msgstr "Izberi datum"
#. openerp-web
#: addons/web/static/src/xml/base.xml:948
@ -1298,7 +1298,7 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:1260
msgid "Button Type:"
msgstr ""
msgstr "Vrsta tipke:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1264
@ -1318,7 +1318,7 @@ msgstr "Polje"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1205
msgid "Advanced Search..."
msgstr ""
msgstr "Napredno iskanje ..."
#. openerp-web
#: addons/web/static/src/xml/base.xml:1287
@ -1363,7 +1363,7 @@ msgstr ""
#. openerp-web
#: addons/web/static/src/xml/base.xml:1381
msgid "Filter name"
msgstr ""
msgstr "Ime filtra"
#. openerp-web
#: addons/web/static/src/xml/base.xml:1383

View File

@ -295,7 +295,12 @@
// Bind the window resize event when the width or height is auto or %
if (/auto|%/.test("" + options.width + options.height))
$(window).resize(function() {refresh(editor);});
$(window).resize(function() {
// CHM Note MonkeyPatch: if the DOM is not remove, refresh the cleditor
if(editor.$main.parent().parent().size()) {
refresh(editor);
}
});
// Create the iframe and resize the controls
refresh(editor);
@ -562,7 +567,7 @@
//==================
// Private Functions
//==================
// checksum - returns a checksum using the Adler-32 method
function checksum(text)
{

View File

@ -217,7 +217,7 @@
background-clip: padding-box;
}
.openerp.ui-dialog .ui-dialog-content {
padding: 0px;
padding: 0;
}
.openerp.ui-dialog .ui-dialog-titlebar, .openerp.ui-dialog .ui-dialog-content, .openerp.ui-dialog .ui-dialog-buttonpane {
padding: 16px;
@ -2060,10 +2060,11 @@
padding-bottom: 0;
}
.openerp .oe_form div.oe_chatter {
min-width: 650px;
max-width: 860px;
box-sizing: border-box;
min-width: 682px;
max-width: 892px;
margin: 0 auto;
padding: 16px 0 48px;
padding: 16px 16px 48px;
}
.openerp .oe_form div.oe_form_configuration p, .openerp .oe_form div.oe_form_configuration ul, .openerp .oe_form div.oe_form_configuration ol {
color: #aaaaaa;
@ -2518,6 +2519,9 @@
.openerp .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page, .openerp .oe_form_field_many2many > .oe_view_manager .oe_list_pager_single_page {
display: none !important;
}
.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_view_list, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_view_list {
min-height: 132px;
}
.openerp .oe_form_field_one2many .oe_form_field_one2many_list_row_add, .openerp .oe_form_field_many2many .oe_form_field_one2many_list_row_add {
font-weight: bold;
}
@ -2563,9 +2567,6 @@
.openerp .oe_list_editable .oe_list_content td.oe_list_field_cell {
padding: 4px 6px 3px 6px;
}
.openerp .oe_list.oe_list_editable td.oe_list_record_delete {
position: absolute;
}
.openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) {
color: transparent;
}
@ -2874,6 +2875,78 @@
color: #333333;
}
.openerp .oe_fileupload {
display: inline-block;
clear: both;
width: 100%;
}
.openerp .oe_fileupload .oe_add {
float: left;
position: relative;
width: 100%;
left: 2px;
top: 7px;
}
.openerp .oe_fileupload .oe_add button {
display: inline;
height: 24px;
font-size: 12px;
line-height: 12px;
vertical-align: middle;
}
.openerp .oe_fileupload .oe_add button.oe_attach {
width: 24px;
overflow: hidden;
width: 24px;
overflow: hidden;
background: transparent;
color: #7c7bad;
box-shadow: none;
border: none;
text-shadow: none;
}
.openerp .oe_fileupload .oe_add button.oe_attach .oe_e {
position: relative;
top: -1px;
left: -9px;
}
.openerp .oe_fileupload .oe_add input.oe_form_binary_file {
display: inline-block;
margin-left: -5px;
height: 28px;
width: 52px;
margin-top: -26px;
}
.openerp .oe_fileupload .oe_add .oe_attach_label {
color: #7c7bad;
margin-left: -3px;
}
.openerp .oe_fileupload .oe_attachments {
margin-bottom: 4px;
margin-right: 0px;
font-size: 12px;
border-radius: 2px;
border: solid 1px rgba(124, 123, 173, 0.14);
}
.openerp .oe_fileupload .oe_attachments .oe_attachment {
padding: 2px;
padding-left: 4px;
padding-right: 4px;
}
.openerp .oe_fileupload .oe_attachments .oe_attachment .oe_e {
font-size: 23px;
margin-top: -5px;
}
.openerp .oe_fileupload .oe_attachments .oe_attachment .oe_e:hover {
text-decoration: none;
}
.openerp .oe_fileupload .oe_attachments .oe_attachment:nth-child(odd) {
background: white;
}
.openerp .oe_fileupload .oe_attachments .oe_attachment:nth-child(even) {
background: #f4f5fa;
}
.kitten-mode-activated {
background-image: url(http://placekitten.com/g/1365/769);
background-size: cover;
@ -2927,3 +3000,41 @@ div.ui-widget-overlay {
-webkit-border-radius: 3px;
border-radius: 3px;
}
@media print {
.openerp {
text-shadow: none;
}
.openerp .oe_header_row, .openerp ul.oe_header, .openerp div.oe_mail_thread_action, .openerp .oe_mail_recthread_actions, .openerp .oe_button_box, .openerp .oe_form button, .openerp button.oe_invite, .openerp .oe_form header, .openerp .openerp .oe_notebook > li.ui-state-default {
display: none;
}
.openerp .oe_list_content button, .openerp .oe_list_content input[type=checkbox] {
visibility: hidden;
}
.openerp .tree_header button, .openerp .oe_mail .oe_mail_thread_msg .oe_mail_unread, .openerp .oe_mail_fetch_more, .openerp .oe_m2o_drop_down_button img, .openerp .oe_form_field_one2many_list_row_add {
visibility: hidden;
}
.openerp a.oe_m2o_cm_button, .openerp a.oe_e {
visibility: hidden;
}
.openerp .oe_form .oe_form_field_date img, .openerp .oe_form .oe_form_field_datetime img {
visibility: hidden;
}
.openerp .oe_notebook > li.ui-tabs-selected {
display: block;
}
.openerp .oe_application .oe_form_sheet, .openerp .oe_application .oe_form_sheetbg {
border: 0px !important;
box-shadow: 0px 0px 0px;
}
.openerp .oe_view_manager_current > .oe_view_manager_header {
border: 0px !important;
box-shadow: 0px 0px 0px;
}
.openerp .text-core .text-wrap .text-arrow {
background: none;
}
.openerp .openerp div.oe_mail_wall {
overflow: hidden !important;
}
}

View File

@ -10,6 +10,8 @@ $tag-border-selected: #a6a6fe
$hover-background: #f0f0fa
$link-color: #7C7BAD
$sheet-max-width: 860px
$sheet-min-width: 650px
$sheet-padding: 16px
// }}}
// Mixins {{{
@font-face
@ -256,6 +258,7 @@ $sheet-max-width: 860px
// so remove position:relative
.ui-tabs
position: static
// Modal box
&.ui-dialog
display: none
@ -269,7 +272,7 @@ $sheet-max-width: 860px
@include box-shadow(0 1px 12px rgba(0, 0, 0, 0.6))
@include background-clip()
.ui-dialog-content
padding: 0px
padding: 0
.ui-dialog-titlebar, .ui-dialog-content, .ui-dialog-buttonpane
padding: 16px
.ui-dialog-titlebar
@ -1634,10 +1637,11 @@ $sheet-max-width: 860px
width: 400px
padding-bottom: 0
div.oe_chatter
min-width: 650px
max-width: $sheet-max-width
box-sizing: border-box
min-width: $sheet-min-width + 2* $sheet-padding
max-width: $sheet-max-width + 2* $sheet-padding
margin: 0 auto
padding: 16px 0 48px
padding: 16px 16px 48px
div.oe_form_configuration
p, ul, ol
color: #aaa
@ -1983,6 +1987,9 @@ $sheet-max-width: 860px
> .oe_view_manager
.oe_list_pager_single_page
display: none !important
.oe_view_manager_view_list
min-height: 132px
.oe_form_field_one2many_list_row_add
font-weight: bold
.oe_list_content
@ -2027,9 +2034,6 @@ $sheet-max-width: 860px
.oe_list_content
td.oe_list_field_cell
padding: 4px 6px 3px 6px
.oe_list.oe_list_editable
td.oe_list_record_delete
position: absolute
.oe_list.oe_list_editable.oe_editing
.oe_edition .oe_list_field_cell:not(.oe_readonly)
*
@ -2273,6 +2277,67 @@ $sheet-max-width: 860px
float: right
color: #333
// }}}
.openerp
.oe_fileupload
display: inline-block
clear: both
width: 100%
.oe_add
float: left
position: relative
width: 100%
left: +2px
top: +7px
button
display: inline
height: 24px
font-size: 12px
line-height: 12px
vertical-align: middle
button.oe_attach
width: 24px
overflow: hidden
width: 24px
overflow: hidden
background: transparent
color: #7C7BAD
box-shadow: none
border: none
text-shadow: none
.oe_e
position: relative
top: -1px
left: -9px
input.oe_form_binary_file
display: inline-block
margin-left: -5px
height: 28px
width: 52px
margin-top: -26px
.oe_attach_label
color: #7C7BAD
margin-left: -3px
.oe_attachments
margin-bottom: 4px
margin-right: 0px
font-size: 12px
border-radius: 2px
border: solid 1px rgba(124,123,173,0.14)
.oe_attachment
padding: 2px
padding-left: 4px
padding-right: 4px
.oe_e
font-size: 23px
margin-top: -5px
.oe_e:hover
text-decoration: none
.oe_attachment:nth-child(odd)
background: white
.oe_attachment:nth-child(even)
background: #F4F5FA
// Kitten Mode {{{
.kitten-mode-activated
background-image: url(http://placekitten.com/g/1365/769)
@ -2314,5 +2379,34 @@ div.ui-widget-overlay
.ui-corner-all
@include radius(3px)
@media print
.openerp
.oe_header_row, ul.oe_header, div.oe_mail_thread_action, .oe_mail_recthread_actions, .oe_button_box, .oe_form button, button.oe_invite, .oe_form header, .openerp .oe_notebook > li.ui-state-default
display: none
.oe_list_content
button, input[type=checkbox]
visibility: hidden
.tree_header button, .oe_mail .oe_mail_thread_msg .oe_mail_unread, .oe_mail_fetch_more, .oe_m2o_drop_down_button img, .oe_form_field_one2many_list_row_add
visibility: hidden
a
&.oe_m2o_cm_button, &.oe_e
visibility: hidden
.oe_form
.oe_form_field_date img, .oe_form_field_datetime img
visibility: hidden
.oe_notebook > li.ui-tabs-selected
display: block
.oe_application
.oe_form_sheet, .oe_form_sheetbg
border: 0px !important
box-shadow: 0px 0px 0px
.oe_view_manager_current > .oe_view_manager_header
border: 0px !important
box-shadow: 0px 0px 0px
text-shadow: none
.text-core .text-wrap .text-arrow
background: none
.openerp div.oe_mail_wall
overflow: hidden !important
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers <afile> > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:

View File

@ -530,7 +530,8 @@ instance.web.qweb.default_dict['__debug__'] = instance.session.debug; // Which o
instance.web.qweb.debug = instance.session.debug;
instance.web.qweb.default_dict = {
'_' : _,
'_t' : instance.web._t
'_t' : instance.web._t,
'JSON': JSON,
};
instance.web.qweb.preprocess_node = function() {
// Note that 'this' is the Qweb Node

View File

@ -471,7 +471,7 @@ instance.web.DataSet = instance.web.CallbackEnabled.extend({
default_get: function(fields, options) {
options = options || {};
return this._model.call('default_get',
[fields], {context: this._model.context(options.context)});
[fields], {context: this.get_context(options.context)});
},
/**
* Creates a new record in db
@ -480,7 +480,7 @@ instance.web.DataSet = instance.web.CallbackEnabled.extend({
* @returns {$.Deferred}
*/
create: function(data) {
return this._model.call('create', [data], {context: this._model.context()});
return this._model.call('create', [data], {context: this.get_context()});
},
/**
* Saves the provided data in an existing db record
@ -493,7 +493,7 @@ instance.web.DataSet = instance.web.CallbackEnabled.extend({
*/
write: function (id, data, options) {
options = options || {};
return this._model.call('write', [[id], data], {context: this._model.context(options.context)}).then(this.trigger('dataset_changed', id, data, options));
return this._model.call('write', [[id], data], {context: this.get_context(options.context)}).then(this.trigger('dataset_changed', id, data, options));
},
/**
* Deletes an existing record from the database
@ -501,7 +501,7 @@ instance.web.DataSet = instance.web.CallbackEnabled.extend({
* @param {Number|String} ids identifier of the record to delete
*/
unlink: function(ids) {
return this._model.call('unlink', [ids], {context: this._model.context()}).then(this.trigger('dataset_changed', ids));
return this._model.call('unlink', [ids], {context: this.get_context()}).then(this.trigger('dataset_changed', ids));
},
/**
* Calls an arbitrary RPC method
@ -532,7 +532,7 @@ instance.web.DataSet = instance.web.CallbackEnabled.extend({
* @returns {$.Deferred}
*/
name_get: function(ids) {
return this._model.call('name_get', [ids], {context: this._model.context()});
return this._model.call('name_get', [ids], {context: this.get_context()});
},
/**
*
@ -556,7 +556,7 @@ instance.web.DataSet = instance.web.CallbackEnabled.extend({
* @param name
*/
name_create: function(name) {
return this._model.call('name_create', [name], {context: this._model.context()});
return this._model.call('name_create', [name], {context: this.get_context()});
},
exec_workflow: function (id, signal) {
return this._model.exec_workflow(id, signal);
@ -606,7 +606,7 @@ instance.web.DataSet = instance.web.CallbackEnabled.extend({
return instance.session.rpc('/web/dataset/resequence', {
model: this.model,
ids: ids,
context: this._model.context(options.context),
context: this.get_context(options.context),
}).pipe(function (results) {
return results;
});

View File

@ -788,6 +788,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea
instance.web.search.fields = new instance.web.Registry({
'char': 'instance.web.search.CharField',
'text': 'instance.web.search.CharField',
'html': 'instance.web.search.CharField',
'boolean': 'instance.web.search.BooleanField',
'integer': 'instance.web.search.IntegerField',
'id': 'instance.web.search.IntegerField',

View File

@ -427,7 +427,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
var onchange = _.str.trim(on_change);
var call = onchange.match(/^\s?(.*?)\((.*?)\)\s?$/);
if (!call) {
return null;
throw new Error("Wrong on change format: " + onchange);
}
var method = call[1];
@ -494,71 +494,59 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
var self = this;
return this.on_change_mutex.exec(function() {
try {
var response = {}, can_process_onchange = $.Deferred();
var def;
processed = processed || [];
processed.push(widget.name);
var on_change = widget.node.attrs.on_change;
if (on_change) {
var change_spec = self.parse_on_change(on_change, widget);
if (change_spec) {
var ajax = {
url: '/web/dataset/onchange',
async: false
};
can_process_onchange = self.rpc(ajax, {
model: self.dataset.model,
method: change_spec.method,
args: [(self.datarecord.id == null ? [] : [self.datarecord.id])].concat(change_spec.args),
context_id: change_spec.context_index == undefined ? null : change_spec.context_index + 1
}).then(function(r) {
_.extend(response, r);
});
} else {
console.warn("Wrong on_change format", on_change);
}
}
// fail if onchange failed
if (can_process_onchange.isRejected()) {
return can_process_onchange;
def = self.rpc('/web/dataset/onchange', {
model: self.dataset.model,
method: change_spec.method,
args: [(self.datarecord.id == null ? [] : [self.datarecord.id])].concat(change_spec.args),
context_id: change_spec.context_index == undefined ? null : change_spec.context_index + 1
});
} else {
def = $.when({});
}
return def.pipe(function(response) {
if (widget.field['change_default']) {
var fieldname = widget.name
var value_;
if (response.value && (fieldname in response.value)) {
// Use value from onchange if onchange executed
value_ = response.value[fieldname];
} else {
// otherwise get form value for field
value_ = self.fields[fieldname].get_value();
}
var condition = fieldname + '=' + value_;
if (widget.field['change_default']) {
var fieldname = widget.name, value_;
if (response.value && (fieldname in response.value)) {
// Use value from onchange if onchange executed
value_ = response.value[fieldname];
} else {
// otherwise get form value for field
value_ = self.fields[fieldname].get_value();
if (value_) {
return self.rpc('/web/dataset/call', {
model: 'ir.values',
method: 'get_defaults',
args: [self.model, condition]
}).pipe(function (results) {
if (!results.length) {
return response;
}
if (!response.value) {
response.value = {};
}
for(var i=0; i<results.length; ++i) {
// [whatever, key, value]
var triplet = results[i];
response.value[triplet[1]] = triplet[2];
}
return response;
});
}
}
var condition = fieldname + '=' + value_;
if (value_) {
can_process_onchange = self.rpc({
url: '/web/dataset/call',
async: false
}, {
model: 'ir.values',
method: 'get_defaults',
args: [self.model, condition]
}).then(function (results) {
if (!results.length) { return; }
if (!response.value) {
response.value = {};
}
for(var i=0; i<results.length; ++i) {
// [whatever, key, value]
var triplet = results[i];
response.value[triplet[1]] = triplet[2];
}
});
}
}
if (can_process_onchange.isRejected()) {
return can_process_onchange;
}
return self.on_processed_onchange(response, processed);
return response;
}).pipe(function(response) {
return self.on_processed_onchange(response, processed);
});
} catch(e) {
console.error(e);
instance.webclient.crashmanager.show_message(e);
@ -1590,37 +1578,6 @@ instance.web.form.DefaultFieldManager = instance.web.Widget.extend({
},
});
instance.web.form.FormDialog = instance.web.Dialog.extend({
init: function(parent, options, view_id, dataset) {
this._super(parent, options);
this.dataset = dataset;
this.view_id = view_id;
return this;
},
start: function() {
var self = this;
this._super();
this.form = new instance.web.FormView(this, this.dataset, this.view_id, {
pager: false
});
this.form.appendTo(this.$el);
this.form.on('record_created', self, this.on_form_dialog_saved);
this.form.on('record_saved', this, this.on_form_dialog_saved);
return this;
},
select_id: function(id) {
if (this.form.dataset.select_id(id)) {
return this.form.do_show();
} else {
this.do_warn("Could not find id in dataset");
return $.Deferred().reject();
}
},
on_form_dialog_saved: function(r) {
this.close();
}
});
instance.web.form.compute_domain = function(expr, fields) {
if (! (expr instanceof Array))
return !! expr;
@ -2570,7 +2527,7 @@ instance.web.form.FieldTextHtml = instance.web.form.AbstractField.extend(instanc
if (! this.get("effective_readonly")) {
self._updating_editor = false;
this.$textarea = this.$el.find('textarea');
var width = ((this.node.attrs || {}).editor_width || 468);
var width = ((this.node.attrs || {}).editor_width || '100%');
var height = ((this.node.attrs || {}).editor_height || 250);
this.$textarea.cleditor({
width: width, // width not including margins, borders or padding
@ -3141,7 +3098,6 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
type: 'ir.actions.act_window',
res_model: self.field.relation,
res_id: self.get("value"),
context: self.build_context(),
views: [[false, 'form']],
target: 'current'
});
@ -3353,7 +3309,7 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
e.cancel = true;
});
_(controller.columns).find(function (column) {
if (!column instanceof instance.web.list.Handle) {
if (!(column instanceof instance.web.list.Handle)) {
return false;
}
column.modifiers.invisible = true;
@ -4567,6 +4523,10 @@ instance.web.form.SelectCreatePopup = instance.web.form.AbstractFormPopup.extend
self.select_elements(self.selected_ids);
self.destroy();
});
var $cbutton = self.$buttonpane.find(".oe_selectcreatepopup-search-create");
$cbutton.click(function() {
self.new_object();
});
});
});
this.searchview.appendTo($(".oe_popup_search", self.$el));
@ -4902,6 +4862,132 @@ instance.web.form.FieldBinaryImage = instance.web.form.FieldBinary.extend({
}
});
/**
* Widget for (one2many field) to upload one or more file in same time and display in list.
* The user can delete his files.
* Options on attribute ; "blockui" {Boolean} block the UI or not
* during the file is uploading
*/
instance.web.form.FieldOne2ManyBinaryMultiFiles = instance.web.form.AbstractField.extend({
template: "FieldBinaryFileUploader",
init: function(field_manager, node) {
this._super(field_manager, node);
this.field_manager = field_manager;
this.node = node;
if(this.field.type != "one2many" || this.field.relation != 'ir.attachment') {
throw "The type of the field '"+this.field.string+"' must be a one2many field with a relation to 'ir.attachment' model.";
}
this.ds_file = new instance.web.DataSetSearch(this, 'ir.attachment');
this.fileupload_id = _.uniqueId('oe_fileupload_temp');
$(window).on(this.fileupload_id, _.bind(this.on_file_loaded, this));
},
start: function() {
this._super(this);
this.$el.on('change', 'input.oe_form_binary_file', this.on_file_change );
},
get_value: function() {
return _.map(this.get('value'), function (value) { return commands.link_to( value.id ); });
},
get_file_url: function (attachment) {
return instance.origin + '/web/binary/saveas?session_id=' + this.session.session_id + '&model=ir.attachment&field=datas&filename_field=datas_fname&id=' + attachment['id'];
},
render_value: function () {
var render = $(instance.web.qweb.render('FieldBinaryFileUploader.files', {'widget': this}));
render.on('click', '.oe_delete', _.bind(this.on_file_delete, this));
this.$('.oe_placeholder_files, .oe_attachments').replaceWith( render );
// reinit input type file
var $input = this.$('input.oe_form_binary_file');
$input.after($input.clone(true)).remove();
this.$(".oe_fileupload").show();
},
on_file_change: function (event) {
event.stopPropagation();
var self = this;
var $target = $(event.target);
if ($target.val() !== '') {
var filename = $target.val().replace(/.*[\\\/]/,'');
// if the files is currently uploded, don't send again
if( !isNaN(_.find(this.get('value'), function (file) { return (file.filename || file.name) == filename && file.upload; } )) ) {
return false;
}
// block UI or not
if(this.node.attrs.blockui) {
instance.web.blockUI();
}
// if the files exits for this answer, delete the file before upload
var files = _.filter(this.get('value'), function (file) {
if((file.filename || file.name) == filename) {
self.ds_file.unlink([file.id]);
return false;
} else {
return true;
}
});
// TODO : unactivate send on wizard and form
// submit file
this.$('form.oe_form_binary_form').submit();
this.$(".oe_fileupload").hide();
// add file on result
files.push({
'id': 0,
'name': filename,
'filename': filename,
'url': '',
'upload': true
});
this.set({'value': files});
}
},
on_file_loaded: function (event, result) {
// unblock UI
if(this.node.attrs.blockui) {
instance.web.unblockUI();
}
// TODO : activate send on wizard and form
var files = this.get('value');
for(var i in files){
if(files[i].filename == result.filename && files[i].upload) {
files[i] = {
'id': result.id,
'name': result.name,
'filename': result.filename,
'url': this.get_file_url(result)
};
}
}
this.set({'value': files});
this.render_value()
},
on_file_delete: function (event) {
event.stopPropagation();
var file_id=$(event.target).data("id");
if (file_id) {
var files=[];
for(var i in this.get('value')){
if(file_id != this.get('value')[i].id){
files.push(this.get('value')[i]);
}
else {
this.ds_file.unlink([file_id]);
}
}
this.set({'value': files});
}
},
});
instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({
template: "FieldStatus",
init: function(field_manager, node) {
@ -5054,6 +5140,7 @@ instance.web.form.widgets = new instance.web.Registry({
'progressbar': 'instance.web.form.FieldProgressBar',
'image': 'instance.web.form.FieldBinaryImage',
'binary': 'instance.web.form.FieldBinaryFile',
'one2many_binary': 'instance.web.form.FieldOne2ManyBinaryMultiFiles',
'statusbar': 'instance.web.form.FieldStatus',
'monetary': 'instance.web.form.FieldMonetary',
});

View File

@ -374,7 +374,10 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
var total = dataset.size();
var limit = this.limit() || total;
this.$pager.toggle(total !== 0);
if (total == 0)
this.$pager.hide();
else
this.$pager.css("display", "");
this.$pager.toggleClass('oe_list_pager_single_page', (total <= limit));
var spager = '-';
if (total) {

View File

@ -252,9 +252,10 @@ openerp.web.list_editable = function (instance) {
var position = $cell.position();
field.set_dimensions($cell.outerHeight(), $cell.outerWidth());
field.$el.css({
top: position.top,
left: position.left,
field.$el.position({
my: 'left top',
at: 'left top',
of: $cell
});
},
/**
@ -410,15 +411,15 @@ openerp.web.list_editable = function (instance) {
});
this.editor.$el.on('keyup keydown', function (e) {
if (!self.editor.is_editing()) { return; }
if (!self.editor.is_editing()) { return true; }
var key = _($.ui.keyCode).chain()
.map(function (v, k) { return {name: k, code: v}; })
.find(function (o) { return o.code === e.which; })
.value();
if (!key) { return; }
if (!key) { return true; }
var method = e.type + '_' + key.name;
if (!(method in self)) { return; }
self[method](e);
if (!(method in self)) { return true; }
return self[method](e);
});
},
/**
@ -446,7 +447,10 @@ openerp.web.list_editable = function (instance) {
keyup_ENTER: function () {
return this._next();
},
keyup_ESCAPE: function () {
keydown_ESCAPE: function (e) {
return false;
},
keyup_ESCAPE: function (e) {
return this.cancel_edition();
},
/**

View File

@ -1281,11 +1281,9 @@ instance.web.View = instance.web.Widget.extend({
},
/**
* Switches to a specific view type
*
* @param {String} view view type to switch to
*/
do_switch_view: function(view) {
this.trigger('switch_mode',view);
do_switch_view: function() {
this.trigger.apply(this, ['switch_mode'].concat(_.toArray(arguments)));
},
/**
* Cancels the switch to the current view, switches to the previous one

View File

@ -1175,6 +1175,48 @@
<iframe t-att-id="fileupload_id" t-att-name="fileupload_id" style="display: none"/>
</div>
</t>
<t t-name="FieldBinaryFileUploader.files">
<div class="oe_attachments">
<t t-if="!widget.get('effective_readonly')" t-foreach="widget.get('value')" t-as="file">
<div class="oe_attachment">
<span t-if="(file.upload or file.percent_loaded&lt;100)" t-attf-title="{(file.name || file.filename) + (file.date?' \n('+file.date+')':'' )}" t-attf-name="{file.name || file.filename}">
<span class="oe_fileuploader_in_process">...Upload in progress...</span>
<t t-raw="file.name || file.filename"/>
</span>
<a t-if="(!file.upload or file.percent_loaded&gt;=100)" t-att-href="file.url" t-attf-title="{(file.name || file.filename) + (file.date?' \n('+file.date+')':'' )}">
<t t-raw="file.name || file.filename"/>
</a>
<t t-if="(!file.upload or file.percent_loaded&gt;=100)">
<a class="oe_right oe_delete oe_e" title="Delete this file" t-attf-data-id="{file.id}">[</a>
</t>
</div>
</t>
<t t-if="widget.get('effective_readonly')" t-foreach="widget.get('value')" t-as="file">
<div>
<a t-att-href="file.url" t-attf-title="{(file.name || file.filename) + (file.date?' \n('+file.date+')':'' )}">
<t t-raw="file.name || file.filename"/>
</a>
</div>
</t>
</div>
</t>
<t t-name="FieldBinaryFileUploader">
<div t-att-style="widget.node.attrs.style" t-attf-class="oe_fileupload #{widget.node.attrs.class ? widget.node.attrs.class :''}">
<div class="oe_placeholder_files"/>
<div class="oe_add" t-if="!widget.get('effective_readonly')">
<!-- uploader of file -->
<button class="oe_attach"><span class="oe_e">'</span></button>
<span class='oe_attach_label'>File</span>
<t t-call="HiddenInputFile">
<t t-set="fileupload_id" t-value="widget.fileupload_id"/>
<t t-set="fileupload_action">/web/binary/upload_attachment</t>
<input type="hidden" name="model" t-att-value="widget.view.model"/>
<input type="hidden" name="id" value="0"/>
<input type="hidden" name="session_id" t-att-value="widget.session.session_id"/>
</t>
</div>
</div>
</t>
<t t-name="WidgetButton">
<button type="button" class="oe_button oe_form_button"
t-att-style="widget.node.attrs.style"
@ -1237,9 +1279,9 @@
<t t-name="SelectCreatePopup.search.buttons">
<t t-if="! widget.options.disable_multiple_selection">
<button type="button" class="oe_button oe_selectcreatepopup-search-select" disabled="disabled">Select</button>
or
</t>
<a class="oe_button oe_selectcreatepopup-search-close oe_bold oe_form_button_cancel" href="javascript:void(0)">Cancel</a>
<button type="button" class="oe_button oe_selectcreatepopup-search-create">Create</button>
or <a class="oe_button oe_selectcreatepopup-search-close oe_bold oe_form_button_cancel" href="javascript:void(0)">Cancel</a>
</t>
<t t-name="AbstractFormPopup.buttons">
<t t-if="! readonly">

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
"PO-Revision-Date: 2012-01-30 17:43+0000\n"
"Last-Translator: ERP Basing <erp@basing.si>\n"
"PO-Revision-Date: 2012-11-01 18:19+0000\n"
"Last-Translator: Dusan Laznik <laznik@mentis.si>\n"
"Language-Team: Slovenian <sl@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-10-21 05:03+0000\n"
"X-Generator: Launchpad (build 16165)\n"
"X-Launchpad-Export-Date: 2012-11-02 05:20+0000\n"
"X-Generator: Launchpad (build 16218)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11
@ -25,114 +25,114 @@ msgstr "Koledar"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:70
msgid "Filter"
msgstr ""
msgstr "Filter:"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:144
msgid "Today"
msgstr ""
msgstr "Danes"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:145
msgid "Day"
msgstr ""
msgstr "Dan"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:146
msgid "Week"
msgstr ""
msgstr "Teden"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:147
msgid "Month"
msgstr ""
msgstr "Mesec"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:148
msgid "New event"
msgstr ""
msgstr "Nov dogodek"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:149
msgid "Save"
msgstr ""
msgstr "Shrani"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:150
msgid "Cancel"
msgstr ""
msgstr "Prekliči"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:151
msgid "Details"
msgstr ""
msgstr "Podrobnosti"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:152
msgid "Edit"
msgstr ""
msgstr "Uredi"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:153
msgid "Delete"
msgstr ""
msgstr "Izbriši"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:155
msgid "Event will be deleted permanently, are you sure?"
msgstr ""
msgstr "Dogodek bo trajno izbrisan. Ste prepričani?"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:156
#: addons/web_calendar/static/src/js/calendar.js:169
msgid "Description"
msgstr ""
msgstr "Opis"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:157
msgid "Time period"
msgstr ""
msgstr "Obdobje"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:158
msgid "Full day"
msgstr ""
msgstr "Cel dan"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:161
msgid "Do you want to edit the whole set of repeated events?"
msgstr ""
msgstr "Želite urediti celotno zbirko ponavljajočih dogodkov?"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:162
msgid "Repeat event"
msgstr ""
msgstr "Ponavljajoč dogodek"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:163
msgid "Disabled"
msgstr ""
msgstr "Onemogočeno"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:164
msgid "Enabled"
msgstr ""
msgstr "Omogočeno"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:167
#: addons/web_calendar/static/src/js/calendar.js:175
msgid "Agenda"
msgstr ""
msgstr "Dnevni red"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:168
msgid "Date"
msgstr ""
msgstr "Datum"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:172
msgid "Year"
msgstr ""
msgstr "Leto"
#. openerp-web
#: addons/web_calendar/static/src/xml/web_calendar.xml:5

View File

@ -1053,3 +1053,12 @@ div.openerp .dhx_cal_editor textarea {
.openerp .dhx_cal_event .dhx_header, .openerp .dhx_cal_event .dhx_header {
display:none;
}
@media print {
div.dhx_cal_navline .dhx_cal_tab, div.dhx_cal_navline .dhx_cal_prev_button, div.dhx_cal_navline .dhx_cal_next_button, div.dhx_cal_navline .dhx_cal_today_button{
display: none;
}
.openerp .dhx_cal_data {
overflow-y: hidden !important;
position: relative;
}
}

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
"PO-Revision-Date: 2012-02-08 07:13+0000\n"
"Last-Translator: Aleksei Motsik <Unknown>\n"
"PO-Revision-Date: 2012-10-25 06:42+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: Russian <ru@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-10-21 05:03+0000\n"
"X-Generator: Launchpad (build 16165)\n"
"X-Launchpad-Export-Date: 2012-10-26 05:19+0000\n"
"X-Generator: Launchpad (build 16194)\n"
#. openerp-web
#: addons/web_diagram/static/src/js/diagram.js:11
@ -25,7 +25,7 @@ msgstr "Диаграмма"
#. openerp-web
#: addons/web_diagram/static/src/js/diagram.js:165
msgid "Are you sure?"
msgstr ""
msgstr "Вы уверены?"
#. openerp-web
#: addons/web_diagram/static/src/js/diagram.js:195
@ -35,6 +35,10 @@ msgid ""
"\n"
"Are you sure ?"
msgstr ""
"Удаление этого узла не может быть отменено.\n"
"Будут удалены все связанные переходы.\n"
"\n"
"Вы уверены ?"
#. openerp-web
#: addons/web_diagram/static/src/js/diagram.js:213
@ -43,6 +47,9 @@ msgid ""
"\n"
"Are you sure ?"
msgstr ""
"Удаление этого перехода не может быть отменено.\n"
"\n"
"Вы уверены ?"
#. openerp-web
#: addons/web_diagram/static/src/js/diagram.js:224

View File

@ -22,6 +22,7 @@ instance.web.DiagramView = instance.web.View.extend({
this.context = {};
this.ids = this.dataset.ids;
this.on('view_loaded', self, self.load_diagram);
this.on('pager_action_executed', self, self.pager_action_trigger);
},
start: function() {
var self = this;
@ -59,12 +60,7 @@ instance.web.DiagramView = instance.web.View.extend({
self.$el.find('.oe_diagram_header').append(html_label);
})
this.$el.find('div.oe_diagram_pager button[data-pager-action]').click(function() {
var action = $(this).data('pager-action');
self.execute_pager_action(action);
});
this.do_update_pager();
this.init_pager();
// New Node,Edge
this.$el.find('#new_node.oe_diagram_button_new').click(function(){self.add_node();});
@ -366,36 +362,65 @@ instance.web.DiagramView = instance.web.View.extend({
form_controller.fields[self.connectors.attrs.destination].dirty = true;
});
},
execute_pager_action: function(action) {
switch (action) {
case 'first':
this.dataset.index = 0;
break;
case 'previous':
this.dataset.previous();
break;
case 'next':
this.dataset.next();
break;
case 'last':
this.dataset.index = this.dataset.ids.length - 1;
break;
do_hide: function () {
if (this.$pager) {
this.$pager.hide();
}
this._super();
},
init_pager: function() {
var self = this;
if (this.$pager)
this.$pager.remove();
this.$pager = $(QWeb.render("DiagramView.pager", {'widget':self})).hide();
if (this.options.$pager) {
this.$pager.appendTo(this.options.$pager);
} else {
this.$el.find('.oe_diagram_pager').replaceWith(this.$pager);
}
this.$pager.on('click','a[data-pager-action]',function() {
var action = $(this).data('pager-action');
self.execute_pager_action(action);
});
this.do_update_pager();
},
pager_action_trigger: function(){
var loaded = this.dataset.read_index(_.keys(this.fields_view.fields))
.pipe(this.on_diagram_loaded);
this.do_update_pager();
return loaded;
},
execute_pager_action: function(action) {
switch (action) {
case 'first':
this.dataset.index = 0;
break;
case 'previous':
this.dataset.previous();
break;
case 'next':
this.dataset.next();
break;
case 'last':
this.dataset.index = this.dataset.ids.length - 1;
break;
}
this.trigger('pager_action_executed');
},
do_update_pager: function(hide_index) {
var $pager = this.$el.find('div.oe_diagram_pager');
var index = hide_index ? '-' : this.dataset.index + 1;
if(!this.dataset.count) {
this.dataset.count = this.dataset.ids.length;
this.$pager.toggle(this.dataset.ids.length > 1);
if (hide_index) {
$(".oe_diagram_pager_state", this.$pager).html("");
} else {
$(".oe_diagram_pager_state", this.$pager).html(_.str.sprintf(_t("%d / %d"), this.dataset.index + 1, this.dataset.ids.length));
}
$pager.find('span.oe_pager_index').html(index);
$pager.find('span.oe_pager_count').html(this.dataset.count);
},
do_show: function() {

View File

@ -1,18 +1,19 @@
<template>
<t t-name="DiagramView.pager">
<div class="oe_diagram_pager">
<t t-if="widget.options.pager !== false" t-call="ViewPager">
<span class="oe_diagram_pager_state"></span>
</t>
</div>
</t>
<t t-name="DiagramView">
<div class="oe_diagram_header" t-att-id="widget.element_id + '_header'">
<h3 class="oe_diagram_title"/>
<div t-if="widget.is_action_enabled('create')" class="oe_diagram_buttons">
<button type="button" id="new_node" class="oe_button oe_diagram_button_new">New Node</button>
</div>
<div class="oe_diagram_pager">
<t t-call="ViewPager">
<span class="oe_pager_index">0</span> / <span class="oe_pager_count">0</span>
</t>
</div>
<div class="clear"></div>
</div>
<div class="diagram-container">
<div class="oe_diagram_diagram"/>
</div>

View File

@ -7,3 +7,11 @@
position: absolute;
top: 5px;
}
@media print {
.oe_gantt button {
display: none;
}
.oe_gantt > table > tbody > tr > td > div > div {
overflow: hidden !important;
}
}

View File

@ -257,16 +257,16 @@ instance.web_graph.GraphView = instance.web.View.extend({
var tree = $($.parseXML(view_get['arch']));
var pos = 0;
var xaxis = group_by || [];
var xaxis = _.clone(group_by || []);
var yaxis = [];
tree.find("field").each(function() {
var field = $(this);
if (! field.attr("name"))
return;
if ((group_by.length == 0) && ((! pos) || field.attr('group'))) {
if ((group_by.length == 0) && ((! pos) || instance.web.py_eval(field.attr('group') || "false"))) {
xaxis.push(field.attr('name'));
}
if (pos && ! field.attr('group')) {
if (pos && ! instance.web.py_eval(field.attr('group') || "false")) {
yaxis.push(field.attr('name'));
}
pos += 1;
@ -287,7 +287,11 @@ instance.web_graph.GraphView = instance.web.View.extend({
function _convert(field, data, tick) {
tick = tick === undefined ? true : false;
data = instance.web.format_value(data, fields[field]);
try {
data = instance.web.format_value(data, fields[field]);
} catch(e) {
data = "" + data;
}
if (tick) {
if (ticks[data] === undefined)
ticks[data] = _.size(ticks);
@ -336,8 +340,7 @@ instance.web_graph.GraphView = instance.web.View.extend({
var defs = [];
_.each(axis, function(x) {
var key = x[xaxis[0]]
defs.push(obj.call("read_group", [new instance.web.CompoundDomain(domain, [[xaxis[0], '=' ,_convert_key(xaxis[0], key)]]),
yaxis.concat(xaxis.slice(1, 2)), xaxis.slice(1, 2)], {context: context}).pipe(function(res) {
defs.push(obj.call("read_group", [domain, yaxis.concat(xaxis.slice(1, 2)), xaxis.slice(1, 2)], {context: context}).pipe(function(res) {
return [x, key, res];
}));
});

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-07-02 09:06+0200\n"
"PO-Revision-Date: 2012-02-17 07:42+0000\n"
"Last-Translator: Aleksei Motsik <Unknown>\n"
"PO-Revision-Date: 2012-10-26 09:02+0000\n"
"Last-Translator: Chertykov Denis <chertykov@gmail.com>\n"
"Language-Team: Russian <ru@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-10-21 05:03+0000\n"
"X-Generator: Launchpad (build 16165)\n"
"X-Launchpad-Export-Date: 2012-10-27 05:15+0000\n"
"X-Generator: Launchpad (build 16194)\n"
#. openerp-web
#: addons/web_kanban/static/src/js/kanban.js:10
@ -35,7 +35,7 @@ msgstr "Вы действительно хотите удалить эту за
#. openerp-web
#: addons/web_kanban/static/src/js/kanban.js:839
msgid "Create: "
msgstr ""
msgstr "Создать: "
#. openerp-web
#: addons/web_kanban/static/src/xml/web_kanban.xml:41
@ -50,17 +50,17 @@ msgstr "осталось)"
#. openerp-web
#: addons/web_kanban/static/src/xml/web_kanban.xml:71
msgid "Add"
msgstr ""
msgstr "Добавить"
#. openerp-web
#: addons/web_kanban/static/src/xml/web_kanban.xml:71
msgid "or"
msgstr ""
msgstr "или"
#. openerp-web
#: addons/web_kanban/static/src/xml/web_kanban.xml:72
msgid "Cancel"
msgstr ""
msgstr "Отмена"
#~ msgid "Create"
#~ msgstr "Создать"

View File

@ -609,3 +609,15 @@
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset;
}
@media print {
.openerp .oe_kanban_groups button {
visibility: hidden;
}
.openerp .oe_kanban_groups a[data-type=object], .openerp .oe_kanban_groups a[data-type=delete] {
visibility: hidden;
}
.openerp .oe_kanban_view .oe_kanban_group_title {
text-shadow: none !important;
}
}

View File

@ -502,6 +502,15 @@
@include vertical-gradient(#f6f6f6, #e3e3e3)
@include box-shadow((0 1px 2px rgba(0, 0, 0, .1), 0 1px 1px rgba(255, 255, 255, .8) inset))
@media print
.openerp
.oe_kanban_groups
button
visibility: hidden
a
&[data-type=object], &[data-type=delete]
visibility: hidden
.oe_kanban_view .oe_kanban_group_title
text-shadow: none !important
// au BufWritePost,FileWritePost *.sass :!sass --style expanded --line-numbers <afile> > "%:p:r.css"
// vim:tabstop=4:shiftwidth=4:softtabstop=4:fdm=marker:

View File

@ -826,7 +826,7 @@ instance.web_kanban.KanbanRecord = instance.web.Widget.extend({
type = $action.data('type') || 'button',
method = 'do_action_' + (type === 'action' ? 'object' : type);
if ((type === 'edit' || type === 'delete') && ! self.view.is_action_enabled(type)) {
self.view.open_record(self.id);
self.view.open_record(self.id, true);
} else if (_.str.startsWith(type, 'switch_')) {
self.view.do_switch_view(type.substr(7));
} else if (typeof self[method] === 'function') {
@ -1040,6 +1040,7 @@ instance.web_kanban.QuickCreate = instance.web.Widget.extend({
});
$(".oe_kanban_quick_create_add", this.$el).click(function () {
self.quick_add();
self.focus();
});
$(".oe_kanban_quick_create_close", this.$el).click(function (ev) {
ev.preventDefault();

View File

@ -74,7 +74,7 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({
$.when(this.action_manager.do_action(action)).then(function() {
var viewmanager = self.action_manager.inner_widget;
var controller = viewmanager.views[viewmanager.active_view].controller;
controller.on('view_loaded', function(){
controller.on('view_loaded', self, function(){
$(controller.groups).bind({
'selected': function(e, ids, records) {
self.main_view_id = ids[0];