mushy 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d600a02a01a8ab0b72d853e0756b8abab002072eb97435e1502f159c34b1d22d
4
- data.tar.gz: 506d0ae442e3c44c877af2f7474792e6c8e4bd1c79ecde3f9b7917bb84817c5d
3
+ metadata.gz: 8288db70f609116945bca0ee58a47ff6e9e0231e1c9ae1a80358753f206d628c
4
+ data.tar.gz: fbc52d93b74c3f47c60dd9db7a28f0c1eca705b9306027fb28e5f3d10dd82202
5
5
  SHA512:
6
- metadata.gz: 1170524f5a821ce6a35d4fc65b4672371ec5c21940c113d7eb41d5397c94c0d804ec6a10f6bc1c8e6508c1093917afe030b12353a7f1c7fdb8a1635bda62f463
7
- data.tar.gz: 62a78ba547cbe18846dc0308ab48d3460ab2c201afe93e09410febde8e6932c8475e619be31e657531504d441a816a295a3e0a128503c2f2917f47b3a24261ef
6
+ metadata.gz: 3f55e3d8fed0ec636afca90380fd029753c295570a21c13ac56428c92b424e1a07a43fcf7fb47048b26d3586715fe343db6a3242bb3c86683be285dc23c21fa8
7
+ data.tar.gz: eccde58b22427b95ac22cbdd47bbedbf2eeaa2b9d8446057d2f3a027676858b3838859ae8a47bb1506fc9c6e44d240906edcdb2209a4531b6afae963da7e08f1
@@ -40,14 +40,14 @@ module Mushy
40
40
  {
41
41
  fluxs: Mushy::Flux.all.select { |x| x.respond_to? :details }.map do |flux|
42
42
  details = flux.details
43
- details[:config][:incoming_split] = { type: 'text', description: 'Split an incoming event into multiple events by this key, an each event will be processed independently.', default: '' }
44
- details[:config][:outgoing_split] = { type: 'text', description: 'Split an outgoing event into multiple events by this key.', default: '' }
45
- details[:config][:merge] = { type: 'text', description: 'A comma-delimited list of fields from the event to carry through. Use * to merge all fields.', default: '' }
46
- details[:config][:group] = { type: 'text', description: 'Group events by a field, which is stored in a key. The format is group_by|group_key.', default: '' }
47
- details[:config][:limit] = { type: 'integer', description: 'Limit the number of events to this number.', default: '' }
48
- details[:config][:join] = { type: 'text', description: 'Join all of the events from this flux into one event, under this name.', default: '' }
49
- details[:config][:sort] = { type: 'text', description: 'Sort by this key.', default: '' }
50
- details[:config][:model] = { type: 'keyvalue', description: 'Reshape the outgoing events.', value: {}, default: {} }
43
+ details[:config][:incoming_split] = { type: 'text', shrink: true, description: 'Split an incoming event into multiple events by this key, an each event will be processed independently.', default: '' }
44
+ details[:config][:outgoing_split] = { type: 'text', shrink: true, description: 'Split an outgoing event into multiple events by this key.', default: '' }
45
+ details[:config][:merge] = { type: 'text', shrink: true, description: 'A comma-delimited list of fields from the event to carry through. Use * to merge all fields.', default: '' }
46
+ details[:config][:group] = { type: 'text', shrink: true, description: 'Group events by a field, which is stored in a key. The format is group_by|group_key.', default: '' }
47
+ details[:config][:limit] = { type: 'integer', shrink: true, description: 'Limit the number of events to this number.', default: '' }
48
+ details[:config][:join] = { type: 'text', shrink: true, description: 'Join all of the events from this flux into one event, under this name.', default: '' }
49
+ details[:config][:sort] = { type: 'text', shrink: true, description: 'Sort by this key.', default: '' }
50
+ details[:config][:model] = { type: 'keyvalue', shrink: true, description: 'Reshape the outgoing events.', value: {}, default: {} }
51
51
 
52
52
  details[:config]
53
53
  .select { |_, v| v[:type] == 'keyvalue' }
@@ -12,15 +12,21 @@ module Mushy
12
12
  </head>
13
13
  <body>
14
14
  <div id="app">
15
- <table>
15
+ <table v-if="setup.showFlux == false">
16
+ <tr>
17
+ <th>Name</th>
18
+ <th>Parent</th>
19
+ <th>Actions</th>
20
+ </tr>
16
21
  <tr v-for="flux in flow.fluxs">
17
22
  <td>{{flux.name}}</td>
18
- <td>{{flux.flux}}</td>
19
- <td><a href="#" v-on:click.prevent.stop="edit({ flux: flux, setup: setup, configs: configs })">[Edit]</a></td>
23
+ <td>{{flux_name_for(flux.parent, flow.fluxs)}}</td>
24
+ <td><button v-on:click.prevent.stop="edit({ flux: flux, setup: setup, configs: configs })">Edit</button></td>
20
25
  </tr>
21
26
  </table>
22
- <a href="#" v-if="setup.showFlux == false" v-on:click.prevent.stop="startNew({ setup: setup, configs: configs })">[New]</a>
23
- <a href="#" v-if="setup.showFlux == false" v-on:click.prevent.stop="saveFlow({ setup: setup, flow: flow })">[Save]</a>
27
+ <button v-if="setup.showFlux == false" v-on:click.prevent.stop="startNew({ setup: setup, configs: configs })">Start a New Flux</button>
28
+ <button v-if="setup.showFlux == false" v-on:click.prevent.stop="saveFlow({ setup: setup, flow: flow })">Save This Flow</button>
29
+ <button v-if="setup.showFlux" v-on:click.prevent.stop="setup.showFlux = false">&lt; Go Back To List</button>
24
30
  <div v-if="setup.showFlux">
25
31
  <mip-heavy :data="setup"></mip-heavy>
26
32
  <mip-heavy v-for="(data, id) in configs" v-show="setup.flux.value === id" :data="data"></mip-heavy>
@@ -48,28 +54,32 @@ module Mushy
48
54
 
49
55
  var components = {
50
56
  label: {
51
- props: ['label', 'description'],
52
- template: '<label :for="id" v-if="label != \\'\\'">{{label || ' + fancyName('id') + '}} <i v-show="description">({{description}})</i></label>'
57
+ props: ['label', 'description', 'hide_description'],
58
+ template: '<label :for="id" v-if="label != \\'\\'">{{label || ' + fancyName('id') + '}} <i v-show="description && !hide_description">({{description}})</i></label>'
53
59
  },
54
60
  text: {
55
- props: ['label', 'placeholder', 'disabled', 'readonly', 'value', 'description'],
56
- template: '<div><mip-label :id="id" :label="label" :description="description"></mip-label><input type="text" :name="id" :placeholder="placeholder" v-bind:value="value" v-on:input="$emit(\\'update:value\\', $event.target.value);" :disabled="disabled == \\'true\\'" :readonly="readonly == \\'true\\'"></div>'
61
+ props: ['label', 'placeholder', 'disabled', 'readonly', 'value', 'description', 'shrink'],
62
+ template: '<div><mip-label :id="id" :label="label" :description="description" :hide_description="shrink"></mip-label> <a href="#" v-on:click.prevent.stop="shrink=false" v-show="shrink && !value">[^]</a><input type="text" :name="id" v-if="value || !shrink" :placeholder="placeholder" v-bind:value="value" v-on:input="$emit(\\'update:value\\', $event.target.value);" :disabled="disabled == \\'true\\'" :readonly="readonly == \\'true\\'"></div>'
63
+ },
64
+ hide: {
65
+ props: ['label', 'description'],
66
+ template: '<mip-label :id="id" :label="label" :description="description" v-if="false"></mip-label>'
57
67
  },
58
68
  integer: {
59
- props: ['label', 'placeholder', 'disabled', 'readonly', 'value', 'description'],
60
- template: '<div><mip-label :id="id" :label="label" :description="description"></mip-label><input type="text" :name="id" :placeholder="placeholder" v-bind:value="value" v-on:input="$emit(\\'update:value\\', $event.target.value);" :disabled="disabled == \\'true\\'" :readonly="readonly == \\'true\\'"></div>'
69
+ props: ['label', 'placeholder', 'disabled', 'readonly', 'value', 'description', 'shrink'],
70
+ template: '<div><mip-label :id="id" :label="label" :description="description" :hide_description="shrink"></mip-label> <a href="#" v-on:click.prevent.stop="shrink=false" v-show="shrink && !value">[^]</a><input type="text" :name="id" v-if="value || !shrink" :placeholder="placeholder" v-bind:value="value" v-on:input="$emit(\\'update:value\\', $event.target.value);" :disabled="disabled == \\'true\\'" :readonly="readonly == \\'true\\'"></div>'
61
71
  },
62
72
  email: {
63
- props: ['label', 'placeholder', 'disabled', 'readonly', 'value', 'description'],
64
- template: '<div><mip-label :id="id" :label="label" :description="description"></mip-label><input type="email" :name="id" :placeholder="placeholder" v-bind:value="value" v-on:input="$emit(\\'update:value\\', $event.target.value)" :disabled="disabled == \\'true\\'" :readonly="readonly == \\'true\\'"></div>'
73
+ props: ['label', 'placeholder', 'disabled', 'readonly', 'value', 'description', 'shrink'],
74
+ template: '<div><mip-label :id="id" :label="label" :description="description" :hide_description="shrink"></mip-label> <a href="#" v-on:click.prevent.stop="shrink=false" v-show="shrink && !value">[^]</a><input type="email" :name="id" v-if="value || !shrink" :placeholder="placeholder" v-bind:value="value" v-on:input="$emit(\\'update:value\\', $event.target.value)" :disabled="disabled == \\'true\\'" :readonly="readonly == \\'true\\'"></div>'
65
75
  },
66
76
  textarea: {
67
- props: ['label', 'placeholder', 'disabled', 'readonly', 'value', 'description'],
68
- template: '<div><mip-label :id="id" :label="label" :description="description"></mip-label><textarea :name="id" :placeholder="placeholder" v-bind:value="value" v-on:input="$emit(\\'update:value\\', $event.target.value)" :disabled="disabled == \\'true\\'" :readonly="readonly == \\'true\\'"></textarea></div>'
77
+ props: ['label', 'placeholder', 'disabled', 'readonly', 'value', 'description', 'shrink'],
78
+ template: '<div><mip-label :id="id" :label="label" :description="description" :hide_description="shrink"></mip-label> <a href="#" v-on:click.prevent.stop="shrink=false" v-show="shrink && !value">[^]</a><textarea :name="id" v-if="value || !shrink" :placeholder="placeholder" v-bind:value="value" v-on:input="$emit(\\'update:value\\', $event.target.value)" :disabled="disabled == \\'true\\'" :readonly="readonly == \\'true\\'"></textarea></div>'
69
79
  },
70
80
  json: {
71
- props: ['label', 'placeholder', 'disabled', 'readonly', 'value', 'description'],
72
- template: '<div><mip-label :id="id" :label="label" :description="description"></mip-label><pre><code>{{value}}</code></pre><textarea :name="id" :placeholder="placeholder" v-bind:value="value" v-on:input="$emit(\\'update:value\\', $event.target.value)" :disabled="disabled == \\'true\\'" :readonly="readonly == \\'true\\'"></textarea></div>'
81
+ props: ['label', 'placeholder', 'disabled', 'readonly', 'value', 'description', 'shrink'],
82
+ template: '<div><mip-label :id="id" :label="label" :description="description" :hide_description="shrink"></mip-label> <a href="#" v-on:click.prevent.stop="shrink=false" v-show="shrink && !value">[^]</a><textarea :name="id" v-if="value || !shrink" :placeholder="placeholder" v-bind:value="value" v-on:input="$emit(\\'update:value\\', $event.target.value)" :disabled="disabled == \\'true\\'" :readonly="readonly == \\'true\\'"></textarea></div>'
73
83
  },
74
84
  jsonview: {
75
85
  data: function() {
@@ -83,20 +93,20 @@ module Mushy
83
93
  template: '<div><mip-label :id="id" :label="label" :description="description"></mip-label> <a href="#" v-on:click.prevent.stop="view=toggle(view)">{{(view == \\'beautiful\\' ? \\'>\\' : \\'^\\')}}</a><a href="#" v-on:click.prevent.stop="copy(view, value)">copy</a><pre><code>{{show(view, value)}}</code></pre></div>'
84
94
  },
85
95
  radio: {
86
- props: ['label', 'value', 'options', 'description'],
87
- template: '<div><mip-label :id="id" :label="label" :description="description"></mip-label><div v-for="option in options"><input type="radio" :name="id" v-bind:value="option" v-on:input="$emit(\\'update:value\\', $event.target.value)" :checked="value == option"> <label for="option">{{option}}</label></div></div>'
96
+ props: ['label', 'value', 'options', 'description', 'shrink'],
97
+ template: '<div><mip-label :id="id" :label="label" :description="description" :hide_description="shrink"></mip-label> <a href="#" v-on:click.prevent.stop="shrink=false" v-show="shrink && !value">[^]</a><div v-for="option in options"><input type="radio" :name="id" v-bind:value="option" v-if="value || !shrink" v-on:input="$emit(\\'update:value\\', $event.target.value)" :checked="value == option"> <label for="option">{{option}}</label></div></div>'
88
98
  },
89
99
  select: {
90
- props: ['label', 'value', 'options', 'description'],
91
- template: '<div><mip-label :id="id" :label="label" :description="description"></mip-label><select :name="id" v-on:input="$emit(\\'update:value\\', $event.target.value)"><option v-for="option in options" v-bind:value="option" :selected="value == option">{{option}}</option></select></div>'
100
+ props: ['label', 'value', 'options', 'description', 'shrink'],
101
+ template: '<div><mip-label :id="id" :label="label" :description="description" :hide_description="shrink"></mip-label> <a href="#" v-on:click.prevent.stop="shrink=false" v-show="shrink && !value">[^]</a><select :name="id" v-if="value || !shrink" v-on:input="$emit(\\'update:value\\', $event.target.value)"><option v-for="option in options" v-bind:value="option" :selected="value == option">{{option}}</option></select></div>'
92
102
  },
93
103
  selectrecord: {
94
- props: ['label', 'value', 'options', 'description'],
95
- template: '<div><mip-label :id="id" :label="label" :description="description"></mip-label><select :name="id" v-on:input="$emit(\\'update:value\\', $event.target.value)"><option v-for="option in options" v-bind:value="option.id" :selected="value == option.id">{{option.name}}</option></select></div>'
104
+ props: ['label', 'value', 'options', 'description', 'shrink'],
105
+ template: '<div><mip-label :id="id" :label="label" :description="description" :hide_description="shrink"></mip-label> <a href="#" v-on:click.prevent.stop="shrink=false" v-show="shrink && !value">[^]</a><select :name="id" v-if="value || !shrink" v-on:input="$emit(\\'update:value\\', $event.target.value)"><option v-for="option in options" v-bind:value="option.id" :selected="value == option.id">{{option.name}}</option></select></div>'
96
106
  },
97
107
  boolean: {
98
- props: ['label', 'value', 'options', 'description'],
99
- template: '<div><mip-label :id="id" :label="label" :description="description"></mip-label><select :name="id" v-on:input="$emit(\\'update:value\\', $event.target.value)"><option v-for="option in [true, false]" v-bind:value="option" :selected="value == option">{{option}}</option></select></div>'
108
+ props: ['label', 'value', 'options', 'description', 'shrink'],
109
+ template: '<div><mip-label :id="id" :label="label" :description="description" :hide_description="shrink"></mip-label> <a href="#" v-on:click.prevent.stop="shrink=false" v-show="shrink && !value">[^]</a><select :name="id" v-if="(value != undefined && value != null && value != \\'\\') || !shrink" v-on:input="$emit(\\'update:value\\', $event.target.value)"><option v-for="option in [true, false]" v-bind:value="option" :selected="value == option">{{option}}</option></select></div>'
100
110
  },
101
111
  table: {
102
112
  props: ['value', 'description'],
@@ -117,12 +127,13 @@ module Mushy
117
127
  }
118
128
  };
119
129
  },
120
- props: ['value', 'editors', 'label', 'description'],
121
- template: '<div><mip-label :id="id" :label="label" :description="description"></mip-label><table><tr><th v-for="(d, i) in value[0]">{{' + fancyName('i') + '}}</th></tr><tr v-for="(v, z) in value"><td v-for="(d, i) in v">{{d}}</td><td><a href="#" v-on:click.prevent.stop="removeRecord(v, value, z)">[x]</a></td></tr><tr><td v-for="editor in editors"><mip-thing :data="editor.field" :id="editor.id"></mip-thing></td><td><a href="#" v-on:click.prevent.stop="addRecord(editors, value)">[Add]</a></td></tr></table></div>'
130
+ props: ['value', 'editors', 'label', 'description', 'shrink'],
131
+ template: '<div><mip-label :id="id" :label="label" :description="description" :hide_description="shrink"></mip-label> <a href="#" v-on:click.prevent.stop="shrink=false" v-show="shrink && value.length == 0">[^]</a><table v-if="value.length > 0 || !shrink"><tr><th v-for="(d, i) in value[0]">{{' + fancyName('i') + '}}</th></tr><tr v-for="(v, z) in value"><td v-for="(d, i) in v">{{d}}</td><td><a href="#" v-on:click.prevent.stop="removeRecord(v, value, z)">[x]</a></td></tr><tr><td v-for="editor in editors"><mip-thing :data="editor.field" :id="editor.id"></mip-thing></td><td><a href="#" v-on:click.prevent.stop="addRecord(editors, value)">[Add]</a></td></tr></table></div>'
122
132
  },
123
133
  keyvalue: {
124
134
  data: function() {
125
135
  return {
136
+ actionText: function(value, others) { found = false; for(var i in others){ if (i == value) found = true; } return found ? 'Replace' : 'Add'; },
126
137
  removeRecord: function(data, key) { Vue.delete(data, key) },
127
138
  addRecord: function(editors, data) {
128
139
  Vue.set(data, editors[0].field.value, editors[1].field.value)
@@ -131,12 +142,12 @@ module Mushy
131
142
  }
132
143
  };
133
144
  },
134
- props: ['value', 'label', 'editors', 'description'],
135
- template: '<div><mip-label :id="id" :label="label" :description="description"></mip-label><table><tr v-for="(v, k) in value"><td>{{k}}</td><td>{{v}}</td><td><a href="#" v-on:click.prevent.stop="removeRecord(value, k)">[x]</a></td></tr><tr><td v-for="editor in editors"><mip-thing :data="editor.field" :id="editor.id"></mip-thing></td><td><a href="#" v-on:click.prevent.stop="addRecord(editors, value)" v-show="editors[0].field.value">[Add]</a></td></tr></table></div>'
145
+ props: ['value', 'label', 'editors', 'description', 'shrink'],
146
+ template: '<div><mip-label :id="id" :label="label" :description="description" :hide_description="shrink"></mip-label> <a href="#" v-on:click.prevent.stop="shrink=false" v-show="shrink">[^]</a><table v-if="JSON.stringify(value) != \\'{}\\' || !shrink"><tr v-for="(v, k) in value"><td>{{k}}</td><td>{{v}}</td><td><button v-on:click.prevent.stop="removeRecord(value, k)">Remove {{k}}</button></td></tr><tr><td v-for="editor in editors"><mip-thing :data="editor.field" :id="editor.id"></mip-thing></td><td><button v-on:click.prevent.stop="addRecord(editors, value)" v-show="editors[0].field.value">{{actionText(editors[0].field.value, value)}} {{editors[0].field.value}}</button></td></tr></table></div>'
136
147
  },
137
148
  button: {
138
- props: ['click', 'description'],
139
- template: '<button v-on:click.prevent.stop="click(pull(this))">{{id}}</button>'
149
+ props: ['click', 'description', 'name'],
150
+ template: '<button v-on:click.prevent.stop="click(pull(this))">{{name || id}}</button>'
140
151
  }
141
152
  };
142
153
 
@@ -188,32 +199,6 @@ module Mushy
188
199
  template: '<div><mip-thing v-for="(d, id) in data" :data="d" :id="id"></mip-thing></div>',
189
200
  });
190
201
 
191
- var sample = {
192
- email: { type: 'email', value: 'darren@cauthon.com' },
193
- first_name: { type: 'text', value: 'Darren' },
194
- description: { type: 'textarea', value: 'more data' },
195
- size: { type: 'select', value: 'medium', options: ['small', 'medium', 'large']},
196
- heynow: { type: 'keyvalue',
197
- value: {
198
- first_name: 'John',
199
- last_name: 'Doe',
200
- },
201
- editors: [
202
- { id: 'new_key', target: 'key', field: { type: 'text', value: '', default: '' } },
203
- { id: 'new_value', target: 'value', field: { type: 'text', value: '', default: '' } }
204
- ] },
205
- past: { type: 'editgrid',
206
- value: [
207
- { name: 'Godzilla', quantity: 1 },
208
- { name: 'Mothra', quantity: 2 },
209
- ],
210
- editors: [
211
- { id: 'new_name', target: 'name', field: { type: 'text', value: '', default: '' } },
212
- { id: 'new_quantity', target: 'quantity', field: { type: 'select', value: '1', options: [1, 2, 3], default: 1 } }
213
- ] },
214
- super_action: { type: 'button', click: function(x) { console.log(x) } },
215
- };
216
-
217
202
  var app = null;
218
203
 
219
204
  axios.get('/fluxs')
@@ -237,8 +222,7 @@ module Mushy
237
222
 
238
223
  var setup = {
239
224
  showFlux: false,
240
- event: { type: 'json', value: '{}' },
241
- id: { type: 'text', value: '' },
225
+ id: { type: 'hide', value: '' },
242
226
  name: { type: 'text', value: '' },
243
227
  flux: { type: 'select', value: fluxdata.fluxs[0].name, options: options},
244
228
  parent: { type: 'selectrecord', value: '', options: flowdata.fluxs },
@@ -246,18 +230,7 @@ module Mushy
246
230
 
247
231
  for (var key in configs)
248
232
  {
249
- configs[key].go = { type: 'button', click: function(c) {
250
- app.results = [];
251
- Vue.set(app.results, 'loading', true);
252
- axios.post('/run', { config: c, setup: thingToData(app.setup) })
253
- .then(function(r){
254
- Vue.set(app.results, 'loading', false);
255
- for (var key in r.data.result)
256
- app.results.push({darren: { type:'jsonview', value: r.data.result[key], view: 'thin' }});
257
- });
258
- } };
259
-
260
- configs[key].save = { type: 'button', click: function(config) {
233
+ configs[key].save = { type: 'button', name: 'Save This Flux', click: function(config) {
261
234
  var setup = thingToData(app.setup);
262
235
  var flux = {
263
236
  id: setup.id,
@@ -276,12 +249,39 @@ module Mushy
276
249
  app.flow.fluxs[index] = flux;
277
250
 
278
251
  app.setup.id.value = '';
252
+
253
+ Vue.set(app.setup, 'showFlux', false);
279
254
  }
280
255
  };
256
+
257
+ configs[key].test_event = { type: 'json', value: '{}', default: '{}' };
258
+
259
+ configs[key].run_test = { type: 'button', name: 'Test Run This Flux', click: function(c) {
260
+ app.results = [];
261
+ Vue.set(app.results, 'loading', true);
262
+ var the_setup = thingToData(app.setup);
263
+ the_setup.event = c.test_event;
264
+ axios.post('/run', { config: c, setup: the_setup })
265
+ .then(function(r){
266
+ Vue.set(app.results, 'loading', false);
267
+ var index = 1;
268
+ for (var key in r.data.result)
269
+ {
270
+ var result = {};
271
+ result['event_' + index] = { type: 'jsonview', value: r.data.result[key], view: 'thin' };
272
+ app.results.push(result);
273
+ index += 1;
274
+ }
275
+ });
276
+ } };
281
277
  }
282
278
 
283
- var loadThisFlux = function(flux, setup, config)
279
+ var loadThisFlux = function(args)
284
280
  {
281
+ var flux = args.flux;
282
+ var setup = args.setup;
283
+ var config = args.config;
284
+
285
285
  Vue.set(setup.id, 'value', flux.id);
286
286
  Vue.set(setup.name, 'value', flux.name);
287
287
  Vue.set(setup.flux, 'value', flux.flux);
@@ -300,6 +300,7 @@ module Mushy
300
300
  setup.parent.options = options;
301
301
 
302
302
  Vue.set(setup, 'showFlux', true);
303
+ app.results = [];
303
304
  };
304
305
 
305
306
  function uuidv4() {
@@ -315,15 +316,15 @@ module Mushy
315
316
  startNew: function(x) {
316
317
  flux = {
317
318
  id: uuidv4(),
318
- name: 'you',
319
+ name: '',
319
320
  config: {}
320
321
  };
321
- loadThisFlux(flux, x.setup, x.configs);
322
+ loadThisFlux({ flux: flux, setup: x.setup, configs: x.configs });
322
323
  },
323
324
  edit: function(x) {
324
325
  var flux = x.flux;
325
326
 
326
- loadThisFlux(x.flux, x.setup, x.configs);
327
+ loadThisFlux({ flux: x.flux, setup: x.setup, configs: x.configs });
327
328
  },
328
329
  saveFlow: function(input)
329
330
  {
@@ -331,11 +332,15 @@ module Mushy
331
332
  var flow = input.flow;
332
333
  axios.post('/save', flow)
333
334
  .then(function(result){
334
- Vue.set(setup, 'show', false);
335
+ Vue.set(setup, 'showFlux', false);
335
336
  });
336
337
  },
337
338
  configs: configs,
338
339
  setup: setup,
340
+ flux_name_for: function(id, fluxes) {
341
+ var flux = fluxes.filter(function(x){ return x.id == id })[0];
342
+ return flux != undefined ? flux.name : '';
343
+ },
339
344
  results: [],
340
345
  }
341
346
  });
@@ -27,6 +27,7 @@ module Mushy
27
27
  cookies: {
28
28
  description: 'Cookies for the web request. These can be received from a previous browser event with {{cookies}}, or can be typed manually.',
29
29
  type: 'editgrid',
30
+ shrink: true,
30
31
  value: [],
31
32
  editors: [
32
33
  { id: 'name', target: 'name', field: { type: 'text', value: '', default: '' } },
data/mushy.gemspec CHANGED
@@ -4,7 +4,7 @@ require 'mushy/version'
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = 'mushy'
7
- s.version = '0.0.6'
7
+ s.version = '0.0.7'
8
8
  s.date = '2020-11-23'
9
9
  s.summary = 'Process streams of work using common modules.'
10
10
  s.description = 'This tool assists in the creation and processing of workflows.'
@@ -17,6 +17,8 @@ Gem::Specification.new do |s|
17
17
  s.license = 'MIT'
18
18
 
19
19
  s.add_development_dependency 'minitest'
20
+ s.add_runtime_dependency 'sinatra'
21
+ s.add_runtime_dependency 'symbolized'
20
22
  s.add_runtime_dependency 'thor'
21
23
  s.add_runtime_dependency 'liquid'
22
24
  s.add_runtime_dependency 'ferrum'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mushy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darren Cauthon
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sinatra
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: symbolized
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: thor
29
57
  requirement: !ruby/object:Gem::Requirement