marty 8.4.1 → 8.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Dockerfile.dummy +44 -33
- data/app/components/marty/background_job/schedule_jobs_grid.rb +6 -1
- data/app/components/marty/background_job/schedule_jobs_logs.rb +8 -1
- data/app/components/marty/grid/client/grid.js +50 -14
- data/app/components/marty/promise_view.rb +18 -7
- data/app/components/marty/simple_app/client/simple_app.js +43 -8
- data/app/models/marty/promise.rb +4 -4
- data/docker-compose.dummy.yml +1 -1
- data/lib/marty/monkey.rb +5 -1
- data/lib/marty/version.rb +1 -1
- data/spec/dummy/app/components/gemini/simple_view.rb +1 -0
- data/spec/dummy/db/migrate/20191206132729_add_default_true_column_to_simple.rb +9 -0
- data/spec/features/inline_editing_spec.rb +3 -3
- metadata +3 -4
- data/app/components/marty/background_job/schedule_jobs_grid/client/schedule_jobs_grid.js +0 -13
- data/app/components/marty/background_job/schedule_jobs_logs/client/schedule_jobs_logs.js +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6fd0c089c5ad585e2ee595e562468d11ba1bcb93561faf4af44b7efd657eead
|
4
|
+
data.tar.gz: 706faaa4fd4c52cdf947546fbe5362b6862335ff085c68a8a78b52c257e35380
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5350b886990d9c4efffa480d3727efed7f357208d966394ae637f7cfae110203046a768379d1b373f931cf8bcb85d982f97ef1e5c7e1240e5ddde3e2f4038324
|
7
|
+
data.tar.gz: b4ac412e00641a7e5138036f9af8eac4c5c68fb48fd76c05296c195825a6eb3755659adf7287f92c70d0a058c645a7dacec675c2a590376e6ed2e786053cf6e0
|
data/Dockerfile.dummy
CHANGED
@@ -1,21 +1,53 @@
|
|
1
1
|
# ONLY FOR DEVELOPMENT PURPOSES
|
2
2
|
# dockerfile is not suitable to produce a production-grade docker image
|
3
|
-
FROM ruby:2.6.3
|
3
|
+
FROM ruby:2.6.3-buster
|
4
4
|
|
5
5
|
WORKDIR /opt/app
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
# Versioned dependencies
|
8
|
+
ENV FREETDS_VER 1.1.20
|
9
|
+
ENV TDSVER 7.1
|
10
|
+
ENV NODE_VER 12.x
|
11
|
+
ENV POSTGRES_VER 11
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
RUN apt-get update && apt-get install -qq -y --no-install-recommends nodejs yarn
|
13
|
+
# Other useful env variables to set
|
14
|
+
ENV BUNDLE_PATH /bundle_box/bundle
|
15
|
+
ENV GEM_HOME /bundle_box/bundle
|
16
|
+
ENV PATH /bundle_box/bundle/bin:$PATH
|
16
17
|
|
17
|
-
# Install
|
18
|
-
RUN apt-get
|
18
|
+
# Install several necessary packages and add Postgres repo key
|
19
|
+
RUN apt-get update && apt-get install -y -qq software-properties-common apt-transport-https
|
20
|
+
|
21
|
+
# Add Debian Buster postgres keychain for verification to download psql client
|
22
|
+
RUN \
|
23
|
+
echo "deb http://apt.postgresql.org/pub/repos/apt/ buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
|
24
|
+
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - &&\
|
25
|
+
apt-get update
|
26
|
+
|
27
|
+
# Install several more packages
|
28
|
+
RUN \
|
29
|
+
apt-get install -qq -y --no-install-recommends \
|
30
|
+
build-essential libpq-dev curl unixodbc unixodbc-dev freetds-dev \
|
31
|
+
freetds-bin tdsodbc postgresql-client-${POSTGRES_VER} xvfb imagemagick \
|
32
|
+
netcat-openbsd vim libc6-dev
|
33
|
+
|
34
|
+
# Install FreeTDS
|
35
|
+
RUN wget https://www.freetds.org/files/stable/freetds-"${FREETDS_VER}".tar.gz && \
|
36
|
+
tar -xzf freetds-"${FREETDS_VER}".tar.gz && \
|
37
|
+
rm freetds-"${FREETDS_VER}".tar.gz && \
|
38
|
+
cd freetds-"${FREETDS_VER}" && \
|
39
|
+
./configure --prefix=/usr/local --with-tdsver=${TDSVER} && \
|
40
|
+
make && \
|
41
|
+
make install && \
|
42
|
+
make clean
|
43
|
+
|
44
|
+
# Install Nodejs
|
45
|
+
RUN export VERSION="node_${NODE_VER}" DISTRO="$(lsb_release -s -c)" && \
|
46
|
+
curl -sSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
|
47
|
+
echo "deb https://deb.nodesource.com/$VERSION $DISTRO main" | tee /etc/apt/sources.list.d/nodesource.list && \
|
48
|
+
echo "deb-src https://deb.nodesource.com/$VERSION $DISTRO main" | tee -a /etc/apt/sources.list.d/nodesource.list && \
|
49
|
+
apt-get -o Acquire::Check-Valid-Until=false update && \
|
50
|
+
apt-get install -qq -y --no-install-recommends nodejs
|
19
51
|
|
20
52
|
# Install chrome for integration tests
|
21
53
|
RUN curl -L -o google-chrome.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
|
@@ -24,25 +56,4 @@ RUN curl -L -o google-chrome.deb https://dl.google.com/linux/direct/google-chrom
|
|
24
56
|
&& sed -i 's|HERE/chrome\"|HERE/chrome\" --disable-setuid-sandbox|g' /opt/google/chrome/google-chrome \
|
25
57
|
&& rm google-chrome.deb
|
26
58
|
|
27
|
-
|
28
|
-
RUN apt-get install -qq -y --no-install-recommends netcat-openbsd vim
|
29
|
-
|
30
|
-
RUN gem install bundler
|
31
|
-
|
32
|
-
ENV BUNDLE_PATH /bundle_box/bundle
|
33
|
-
ENV GEM_HOME /bundle_box/bundle
|
34
|
-
ENV PATH /bundle_box/bundle/bin:$PATH
|
35
|
-
# ENV NODE_PATH /bundle_box/node
|
36
|
-
|
37
|
-
COPY . .
|
38
|
-
|
39
|
-
# RUN bundle install
|
40
|
-
# RUN yarn install
|
41
|
-
|
42
|
-
# RUN mv .rbenv-vars.example .rbenv-vars
|
43
|
-
# RUN chmod +x entrypoint.sh
|
44
|
-
|
45
|
-
# ENV RAILS_ENV=development
|
46
|
-
# ENV PORT=3001
|
47
|
-
# EXPOSE 3001
|
48
|
-
|
59
|
+
RUN gem update --system
|
@@ -68,6 +68,11 @@ module Marty
|
|
68
68
|
a.tooltip = 'Run'
|
69
69
|
a.icon_cls = 'fa fa-play glyph'
|
70
70
|
a.disabled = true
|
71
|
+
a.handler = :netzke_call_endpoint
|
72
|
+
a.require_confirmation = true
|
73
|
+
a.confirmation_title = 'Run Job'
|
74
|
+
a.in_progress_message = 'Performing job...'
|
75
|
+
a.endpoint_name = :job_run
|
71
76
|
end
|
72
77
|
|
73
78
|
endpoint :edit_window__edit_form__submit do |params|
|
@@ -121,7 +126,7 @@ module Marty
|
|
121
126
|
res
|
122
127
|
end
|
123
128
|
|
124
|
-
endpoint :job_run do
|
129
|
+
endpoint :job_run do |_ids|
|
125
130
|
begin
|
126
131
|
s = Marty::BackgroundJob::Schedule.find(client_config['selected'])
|
127
132
|
klass = s.job_class
|
@@ -61,15 +61,22 @@ module Marty
|
|
61
61
|
a.text = 'Delete all'
|
62
62
|
a.tooltip = 'Delete all logs'
|
63
63
|
a.icon_cls = 'fa fa-trash glyph'
|
64
|
+
|
65
|
+
a.handler = :netzke_call_endpoint
|
66
|
+
a.require_confirmation = true
|
67
|
+
a.confirmation_title = 'Delete All'
|
68
|
+
a.in_progress_message = 'Deleting...'
|
69
|
+
a.endpoint_name = :destroy_all
|
64
70
|
end
|
65
71
|
|
66
72
|
action :ignore do |a|
|
67
73
|
a.text = 'Ignore in diag'
|
68
74
|
a.tooltip = 'Ignore in diag'
|
69
75
|
a.icon_cls = 'fa fa-trash glyph'
|
76
|
+
a.handler = :netzke_call_endpoint
|
70
77
|
end
|
71
78
|
|
72
|
-
endpoint :destroy_all do
|
79
|
+
endpoint :destroy_all do |_params|
|
73
80
|
Marty::BackgroundJob::Log.delete_all
|
74
81
|
client.reload
|
75
82
|
end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
{
|
2
|
-
getComponent
|
2
|
+
getComponent(name) {
|
3
3
|
return Ext.getCmp(name);
|
4
4
|
},
|
5
5
|
|
6
|
-
findComponent
|
6
|
+
findComponent(name) {
|
7
7
|
return Ext.ComponentQuery.query(`[name=${name}]`)[0];
|
8
8
|
},
|
9
9
|
|
10
|
-
setDisableComponentActions
|
10
|
+
setDisableComponentActions(prefix, flag) {
|
11
11
|
for (var key in this.actions) {
|
12
12
|
if (key.substring(0, prefix.length) == prefix) {
|
13
13
|
this.actions[key].setDisabled(flag);
|
@@ -15,7 +15,7 @@
|
|
15
15
|
}
|
16
16
|
},
|
17
17
|
|
18
|
-
initComponent
|
18
|
+
initComponent() {
|
19
19
|
this.dockedItems = this.dockedItems || [];
|
20
20
|
if (this.paging == 'pagination') {
|
21
21
|
this.dockedItems.push({
|
@@ -103,14 +103,14 @@
|
|
103
103
|
}
|
104
104
|
},
|
105
105
|
|
106
|
-
onSelectionChange
|
106
|
+
onSelectionChange(f) {
|
107
107
|
var me = this;
|
108
108
|
me.getSelectionModel().on('selectionchange', f);
|
109
109
|
},
|
110
110
|
|
111
111
|
// override netzkeReloadStore to allow option passthrough
|
112
112
|
// reference: http://api.netzke.org/client/files/doc_client_netzke-basepack_javascripts_grid_event_handlers.js.html
|
113
|
-
netzkeReloadStore
|
113
|
+
netzkeReloadStore(opts = {}) {
|
114
114
|
var store = this.getStore();
|
115
115
|
|
116
116
|
// HACK to work around buffered store's buggy reload()
|
@@ -119,7 +119,7 @@
|
|
119
119
|
} else store.reload(opts);
|
120
120
|
},
|
121
121
|
|
122
|
-
doViewInForm
|
122
|
+
doViewInForm(record) {
|
123
123
|
this.netzkeLoadComponent("view_window", {
|
124
124
|
serverConfig: {
|
125
125
|
record_id: record.id
|
@@ -138,13 +138,11 @@
|
|
138
138
|
// always reset store to first page on reload
|
139
139
|
// to avoid load bug when moving from a higher page count
|
140
140
|
// to a grid with a lower page count
|
141
|
-
reload
|
142
|
-
start: 0
|
143
|
-
}) {
|
141
|
+
reload(opts = { start: 0 }) {
|
144
142
|
this.netzkeReloadStore(opts);
|
145
143
|
},
|
146
144
|
|
147
|
-
reloadAll
|
145
|
+
reloadAll() {
|
148
146
|
var me = this;
|
149
147
|
var children = me.serverConfig.child_components || [];
|
150
148
|
this.store.reload();
|
@@ -156,11 +154,16 @@
|
|
156
154
|
}
|
157
155
|
},
|
158
156
|
|
159
|
-
clearFilters
|
157
|
+
clearFilters() {
|
160
158
|
this.filters.clearFilters();
|
161
159
|
},
|
162
160
|
|
163
|
-
netzkeGridSelectedDefaultAction
|
161
|
+
netzkeGridSelectedDefaultAction(endpoint, confirmation) {
|
162
|
+
console.log(`
|
163
|
+
netzkeGridSelectedDefaultAction is deprecated.
|
164
|
+
Please use netzkeCallEndpoint instead.
|
165
|
+
`);
|
166
|
+
|
164
167
|
var selected = this.getSelectionModel().getSelection().map((r) => r.id)
|
165
168
|
|
166
169
|
if (confirmation) {
|
@@ -176,5 +179,38 @@
|
|
176
179
|
} else {
|
177
180
|
this.server[endpoint](selected, () => { this.unmask() })
|
178
181
|
}
|
179
|
-
}
|
182
|
+
},
|
183
|
+
|
184
|
+
// FIXME: move to netzke
|
185
|
+
netzkeCallEndpoint(action) {
|
186
|
+
const selected = this.getSelectionModel().getSelection().map((r) => r.id)
|
187
|
+
const endpointName = action.endpointName || action.name;
|
188
|
+
|
189
|
+
const camelCasedEndpointName = endpointName.replace(
|
190
|
+
/_([a-z])/g,
|
191
|
+
(g) => g[1].toUpperCase()
|
192
|
+
);
|
193
|
+
|
194
|
+
const requireConfirmation = action.requireConfirmation || action.confirmationMessage;
|
195
|
+
|
196
|
+
const handlerFunction = this.server[camelCasedEndpointName];
|
197
|
+
|
198
|
+
if (!requireConfirmation) {
|
199
|
+
return handlerFunction(selected, () => { this.unmask()});
|
200
|
+
};
|
201
|
+
|
202
|
+
const confirmationTitle = action.confirmationTitle || action.name;
|
203
|
+
const confirmationMessage = action.confirmationMessage || 'Are you sure?';
|
204
|
+
const inProgressMessage = action.inProgressMessage || 'In progress...';
|
205
|
+
|
206
|
+
return Ext.Msg.confirm(
|
207
|
+
confirmationTitle,
|
208
|
+
Ext.String.format(confirmationMessage),
|
209
|
+
(btn, value, cfg) => {
|
210
|
+
if (btn !== "yes") { return null; };
|
211
|
+
this.mask(inProgressMessage);
|
212
|
+
return handlerFunction(selected, () => { this.unmask()});
|
213
|
+
}
|
214
|
+
);
|
215
|
+
},
|
180
216
|
}
|
@@ -89,9 +89,21 @@ class Marty::PromiseView < Netzke::Tree::Base
|
|
89
89
|
client.netzke_on_refresh
|
90
90
|
end
|
91
91
|
|
92
|
-
def get_records
|
92
|
+
def get_records(params)
|
93
93
|
search_scope = config[:live_search_scope] || :live_search
|
94
|
-
Marty::VwPromise.children_for_id(params[:id], params[search_scope])
|
94
|
+
res = Marty::VwPromise.children_for_id(params[:id], params[search_scope])
|
95
|
+
|
96
|
+
# Fetch actual promise objects without results in advance to avoid N+1
|
97
|
+
promises_without_status_ids = res.reject(&:status).map(&:id)
|
98
|
+
promises_without_status = Marty::Promise.where(
|
99
|
+
id: promises_without_status_ids
|
100
|
+
)
|
101
|
+
|
102
|
+
@results = promises_without_status.each_with_object({}) do |promise, hash|
|
103
|
+
hash[promise.id] = promise.result.to_s
|
104
|
+
end
|
105
|
+
|
106
|
+
res
|
95
107
|
end
|
96
108
|
|
97
109
|
attribute :title do |config|
|
@@ -130,11 +142,10 @@ class Marty::PromiseView < Netzke::Tree::Base
|
|
130
142
|
end
|
131
143
|
|
132
144
|
attribute :error do |config|
|
133
|
-
config.getter = ->(record)
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
}
|
145
|
+
config.getter = ->(record) do
|
146
|
+
@results[record.id] unless record.status
|
147
|
+
end
|
148
|
+
|
138
149
|
config.flex = 1
|
139
150
|
end
|
140
151
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
{
|
2
|
-
initComponent
|
2
|
+
initComponent() {
|
3
3
|
this.callParent();
|
4
4
|
|
5
5
|
this.mainPanel = this.down('panel[itemId="main_panel"]');
|
@@ -10,9 +10,11 @@
|
|
10
10
|
Ext.Ajax.on('beforerequest', function () {
|
11
11
|
statusBar.showBusy();
|
12
12
|
});
|
13
|
+
|
13
14
|
Ext.Ajax.on('requestcomplete', function () {
|
14
15
|
statusBar.hideBusy();
|
15
16
|
});
|
17
|
+
|
16
18
|
Ext.Ajax.on('requestexception', function () {
|
17
19
|
statusBar.hideBusy();
|
18
20
|
});
|
@@ -21,13 +23,13 @@
|
|
21
23
|
this.netzkeInitComponentCallback();
|
22
24
|
},
|
23
25
|
|
24
|
-
setRouting
|
26
|
+
setRouting() {
|
25
27
|
this.router = Ext.util.History;
|
26
28
|
this.router.init();
|
27
29
|
this.router.on('change', this.loadRoute, this);
|
28
30
|
},
|
29
31
|
|
30
|
-
loadRoute
|
32
|
+
loadRoute(token) {
|
31
33
|
if (token) {
|
32
34
|
this.netzkeLoadComponent(token, {
|
33
35
|
container: this.mainPanel
|
@@ -37,7 +39,7 @@
|
|
37
39
|
}
|
38
40
|
},
|
39
41
|
|
40
|
-
afterRender
|
42
|
+
afterRender() {
|
41
43
|
this.callParent();
|
42
44
|
var currentToken = this.router.getToken();
|
43
45
|
if (typeof currentToken == "string" && currentToken.length > 0) {
|
@@ -45,18 +47,51 @@
|
|
45
47
|
}
|
46
48
|
},
|
47
49
|
|
48
|
-
appLoadComponent
|
50
|
+
appLoadComponent(name) {
|
49
51
|
this.router.add(name);
|
50
52
|
},
|
51
53
|
|
52
|
-
netzkeLoadComponentByAction
|
54
|
+
netzkeLoadComponentByAction(action) {
|
53
55
|
this.router.add(action.name.underscore());
|
54
56
|
},
|
55
57
|
|
56
|
-
onToggleConfigMode
|
58
|
+
onToggleConfigMode(params) {
|
57
59
|
this.toggleConfigMode();
|
58
60
|
},
|
59
61
|
|
60
|
-
netzkeInitComponentCallback
|
62
|
+
netzkeInitComponentCallback() {
|
63
|
+
},
|
64
|
+
|
65
|
+
// FIXME: move to netzke
|
66
|
+
netzkeCallEndpoint(action) {
|
67
|
+
const selected = this.getSelectionModel().getSelection().map((r) => r.id)
|
68
|
+
const endpointName = action.endpointName || action.name;
|
69
|
+
|
70
|
+
const camelCasedEndpointName = endpointName.replace(
|
71
|
+
/_([a-z])/g,
|
72
|
+
(g) => g[1].toUpperCase()
|
73
|
+
);
|
74
|
+
|
75
|
+
const requireConfirmation = action.requireConfirmation || action.confirmationMessage;
|
76
|
+
|
77
|
+
const handlerFunction = this.server[camelCasedEndpointName];
|
78
|
+
|
79
|
+
if (!requireConfirmation) {
|
80
|
+
return handlerFunction(selected, () => { this.unmask()});
|
81
|
+
};
|
82
|
+
|
83
|
+
const confirmationTitle = action.confirmationTitle || action.name;
|
84
|
+
const confirmationMessage = action.confirmationMessage || 'Are you sure?';
|
85
|
+
const inProgressMessage = action.inProgressMessage || 'In progress...';
|
86
|
+
|
87
|
+
return Ext.Msg.confirm(
|
88
|
+
confirmationTitle,
|
89
|
+
Ext.String.format(confirmationMessage),
|
90
|
+
(btn, value, cfg) => {
|
91
|
+
if (btn !== "yes") { return null; };
|
92
|
+
this.mask(inProgressMessage);
|
93
|
+
return handlerFunction(selected, () => { this.unmask()});
|
94
|
+
}
|
95
|
+
);
|
61
96
|
},
|
62
97
|
}
|
data/app/models/marty/promise.rb
CHANGED
@@ -176,12 +176,12 @@ class Marty::Promise < Marty::Base
|
|
176
176
|
|
177
177
|
delorean_fn :result_and_status, sig: 1 do |promise_id|
|
178
178
|
promise = find_by(id: promise_id)
|
179
|
-
next { error
|
179
|
+
next { 'error' => 'not found' } if promise.nil?
|
180
180
|
|
181
181
|
{
|
182
|
-
completed
|
183
|
-
status
|
184
|
-
result
|
182
|
+
'completed' => !promise.status.nil?,
|
183
|
+
'status' => promise.status,
|
184
|
+
'result' => promise.result
|
185
185
|
}
|
186
186
|
end
|
187
187
|
|
data/docker-compose.dummy.yml
CHANGED
data/lib/marty/monkey.rb
CHANGED
@@ -122,7 +122,11 @@ module Netzke
|
|
122
122
|
return unless @model_adapter.attr_type(name) == :boolean
|
123
123
|
return if key?(:default_value)
|
124
124
|
|
125
|
-
|
125
|
+
m = @model_adapter.model
|
126
|
+
|
127
|
+
return self.default_value = false unless m.respond_to?(:column_defaults)
|
128
|
+
|
129
|
+
self.default_value = @model_adapter.model.column_defaults[name] || false
|
126
130
|
end
|
127
131
|
end
|
128
132
|
end
|
data/lib/marty/version.rb
CHANGED
@@ -14,9 +14,8 @@ feature 'Inline editing', js: true do
|
|
14
14
|
grid = netzke_find('simple_view')
|
15
15
|
press 'Add'
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
name = row.all('.x-grid-cell')[1]
|
17
|
+
user_id = grid.all('.x-grid-cell')[0]
|
18
|
+
name = grid.all('.x-grid-cell')[1]
|
20
19
|
|
21
20
|
user_id.double_click
|
22
21
|
user_id.fill_in 'user_id', with: 1
|
@@ -29,5 +28,6 @@ feature 'Inline editing', js: true do
|
|
29
28
|
|
30
29
|
model = Gemini::Simple.find_by(some_name: 'test name')
|
31
30
|
expect(model.active).to be false
|
31
|
+
expect(model.default_true).to be true
|
32
32
|
end
|
33
33
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.
|
4
|
+
version: 8.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arman Bostani
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
|
-
date: 2019-12-
|
17
|
+
date: 2019-12-11 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: actioncable
|
@@ -313,9 +313,7 @@ files:
|
|
313
313
|
- app/components/marty/background_job/delayed_jobs_grid.rb
|
314
314
|
- app/components/marty/background_job/schedule_jobs_dashboard.rb
|
315
315
|
- app/components/marty/background_job/schedule_jobs_grid.rb
|
316
|
-
- app/components/marty/background_job/schedule_jobs_grid/client/schedule_jobs_grid.js
|
317
316
|
- app/components/marty/background_job/schedule_jobs_logs.rb
|
318
|
-
- app/components/marty/background_job/schedule_jobs_logs/client/schedule_jobs_logs.js
|
319
317
|
- app/components/marty/base_rule_view.rb
|
320
318
|
- app/components/marty/base_rule_view/client/base_rule_view.js
|
321
319
|
- app/components/marty/config_view.rb
|
@@ -665,6 +663,7 @@ files:
|
|
665
663
|
- spec/dummy/db/migrate/20171222150100_add_rule_indices.rb
|
666
664
|
- spec/dummy/db/migrate/20190702115241_add_simple_guards_options_to_rules.rb
|
667
665
|
- spec/dummy/db/migrate/20191101132729_add_activity_flag_to_simple.rb
|
666
|
+
- spec/dummy/db/migrate/20191206132729_add_default_true_column_to_simple.rb
|
668
667
|
- spec/dummy/db/seeds.rb
|
669
668
|
- spec/dummy/delorean/base_code.dl
|
670
669
|
- spec/dummy/delorean/blame_report.dl
|
@@ -1,13 +0,0 @@
|
|
1
|
-
{
|
2
|
-
netzkeOnDoJobRun: function(params) {
|
3
|
-
Ext.Msg.confirm(
|
4
|
-
'Run Job',
|
5
|
-
Ext.String.format('Are you sure?'),
|
6
|
-
(btn, value, cfg) => {
|
7
|
-
if (btn == "yes") {
|
8
|
-
this.mask('Performing job...');
|
9
|
-
this.server.jobRun(() => { this.unmask()});
|
10
|
-
}
|
11
|
-
});
|
12
|
-
}
|
13
|
-
}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
{
|
2
|
-
netzkeOnDestroyAll: function(params) {
|
3
|
-
Ext.Msg.confirm(
|
4
|
-
'Delete all',
|
5
|
-
Ext.String.format('Are you sure?'),
|
6
|
-
(btn, value, cfg) => {
|
7
|
-
if (btn == "yes") {
|
8
|
-
this.mask('Deleting...');
|
9
|
-
this.server.destroyAll(() => { this.unmask()});
|
10
|
-
}
|
11
|
-
});
|
12
|
-
},
|
13
|
-
|
14
|
-
netzkeOnIgnore: function(_) { return this.netzkeGridSelectedDefaultAction('ignore') }
|
15
|
-
}
|