diff --git a/runbot/__manifest__.py b/runbot/__manifest__.py index 7ec2f1b5..c1603c7a 100644 --- a/runbot/__manifest__.py +++ b/runbot/__manifest__.py @@ -36,6 +36,8 @@ 'templates/nginx.xml', 'templates/build_error.xml', + 'views/assets.xml', + 'views/branch_views.xml', 'views/build_error_views.xml', 'views/build_views.xml', diff --git a/runbot/models/custom_trigger.py b/runbot/models/custom_trigger.py index 6cca1c19..7c8b8eae 100644 --- a/runbot/models/custom_trigger.py +++ b/runbot/models/custom_trigger.py @@ -30,7 +30,7 @@ class CustomTriggerWizard(models.TransientModel): trigger_id = fields.Many2one('runbot.trigger', domain="[('project_id', '=', project_id)]") config_id = fields.Many2one('runbot.build.config', string="Config id", default=lambda self: self.env.ref('runbot.runbot_build_config_custom_multi')) - config_data = fields.Text("Config data") # Text, hack to make it editable waiting for json widget + config_data = JsonDictField("Config data") number_build = fields.Integer('Number builds for config multi', default=10) @@ -65,8 +65,7 @@ class CustomTriggerWizard(models.TransientModel): @api.onchange('number_build', 'child_extra_params', 'child_dump_url', 'child_config_id') def _onchange_config_data(self): for wizard in self: - config_data = self._get_config_data() - wizard.config_data = json.dumps(config_data, indent=True) + wizard.config_data = self._get_config_data() def _get_config_data(self): config_data = {} @@ -93,5 +92,5 @@ class CustomTriggerWizard(models.TransientModel): 'bundle_id': self.bundle_id.id, 'trigger_id': self.trigger_id.id, 'config_id': self.config_id.id, - 'config_data': json.loads(self.config_data), + 'config_data': self.config_data, }) diff --git a/runbot/static/src/js/json_field.js b/runbot/static/src/js/json_field.js new file mode 100644 index 00000000..8d1d1af5 --- /dev/null +++ b/runbot/static/src/js/json_field.js @@ -0,0 +1,44 @@ +odoo.define('runbot.json_field', function (require) { +"use strict"; + +var basic_fields = require('web.basic_fields'); +var registry = require('web.field_registry'); +var field_utils = require('web.field_utils'); +var dom = require('web.dom'); + + +var FieldJson = basic_fields.FieldChar.extend({ + init: function () { + this._super.apply(this, arguments); + + if (this.mode === 'edit') { + this.tagName = 'textarea'; + } + this.autoResizeOptions = {parent: this}; + }, + + start: function () { + if (this.mode === 'edit') { + dom.autoresize(this.$el, this.autoResizeOptions); + } + return this._super(); + }, + _onKeydown: function (ev) { + if (ev.which === $.ui.keyCode.ENTER) { + ev.stopPropagation(); + return; + } + this._super.apply(this, arguments); + }, + +}); + +registry.add('jsonb', FieldJson) +console.log(field_utils); + +function stringify(obj) { + return JSON.stringify(obj, null, '\t') +} +field_utils.format.jsonb = stringify; +field_utils.parse.jsonb = JSON.parse; +}); \ No newline at end of file diff --git a/runbot/views/assets.xml b/runbot/views/assets.xml new file mode 100644 index 00000000..f300b028 --- /dev/null +++ b/runbot/views/assets.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/runbot/views/build_views.xml b/runbot/views/build_views.xml index 2bdc19a3..ddeb9333 100644 --- a/runbot/views/build_views.xml +++ b/runbot/views/build_views.xml @@ -6,19 +6,37 @@
- - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
@@ -89,9 +107,7 @@ - - diff --git a/runbot/views/bundle_views.xml b/runbot/views/bundle_views.xml index 2ebaa2d0..03f205a5 100644 --- a/runbot/views/bundle_views.xml +++ b/runbot/views/bundle_views.xml @@ -65,6 +65,7 @@ + @@ -79,6 +80,35 @@ + + + runbot.bundle.trigger.custom + + + + + + + + + + + + + runbot.bundle.trigger.custom + +
+ + + + + + + +
+
+
+ runbot.bundle @@ -121,6 +151,7 @@ + runbot.batch @@ -142,7 +173,12 @@ - + + Custom triggers + ir.actions.act_window + runbot.bundle.trigger.custom + tree,form + Bundles ir.actions.act_window diff --git a/runbot/views/menus.xml b/runbot/views/menus.xml index 0b7de659..2d64d6f7 100644 --- a/runbot/views/menus.xml +++ b/runbot/views/menus.xml @@ -10,11 +10,10 @@ - + -