marty 2.0.9 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/app/components/marty/grid.rb +17 -0
- data/lib/marty/javascript/overrides.js +66 -3
- data/lib/marty/version.rb +1 -1
- data/other/marty/diagnostic/connections.rb +17 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 74cf23a65bfc74eca6990825fc5cd0e3498ce1ee
|
4
|
+
data.tar.gz: bbe239541fa78e0520ba9556ce2e54a6bdcd316d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b83dbaa63058e3cb97bf2075b41630737fe3caed36b5f006b70c34e2dc743dc57333064b5952cd3e933b1b67a81309001e688944d0f0de4eb5a558d5ce27db6
|
7
|
+
data.tar.gz: a8a857fcf340d133ecf3a9248aad919630f8f11c480b3301abf7df896a70e7bb4811fddef838b4787bfe6c08d95863a33eb88045fe50b29c14e158ede8484b6c
|
data/Gemfile.lock
CHANGED
@@ -39,6 +39,12 @@ class Marty::Grid < ::Netzke::Grid::Base
|
|
39
39
|
}});
|
40
40
|
}
|
41
41
|
JS
|
42
|
+
|
43
|
+
c.clear_filters = l(<<-JS)
|
44
|
+
function() {
|
45
|
+
this.filters.clearFilters();
|
46
|
+
}
|
47
|
+
JS
|
42
48
|
end
|
43
49
|
|
44
50
|
component :view_window do |c|
|
@@ -71,6 +77,17 @@ class Marty::Grid < ::Netzke::Grid::Base
|
|
71
77
|
false
|
72
78
|
end
|
73
79
|
|
80
|
+
# To add :clear_filters to your app's bbar, add the following lines:
|
81
|
+
# def default_bbar
|
82
|
+
# [:clear_filters] + super
|
83
|
+
# end
|
84
|
+
|
85
|
+
action :clear_filters do |a|
|
86
|
+
a.text = "X"
|
87
|
+
a.tooltip = "Clear filters"
|
88
|
+
a.handler = :clear_filters
|
89
|
+
end
|
90
|
+
|
74
91
|
def get_json_sorter(json_col, field)
|
75
92
|
lambda do |r, dir|
|
76
93
|
r.order("#{json_col} ->> '#{field}' " + dir.to_s)
|
@@ -1,14 +1,77 @@
|
|
1
1
|
Ext.define('Netzke.Grid.EventHandlers', {
|
2
2
|
override: 'Netzke.Grid.EventHandlers',
|
3
|
-
netzkeHandleItemdblclick: function(view, record){
|
3
|
+
netzkeHandleItemdblclick: function(view, record) {
|
4
4
|
if (this.editsInline) return; // inline editing is handled elsewhere
|
5
5
|
|
6
|
+
// MONKEY: add view in form capability
|
6
7
|
var has_perm = (this.permissions || {});
|
7
8
|
if (has_perm.read !== false && !has_perm.update) {
|
8
9
|
this.doViewInForm(record);
|
9
|
-
}
|
10
|
-
else if (has_perm.update !== false) {
|
10
|
+
} else if (has_perm.update !== false) {
|
11
11
|
this.doEditInForm(record);
|
12
12
|
}
|
13
13
|
},
|
14
|
+
|
15
|
+
netzkeReloadStore: function() {
|
16
|
+
var store = this.getStore();
|
17
|
+
|
18
|
+
// MONKEY: add netzkereload event on store
|
19
|
+
store.fireEvent('netzkereload');
|
20
|
+
|
21
|
+
// NETZKE'S HACK to work around buffered store's buggy reload()
|
22
|
+
if (!store.lastRequestStart) {
|
23
|
+
store.load();
|
24
|
+
} else store.reload();
|
25
|
+
},
|
26
|
+
});
|
27
|
+
|
28
|
+
Ext.define('Ext.toolbar.Paging', {
|
29
|
+
override: 'Ext.toolbar.Paging',
|
30
|
+
|
31
|
+
handleRefresh: Ext.emptyFn,
|
32
|
+
|
33
|
+
doRefresh: function() {
|
34
|
+
var me = this,
|
35
|
+
current = me.store.currentPage;
|
36
|
+
|
37
|
+
// MONKEY: add netzkerefresh to ExtJS paging toolbar refresh
|
38
|
+
// as beforechange is too generic
|
39
|
+
me.store.fireEvent('netzkerefresh', me);
|
40
|
+
|
41
|
+
if (me.fireEvent('beforechange', me, current) !== false) {
|
42
|
+
me.store.loadPage(current);
|
43
|
+
|
44
|
+
me.handleRefresh();
|
45
|
+
}
|
46
|
+
}
|
47
|
+
});
|
48
|
+
|
49
|
+
Ext.define('Netzke.Grid.Columns', {
|
50
|
+
override: 'Netzke.Grid.Columns',
|
51
|
+
netzkeNormalizeAssociationRenderer: function(c) {
|
52
|
+
var passedRenderer = c.renderer, // renderer we got from netzkeNormalizeRenderer
|
53
|
+
assocValue;
|
54
|
+
c.scope = this;
|
55
|
+
c.renderer = function(value, a, r, ri, ci, store, view){
|
56
|
+
var column = view.headerCt.items.getAt(ci),
|
57
|
+
editor = column.getEditor && column.getEditor(),
|
58
|
+
|
59
|
+
/* MONKEY: use findRecordByValue instead of findRecord to remedy inline editing temporarily
|
60
|
+
changing N/A columns to the recently changed value.
|
61
|
+
*/
|
62
|
+
recordFromStore = editor && editor.isXType('combobox') && editor.findRecordByValue(value),
|
63
|
+
renderedValue;
|
64
|
+
|
65
|
+
if (recordFromStore) {
|
66
|
+
renderedValue = recordFromStore.get('text');
|
67
|
+
} else if ((assocValue = (r.get('association_values') || {})[c.name]) !== undefined) {
|
68
|
+
renderedValue = (assocValue == undefined) ? c.emptyText : assocValue;
|
69
|
+
} else {
|
70
|
+
renderedValue = value;
|
71
|
+
}
|
72
|
+
|
73
|
+
return passedRenderer ? passedRenderer.call(this, renderedValue) : renderedValue;
|
74
|
+
};
|
75
|
+
},
|
14
76
|
});
|
77
|
+
|
data/lib/marty/version.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
module Marty::Diagnostic; class Connections < Base
|
2
|
+
self.aggregatable = false
|
3
|
+
diagnostic_fn do
|
4
|
+
conns = Node.get_postgres_connections[Database.db_name].
|
5
|
+
sort_by{|h| [h['application_name'], h['pid'], h['client_addr']]}
|
6
|
+
|
7
|
+
counts = Hash.new(0)
|
8
|
+
conns.each_with_object({}) do |c, h|
|
9
|
+
c['client_addr'] = 'localhost' unless c['client_addr']
|
10
|
+
name = c['application_name']
|
11
|
+
counts[name] += 1
|
12
|
+
key = "#{name} #{'*' * (counts[name]-1)}"
|
13
|
+
h[key] = c.except('application_name').map{|k,v| "<li>#{k}: #{v}</li>"}.join
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
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: 2.0
|
4
|
+
version: 2.1.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: 2018-05
|
17
|
+
date: 2018-06-05 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: pg
|
@@ -497,6 +497,7 @@ files:
|
|
497
497
|
- other/marty/diagnostic/aws/ec2_instance.rb
|
498
498
|
- other/marty/diagnostic/base.rb
|
499
499
|
- other/marty/diagnostic/collection.rb
|
500
|
+
- other/marty/diagnostic/connections.rb
|
500
501
|
- other/marty/diagnostic/database.rb
|
501
502
|
- other/marty/diagnostic/delayed_job_version.rb
|
502
503
|
- other/marty/diagnostic/delayed_job_workers.rb
|