Commit 2048f5bc38e3f243827410e3906fdb39703ff952
1 parent
fac46f96
Exists in
master
and in
95 other branches
Fix save & edit plot
Showing
9 changed files
with
58 additions
and
74 deletions
Show diff stats
js/app/controllers/InteractiveModule.js
... | ... | @@ -37,12 +37,15 @@ Ext.define('amdaDesktop.InteractiveModule', { |
37 | 37 | /** |
38 | 38 | * Window Creation method of the Module |
39 | 39 | */ |
40 | - createWindow : function (onShowEvent) { | |
40 | + createWindow : function (onShowEvent, onAfterCreateObject) { | |
41 | 41 | |
42 | 42 | if (this.linkedNode === null){ |
43 | 43 | this.createLinkedNode(); |
44 | 44 | } |
45 | - this.createObject(); | |
45 | + this.createObject(); | |
46 | + if (onAfterCreateObject) { | |
47 | + onAfterCreateObject(); | |
48 | + } | |
46 | 49 | var desktop = this.app.getDesktop(); |
47 | 50 | var win = desktop.getWindow(this.id); |
48 | 51 | var me = this; | ... | ... |
js/app/controllers/PlotModule.js
... | ... | @@ -212,5 +212,25 @@ Ext.define('amdaDesktop.PlotModule', { |
212 | 212 | me.getUiContent().addParameter(paramNode, true); |
213 | 213 | }); |
214 | 214 | } |
215 | + }, | |
216 | + | |
217 | + editPlot : function(plotNode) { | |
218 | + var me = this; | |
219 | + var desktop = this.app.getDesktop(); | |
220 | + var win = desktop.getWindow(this.id); | |
221 | + if (win) { | |
222 | + // Plot UI is opened => add plot in a new tab | |
223 | + me.getUiContent().editPlot(plotNode); | |
224 | + win.show(); | |
225 | + } | |
226 | + else { | |
227 | + // Plot UI is closed | |
228 | + this.createWindow(null, function() { | |
229 | + //This is the onAfterCreateObject callback | |
230 | + //Add plot node to the multiplot object | |
231 | + me.linkedNode.get('object').plots().removeAll(); | |
232 | + me.linkedNode.get('object').plots().add(plotNode); | |
233 | + }); | |
234 | + } | |
215 | 235 | } |
216 | 236 | }); | ... | ... |
js/app/models/PlotNode.js
... | ... | @@ -95,5 +95,17 @@ Ext.define('amdaModel.PlotNode', { |
95 | 95 | default: |
96 | 96 | break; |
97 | 97 | } |
98 | + }, | |
99 | + | |
100 | + //Override editInModule | |
101 | + editInModule : function (contextNode, onReady) | |
102 | + { | |
103 | + // set the contextNode of this node | |
104 | + this.set('contextNode',contextNode); | |
105 | + | |
106 | + var me = this; | |
107 | + myDesktopApp.getLoadedModule(this.get('moduleId'),true, function (module) { | |
108 | + module.editPlot(me); | |
109 | + }); | |
98 | 110 | } |
99 | 111 | }); | ... | ... |
js/app/models/PlotObjects/MultiplotRequestObject.js
... | ... | @@ -62,7 +62,6 @@ Ext.define('amdaPlotObj.MultiplotRequestObject', { |
62 | 62 | createNewPlotFromObject: function(plotObject) { |
63 | 63 | var plotNode = Ext.create('amdaModel.PlotNode', { |
64 | 64 | leaf : true, |
65 | - contextNode : this | |
66 | 65 | }); |
67 | 66 | plotNode.set('object',plotObject); |
68 | 67 | this.plots().add(plotNode); | ... | ... |
js/app/views/PlotComponents/PlotTabContent.js
... | ... | @@ -83,7 +83,10 @@ Ext.define('amdaPlotComp.PlotTabContent', { |
83 | 83 | width: 300, |
84 | 84 | buttons: Ext.Msg.OKCANCEL, |
85 | 85 | icon: Ext.Msg.WARNING, |
86 | - fn : me.overwritePlot, | |
86 | + fn : function(btn) { | |
87 | + if (btn == 'cancel') return; | |
88 | + me.saveProcess(true); | |
89 | + }, | |
87 | 90 | scope : me |
88 | 91 | }); |
89 | 92 | } |
... | ... | @@ -100,11 +103,6 @@ Ext.define('amdaPlotComp.PlotTabContent', { |
100 | 103 | }); |
101 | 104 | }, |
102 | 105 | |
103 | - overwritePlot : function(btn) { | |
104 | - if (btn == 'cancel') return; | |
105 | - this.saveProcess(true); | |
106 | - }, | |
107 | - | |
108 | 106 | saveProcess : function(toRename) { |
109 | 107 | if (toRename) { |
110 | 108 | this.plotNode.update(); | ... | ... |
js/app/views/PlotComponents/PlotTabPanel.js
... | ... | @@ -38,6 +38,17 @@ Ext.define('amdaPlotComp.PlotTabPanel', { |
38 | 38 | |
39 | 39 | addPlotNode: function(plotNode, selectTab) |
40 | 40 | { |
41 | + for (i = 0; i < this.items.getCount(); ++i) | |
42 | + { | |
43 | + var tabItem = this.items.getAt(i); | |
44 | + var tabContent = tabItem.items.getAt(0); | |
45 | + if (plotNode == tabContent.plotNode) { | |
46 | + //Already opened => select tab | |
47 | + this.setActiveTab(tabItem); | |
48 | + return; | |
49 | + } | |
50 | + } | |
51 | + | |
41 | 52 | var tabNumber = this.getTabBar().items.getCount(); |
42 | 53 | var tabContent = new amdaPlotComp.PlotTabContent({plotNode: plotNode, tabIndex: tabNumber-1}); |
43 | 54 | var me = this; | ... | ... |
js/app/views/PlotUI.js
php/classes/AmdaAction.php
... | ... | @@ -151,7 +151,6 @@ class AmdaAction |
151 | 151 | $isParameter = false; |
152 | 152 | $isAddable = false; |
153 | 153 | $isSimulation = false; |
154 | - $plotTabs = FALSE; | |
155 | 154 | $rank = null; |
156 | 155 | $skip = FALSE; |
157 | 156 | |
... | ... | @@ -185,19 +184,6 @@ class AmdaAction |
185 | 184 | else { |
186 | 185 | $info = $id; |
187 | 186 | } |
188 | - | |
189 | - $isLeaf = isset($objplot->tabs); | |
190 | - if ($isLeaf) { | |
191 | - $plotTabs = array(); | |
192 | - foreach ($objplot->tabs as $index => $tab) { | |
193 | - $plotTabs[$index] = array( | |
194 | - "name" => (!empty($tab->{'tab-name'})) ? $tab->{'tab-name'} : "Plot ".($index+1), | |
195 | - "id" => $tab->id, | |
196 | - ); | |
197 | - } | |
198 | - } | |
199 | - else | |
200 | - $plotTabs = FALSE; | |
201 | 187 | break; |
202 | 188 | |
203 | 189 | // case 'alias': |
... | ... | @@ -597,7 +583,7 @@ class AmdaAction |
597 | 583 | } |
598 | 584 | |
599 | 585 | $childrenToReturn[] = array('text' => $name, 'id' => $id, 'nodeType' => $nodeType, 'info' => $info, |
600 | - 'help' => $help, 'leaf' => $isLeaf, 'isParameter' => $isParameter, 'dim_1' => $dim_1, 'dim_2' => $dim_2, 'tabs' => $plotTabs, | |
586 | + 'help' => $help, 'leaf' => $isLeaf, 'isParameter' => $isParameter, 'dim_1' => $dim_1, 'dim_2' => $dim_2, | |
601 | 587 | 'component_info' => isset($component_info) ? $component_info : NULL, |
602 | 588 | 'iconCls' => isset($iconCls) ? $iconCls : NULL ); |
603 | 589 | } |
... | ... | @@ -826,7 +812,6 @@ class AmdaAction |
826 | 812 | break; |
827 | 813 | case 'condition' : |
828 | 814 | case 'request' : |
829 | - case 'plottab' : | |
830 | 815 | $objectMgr = new RequestMgr($obj->nodeType); |
831 | 816 | break; |
832 | 817 | case 'alias' : |
... | ... | @@ -916,7 +901,6 @@ class AmdaAction |
916 | 901 | break; |
917 | 902 | case 'condition' : |
918 | 903 | case 'request' : |
919 | - case 'plottab' : | |
920 | 904 | $objectMgr = new RequestMgr($obj->nodeType); |
921 | 905 | break; |
922 | 906 | default: | ... | ... |
php/classes/RequestMgr.php
... | ... | @@ -30,7 +30,7 @@ class RequestMgr extends AmdaObjectMgr |
30 | 30 | $this->attributes = array('name' => ''); |
31 | 31 | $this->optionalAttributes = array(); |
32 | 32 | |
33 | - if ($type == 'request' || $type == 'plottab') | |
33 | + if ($type == 'request' ) | |
34 | 34 | { |
35 | 35 | $this->id_prefix = 'req_'; |
36 | 36 | } |
... | ... | @@ -73,47 +73,11 @@ class RequestMgr extends AmdaObjectMgr |
73 | 73 | |
74 | 74 | public function validNameObject($p) |
75 | 75 | { |
76 | - if ($this->type == 'plottab') { | |
77 | - if (empty($p->name)) { | |
78 | - return array('valid' => false, 'error' => 'Name is required'); | |
79 | - } | |
80 | - return array('valid' => true); | |
81 | - } | |
82 | 76 | return parent::validNameObject($p); |
83 | 77 | } |
84 | 78 | |
85 | 79 | public function renameObject($p) |
86 | 80 | { |
87 | - if ($this->type == 'plottab') { | |
88 | - //Rename a plot tab | |
89 | - if (!isset($p->parent) || empty($p->parent)) { | |
90 | - return array('error' => 'Missing parent definition'); | |
91 | - } | |
92 | - $plotObj = $this->getObject($p->parent); | |
93 | - if (is_array($plotObj) && isset($plotObj['error'])) { | |
94 | - return array('error' => $plotObj['error']); | |
95 | - } | |
96 | - if (!isset($plotObj->tabs)) { | |
97 | - return array('error' => 'Cannot retrieve tab in plot request'); | |
98 | - } | |
99 | - $renameOK = FALSE; | |
100 | - foreach ($plotObj->tabs as &$tab) { | |
101 | - if ($tab->id == $p->id) { | |
102 | - $tab->{'tab-name'} = $p->name; | |
103 | - $renameOK = TRUE; | |
104 | - break; | |
105 | - } | |
106 | - } | |
107 | - if (!$renameOK) { | |
108 | - return array('error' => 'Cannot retrieve tab in plot request 2'); | |
109 | - } | |
110 | - //Save modification | |
111 | - $file = fopen(USERREQDIR.$p->parent, 'w'); | |
112 | - fwrite($file, json_encode($plotObj)); | |
113 | - fclose($file); | |
114 | - | |
115 | - return array('id' => $p->id); | |
116 | - } | |
117 | 81 | return parent::renameObject($p); |
118 | 82 | } |
119 | 83 | |
... | ... | @@ -225,17 +189,6 @@ class RequestMgr extends AmdaObjectMgr |
225 | 189 | } |
226 | 190 | |
227 | 191 | $additional = array(); |
228 | - if ($this->type == 'request') { | |
229 | - $additional['tabs'] = array(); | |
230 | - if (isset($p->tabs)) { | |
231 | - foreach ($p->tabs as $index => $tab) { | |
232 | - $additional['tabs'][$index] = array( | |
233 | - "name" => (!empty($tab->{'tab-name'})) ? $tab->{'tab-name'} : "Plot ".($index+1), | |
234 | - "id" => $tab->id, | |
235 | - ); | |
236 | - } | |
237 | - } | |
238 | - } | |
239 | 192 | |
240 | 193 | $this->descFileName = USERREQDIR.$this->id; |
241 | 194 | $p->id = $this->id; | ... | ... |