summaryrefslogtreecommitdiff
path: root/addons/web
diff options
context:
space:
mode:
authorqsm-odoo <qsm@odoo.com>2018-07-16 16:48:59 +0200
committerqsm-odoo <qsm@odoo.com>2018-07-27 12:36:54 +0200
commitc59380bac5bbd47bc7dcd92b38049af29a62c3d1 (patch)
treed7d2597657a11138e243f228ebef98cd4ffc4cf6 /addons/web
parent81f359c81c69af2a5ec0645602e2bb43b2e16721 (diff)
[REF] *: BS4, rename btn-default to btn-secondary
BS4 "btn-default" class was replaced with "btn-secondary", which makes more sense.
Diffstat (limited to 'addons/web')
-rw-r--r--addons/web/static/src/js/core/dialog.js4
-rw-r--r--addons/web/static/src/js/core/dom.js4
-rw-r--r--addons/web/static/src/js/fields/relational_fields.js2
-rw-r--r--addons/web/static/src/js/views/form/form_renderer.js21
-rw-r--r--addons/web/static/src/js/views/kanban/kanban_controller.js2
-rw-r--r--addons/web/static/src/js/views/search/search_view_mobile.js2
-rw-r--r--addons/web/static/src/js/views/view_dialogs.js4
-rw-r--r--addons/web/static/src/js/widgets/dropdown_menu.js2
-rw-r--r--addons/web/static/src/scss/control_panel.scss2
-rw-r--r--addons/web/static/src/scss/webclient.scss2
-rw-r--r--addons/web/static/src/scss/webclient_extra.scss2
-rw-r--r--addons/web/static/src/xml/base.xml64
-rw-r--r--addons/web/static/src/xml/kanban.xml2
-rw-r--r--addons/web/static/src/xml/report.xml4
-rw-r--r--addons/web/static/src/xml/web_calendar.xml6
-rw-r--r--addons/web/static/tests/chrome/action_manager_tests.js2
-rw-r--r--addons/web/static/tests/fields/relational_fields_tests.js14
-rw-r--r--addons/web/static/tests/services/notification_service_tests.js2
-rw-r--r--addons/web/static/tests/views/calendar_tests.js4
-rw-r--r--addons/web/static/tests/views/form_tests.js24
-rw-r--r--addons/web/static/tests/views/kanban_tests.js6
-rw-r--r--addons/web/static/tests/views/list_tests.js2
-rw-r--r--addons/web/views/webclient_templates.xml2
23 files changed, 90 insertions, 89 deletions
diff --git a/addons/web/static/src/js/core/dialog.js b/addons/web/static/src/js/core/dialog.js
index 847845ae17e..9cca9c1127a 100644
--- a/addons/web/static/src/js/core/dialog.js
+++ b/addons/web/static/src/js/core/dialog.js
@@ -40,7 +40,7 @@ var Dialog = Widget.extend({
* button is added to allow closing the dialog
* @param {string} [options.buttons[].text]
* @param {string} [options.buttons[].classes]
- * Default to 'btn-primary' if only one button, 'btn-default'
+ * Default to 'btn-primary' if only one button, 'btn-secondary'
* otherwise
* @param {boolean} [options.buttons[].close=false]
* @param {function} [options.buttons[].click]
@@ -123,7 +123,7 @@ var Dialog = Widget.extend({
_.each(buttons, function (buttonData) {
var $button = dom.renderButton({
attrs: {
- class: buttonData.classes || (buttons.length > 1 ? 'btn-default' : 'btn-primary'),
+ class: buttonData.classes || (buttons.length > 1 ? 'btn-secondary' : 'btn-primary'),
disabled: buttonData.disabled,
},
icon: buttonData.icon,
diff --git a/addons/web/static/src/js/core/dom.js b/addons/web/static/src/js/core/dom.js
index 81f5bfec5c0..ba3eebf9bea 100644
--- a/addons/web/static/src/js/core/dom.js
+++ b/addons/web/static/src/js/core/dom.js
@@ -208,7 +208,7 @@ return {
* @param {Object} options
* @param {Object} [options.attrs] - Attributes to put on the button element
* @param {string} [options.attrs.type='button']
- * @param {string} [options.attrs.class='btn-default']
+ * @param {string} [options.attrs.class='btn-secondary']
* Note: automatically completed with "btn btn-X"
* (@see options.size for the value of X)
* @param {string} [options.size] - @see options.attrs.class
@@ -237,7 +237,7 @@ return {
if (options.size) {
jQueryParams.class += (' btn-' + options.size);
}
- jQueryParams.class += (' ' + (extraClasses || 'btn-default'));
+ jQueryParams.class += (' ' + (extraClasses || 'btn-secondary'));
var $button = $('<button/>', jQueryParams);
diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js
index c1c458d1935..73bcc1f1f35 100644
--- a/addons/web/static/src/js/fields/relational_fields.js
+++ b/addons/web/static/src/js/fields/relational_fields.js
@@ -968,7 +968,7 @@ var FieldX2Many = AbstractField.extend({
_renderButtons: function () {
if (!this.isReadonly && this.view.arch.tag === 'kanban') {
this.$buttons = $(qweb.render('KanbanView.buttons', {
- btnClass: 'btn-default',
+ btnClass: 'btn-secondary',
create_text: this.nodeOptions.create_text,
}));
this.$buttons.on('click', 'button.o-kanban-button-new', this._onAddRecord.bind(this));
diff --git a/addons/web/static/src/js/views/form/form_renderer.js b/addons/web/static/src/js/views/form/form_renderer.js
index a96742bd0e2..5d4e2ad4cb5 100644
--- a/addons/web/static/src/js/views/form/form_renderer.js
+++ b/addons/web/static/src/js/views/form/form_renderer.js
@@ -159,9 +159,9 @@ var FormRenderer = BasicRenderer.extend({
.removeAttr('disabled');
},
/**
- * Put the focus on the last activated widget.
+ * Put the focus on the last activated widget.
* This function is used when closing a dialog to give the focus back to the
- * form that has opened it and ensures that the focus is in the correct
+ * form that has opened it and ensures that the focus is in the correct
* field.
*/
focusLastActivatedWidget: function () {
@@ -396,12 +396,13 @@ var FormRenderer = BasicRenderer.extend({
// Current API of odoo for rendering buttons is "if classes are given
// use those on top of the 'btn' and 'btn-{size}' classes, otherwise act
- // as if 'btn-default' class was given". The problem is that, for header
- // buttons only, we allowed users to only indicate their custom classes
- // without having to explicitely ask for the 'btn-default' class to be
- // added. We force it so here when no bootstrap btn type class is found.
- if ($button.not('.btn-primary, .btn-default, .btn-link, .btn-success, .btn-info, .btn-warning, .btn-danger').length) {
- $button.addClass('btn-default');
+ // as if 'btn-secondary' class was given". The problem is that, for
+ // header buttons only, we allowed users to only indicate their custom
+ // classes without having to explicitely ask for the 'btn-secondary'
+ // class to be added. We force it so here when no bootstrap btn type
+ // class is found.
+ if ($button.not('.btn-primary, .btn-secondary, .btn-link, .btn-success, .btn-info, .btn-warning, .btn-danger').length) {
+ $button.addClass('btn-secondary');
}
this._addOnClickAction($button, node);
@@ -858,7 +859,7 @@ var FormRenderer = BasicRenderer.extend({
this.defs = defs;
var $form = this._renderNode(this.arch).addClass(this.className);
delete this.defs;
-
+
return $.when.apply($, defs).then(function () {
self._updateView($form.contents());
}, function () {
@@ -866,7 +867,7 @@ var FormRenderer = BasicRenderer.extend({
}).then(function(){
if (self.lastActivatedFieldIndex >= 0) {
self._activateNextFieldWidget(self.state, self.lastActivatedFieldIndex);
- }
+ }
});
},
/**
diff --git a/addons/web/static/src/js/views/kanban/kanban_controller.js b/addons/web/static/src/js/views/kanban/kanban_controller.js
index 26846e2c511..ab05fabd517 100644
--- a/addons/web/static/src/js/views/kanban/kanban_controller.js
+++ b/addons/web/static/src/js/views/kanban/kanban_controller.js
@@ -119,7 +119,7 @@ var KanbanController = BasicController.extend({
return this._super.apply(this, arguments);
},
/**
- * In grouped mode, set 'Create' button as btn-default if there is no column
+ * In grouped mode, set 'Create' button as btn-secondary if there is no column
* (except if we can't create new columns)
*
* @private
diff --git a/addons/web/static/src/js/views/search/search_view_mobile.js b/addons/web/static/src/js/views/search/search_view_mobile.js
index 852a65c0a37..ea7fe33ad81 100644
--- a/addons/web/static/src/js/views/search/search_view_mobile.js
+++ b/addons/web/static/src/js/views/search/search_view_mobile.js
@@ -54,7 +54,7 @@ SearchView.include({
* @private
*/
_toggleMobileSearchView: function () {
- this.$('.o_enable_searchview').toggleClass('btn-default', !!this.query.length);
+ this.$('.o_enable_searchview').toggleClass('btn-secondary', !!this.query.length);
this.$('.o_mobile_search').toggleClass('o_hidden');
},
diff --git a/addons/web/static/src/js/views/view_dialogs.js b/addons/web/static/src/js/views/view_dialogs.js
index ed0adf0ff3b..e99f81ccb08 100644
--- a/addons/web/static/src/js/views/view_dialogs.js
+++ b/addons/web/static/src/js/views/view_dialogs.js
@@ -109,7 +109,7 @@ var FormViewDialog = ViewDialog.extend({
options = options || {};
options.buttons = [{
text: (readonly ? _t("Close") : _t("Discard")),
- classes: "btn-default o_form_button_cancel",
+ classes: "btn-secondary o_form_button_cancel",
close: true,
click: function () {
if (!readonly) {
@@ -360,7 +360,7 @@ var SelectCreateDialog = ViewDialog.extend({
// Set the dialog's buttons
self.__buttons = [{
text: _t("Cancel"),
- classes: "btn-default o_form_button_cancel",
+ classes: "btn-secondary o_form_button_cancel",
close: true,
}];
if (!self.options.no_create) {
diff --git a/addons/web/static/src/js/widgets/dropdown_menu.js b/addons/web/static/src/js/widgets/dropdown_menu.js
index 77dd7be10d0..410d915dc9a 100644
--- a/addons/web/static/src/js/widgets/dropdown_menu.js
+++ b/addons/web/static/src/js/widgets/dropdown_menu.js
@@ -49,7 +49,7 @@ var DropdownMenu = Widget.extend({
// the style used is the one used in the search view
this.dropdownStyle = dropdownHeader.style || {
el: {class: 'btn-group o_dropdown', attrs: {}},
- mainButton: {class: 'o_dropdown_toggler_btn btn btn-default dropdown-toggle'},
+ mainButton: {class: 'o_dropdown_toggler_btn btn btn-secondary dropdown-toggle'},
};
this.items = items;
_.each(this.items, this._prepareItem.bind(this));
diff --git a/addons/web/static/src/scss/control_panel.scss b/addons/web/static/src/scss/control_panel.scss
index 54a8eb4ef76..25d4a725604 100644
--- a/addons/web/static/src/scss/control_panel.scss
+++ b/addons/web/static/src/scss/control_panel.scss
@@ -55,7 +55,7 @@
}
.o_form_binary_form span {
padding: 3px 25px;
- color: $btn-default-color;
+ color: $btn-secondary-color;
}
.o_form_binary_form:hover {
background-color: $table-bg-hover;
diff --git a/addons/web/static/src/scss/webclient.scss b/addons/web/static/src/scss/webclient.scss
index 68be626b93a..caea4378aa4 100644
--- a/addons/web/static/src/scss/webclient.scss
+++ b/addons/web/static/src/scss/webclient.scss
@@ -159,7 +159,7 @@ div.o_boolean_toggle {
.btn-link {
font-weight: $btn-font-weight;
- &.btn-default {
+ &.btn-secondary {
@include o-btn-link-variant($text-color, $headings-color);
}
&.btn-success, &.text-success {
diff --git a/addons/web/static/src/scss/webclient_extra.scss b/addons/web/static/src/scss/webclient_extra.scss
index cc87e526f8d..12729c149ae 100644
--- a/addons/web/static/src/scss/webclient_extra.scss
+++ b/addons/web/static/src/scss/webclient_extra.scss
@@ -47,5 +47,5 @@ select {
// Button
.btn-icon {
- @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
+ @include button-variant($btn-secondary-color, $btn-secondary-bg, $btn-secondary-border);
}
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index 5e64eb6d0a9..21c8ccc92c3 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -123,7 +123,7 @@
</div>
<div class="o_notification_content" t-if="widget.message"><t t-raw="widget.message"/></div>
<div t-if="widget.buttons.length" class="o_buttons">
- <button t-foreach="widget.buttons" t-as="button" t-attf-class="btn #{button.primary ? 'btn-primary' : 'btn-default'}" type="button">
+ <button t-foreach="widget.buttons" t-as="button" t-attf-class="btn #{button.primary ? 'btn-primary' : 'btn-secondary'}" type="button">
<t t-if="button.icon">
<i t-if="button.icon.indexOf('fa-') === 0" t-attf-class="fa fa-fw o_button_icon #{button.icon}" role="img" t-att-aria-label="button.name" t-att-title="button.name"/>
<img t-else="" t-att-src="button.icon" t-att-alt="button.name"/>
@@ -176,7 +176,7 @@
</table>
<button type="button" class="btn btn-primary oe_form_button">Change Password</button>
- <button type="button" class="btn btn-default oe_form_button oe_form_button_cancel" href="javascript:void(0)">Cancel</button>
+ <button type="button" class="btn btn-secondary oe_form_button oe_form_button_cancel" href="javascript:void(0)">Cancel</button>
</div>
</form>
@@ -342,7 +342,7 @@
<t t-name="Sidebar">
<t t-foreach="widget.sections" t-as="section">
<div class="btn-group o_dropdown">
- <button t-if="section.name != 'buttons'" class="o_dropdown_toggler_btn btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
+ <button t-if="section.name != 'buttons'" class="o_dropdown_toggler_btn btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<t t-if="section.name == 'files'" t-raw="widget.items[section.name].length || ''"/>
<t t-esc="section.label"/> <span class="caret"/>
</button>
@@ -400,7 +400,7 @@
<button type="button" class="btn btn-primary o_list_button_save" accesskey="s">
Save
</button>
- <button type="button" class="btn btn-default o_list_button_discard" accesskey="j">
+ <button type="button" class="btn btn-secondary o_list_button_discard" accesskey="j">
Discard
</button>
</div>
@@ -413,7 +413,7 @@
Edit
</button>
<button t-if="widget.is_action_enabled('create')" type="button"
- class="btn btn-default o_form_button_create" accesskey="c">
+ class="btn btn-secondary o_form_button_create" accesskey="c">
Create
</button>
</div>
@@ -423,7 +423,7 @@
Save
</button>
<button type="button"
- class="btn btn-default o_form_button_cancel" accesskey="j">
+ class="btn btn-secondary o_form_button_cancel" accesskey="j">
Discard
</button>
</div>
@@ -522,9 +522,9 @@
</ul>
</div>
<div class="btn-group" role="toolbar" aria-label="Change graph">
- <button class="btn btn-default fa fa-bar-chart-o o_graph_button" title="Bar Chart" aria-label="Bar Chart" data-mode="bar"/>
- <button class="btn btn-default fa fa-line-chart o_graph_button" title="Line Chart" aria-label="Line Chart" data-mode="line"/>
- <button class="btn btn-default fa fa-pie-chart o_graph_button" title="Pie Chart" aria-label="Pie Chart" data-mode="pie"/>
+ <button class="btn btn-secondary fa fa-bar-chart-o o_graph_button" title="Bar Chart" aria-label="Bar Chart" data-mode="bar"/>
+ <button class="btn btn-secondary fa fa-line-chart o_graph_button" title="Line Chart" aria-label="Line Chart" data-mode="line"/>
+ <button class="btn btn-secondary fa fa-pie-chart o_graph_button" title="Pie Chart" aria-label="Pie Chart" data-mode="pie"/>
</div>
</t>
<div t-name="GraphView.error" class="o_view_nocontent" role="alert">
@@ -551,9 +551,9 @@
</ul>
</div>
<div class="btn-group" role="toolbar" aria-label="Pivot settings">
- <button class="btn btn-default fa fa-expand o_pivot_flip_button" title="Flip axis" aria-label="Flip axis"/>
- <button class="btn btn-default fa fa-arrows-alt o_pivot_expand_button" title="Expand all" aria-label="Expand all"/>
- <button class="btn btn-default fa fa-download o_pivot_download" title="Download xls" aria-label="Download xls"/>
+ <button class="btn btn-secondary fa fa-expand o_pivot_flip_button" title="Flip axis" aria-label="Flip axis"/>
+ <button class="btn btn-secondary fa fa-arrows-alt o_pivot_expand_button" title="Expand all" aria-label="Expand all"/>
+ <button class="btn btn-secondary fa fa-download o_pivot_download" title="Download xls" aria-label="Download xls"/>
</div>
</t>
<t t-name="PivotView.FieldSelection">
@@ -613,7 +613,7 @@
<div t-if="hasModel" class="o_field_domain_panel">
<i class="fa fa-arrow-right" role="img" aria-label="Domain" title="Domain"/>
- <button t-if="isValid" class="btn btn-xs btn-default o_domain_show_selection_button" type="button">
+ <button t-if="isValid" class="btn btn-xs btn-secondary o_domain_show_selection_button" type="button">
<t t-esc="nbRecords"/> record(s)
</button>
<span t-else="" class="text-warning" role="alert"><i class="fa fa-exclamation-triangle" role="img" aria-label="Warning" title="Warning"/> Invalid domain</span>
@@ -834,7 +834,7 @@
t-att-id="widget.idForLabel"/>
<a role="button" class="o_dropdown_button" draggable="false"/>
</div>
- <button type="button" t-if="!widget.nodeOptions.no_open" class="fa fa-external-link btn btn-default o_external_button" tabindex="-1" draggable="false" aria-label="External link" title="External link"/>
+ <button type="button" t-if="!widget.nodeOptions.no_open" class="fa fa-external-link btn btn-secondary o_external_button" tabindex="-1" draggable="false" aria-label="External link" title="External link"/>
</div>
</t>
<t t-name="FieldReference" t-extend="FieldMany2One">
@@ -901,7 +901,7 @@
</t>
<t t-name="FieldStatus.content">
<t t-if="selection_folded.length">
- <button type="button" class="btn o_arrow_button btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">More <span class="caret"/></button>
+ <button type="button" class="btn o_arrow_button btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">More <span class="caret"/></button>
<ul class="dropdown-menu o-status-more" role="menu">
<li t-foreach="selection_folded" t-as="i">
<t t-call="FieldStatus.content.button"/>
@@ -919,11 +919,11 @@
<t t-esc="i.display_name" role="img" t-attf-aria-label="#{i.display_name} is current state"/>
</button>
<button type="button" t-att-data-value="i.id" disabled="disabled" title="Not active state" aria-pressed="false"
- class="btn o_arrow_button btn-default disabled" t-if="!i.selected and disabled">
+ class="btn o_arrow_button btn-secondary disabled" t-if="!i.selected and disabled">
<t t-esc="i.display_name" role="img" t-attf-aria-label="#{i.display_name} is not current state"/>
</button>
<button type="button" t-att-data-value="i.id" title="Not active state, click to change it" aria-pressed="false"
- class="btn o_arrow_button btn-default" t-if="!i.selected and !disabled">
+ class="btn o_arrow_button btn-secondary" t-if="!i.selected and !disabled">
<t t-esc="i.display_name" role="img" t-attf-aria-label="Click to change current state to #{i.display_name}"/>
</button>
</t>
@@ -971,8 +971,8 @@
t-att-autofocus="widget.attrs.autofocus"/>
<button type="button" class="btn btn-primary o_select_file_button" title="Select">Upload your file</button>
- <button type="button" class="btn btn-default fa fa-pencil o_select_file_button" title="Select" aria-label="Select"/>
- <button type="button" class="btn btn-default fa fa-trash-o o_clear_file_button" title="Clear" aria-label="Clear"/>
+ <button type="button" class="btn btn-secondary fa fa-pencil o_select_file_button" title="Select" aria-label="Select"/>
+ <button type="button" class="btn btn-secondary fa fa-trash-o o_clear_file_button" title="Clear" aria-label="Clear"/>
<span class="o_form_binary_progress">Uploading...</span>
<t t-call="HiddenInputFile">
@@ -1002,8 +1002,8 @@
<div t-if="widget.mode !== 'readonly'" class="o_form_pdf_controls mt8" role="toolbar" aria-label="PDF controls">
<span class="o_form_binary_progress">Uploading...</span>
<button type="button" class="btn btn-primary o_select_file_button" title="Select">Upload your file</button>
- <button class="btn btn-default fa fa-pencil o_select_file_button" title="Select" aria-label="Select" type="button"></button>
- <button class="btn btn-default fa fa-trash-o o_clear_file_button" title="Clear" aria-label="Clear" type="button"></button>
+ <button class="btn btn-secondary fa fa-pencil o_select_file_button" title="Select" aria-label="Select" type="button"></button>
+ <button class="btn btn-secondary fa fa-trash-o o_clear_file_button" title="Clear" aria-label="Clear" type="button"></button>
</div>
<iframe class="o_pdfview_iframe o_field_pdfviewer"/>
<t t-call="HiddenInputPDFFile">
@@ -1024,7 +1024,7 @@
<div t-name="FieldBinaryFileUploader" t-attf-class="oe_fileupload #{widget.attrs.class ? widget.attrs.class :''}" aria-atomic="true">
<div class="oe_placeholder_files"/>
<div t-if="widget.mode !== 'readonly'" class="oe_add">
- <button class="btn btn-default o_attach" title="Attach"><span class="fa fa-paperclip" aria-label="Attach"/> <t t-esc="widget.string"/></button>
+ <button class="btn btn-secondary o_attach" title="Attach"><span class="fa fa-paperclip" aria-label="Attach"/> <t t-esc="widget.string"/></button>
<t t-call="HiddenInputFile">
<t t-set="fileupload_id" t-value="widget.fileupload_id"/>
<t t-set="fileupload_action" t-translation="off">/web/binary/upload_attachment</t>
@@ -1129,7 +1129,7 @@
</li>
<li class="o_add_filter_menu">
<button class="btn btn-primary o_apply_filter" type="button">Apply</button>
- <button class="btn btn-default o_add_condition" type="button">
+ <button class="btn btn-secondary o_add_condition" type="button">
<span class="fa fa-plus-circle"/>
Add a condition
</button>
@@ -1276,7 +1276,7 @@
</t>
<div t-name="SearchView.FavoriteMenu" class="btn-group o_dropdown">
- <button class="o_dropdown_toggler_btn btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false" tabindex="-1" aria-label="Favorites" title="Favorites">
+ <button class="o_dropdown_toggler_btn btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false" tabindex="-1" aria-label="Favorites" title="Favorites">
<span class="fa fa-star"/> Favorites <span t-attf-class="#{widget.isMobile ? 'fa fa-chevron-right pull-right mt4' : 'caret'}"/>
</button>
<ul class="dropdown-menu o_favorites_menu" role="menu">
@@ -1331,11 +1331,11 @@
<div class="o_left_field_panel"/>
</div>
<div class="o_center_panel">
- <button type="button" class="btn btn-default o_add_field">Add</button>
- <button type="button" class="btn btn-default o_remove_field">Remove</button>
- <button type="button" class="btn btn-default o_remove_all_field">Remove All</button>
- <button type="button" class="btn btn-default o_move_up">Move Up</button>
- <button type="button" class="btn btn-default o_move_down">Move Down</button>
+ <button type="button" class="btn btn-secondary o_add_field">Add</button>
+ <button type="button" class="btn btn-secondary o_remove_field">Remove</button>
+ <button type="button" class="btn btn-secondary o_remove_all_field">Remove All</button>
+ <button type="button" class="btn btn-secondary o_move_up">Move Up</button>
+ <button type="button" class="btn btn-secondary o_move_down">Move Down</button>
</div>
<div class="o_right_panel">
<h4>
@@ -1363,7 +1363,7 @@
</t>
</t>
<t t-name="Export.SaveList">
- <label>Save as:</label> <input type="text"/><button type="button" class="btn btn-default">Ok</button>
+ <label>Save as:</label> <input type="text"/><button type="button" class="btn btn-secondary">Ok</button>
</t>
<t t-name="Export.SavedList">
<label>Saved exports: </label>
@@ -1373,7 +1373,7 @@
<option t-att-value="export.id"><t t-esc="export.name"/></option>
</t>
</select>
- <button type="button" class="btn btn-default o_delete_exported_list">Delete</button>
+ <button type="button" class="btn btn-secondary o_delete_exported_list">Delete</button>
</t>
<t t-name="Throbber">
@@ -1519,7 +1519,7 @@
</t>
<t t-name="AttachDocument">
- <button class="btn btn-default o_attachment_button">
+ <button class="btn btn-secondary o_attachment_button">
<span class="o_attach_document"><t t-esc="widget.node.attrs.string"/></span>
<span class="d-none">
<t t-call="HiddenInputFile">
diff --git a/addons/web/static/src/xml/kanban.xml b/addons/web/static/src/xml/kanban.xml
index 7fd461a7c94..a6d5ecc4ff4 100644
--- a/addons/web/static/src/xml/kanban.xml
+++ b/addons/web/static/src/xml/kanban.xml
@@ -72,7 +72,7 @@
<div>
<button class="btn btn-primary o_kanban_add">Add</button>
<button class="btn btn-primary o_kanban_edit">Edit</button>
- <button class="btn btn-default o_kanban_cancel ml8">Discard</button>
+ <button class="btn btn-secondary o_kanban_cancel ml8">Discard</button>
</div>
</t>
diff --git a/addons/web/static/src/xml/report.xml b/addons/web/static/src/xml/report.xml
index 927502e19ac..49313e8de5a 100644
--- a/addons/web/static/src/xml/report.xml
+++ b/addons/web/static/src/xml/report.xml
@@ -11,11 +11,11 @@
<button type="button" class="btn btn-primary o_report_print" title="Print">Print</button>
</div>
<div class="o_edit_mode_available">
- <button type="button" class="btn btn-default o_report_edit" title="Edit">Edit</button>
+ <button type="button" class="btn btn-secondary o_report_edit" title="Edit">Edit</button>
</div>
<div class="o_report_edit_mode">
<button type="button" class="btn btn-primary o_report_save" title="Save">Save</button>
- <button type="button" class="btn btn-default o_report_discard" title="Discard">Discard</button>
+ <button type="button" class="btn btn-secondary o_report_discard" title="Discard">Discard</button>
</div>
</t>
</template> \ No newline at end of file
diff --git a/addons/web/static/src/xml/web_calendar.xml b/addons/web/static/src/xml/web_calendar.xml
index daf378ff3c6..3eb95710c48 100644
--- a/addons/web/static/src/xml/web_calendar.xml
+++ b/addons/web/static/src/xml/web_calendar.xml
@@ -69,9 +69,9 @@
<button class="o_calendar_button_next btn btn-primary" aria-label="Next" title="Next"><span class="fa fa-arrow-right"/></button>
</t>
<div class="btn-group">
- <button type="button" class="o_calendar_button_day btn btn-default">Day</button>
- <button type="button" class="o_calendar_button_week btn btn-default">Week</button>
- <button type="button" class="o_calendar_button_month btn btn-default">Month</button>
+ <button type="button" class="o_calendar_button_day btn btn-secondary">Day</button>
+ <button type="button" class="o_calendar_button_week btn btn-secondary">Week</button>
+ <button type="button" class="o_calendar_button_month btn btn-secondary">Month</button>
</div>
</div>
</t>
diff --git a/addons/web/static/tests/chrome/action_manager_tests.js b/addons/web/static/tests/chrome/action_manager_tests.js
index 2f003c07577..15ccbb38a7f 100644
--- a/addons/web/static/tests/chrome/action_manager_tests.js
+++ b/addons/web/static/tests/chrome/action_manager_tests.js
@@ -2677,7 +2677,7 @@ QUnit.module('ActionManager', {
"should display a modal dialog to confirm discard action");
// cancel
- $('.modal .modal-footer button.btn-default').click();
+ $('.modal .modal-footer button.btn-secondary').click();
assert.strictEqual(actionManager.$('.o_form_view').length, 1,
"should still be in form view");
diff --git a/addons/web/static/tests/fields/relational_fields_tests.js b/addons/web/static/tests/fields/relational_fields_tests.js
index fd81fba68ab..8c91b0f4d54 100644
--- a/addons/web/static/tests/fields/relational_fields_tests.js
+++ b/addons/web/static/tests/fields/relational_fields_tests.js
@@ -4048,7 +4048,7 @@ QUnit.module('relational_fields', {
"there should be two records in the one2many in the dialog");
// click on 'Discard'
- $('.modal-footer .btn-default').click();
+ $('.modal-footer .btn-secondary').click();
assert.strictEqual($('.modal').length, 0, "dialog should be closed");
@@ -4800,8 +4800,8 @@ QUnit.module('relational_fields', {
'delete icon should be visible in edit');
assert.ok(form.$('.o_field_one2many .o-kanban-button-new').length,
'"Create" button should be visible in edit');
- assert.ok(form.$('.o_field_one2many .o-kanban-button-new').hasClass('btn-default'),
- "'Create' button should have className 'btn-default'");
+ assert.ok(form.$('.o_field_one2many .o-kanban-button-new').hasClass('btn-secondary'),
+ "'Create' button should have className 'btn-secondary'");
assert.strictEqual(form.$('.o_field_one2many .o-kanban-button-new').text().trim(), "Add",
'Create button should have "Add" label');
@@ -5380,7 +5380,7 @@ QUnit.module('relational_fields', {
"pager should still display the correct total");
// click on cancel
- $('.modal .modal-footer .btn-default').click(); // click on cancel
+ $('.modal .modal-footer .btn-secondary').click(); // click on cancel
assert.strictEqual(form.$('.o_cp_pager').text().trim(), '1-3 / 4',
"pager should again display the correct total");
@@ -5471,7 +5471,7 @@ QUnit.module('relational_fields', {
'a confirmation model should be opened');
// click on cancel, the line should still be selected
- $('.modal .modal-footer button.btn-default').click();
+ $('.modal .modal-footer button.btn-secondary').click();
assert.strictEqual(form.$('tr.o_data_row.o_selected_row').length, 1,
"should still have 1 selected data row");
@@ -11139,9 +11139,9 @@ QUnit.module('relational_fields', {
var $selectedStatus = form.$('.o_statusbar_status button[data-value="4"]');
assert.ok($selectedStatus.hasClass('btn-primary') && $selectedStatus.hasClass('disabled'),
"selected status should be btn-primary and disabled");
- var $clickable = form.$('.o_statusbar_status button.btn-default:not(.dropdown-toggle):not(:disabled)');
+ var $clickable = form.$('.o_statusbar_status button.btn-secondary:not(.dropdown-toggle):not(:disabled)');
assert.strictEqual($clickable.length, 2,
- "other status should be btn-default and not disabled");
+ "other status should be btn-secondary and not disabled");
$clickable.last().click(); // (last is visually the first here (css))
var $status = form.$('.o_statusbar_status button[data-value="1"]');
assert.ok($status.hasClass("btn-primary") && $status.hasClass("disabled"),
diff --git a/addons/web/static/tests/services/notification_service_tests.js b/addons/web/static/tests/services/notification_service_tests.js
index e2619e393f4..aff3de8cc39 100644
--- a/addons/web/static/tests/services/notification_service_tests.js
+++ b/addons/web/static/tests/services/notification_service_tests.js
@@ -184,7 +184,7 @@ QUnit.module('Services', {
var $notification = $('body .o_notification_manager .o_notification');
assert.strictEqual($notification.eq(0).find('.o_close').length, 1, "should display the close button in notification");
assert.strictEqual(_.str.trim($notification.eq(0).html().replace(/\s+/g, ' ')),
- "<a aria-label=\"Close\" class=\"fa fa-times o_close\" href=\"#\" title=\"Close\"></a> <div class=\"o_notification_title\"> <span role=\"img\" aria-label=\"Notification undefined\" class=\"o_icon fa fa-3x fa-question-circle-o\" title=\"Notification undefined\"></span> a0 </div> <div class=\"o_notification_content\">b0</div> <div class=\"o_buttons\"> <button type=\"button\" class=\"btn btn-primary\"> <span>accept0</span> </button><button type=\"button\" class=\"btn btn-default\"> <span>refuse0</span> </button> </div>",
+ "<a aria-label=\"Close\" class=\"fa fa-times o_close\" href=\"#\" title=\"Close\"></a> <div class=\"o_notification_title\"> <span role=\"img\" aria-label=\"Notification undefined\" class=\"o_icon fa fa-3x fa-question-circle-o\" title=\"Notification undefined\"></span> a0 </div> <div class=\"o_notification_content\">b0</div> <div class=\"o_buttons\"> <button type=\"button\" class=\"btn btn-primary\"> <span>accept0</span> </button><button type=\"button\" class=\"btn btn-secondary\"> <span>refuse0</span> </button> </div>",
"should display notification");
$notification.find('.o_buttons button:contains(accept0)').click();
diff --git a/addons/web/static/tests/views/calendar_tests.js b/addons/web/static/tests/views/calendar_tests.js
index 9a8d0e9f043..0bdc22bd3ee 100644
--- a/addons/web/static/tests/views/calendar_tests.js
+++ b/addons/web/static/tests/views/calendar_tests.js
@@ -549,7 +549,7 @@ QUnit.module('Views', {
// delete record
$newevent.trigger('click');
- $('.modal button.btn-default:contains(Delete)').trigger('click');
+ $('.modal button.btn-secondary:contains(Delete)').trigger('click');
$('.modal button.btn-primary:contains(Ok)').trigger('click');
assert.strictEqual(calendar.$('.fc-content').length, 0, "should delete the record");
@@ -798,7 +798,7 @@ QUnit.module('Views', {
// delete record
$newevent.trigger('click');
- $('.modal button.btn-default:contains(Delete)').trigger('click');
+ $('.modal button.btn-secondary:contains(Delete)').trigger('click');
$('.modal button.btn-primary:contains(Ok)').trigger('click');
assert.strictEqual(calendar.$('.fc-content').length, 0, "should delete the record");
diff --git a/addons/web/static/tests/views/form_tests.js b/addons/web/static/tests/views/form_tests.js
index 868101833aa..232a6d59f30 100644
--- a/addons/web/static/tests/views/form_tests.js
+++ b/addons/web/static/tests/views/form_tests.js
@@ -1122,7 +1122,7 @@ QUnit.module('Views', {
'<button name="0"/>' +
'<button name="1" class="btn-primary"/>' +
'<button name="2" class="oe_highlight"/>' +
- '<button name="3" class="btn-default"/>' +
+ '<button name="3" class="btn-secondary"/>' +
'<button name="4" class="btn-link"/>' +
'<button name="5" class="oe_link"/>' +
'<button name="6" class="btn-success"/>' +
@@ -1132,7 +1132,7 @@ QUnit.module('Views', {
'<button name="8"/>' +
'<button name="9" class="btn-primary"/>' +
'<button name="10" class="oe_highlight"/>' +
- '<button name="11" class="btn-default"/>' +
+ '<button name="11" class="btn-secondary"/>' +
'<button name="12" class="btn-link"/>' +
'<button name="13" class="oe_link"/>' +
'<button name="14" class="btn-success"/>' +
@@ -1142,13 +1142,13 @@ QUnit.module('Views', {
res_id: 2,
});
- assert.strictEqual(form.$('button[name="0"]').attr('class'), 'btn btn-default',
+ assert.strictEqual(form.$('button[name="0"]').attr('class'), 'btn btn-secondary',
"header buttons without any class should receive the correct classes");
assert.strictEqual(form.$('button[name="1"]').attr('class'), 'btn btn-primary',
"header buttons with bootstrap primary class should receive the correct classes");
assert.strictEqual(form.$('button[name="2"]').attr('class'), 'btn btn-primary',
"header buttons with oe_highlight class should receive the correct classes");
- assert.strictEqual(form.$('button[name="3"]').attr('class'), 'btn btn-default',
+ assert.strictEqual(form.$('button[name="3"]').attr('class'), 'btn btn-secondary',
"header buttons with bootstrap default class should receive the correct classes");
assert.strictEqual(form.$('button[name="4"]').attr('class'), 'btn btn-link',
"header buttons with bootstrap link class should receive the correct classes");
@@ -1156,15 +1156,15 @@ QUnit.module('Views', {
"header buttons with oe_link class should receive the correct classes");
assert.strictEqual(form.$('button[name="6"]').attr('class'), 'btn btn-success',
"header buttons with bootstrap state class should receive the correct classes");
- assert.strictEqual(form.$('button[name="7"]').attr('class'), 'btn o_this_is_a_button btn-default',
+ assert.strictEqual(form.$('button[name="7"]').attr('class'), 'btn o_this_is_a_button btn-secondary',
"header buttons with custom classes should receive the correct classes");
- assert.strictEqual(form.$('button[name="8"]').attr('class'), 'btn btn-default',
+ assert.strictEqual(form.$('button[name="8"]').attr('class'), 'btn btn-secondary',
"sheet header buttons without any class should receive the correct classes");
assert.strictEqual(form.$('button[name="9"]').attr('class'), 'btn btn-primary',
"sheet buttons with bootstrap primary class should receive the correct classes");
assert.strictEqual(form.$('button[name="10"]').attr('class'), 'btn btn-primary',
"sheet buttons with oe_highlight class should receive the correct classes");
- assert.strictEqual(form.$('button[name="11"]').attr('class'), 'btn btn-default',
+ assert.strictEqual(form.$('button[name="11"]').attr('class'), 'btn btn-secondary',
"sheet buttons with bootstrap default class should receive the correct classes");
assert.strictEqual(form.$('button[name="12"]').attr('class'), 'btn btn-link',
"sheet buttons with bootstrap link class should receive the correct classes");
@@ -1996,7 +1996,7 @@ QUnit.module('Views', {
arch: '<form string="Partners">' +
'<field name="foo"/>' +
'<button string="Do something" class="btn-primary" name="abc" type="object"/>' +
- '<button string="Discard" class="btn-default" special="cancel"/>' +
+ '<button string="Discard" class="btn-secondary" special="cancel"/>' +
'</form>',
res_id: 1,
mockRPC: function (route, args) {
@@ -2246,7 +2246,7 @@ QUnit.module('Views', {
// click on discard and cancel the confirm request
form.$buttons.find('.o_form_button_cancel').click();
assert.ok($('.modal').length, 'a confirm modal should be displayed');
- $('.modal-footer .btn-default').click(); // click on cancel
+ $('.modal-footer .btn-secondary').click(); // click on cancel
assert.strictEqual(form.$('input').val(), 'new value', 'input should still contain new value');
// click on discard and confirm
@@ -2482,7 +2482,7 @@ QUnit.module('Views', {
// click on the pager to switch to the next record and cancel the confirm request
form.pager.$('.o_pager_next').click(); // click on next
assert.ok($('.modal').length, 'a confirm modal should be displayed');
- $('.modal-footer .btn-default').click(); // click on cancel
+ $('.modal-footer .btn-secondary').click(); // click on cancel
assert.strictEqual(form.$('input').val(), 'new value', 'input should still contain new value');
assert.strictEqual(form.pager.$('.o_pager_value').text(), "1", 'pager value should still be 1');
@@ -5861,7 +5861,7 @@ QUnit.module('Views', {
form.$('.o_statusbar_buttons button').click();
assert.ok(form.$('.o_statusbar_buttons button').prop('disabled'),
'button should be disabled');
- $('.modal-footer button.btn-default').click();
+ $('.modal-footer button.btn-secondary').click();
assert.ok(!form.$('.o_statusbar_buttons button').prop('disabled'),
'button should no longer be disabled');
@@ -6519,7 +6519,7 @@ QUnit.module('Views', {
}
});
- form.$('.o_form_statusbar .btn-default').click();
+ form.$('.o_form_statusbar .btn-secondary').click();
form.destroy();
});
diff --git a/addons/web/static/tests/views/kanban_tests.js b/addons/web/static/tests/views/kanban_tests.js
index bbf02b1eaae..5d18d03c553 100644
--- a/addons/web/static/tests/views/kanban_tests.js
+++ b/addons/web/static/tests/views/kanban_tests.js
@@ -184,7 +184,7 @@ QUnit.module('Views', {
envIDs = [4];
kanban.$('.o_kanban_group:last .o_column_archive_records').click(); // Click on 'Archive All'
assert.ok($('.modal').length, 'a confirm modal should be displayed');
- $('.modal-footer .btn-default').click(); // Click on 'Cancel'
+ $('.modal-footer .btn-secondary').click(); // Click on 'Cancel'
assert.strictEqual(kanban.$('.o_kanban_group:last .o_kanban_record').length, 3, "still last column should contain 3 records");
kanban.$('.o_kanban_group:last .o_column_archive_records').click();
assert.ok($('.modal').length, 'a confirm modal should be displayed');
@@ -1795,7 +1795,7 @@ QUnit.module('Views', {
// delete second column (first cancel the confirm request, then confirm)
kanban.$('.o_kanban_group:last .o_column_delete').click(); // click on delete
assert.ok($('.modal').length, 'a confirm modal should be displayed');
- $('.modal-footer .btn-default').click(); // click on cancel
+ $('.modal-footer .btn-secondary').click(); // click on cancel
assert.strictEqual(kanban.$('.o_kanban_group:last').data('id'), 5,
'column [5, "xmo"] should still be there');
kanban.$('.o_kanban_group:last .o_column_delete').click(); // click on delete
@@ -1928,7 +1928,7 @@ QUnit.module('Views', {
kanban.$('.o_kanban_group[data-id=5] .o_column_edit').click(); // click on 'Edit'
$('.modal .o_form_editable input').val('ged').trigger('input'); // change the value
nbRPCs = 0;
- $('.modal-footer .btn-default').click(); // click on discard
+ $('.modal-footer .btn-secondary').click(); // click on discard
assert.ok(!$('.modal').length, 'the modal should be closed');
assert.strictEqual(kanban.$('.o_kanban_group[data-id=5] .o_column_title').text(), 'xmo',
'title of the column should still be "xmo"');
diff --git a/addons/web/static/tests/views/list_tests.js b/addons/web/static/tests/views/list_tests.js
index 52b7eaed31b..1ea69e9320b 100644
--- a/addons/web/static/tests/views/list_tests.js
+++ b/addons/web/static/tests/views/list_tests.js
@@ -917,7 +917,7 @@ QUnit.module('Views', {
assert.verifySteps(['/web/dataset/search_read']);
list.sidebar.$('a:contains(Archive)').click();
assert.strictEqual($('.modal').length, 1, 'a confirm modal should be displayed');
- $('.modal-footer .btn-default').click(); // Click on 'Cancel'
+ $('.modal-footer .btn-secondary').click(); // Click on 'Cancel'
assert.strictEqual(list.$('tbody td.o_list_record_selector').length, 4, "still should have 4 records");
list.sidebar.$('a:contains(Archive)').click();
diff --git a/addons/web/views/webclient_templates.xml b/addons/web/views/webclient_templates.xml
index 5bbb480f735..b05e7e05bf6 100644
--- a/addons/web/views/webclient_templates.xml
+++ b/addons/web/views/webclient_templates.xml
@@ -363,7 +363,7 @@
<div class="input-group">
<input type="text" name="db" t-att-value="request.db" id="db" class="form-control" required="required" readonly="readonly"/>
<span class="input-group-btn">
- <a role="button" href="/web/database/selector" class="btn btn-default">Select <i class="fa fa-database" role="img" aria-label="Database" title="Database"></i></a>
+ <a role="button" href="/web/database/selector" class="btn btn-secondary">Select <i class="fa fa-database" role="img" aria-label="Database" title="Database"></i></a>
</span>
</div>
</div>