conjur-asset-ui 1.3.1 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -3
- data/Gemfile +1 -3
- data/README.md +0 -34
- data/Rakefile +1 -69
- data/conjur-asset-ui.gemspec +1 -1
- data/lib/conjur-asset-ui-version.rb +1 -1
- data/lib/conjur/command/ui.rb +1 -1
- data/lib/conjur/webserver/server.rb +8 -14
- data/public/_client_code.html +42 -0
- data/public/_client_libs.html +15 -2
- data/public/css/bootstrap.css +7 -0
- data/public/css/styles.less +4 -170
- data/public/fonts/glyphicons-halflings-regular.eot +0 -0
- data/public/fonts/glyphicons-halflings-regular.svg +229 -0
- data/public/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/public/fonts/glyphicons-halflings-regular.woff +0 -0
- data/public/index.html.erb +7 -5
- data/public/js/init.js +97 -183
- data/public/js/lib/JSXTransformer.js +10862 -0
- data/public/js/lib/async.js +958 -0
- data/public/js/lib/backbone.js +2 -0
- data/public/js/lib/bootstrap.js +6 -0
- data/public/js/lib/less.js +16 -0
- data/public/js/lib/moment.js +7768 -0
- data/public/js/lib/react-bootstrap.js +5346 -0
- data/public/js/lib/react-bootstrap.min.js +4 -0
- data/public/js/lib/sorted-set.no-require.js +28 -3
- data/public/js/lib/underscore-min.js +6 -0
- data/public/js/lib/underscore.string.min.js +1 -0
- data/public/js/main.js +57 -0
- data/public/js/models/groupRecord.js +11 -12
- data/public/js/models/hostRecord.js +7 -6
- data/public/js/models/layerRecord.js +11 -12
- data/public/js/models/namespace.js +0 -2
- data/public/js/models/policyList.js +1 -3
- data/public/js/models/policyRecord.js +7 -6
- data/public/js/models/record.js +23 -24
- data/public/js/models/resourceList.js +10 -28
- data/public/js/models/userList.js +2 -7
- data/public/js/models/userRecord.js +8 -7
- data/public/js/models/variableList.js +7 -18
- data/public/js/models/variableRecord.js +12 -13
- data/public/js/routers.js +26 -72
- data/public/js/views/annotations.js +27 -38
- data/public/js/views/audit.js +17 -23
- data/public/js/views/dashboard.js +58 -94
- data/public/js/views/generic.js +9 -16
- data/public/js/views/group.js +55 -94
- data/public/js/views/groups.js +7 -3
- data/public/js/views/host.js +44 -75
- data/public/js/views/hosts.js +6 -2
- data/public/js/views/layer.js +82 -127
- data/public/js/views/layers.js +6 -2
- data/public/js/views/mixins/search.js +5 -12
- data/public/js/views/mixins/tabs.js +55 -95
- data/public/js/views/navSearch.js +5 -16
- data/public/js/views/owned.js +8 -14
- data/public/js/views/permissions.js +178 -244
- data/public/js/views/policies.js +4 -2
- data/public/js/views/policy.js +38 -65
- data/public/js/views/resource.js +34 -49
- data/public/js/views/role.js +37 -52
- data/public/js/views/searchResults.js +138 -205
- data/public/js/views/time.js +13 -26
- data/public/js/views/user.js +55 -178
- data/public/js/views/users.js +7 -2
- data/public/js/views/variable.js +45 -226
- data/public/js/views/variables.js +8 -4
- metadata +19 -18
- data/.jshintrc +0 -41
- data/bower.json +0 -93
- data/features/navigation_bar.feature +0 -31
- data/features/step_definitions/custom_step.rb +0 -32
- data/features/support/env.rb +0 -38
- data/features/support/hooks.rb +0 -30
- data/features/support/world.rb +0 -17
- data/gulpfile.js +0 -140
- data/package.json +0 -47
- data/preprocessor.js +0 -7
- data/public/js/views/chart.js +0 -471
data/public/js/views/time.js
CHANGED
@@ -1,27 +1,14 @@
|
|
1
1
|
/** @jsx React.DOM */
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
return (
|
17
|
-
<time dateTime={m.format()}>{m.format(format)}</time>
|
18
|
-
);
|
19
|
-
}
|
20
|
-
});
|
21
|
-
|
22
|
-
}).bind(conjur.views)
|
23
|
-
(
|
24
|
-
conjur,
|
25
|
-
React,
|
26
|
-
moment
|
27
|
-
);
|
2
|
+
|
3
|
+
// render a <time> tag. props.timestamp should be a timestamp
|
4
|
+
// that moment can parse, props.format should be one of the
|
5
|
+
// format strings accepted by moment (optional).
|
6
|
+
var Time = React.createClass({
|
7
|
+
render: function(){
|
8
|
+
var timestamp = this.props.timestamp;
|
9
|
+
var format = this.props.format || 'lll';
|
10
|
+
var m = moment(timestamp);
|
11
|
+
|
12
|
+
return <time dateTime={m.format()}>{m.format(format)}</time>;
|
13
|
+
}
|
14
|
+
})
|
data/public/js/views/user.js
CHANGED
@@ -1,133 +1,20 @@
|
|
1
1
|
/** @jsx React.DOM */
|
2
|
-
/* global conjur, _, React, ReactBootstrap */
|
3
2
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
</div>
|
20
|
-
<ul className="b-pubkey__list list-unstyled">
|
21
|
-
<li className="b-pubkey__name">
|
22
|
-
{this.props.pubkey[2]}
|
23
|
-
</li>
|
24
|
-
<li className="b-pubkey__fingerprint">
|
25
|
-
{/* TODO: key fingerprint */}
|
26
|
-
</li>
|
27
|
-
<li className="b-pubkey__info">
|
28
|
-
{/* TODO: When added, when last time used */}
|
29
|
-
</li>
|
30
|
-
</ul>
|
31
|
-
<div className="b-pubkeys__actions">
|
32
|
-
{/* TODO: Action buttons */}
|
33
|
-
</div>
|
34
|
-
</div>
|
35
|
-
);
|
36
|
-
}
|
37
|
-
});
|
38
|
-
|
39
|
-
var PubkeysList = React.createClass({
|
40
|
-
render: function() {
|
41
|
-
var login = this.props.login;
|
42
|
-
|
43
|
-
var pubkeysList = this.props.pubkeys.map(function(k, idx, coll) {
|
44
|
-
var tokens = k.split(' ');
|
45
|
-
|
46
|
-
console.log(arguments);
|
47
|
-
|
48
|
-
var className = 'b-pubkeys__item list-group-item list-group-item-noborder';
|
49
|
-
|
50
|
-
if (idx + 1 !== coll.length) {
|
51
|
-
className = className + ' b-pubkeys__item--headline';
|
52
|
-
}
|
53
|
-
|
54
|
-
return (
|
55
|
-
<li className={className}>
|
56
|
-
<PubkeyItem pubkey={tokens} />
|
57
|
-
</li>
|
58
|
-
);
|
59
|
-
});
|
60
|
-
|
61
|
-
return (
|
62
|
-
<div className="b-pubkeys">
|
63
|
-
<PubkeysHelp>
|
64
|
-
This is list of SSH public keys associated with user {login}.
|
65
|
-
</PubkeysHelp>
|
66
|
-
<ul className="b-pubkeys__list">
|
67
|
-
{pubkeysList}
|
68
|
-
</ul>
|
69
|
-
</div>
|
70
|
-
);
|
71
|
-
}
|
72
|
-
});
|
73
|
-
|
74
|
-
var PubkeysHelp = React.createClass({
|
75
|
-
render: function() {
|
76
|
-
var ret;
|
77
|
-
|
78
|
-
if (React.Children.count(this.props.children) > 0) {
|
79
|
-
ret = (
|
80
|
-
<p className="b-pubkeys__help">
|
81
|
-
{this.props.children}
|
82
|
-
</p>
|
83
|
-
);
|
84
|
-
} else {
|
85
|
-
var login = this.props.login;
|
86
|
-
|
87
|
-
ret = (
|
88
|
-
<p className="b-pubkeys__help">
|
89
|
-
User {login} have not any pubkey. Use follow command to create one:
|
90
|
-
<pre>$ conjur pubkeys add {login} @id_{login}.pub</pre>
|
91
|
-
</p>
|
92
|
-
);
|
93
|
-
}
|
94
|
-
|
95
|
-
return ret;
|
96
|
-
}
|
97
|
-
});
|
98
|
-
|
99
|
-
var PubkeysTabContent = React.createClass({
|
100
|
-
render: function() {
|
101
|
-
var body;
|
102
|
-
|
103
|
-
if (this.props.pubkeys.length > 0) {
|
104
|
-
body = (
|
105
|
-
<PubkeysList login={this.props.login} pubkeys={this.props.pubkeys} />
|
106
|
-
);
|
107
|
-
} else {
|
108
|
-
body = (
|
109
|
-
<div className="b-pubkeys">
|
110
|
-
<PubkeysHelp login={this.props.login} />
|
111
|
-
</div>
|
112
|
-
);
|
113
|
-
}
|
114
|
-
|
115
|
-
return body;
|
116
|
-
}
|
117
|
-
});
|
118
|
-
|
119
|
-
this.User = React.createClass({
|
120
|
-
mixins: [Tab],
|
121
|
-
|
122
|
-
render: function() {
|
123
|
-
var user = this.props.data.user;
|
124
|
-
|
125
|
-
// TODO: refactor
|
126
|
-
// TODO: show public keys
|
127
|
-
// TODO: actions menu (e.g. 'upload public key', 'add annotation')
|
128
|
-
// TODO: memberships panel
|
129
|
-
var overviewTab = (
|
130
|
-
<TabPane key="overview" tab="Overview">
|
3
|
+
//var ReactBootstrap=root.ReactBootstrap;
|
4
|
+
var TabbedArea = ReactBootstrap.TabbedArea;
|
5
|
+
var TabPane = ReactBootstrap.TabPane;
|
6
|
+
|
7
|
+
var User = React.createClass({
|
8
|
+
mixins: [conjur.views.mixins.Tab],
|
9
|
+
render: function(){
|
10
|
+
var user = this.props.data.user;
|
11
|
+
|
12
|
+
// TODO: refactor
|
13
|
+
// TODO: show public keys
|
14
|
+
// TODO: actions menu (e.g. 'upload public key', 'add annotation')
|
15
|
+
// TODO: memberships panel
|
16
|
+
var overview_tab =
|
17
|
+
<TabPane key="overview" tab="Overview">
|
131
18
|
<dl className="dl-horizontal">
|
132
19
|
<dt>Created by</dt>
|
133
20
|
<dd><RoleLink id={user.userid}/></dd>
|
@@ -136,56 +23,46 @@
|
|
136
23
|
<dt>Uidnumber</dt>
|
137
24
|
<dd>{user.uidnumber}</dd>
|
138
25
|
</dl>
|
139
|
-
|
140
|
-
);
|
26
|
+
</TabPane>;
|
141
27
|
|
142
|
-
|
143
|
-
|
28
|
+
var audit_tab=
|
29
|
+
<TabPane key="audit" tab="Recent Activity">
|
144
30
|
<div className="audit auditUser">
|
145
|
-
<AuditBox roles={[user.roleid]}
|
146
|
-
resources={[user.resource_identifier]}
|
147
|
-
tabview={true} />
|
31
|
+
<AuditBox roles={[user.roleid]} resources={[user.resource_identifier]} tabview={true}/>
|
148
32
|
</div>
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
}).bind(conjur.views)
|
186
|
-
(
|
187
|
-
conjur,
|
188
|
-
_,
|
189
|
-
React,
|
190
|
-
ReactBootstrap
|
191
|
-
);
|
33
|
+
</TabPane>;
|
34
|
+
|
35
|
+
var pubkeys_list = this.props.data.pubkeys.map(function(k) {
|
36
|
+
var tokens = k.split(" ");
|
37
|
+
return <li className="list-group-item list-group-item-noborder">
|
38
|
+
<span className="badge">{tokens[0]}</span>
|
39
|
+
{tokens[tokens.length-1]}
|
40
|
+
</li>
|
41
|
+
});
|
42
|
+
var pubkeys_tab = <TabPane key="pubkeys" tab={get_tabname("Public Keys", this.props.data.pubkeys)}>
|
43
|
+
<div className="pubkeys pubkeysUser">
|
44
|
+
<ul className="list-group">
|
45
|
+
{pubkeys_list}
|
46
|
+
</ul>
|
47
|
+
</div>
|
48
|
+
</TabPane>;
|
49
|
+
|
50
|
+
var permissions_tab = this.permissions_tab(user.roleid);
|
51
|
+
var memberships_tab = this.memberships_tab(user.roleid);
|
52
|
+
var annotations_tab = this.annotations_tab();
|
53
|
+
var owned_tab = this.owned_tab();
|
54
|
+
|
55
|
+
var tabs=_.compact([overview_tab, owned_tab, memberships_tab,
|
56
|
+
permissions_tab, annotations_tab, pubkeys_tab, audit_tab]);
|
57
|
+
|
58
|
+
|
59
|
+
return (
|
60
|
+
<div className="user">
|
61
|
+
<h2> User {user.login} </h2>
|
62
|
+
<TabbedArea defaultActiveKey="overview">
|
63
|
+
{tabs}
|
64
|
+
</TabbedArea>
|
65
|
+
</div>
|
66
|
+
);
|
67
|
+
}
|
68
|
+
});
|
data/public/js/views/users.js
CHANGED
@@ -1,13 +1,18 @@
|
|
1
1
|
/** @jsx React.DOM */
|
2
|
-
/* global conjur, React */
|
3
2
|
|
4
3
|
(function(conjur, React) {
|
5
4
|
'use strict';
|
6
5
|
|
7
6
|
var GenericList = conjur.views.GenericList;
|
8
7
|
|
9
|
-
this.UserBox = React.createClass({
|
8
|
+
var UserBox = this.UserBox = React.createClass({
|
9
|
+
// no more external manipulation of state
|
10
|
+
//getInitialState: function() {
|
11
|
+
// return { currentNamespace: "", members: [] };
|
12
|
+
//},
|
10
13
|
render: function() {
|
14
|
+
// <NamespaceFilter currentNamespace={this.props.currentNamespace}
|
15
|
+
// namespaces={this.props.data.namespaces} />
|
11
16
|
return (
|
12
17
|
<div className="userBox">
|
13
18
|
<div className="userList">
|
data/public/js/views/variable.js
CHANGED
@@ -1,251 +1,70 @@
|
|
1
1
|
/** @jsx React.DOM */
|
2
|
-
/* global conjur, React, ReactBootstrap, _ */
|
3
2
|
|
4
|
-
|
5
|
-
|
3
|
+
var Variable = React.createClass({
|
4
|
+
mixins: [conjur.views.mixins.Tab],
|
5
|
+
render: function() {
|
6
|
+
var updaters = this.props.data.updaters.map(function (member) {
|
7
|
+
return <li className="list-group-item list-group-item-noborder">
|
8
|
+
<RoleLink id={member} />
|
9
|
+
</li>
|
10
|
+
}.bind(this));
|
11
|
+
var fetchers = this.props.data.fetchers.map(function (member) {
|
12
|
+
return <li className="list-group-item list-group-item-noborder">
|
13
|
+
<RoleLink id={member} />
|
14
|
+
</li>
|
15
|
+
}.bind(this));
|
16
|
+
var resourceId = [ conjur.app.configuration.account, 'variable', this.props.data.variable.id ].join(':');
|
6
17
|
|
7
|
-
var TabbedArea = ReactBootstrap.TabbedArea,
|
8
|
-
TabPane = ReactBootstrap.TabPane,
|
9
|
-
Tab = conjur.views.mixins.Tab,
|
10
|
-
RoleLink = conjur.views.RoleLink,
|
11
|
-
AuditBox = window.AuditBox;
|
12
18
|
|
13
|
-
var RevealerBox = React.createClass({
|
14
|
-
getInitialState: function() {
|
15
|
-
return {revealed: false};
|
16
|
-
},
|
17
19
|
|
18
|
-
handleClick: function() {
|
19
|
-
this.setState({revealed: !this.state.revealed});
|
20
|
-
},
|
21
20
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
return (
|
26
|
-
<div className="revealer well well-sm" onClick={this.handleClick}>
|
27
|
-
{valToShow}
|
28
|
-
</div>
|
29
|
-
);
|
30
|
-
}
|
31
|
-
});
|
32
|
-
|
33
|
-
var Breadcrumb = React.createClass({
|
34
|
-
render: function() {
|
35
|
-
return (
|
36
|
-
<div className="b-breadcrumb">
|
37
|
-
|
38
|
-
</div>
|
39
|
-
);
|
40
|
-
}
|
41
|
-
});
|
42
|
-
|
43
|
-
var Breadcrumbs = React.createClass({
|
44
|
-
render: function() {
|
45
|
-
return (
|
46
|
-
<div className="b-breadcrumbs">
|
47
|
-
<Breadcrumb />
|
48
|
-
</div>
|
49
|
-
);
|
50
|
-
}
|
51
|
-
});
|
52
|
-
|
53
|
-
var Activity = React.createClass({
|
54
|
-
getInitialState: function() {
|
55
|
-
var data = this.getData();
|
56
|
-
|
57
|
-
return {
|
58
|
-
data: data,
|
59
|
-
options: {
|
60
|
-
legend: {
|
61
|
-
close: 'Closed',
|
62
|
-
sread: 'Suc. read',
|
63
|
-
supdate: 'Suc. update',
|
64
|
-
fread: 'Failed read',
|
65
|
-
fupdate: 'Failed update'
|
66
|
-
},
|
67
|
-
axis: {
|
68
|
-
y: {
|
69
|
-
label: 'Value'
|
70
|
-
}
|
71
|
-
}
|
72
|
-
}
|
73
|
-
};
|
74
|
-
},
|
75
|
-
|
76
|
-
getData: function() {
|
77
|
-
return [];
|
78
|
-
},
|
79
|
-
|
80
|
-
render: function() {
|
81
|
-
return (
|
82
|
-
<div className="b-variable-activity">
|
83
|
-
<h2>Activity</h2>
|
84
|
-
<div className="b-variable-activity__graph">
|
85
|
-
<Chart options={this.state.options}
|
86
|
-
data={this.state.data} />
|
87
|
-
</div>
|
88
|
-
</div>
|
89
|
-
);
|
90
|
-
}
|
91
|
-
});
|
92
|
-
|
93
|
-
var Updaters = React.createClass({
|
94
|
-
render: function() {
|
95
|
-
return (
|
96
|
-
<div className="b-variable-updaters">
|
97
|
-
<h2>Updaters</h2>
|
98
|
-
</div>
|
99
|
-
);
|
100
|
-
}
|
101
|
-
});
|
102
|
-
|
103
|
-
var Fetchers = React.createClass({
|
104
|
-
render: function() {
|
105
|
-
return (
|
106
|
-
<div className="b-variable-fetchers">
|
107
|
-
<h2>Fetchers</h2>
|
108
|
-
</div>
|
109
|
-
);
|
110
|
-
}
|
111
|
-
});
|
112
|
-
|
113
|
-
var Updates = React.createClass({
|
114
|
-
render: function() {
|
115
|
-
return (
|
116
|
-
<div className="b-variable-updates">
|
117
|
-
<h2>Updates</h2>
|
118
|
-
</div>
|
119
|
-
);
|
120
|
-
}
|
121
|
-
});
|
122
|
-
|
123
|
-
var Warnings = React.createClass({
|
124
|
-
render: function() {
|
125
|
-
return (
|
126
|
-
<div className="b-variable-warnings">
|
127
|
-
<h2>Warnings</h2>
|
128
|
-
</div>
|
129
|
-
);
|
130
|
-
}
|
131
|
-
});
|
132
|
-
|
133
|
-
this.Variable = React.createClass({
|
134
|
-
mixins: [Tab],
|
135
|
-
|
136
|
-
render: function() {
|
137
|
-
var updaters = this.props.data.updaters.map(function(member) {
|
138
|
-
return (
|
139
|
-
<li className="list-group-item list-group-item-noborder">
|
140
|
-
<RoleLink id={member} />
|
141
|
-
</li>
|
142
|
-
);
|
143
|
-
});
|
144
|
-
|
145
|
-
var fetchers = this.props.data.fetchers.map(function(member) {
|
146
|
-
return (
|
147
|
-
<li className="list-group-item list-group-item-noborder">
|
148
|
-
<RoleLink id={member} />
|
149
|
-
</li>
|
150
|
-
);
|
151
|
-
});
|
152
|
-
|
153
|
-
var resourceId = [
|
154
|
-
conjur.app.configuration.account,
|
155
|
-
'variable',
|
156
|
-
this.props.data.variable.id
|
157
|
-
].join(':');
|
158
|
-
|
159
|
-
var overviewTab = (
|
160
|
-
<TabPane key="overview" tab="Overview">
|
161
|
-
<dl className="dl-horizontal pull-left">
|
21
|
+
var overview_tab =
|
22
|
+
<TabPane key="overview" tab="Overview">
|
23
|
+
<dl className="dl-horizontal">
|
162
24
|
<dt>Owner</dt>
|
163
|
-
<dd><RoleLink id={this.props.data.variable.ownerid}
|
164
|
-
|
25
|
+
<dd><RoleLink id={this.props.data.variable.ownerid}/></dd>
|
165
26
|
<dt>Created by</dt>
|
166
|
-
<dd><RoleLink id={this.props.data.variable.userid}
|
167
|
-
|
27
|
+
<dd><RoleLink id={this.props.data.variable.userid}/></dd>
|
168
28
|
<dt>MIME type</dt>
|
169
29
|
<dd>{this.props.data.variable.mime_type}</dd>
|
170
|
-
|
171
30
|
<dt>Kind</dt>
|
172
31
|
<dd>{this.props.data.variable.kind}</dd>
|
173
|
-
|
174
32
|
<dt>Versions</dt>
|
175
33
|
<dd>{this.props.data.variable.version_count}</dd>
|
176
34
|
</dl>
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
</TabPane>
|
181
|
-
);
|
182
|
-
|
183
|
-
var updatersTab = (
|
184
|
-
<TabPane key="updaters" tab={conjur.utils.getTabname('Updaters', updaters)}>
|
35
|
+
</TabPane>;
|
36
|
+
var updaters_tab =
|
37
|
+
<TabPane key="updaters" tab={get_tabname("Updaters",updaters)}>
|
185
38
|
<ul className="list-group">
|
186
39
|
{updaters}
|
187
40
|
</ul>
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
var fetchersTab = (
|
192
|
-
<TabPane key="fetchers" tab={conjur.utils.getTabname('Fetchers', fetchers)}>
|
41
|
+
</TabPane>;
|
42
|
+
var fetchers_tab =
|
43
|
+
<TabPane key="fetchers" tab={get_tabname("Fetchers",fetchers)}>
|
193
44
|
<ul className="list-group">
|
194
45
|
{fetchers}
|
195
46
|
</ul>
|
196
|
-
|
197
|
-
|
47
|
+
</TabPane>;
|
48
|
+
var annotations_tab = this.annotations_tab();
|
198
49
|
|
199
|
-
|
200
|
-
|
201
|
-
var auditTab = (
|
202
|
-
<TabPane key="audit" tab="Recent Activity">
|
50
|
+
var audit_tab =
|
51
|
+
<TabPane key="audit" tab="Recent Activity">
|
203
52
|
<div className="audit auditHost">
|
204
53
|
<AuditBox resources={[resourceId]} tabview={true}/>
|
205
54
|
</div>
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
// <hr />
|
223
|
-
// <Fetchers />
|
224
|
-
// <hr />
|
225
|
-
// <Updates />
|
226
|
-
// <hr />
|
227
|
-
// <Warnings />
|
228
|
-
// <hr />
|
229
|
-
// <br />
|
230
|
-
// <br />
|
231
|
-
// <br />
|
232
|
-
// <br />
|
233
|
-
|
234
|
-
return (
|
235
|
-
<div className="variable">
|
236
|
-
<h2>Variable {this.props.data.variable.id}</h2>
|
237
|
-
<TabbedArea defaultActiveKey="overview">
|
238
|
-
{tabs}
|
239
|
-
</TabbedArea>
|
240
|
-
</div>
|
241
|
-
);
|
242
|
-
}
|
243
|
-
});
|
244
|
-
|
245
|
-
}).bind(conjur.views)
|
246
|
-
(
|
247
|
-
conjur,
|
248
|
-
React,
|
249
|
-
ReactBootstrap,
|
250
|
-
_
|
251
|
-
);
|
55
|
+
</TabPane>;
|
56
|
+
|
57
|
+
|
58
|
+
var tabs = _.compact([ overview_tab, updaters_tab, fetchers_tab,
|
59
|
+
annotations_tab, audit_tab ]);
|
60
|
+
|
61
|
+
return (
|
62
|
+
<div className="variable">
|
63
|
+
<h2>Variable {this.props.data.variable.id}</h2>
|
64
|
+
<TabbedArea defaultActiveKey="overview">
|
65
|
+
{tabs}
|
66
|
+
</TabbedArea>
|
67
|
+
</div>
|
68
|
+
);
|
69
|
+
}
|
70
|
+
});
|