summaryrefslogtreecommitdiff
path: root/addons/web_process/static/src/js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web_process/static/src/js')
-rw-r--r--addons/web_process/static/src/js/process.js291
1 files changed, 0 insertions, 291 deletions
diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js
deleted file mode 100644
index c2192a9a10a..00000000000
--- a/addons/web_process/static/src/js/process.js
+++ /dev/null
@@ -1,291 +0,0 @@
-openerp.web_process = function (instance) {
- var QWeb = instance.web.qweb,
- _t = instance.web._t;
- instance.web.ViewManager.include({
- start: function() {
- var _super = this._super();
- this.process_check();
- this.process_help = this.action ? this.action.help : 'Help: Not Defined';
- this.model = this.dataset.model;
- if(this.action) this.process_model = this.action.res_model;
- else this.process_model = this.model;
- return _super;
- },
- process_check: function() {
- var self = this,
- grandparent = this.getParent() && this.getParent().getParent(),
- view = this.views[this.views_src[0].view_type],
- $process_view = this.$el.find('.oe_process');
- if (!(grandparent instanceof instance.web.WebClient) ||
- !(view.view_type === this.views_src[0].view_type
- && view.view_id === this.views_src[0].view_id)) {
- $process_view.hide();
- return;
- }
- $process_view.click(function() {
- self.initialize_process_view();
- });
- },
- initialize_process_view: function() {
- var self = this;
- this.record_id = false;
- if(this.active_view == 'form') {
- this.record_id = this.views[this.active_view].controller.datarecord.id;
- }
-
- $.when(this.help(), this.get_process_object()).pipe(function(help, process) {
- self.process_help = help;
- if(process && process.length) {
- if(process.length > 1) {
- self.process_selection = process;
- } else {
- self.process_id = process[0][0],
- self.process_title = process[0][1];
- }
- }
- return $.Deferred().resolve();
- }).pipe(function() {
- var def = $.Deferred();
- if(self.process_id) {
- self.graph_get().done(function(res) {
- self.process_notes = res.notes;
- self.process_title = res.name;
- self.process_subflows = _(res.nodes).chain()
- .filter(function (node) { return node['subflow'] !== false; })
- .uniq(false, function (node) { return node['subflow'][0]; }).value();
- self.process_related = res.related;
- def.resolve(res);
- });
- } else def.resolve();
- return def.promise();
- }).done(function(res) {
- $.when(self.render_process_view()).done(function() {
- if(res) self.draw_process_graph(res);
- });
- });
- },
- graph_get: function() {
- var self = this;
- var def = $.Deferred();
- this.process_id = parseInt(this.process_id, 10);
-
- this.process_dataset
- .call("graph_get",[this.process_id, this.model || this.dataset.model, this.record_id, [80,80,150,100]])
- .done(function(res) {
- self.process_dataset
- .call("search_by_model",[self.model || self.dataset.model,self.session.context])
- .done(
- function(r) {
- res['related'] = r;
- def.resolve(res);
- });
- });
- return def.promise();
- },
- help : function() {
- var def = $.Deferred();
- if(!this.subflow_model) {
- def.resolve(this.action ? (this.action.help!=false ? this.action.help : 'Help: Not Defined') : 'Help: Not Defined');
- } else {
- var dataset = new instance.web.DataSetSearch(this, "ir.actions.act_window", this.session.context, []);
- dataset
- .read_slice(['help'],
- {
- domain: [
- ['res_model', '=', this.subflow_model],
- ['name', 'ilike', this.subflow_name]
- ]
- }
- ).done(function(res) {
- def.resolve(res.help || 'Help: Not Defined');
- });
- }
- return def.promise();
- },
- get_process_object : function() {
- var self = this,
- def = $.Deferred();
- if(this.process_id)
- return def.resolve().promise();
-
- this.process_dataset = new instance.web.DataSet(this, "process.process", this.session.context);
- this.process_dataset
- .call("search_by_model", [self.process_model,self.session.context])
- .done(function(res) {
- if (!res.length) {
- self.process_model = false;
- self.get_process_object().done(def.resolve);
- }
- else {
- def.resolve(res);
- }
- })
- .fail(def.reject);
- return def.promise();
- },
- render_process_view : function() {
- this.$el.html(QWeb.render("ProcessView", this));
- var self = this;
- this.$el.find('#edit_process').click(function() {
- self.edit_process_view();
- });
- var $parent = this.getParent().$el;
- $parent.find('#change_process').click(function() {
- self.process_selection = false,
- self.process_id = $parent.find('#select_process').val(),
- self.process_title = $.trim($parent.find('#select_process option:selected').text());
- self.initialize_process_view();
- });
-
- this.$el.find(".process_subflow").click(function() {
- self.process_id = this.id;
- self.initialize_process_view();
- });
- },
- draw_process_graph : function(res) {
- var self = this,
- process_graph = new Graph();
- var process_renderer = function(r, n) {
- var clip_rect = "".concat(n.node.x,",",n.node.y,",150,100");
-
- //Image part
- var bg = n.node.kind == "subflow" ? "node-subflow" : "node";
- bg = n.node.gray ? bg + "-gray" : bg;
- bg = n.node.active ? 'node-current': bg;
-
- var img_src = '/web_process/static/src/img/'+ bg + '.png';
-
- r['image'](img_src, n.node.x, n.node.y,150, 100)
- .attr({"clip-rect": clip_rect})
- .mousedown(function() {
- return false;
- });
- //Node
- var process_node = r['rect'](n.node.x, n.node.y, 150, 100).attr({stroke: "none"});
- // Node text
- var process_node_text = r.text(n.node.x, n.node.y, (n.node.name))
- .attr({"fill": "#fff", "font-weight": "bold", "cursor": "pointer"});
- process_node_text.translate((process_node.getBBox().width / 2) + 5, 10);
- if(n.node.subflow) {
- process_node_text.click(function() {
- self.process_id = n.node.subflow[0];
- self.subflow_model = n.node.model;
- self.subflow_name = n.node.name;
- self.initialize_process_view();
- });
- }
- //Node Description
- var new_notes = n.node.notes;
- if(n.node.notes.length > 25) {
- var to;
- var temp_str = new_notes = '';
- var from = to = 0;
- while (1) {
- from = 25;
- temp_str = n.node.notes.substr(to ,25);
- if (temp_str.lastIndexOf(" ") < 25 && temp_str.length >= 25) {
- from = temp_str.lastIndexOf(" ");
- }
- new_notes += "\n" + n.node.notes.substr(to , from);
- if(new_notes.length > n.node.notes.length) break;
- to += from;
- }
- }
-
- if(n.node.res)
- new_notes = n.node.res.name + '\n' + new_notes;
-
- r.text(n.node.x+85, n.node.y+50, (new_notes));
- r['image']('/web/static/src/img/icons/gtk-info.png', n.node.x+20, n.node.y+70, 16, 16)
- .attr({"cursor": "pointer", "title": "Help"})
- .click(function() {
- window.open(n.node.url || "http://doc.openerp.com/v6.0/index.php?model=" + n.node.model);
- });
-
- if(n.node.menu) {
- r['image']('/web/static/src/img/icons/gtk-jump-to.png', n.node.x+115, n.node.y+70, 16, 16)
- .attr({"cursor": "pointer", "title": n.node.menu.name})
- .click(function() {
- self.jump_to_view(n.node.res_model, n.node.menu.id);
- });
- }
-
- var process_set = r.set().push(process_node);
- process_set.mousedown(function() {
- return false;
- });
- return process_set;
- };
-
- _.each(res['nodes'],function(node, node_id) {
- node['res_model'] = self.model,
- node['res_id'] = false,
- node['id'] = node_id;
- process_graph.addNode(node.id, {node: node,render: process_renderer});
- });
-
- _.each(res['transitions'], function(transitions) {
- var src = res['nodes'][transitions['source']];
- var dst = res['nodes'][transitions['target']];
- // make active
- transitions['active'] = src.active && !dst.gray;
- process_graph.addEdge(src.id, dst.id, {directed : true});
- });
- var width = $(document).width();
- var height = $(document).height();
- var layouter = new Graph.Layout.Ordered(process_graph);
- var render_process_graph = new Graph.Renderer.Raphael('process_canvas', process_graph, width, height);
- },
- jump_to_view: function(model, id) {
- var self = this;
- var dataset = new instance.web.DataSet(this, 'ir.values', this.session.context);
- dataset.call('get',
- ['action', 'tree_but_open',[['ir.ui.menu', id]], dataset.context],
- function(res) {
- var action = res[0][res[0].length - 1];
- self.rpc("/web/action/load", {
- action_id: action.id,
- context: dataset.context
- }, function(result) {
- var action_manager = new instance.web.ActionManager(self);
- action_manager.replace(self.$el);
- action_manager.do_action(result.result);
- });
- });
- },
- edit_process_view: function() {
- var self = this;
- var action_manager = new instance.web.ActionManager(this);
- var dialog = new instance.web.Dialog(this, {
- width: 800,
- buttons : [
- {text: _t("Cancel"), click: function() { $(this).dialog('destroy'); }},
- {text: _t("Save"), click: function() {
- var form_view = action_manager.inner_widget.views.form.controller;
-
- form_view.do_save(function() {
- self.initialize_process_view();
- });
- $(this).dialog('destroy');
- }}
- ]
- }).open();
-
- action_manager.appendTo(dialog.$el);
- action_manager.do_action({
- res_model : 'process.process',
- res_id: self.process_id,
- views : [[false, 'form']],
- type : 'ir.actions.act_window',
- flags : {
- search_view: false,
- sidebar : false,
- views_switcher : false,
- action_buttons : false,
- pager: false
- }
- });
- }
- });
-};
-// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: