kaui 1.0.0 → 1.1.0
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/app/assets/javascripts/kaui/kaui.js +118 -11
- data/app/assets/stylesheets/kaui/common.less +91 -6
- data/app/assets/stylesheets/kaui/payment.less +1 -0
- data/app/controllers/kaui/account_children_controller.rb +1 -4
- data/app/controllers/kaui/accounts_controller.rb +4 -7
- data/app/controllers/kaui/admin_allowed_users_controller.rb +24 -7
- data/app/controllers/kaui/admin_tenants_controller.rb +59 -20
- data/app/controllers/kaui/audit_logs_controller.rb +3 -2
- data/app/controllers/kaui/charges_controller.rb +1 -1
- data/app/controllers/kaui/credits_controller.rb +1 -1
- data/app/controllers/kaui/home_controller.rb +273 -10
- data/app/controllers/kaui/invoice_items_controller.rb +1 -1
- data/app/controllers/kaui/invoices_controller.rb +3 -3
- data/app/controllers/kaui/payments_controller.rb +5 -3
- data/app/controllers/kaui/refunds_controller.rb +2 -2
- data/app/controllers/kaui/subscriptions_controller.rb +2 -1
- data/app/helpers/kaui/object_helper.rb +4 -0
- data/app/helpers/kaui/plugin_helper.rb +36 -20
- data/app/helpers/kaui/uuid_helper.rb +9 -0
- data/app/models/kaui/admin.rb +3 -1
- data/app/models/kaui/admin_tenant.rb +58 -10
- data/app/models/kaui/allowed_user.rb +1 -0
- data/app/models/kaui/catalog.rb +2 -2
- data/app/models/kaui/credit.rb +0 -2
- data/app/models/kaui/overdue.rb +5 -5
- data/app/views/kaui/account_children/index.html.erb +3 -3
- data/app/views/kaui/accounts/_account_info.html.erb +45 -91
- data/app/views/kaui/accounts/_billing_info.html.erb +12 -8
- data/app/views/kaui/accounts/_parent.html.erb +1 -1
- data/app/views/kaui/accounts/_payment_methods.html.erb +1 -1
- data/app/views/kaui/accounts/_personal_info.html.erb +74 -0
- data/app/views/kaui/accounts/index.html.erb +4 -4
- data/app/views/kaui/accounts/show.html.erb +9 -3
- data/app/views/kaui/admin_allowed_users/_form.html.erb +38 -10
- data/app/views/kaui/admin_tenants/_form_plugin_config.erb +82 -17
- data/app/views/kaui/admin_tenants/_show_catalog_simple.erb +11 -3
- data/app/views/kaui/admin_tenants/_show_overdue.erb +4 -4
- data/app/views/kaui/admin_tenants/_tenant_details.html.erb +7 -1
- data/app/views/kaui/admin_tenants/new_overdue_config.html.erb +1 -1
- data/app/views/kaui/audit_logs/_show_history_modal.html.erb +1 -1
- data/app/views/kaui/audit_logs/index.html.erb +4 -0
- data/app/views/kaui/home/_advanced_search_modal.html.erb +80 -0
- data/app/views/kaui/home/index.html.erb +18 -5
- data/app/views/kaui/invoices/show.html.erb +7 -1
- data/app/views/kaui/layouts/kaui_flash.html.erb +14 -3
- data/app/views/kaui/layouts/kaui_navbar.html.erb +11 -9
- data/app/views/kaui/payments/_form.html.erb +8 -10
- data/app/views/kaui/payments/_payment_table.html.erb +40 -37
- data/app/views/kaui/payments/index.html.erb +1 -0
- data/app/views/kaui/payments/show.html.erb +5 -7
- data/app/views/kaui/queues/index.html.erb +22 -4
- data/app/views/kaui/subscriptions/_subscriptions_table.html.erb +1 -1
- data/app/views/kaui/tag_definitions/index.html.erb +1 -1
- data/config/routes.rb +2 -0
- data/lib/kaui/version.rb +1 -1
- data/test/functional/kaui/accounts_controller_test.rb +35 -0
- data/test/functional/kaui/admin_allowed_users_controller_test.rb +55 -2
- data/test/functional/kaui/admin_tenants_controller_test.rb +67 -6
- data/test/functional/kaui/home_controller_test.rb +389 -15
- data/test/functional/kaui/subscriptions_controller_test.rb +1 -1
- data/test/killbill_test_helper.rb +2 -2
- data/test/unit/helpers/kaui/uuid_helper_test.rb +16 -0
- data/test/unit/kaui/admin_tenant_test.rb +49 -0
- metadata +6 -4
- data/test/unit/kaui/uuid_helper_test.rb +0 -10
@@ -0,0 +1,74 @@
|
|
1
|
+
<div class="col-md-6 col-xs-12">
|
2
|
+
|
3
|
+
<div class="column-block">
|
4
|
+
|
5
|
+
<h1>Personal Information</h1>
|
6
|
+
|
7
|
+
<div class="info-wrapper">
|
8
|
+
|
9
|
+
<div class="toggler">
|
10
|
+
<div class="first-line">
|
11
|
+
<b>Show/Hide Content</b>
|
12
|
+
<i class="fa fa-caret-down"></i>
|
13
|
+
<i class="fa fa-caret-up"></i>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<div class="toggle">
|
17
|
+
<div class="row">
|
18
|
+
<div class="col-md-12">
|
19
|
+
<div class="fix-position">
|
20
|
+
<table class="transparent">
|
21
|
+
<tr>
|
22
|
+
<th>Name</th>
|
23
|
+
<td><%= @account.name %></td>
|
24
|
+
</tr>
|
25
|
+
<tr>
|
26
|
+
<th>Address1</th>
|
27
|
+
<td><%= @account.address1 %></td>
|
28
|
+
</tr>
|
29
|
+
<tr>
|
30
|
+
<th>Address2</th>
|
31
|
+
<td><%= @account.address2 %></td>
|
32
|
+
</tr>
|
33
|
+
<tr>
|
34
|
+
<th>City</th>
|
35
|
+
<td><%= @account.city %></td>
|
36
|
+
</tr>
|
37
|
+
<tr>
|
38
|
+
<th>State</th>
|
39
|
+
<td><%= @account.state %></td>
|
40
|
+
</tr>
|
41
|
+
<tr>
|
42
|
+
<th>Country</th>
|
43
|
+
<td><%= @account.country %></td>
|
44
|
+
</tr>
|
45
|
+
<tr>
|
46
|
+
<th>Postal Code</th>
|
47
|
+
<td><%= @account.postal_code %></td>
|
48
|
+
</tr>
|
49
|
+
<tr>
|
50
|
+
<th>Phone</th>
|
51
|
+
<td><%= @account.phone %></td>
|
52
|
+
</tr>
|
53
|
+
<tr>
|
54
|
+
<th>Company</th>
|
55
|
+
<td><%= @account.company %></td>
|
56
|
+
</tr>
|
57
|
+
<tr>
|
58
|
+
<th>Primary email</th>
|
59
|
+
<td><%= @account.email %></td>
|
60
|
+
</tr>
|
61
|
+
<%= render :partial => 'kaui/account_emails/account_emails_table',
|
62
|
+
:locals => {:account_emails => @account_emails} %>
|
63
|
+
</table>
|
64
|
+
</div>
|
65
|
+
</div>
|
66
|
+
</div>
|
67
|
+
</div>
|
68
|
+
</div>
|
69
|
+
|
70
|
+
</div>
|
71
|
+
|
72
|
+
</div>
|
73
|
+
|
74
|
+
</div>
|
@@ -12,12 +12,9 @@
|
|
12
12
|
<thead>
|
13
13
|
<tr>
|
14
14
|
<th></th>
|
15
|
-
<th>Name</th>
|
16
15
|
<th>ID</th>
|
17
16
|
<th>External key</th>
|
18
17
|
<th>Balance</th>
|
19
|
-
<th>City</th>
|
20
|
-
<th>Country</th>
|
21
18
|
</tr>
|
22
19
|
</thead>
|
23
20
|
<tbody>
|
@@ -55,7 +52,10 @@ $(document).ready(function() {
|
|
55
52
|
$(td).css('width', '60px');
|
56
53
|
|
57
54
|
} }
|
58
|
-
]
|
55
|
+
],
|
56
|
+
drawCallback: function() {
|
57
|
+
setObjectIdPopover();
|
58
|
+
}
|
59
59
|
});
|
60
60
|
|
61
61
|
<!-- When we don't know the total number of pages, we need to hide the legend and next button manually -->
|
@@ -1,8 +1,14 @@
|
|
1
|
-
|
1
|
+
<div class="row">
|
2
|
+
<%= render :partial => 'account_info' %>
|
2
3
|
|
3
|
-
<%= render :partial => 'billing_info' %>
|
4
|
+
<%= render :partial => 'billing_info' %>
|
5
|
+
</div>
|
6
|
+
<div class="row">
|
7
|
+
<%= render :partial => 'personal_info' %>
|
8
|
+
|
9
|
+
<%= render :partial => 'payment_methods' %>
|
10
|
+
</div>
|
4
11
|
|
5
|
-
<%= render :partial => 'payment_methods' %>
|
6
12
|
|
7
13
|
<%= render :partial => 'link_parent_modal' %>
|
8
14
|
|
@@ -1,10 +1,11 @@
|
|
1
1
|
<% # Unclear why this url/method hack is needed %>
|
2
2
|
<%= form_for @allowed_user, :url => @allowed_user.persisted? ? admin_allowed_user_path(@allowed_user.id) : admin_allowed_users_path, :method => @allowed_user.persisted? ? :put : :post, :html => {:class => 'form-horizontal'} do |f| %>
|
3
|
+
<input type="hidden" id="killbillManaged" value="<%= @is_killbill_managed %>" />
|
3
4
|
<div class='form-group'>
|
4
5
|
<div class="col-sm-offset-2 col-sm-9">
|
5
6
|
<div class="checkbox">
|
6
7
|
<%= label_tag :external do %>
|
7
|
-
|
8
|
+
<%= check_box_tag :external, '1', false, { :disabled => !@allowed_user.id.blank? } %>Managed externally (LDAP, Okta, etc.)?
|
8
9
|
<% end %>
|
9
10
|
</div>
|
10
11
|
</div>
|
@@ -42,15 +43,42 @@
|
|
42
43
|
</div>
|
43
44
|
<% end %>
|
44
45
|
|
46
|
+
<!-- is the user been edited? -->
|
47
|
+
<% if @allowed_user.persisted? %>
|
48
|
+
<div class="footer-notice managed-externally-notice">
|
49
|
+
<div class="modal-footer">
|
50
|
+
<div class="alert alert-warning">
|
51
|
+
<strong>Notice</strong>
|
52
|
+
<p id="noticeMessage">This user is managed externally (LDAP, Okta, etc.) or via Shiro configuration file.</p>
|
53
|
+
</div>
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
<% end %>
|
57
|
+
|
45
58
|
<%= javascript_tag do %>
|
46
|
-
$(
|
47
|
-
|
48
|
-
$('#
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
59
|
+
$(document).ready(function() {
|
60
|
+
|
61
|
+
$('#external').change(function() {
|
62
|
+
is_killbill_managed();
|
63
|
+
});
|
64
|
+
|
65
|
+
function is_killbill_managed() {
|
66
|
+
var isKillbillManaged = isBlank($('#killbillManaged').val()) || $('#killbillManaged').val() == 'true';
|
67
|
+
|
68
|
+
if ($('#external').is(":checked") || !isKillbillManaged) {
|
69
|
+
$('#password').attr('disabled', true);
|
70
|
+
$('#roles').attr('disabled', true);
|
71
|
+
$('.help-block').hide();
|
72
|
+
$('.managed-externally-notice').show();
|
73
|
+
}
|
74
|
+
else {
|
75
|
+
$('#password').attr('disabled', false);
|
76
|
+
$('#roles').attr('disabled', false);
|
77
|
+
$('.help-block').show();
|
78
|
+
$('.managed-externally-notice').hide();
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
is_killbill_managed();
|
55
83
|
});
|
56
84
|
<% end %>
|
@@ -22,6 +22,7 @@
|
|
22
22
|
<%= text_field_tag :entered_plugin_name, nil, :class => 'form-control', :plugin_config => @plugin_config, :tenant_plugin_config => @tenant_plugin_config %>
|
23
23
|
<div class="text plugin-suggestion text-danger"></div>
|
24
24
|
</div>
|
25
|
+
<div class="col-sm-1 spinner"><i class="fa fa-cog fa-2x fa-spin"></i></div>
|
25
26
|
<label class="col-sm-1 toggle-container control-label">
|
26
27
|
<label class="switch">
|
27
28
|
<input id="toggle_input" type="checkbox">
|
@@ -31,8 +32,17 @@
|
|
31
32
|
<label class="col-sm-3 control-label toggle-label text-muted">or toggle plugin name input</label>
|
32
33
|
</div>
|
33
34
|
|
35
|
+
<div id="plugin_config_properties_header" class="form-group">
|
36
|
+
<label class="col-sm-2 control-label" for="plugin_name">Plugin Properties</label>
|
37
|
+
<label class="control-label switch-half-container" title="toggle raw">
|
38
|
+
<label class="switch-half">
|
39
|
+
<input id="toggle_raw" type="checkbox">
|
40
|
+
<span class="slider round"></span>
|
41
|
+
</label>
|
42
|
+
</label>
|
43
|
+
</div>
|
34
44
|
<!-- Anchor DIV that gets thrown away when switching plugins -->
|
35
|
-
<div id="plugin_config_properties" plugin_name="" class="
|
45
|
+
<div id="plugin_config_properties" plugin_name="" class="row">
|
36
46
|
</div>
|
37
47
|
|
38
48
|
<div class="form-group">
|
@@ -45,10 +55,11 @@
|
|
45
55
|
<% end %>
|
46
56
|
|
47
57
|
<script id="plugin_config_properties_template" type="text/template">
|
58
|
+
<input type="hidden" id="plugin_key_values" value="{{data_json}}" />
|
48
59
|
{{#plugin_props_with_values}}
|
49
60
|
<div class="form-group">
|
50
|
-
<label class="col-sm-2 control-label" for="{{property}}">{{property_label}}</label>
|
51
|
-
<div class="col-sm-
|
61
|
+
<label class="col-sm-offset-1 col-sm-2 control-label" for="{{property}}">{{property_label}}</label>
|
62
|
+
<div class="col-sm-6">
|
52
63
|
{{#is_raw_config}}
|
53
64
|
<textarea name="plugin_properties[raw_config]" id="raw_config" rows="10" class="form-control">{{value}}</textarea>
|
54
65
|
{{/is_raw_config}}
|
@@ -73,6 +84,8 @@
|
|
73
84
|
|
74
85
|
<%= javascript_tag do %>
|
75
86
|
$(document).ready(function() {
|
87
|
+
$(".spinner").hide();
|
88
|
+
$('#plugin_config_properties_header').hide();
|
76
89
|
|
77
90
|
$('#entered_plugin_name').toggle();
|
78
91
|
$('#toggle_input').on('change', function() {
|
@@ -86,18 +99,42 @@
|
|
86
99
|
$('#select_plugin_name').val('');
|
87
100
|
$('#plugin_config_properties').attr('plugin_name', '');
|
88
101
|
$('#plugin_config_properties').empty();
|
102
|
+
$('#plugin_config_properties_header').hide();
|
103
|
+
$(".plugin-suggestion").html('');
|
104
|
+
});
|
89
105
|
|
106
|
+
$("#toggle_raw").on('change', function(e) {
|
107
|
+
if (isBlank($('#plugin_key_values').val())) {
|
108
|
+
return;
|
109
|
+
}
|
110
|
+
|
111
|
+
var plugin_key_values = JSON.parse($('#plugin_key_values').val());
|
112
|
+
if ($("#toggle_raw").prop("checked")) {
|
113
|
+
var raw = [];
|
114
|
+
raw.push({ is_raw_config: true, property: "raw_config", property_label: "Raw Config", value: ''});
|
115
|
+
for ( var i = 0; i < plugin_key_values.length ; i++ ) {
|
116
|
+
raw[0].value += plugin_key_values[i].property + '=' + plugin_key_values[i].value;
|
117
|
+
if (i < plugin_key_values.length - 1) {
|
118
|
+
raw[0].value += "\n";
|
119
|
+
}
|
120
|
+
}
|
121
|
+
render_plugin_key_values(raw, plugin_key_values);
|
122
|
+
} else {
|
123
|
+
render_plugin_key_values(plugin_key_values, plugin_key_values);
|
124
|
+
}
|
90
125
|
});
|
91
126
|
|
92
|
-
$('#select_plugin_name').on('
|
93
|
-
|
94
|
-
|
95
|
-
|
127
|
+
$('#select_plugin_name').on('change', function(e) {
|
128
|
+
var selectedOption = e.target.selectedOptions;
|
129
|
+
|
130
|
+
if (selectedOption.length > 0) {
|
131
|
+
var plugin_name = selectedOption[0].value;
|
132
|
+
var plugin_key = selectedOption[0].text;
|
96
133
|
$("#plugin_name").val(plugin_name);
|
97
134
|
$("#plugin_key").val(plugin_key);
|
98
|
-
$("#plugin_type").val(
|
135
|
+
$("#plugin_type").val(selectedOption[0].dataset['pluginType']);
|
99
136
|
$('#plugin_config_properties').attr('plugin_name', '');
|
100
|
-
|
137
|
+
$('#plugin_config_properties_header').hide();
|
101
138
|
add_properties_for_plugin(plugin_key, plugin_name);
|
102
139
|
}
|
103
140
|
});
|
@@ -131,7 +168,7 @@
|
|
131
168
|
var el_props = el_parts[1];
|
132
169
|
if (el_plugin_name === entered_plugin_name) {
|
133
170
|
if (el_props.split('=')[0] == 'raw_config') {
|
134
|
-
res['raw_config'] = el_props.
|
171
|
+
res['raw_config'] = el_props.replace("raw_config=", "");
|
135
172
|
} else {
|
136
173
|
$.map(el_props.split('|'), function(el) {
|
137
174
|
var parts = el.split('=');
|
@@ -145,7 +182,7 @@
|
|
145
182
|
return res;
|
146
183
|
}
|
147
184
|
|
148
|
-
function get_selected_plugin_info(
|
185
|
+
function get_selected_plugin_info(plugin_key) {
|
149
186
|
var plugin_config_str = $('#entered_plugin_name').attr('plugin_config');
|
150
187
|
var res = {}
|
151
188
|
/* Deserialize plugin/properties (see AdminTenant model)*/
|
@@ -155,14 +192,14 @@
|
|
155
192
|
var el_plugin_name = el_parts_key[0];
|
156
193
|
var el_plugin_type = el_parts_key[1];
|
157
194
|
var el_plugin_props = el_parts[1];
|
158
|
-
if (el_plugin_name ==
|
195
|
+
if (el_plugin_name == plugin_key) {
|
159
196
|
res['type'] = el_plugin_type;
|
160
197
|
res['props'] = el_plugin_props == "" ? [] : (el_plugin_type == "" ? ['raw_config'] : el_plugin_props.split(','));
|
161
198
|
return false;
|
162
199
|
}
|
163
200
|
});
|
164
201
|
|
165
|
-
if (res['props']
|
202
|
+
if (isBlank(res['props'])) {
|
166
203
|
res['type'] = '';
|
167
204
|
res['props'] = ['raw_config'];
|
168
205
|
}
|
@@ -171,7 +208,6 @@
|
|
171
208
|
}
|
172
209
|
|
173
210
|
function add_properties_for_plugin(plugin_key, plugin_name) {
|
174
|
-
console.log(plugin_key, plugin_name);
|
175
211
|
var plugin_info = get_selected_plugin_info(plugin_key);
|
176
212
|
|
177
213
|
if (isBlank(plugin_name)) {
|
@@ -188,14 +224,25 @@
|
|
188
224
|
/* Retrieve existing plugin properties for this tenant */
|
189
225
|
var existing_props = get_existing_tenant_plugin_properties(plugin_key);
|
190
226
|
|
227
|
+
// try by plugin name for proprietary plugins
|
228
|
+
if (isBlank(existing_props)) {
|
229
|
+
existing_props = get_existing_tenant_plugin_properties(plugin_name);
|
230
|
+
}
|
231
|
+
|
191
232
|
var type = plugin_info['type'];
|
192
233
|
var props = plugin_info['props']
|
193
234
|
|
235
|
+
if (isBlank(type)) {
|
236
|
+
$(".switch-half-container").hide();
|
237
|
+
} else {
|
238
|
+
$(".switch-half-container").show();
|
239
|
+
}
|
240
|
+
|
194
241
|
$('#plugin_type').val(type);
|
195
242
|
/* Prune the tree to restart from scratch */
|
243
|
+
$('#plugin_config_properties_header').show();
|
196
244
|
$('#plugin_config_properties').empty();
|
197
|
-
$('#plugin_config_properties').append('<
|
198
|
-
$('#plugin_config_properties').append('<div id="plugin_config_properties_anchor" class="col-sm-offset-2 col-sm-10">');
|
245
|
+
$('#plugin_config_properties').append('<div id="plugin_config_properties_anchor" class="col-sm-12"></div>');
|
199
246
|
|
200
247
|
var merged_props_with_values = existing_props;
|
201
248
|
if (props != undefined) {
|
@@ -233,8 +280,13 @@
|
|
233
280
|
plugin_props_with_values.push({ property_label: format_label(p), property: p, value: v, is_raw_config: p == 'raw_config'});
|
234
281
|
});
|
235
282
|
|
283
|
+
render_plugin_key_values(plugin_props_with_values, plugin_props_with_values);
|
284
|
+
}
|
285
|
+
|
286
|
+
function render_plugin_key_values(plugin_props_with_values, original) {
|
236
287
|
var template = $("#plugin_config_properties_template").html();
|
237
|
-
var plugin_props_with_values_html = Mustache.render( template ,
|
288
|
+
var plugin_props_with_values_html = Mustache.render( template ,{ plugin_props_with_values: plugin_props_with_values,
|
289
|
+
data_json: JSON.stringify(original)});
|
238
290
|
$("#plugin_config_properties_anchor").html(plugin_props_with_values_html);
|
239
291
|
}
|
240
292
|
|
@@ -256,6 +308,7 @@
|
|
256
308
|
}
|
257
309
|
|
258
310
|
function suggested_response(response) {
|
311
|
+
$(".spinner").hide();
|
259
312
|
if (!isBlank(response.suggestion)) {
|
260
313
|
$(".plugin-suggestion").html(response.suggestion);
|
261
314
|
|
@@ -266,6 +319,7 @@
|
|
266
319
|
$("#entered_plugin_name").val(plugin_name);
|
267
320
|
$("#plugin_key").val(plugin_key);
|
268
321
|
$("#plugin_type").val(e.currentTarget.dataset['pluginType']);
|
322
|
+
$("#entered_plugin_name").data("last", plugin_name);
|
269
323
|
|
270
324
|
$(".plugin-suggestion").html('');
|
271
325
|
add_properties_for_plugin(isBlank(plugin_key) ? plugin_name : plugin_key, plugin_name);
|
@@ -284,12 +338,23 @@
|
|
284
338
|
|
285
339
|
function suggest_plugin_name() {
|
286
340
|
var plugin_name = $("#entered_plugin_name").val();
|
341
|
+
var last_plugin_name = $("#entered_plugin_name").data("last");
|
287
342
|
$("#plugin_key").val(plugin_name);
|
288
343
|
|
289
344
|
if (isBlank(plugin_name)) {
|
290
345
|
return;
|
291
346
|
}
|
292
347
|
|
348
|
+
// no change
|
349
|
+
if ( plugin_name == last_plugin_name) {
|
350
|
+
return;
|
351
|
+
}
|
352
|
+
|
353
|
+
$('#plugin_config_properties').attr('plugin_name', '');
|
354
|
+
$('#plugin_config_properties').empty();
|
355
|
+
$(".plugin-suggestion").html('');
|
356
|
+
$("#entered_plugin_name").data("last", plugin_name);
|
357
|
+
$(".spinner").show();
|
293
358
|
$.ajax({
|
294
359
|
url: '<%= suggest_plugin_name_path() %>',
|
295
360
|
type: "GET",
|
@@ -4,11 +4,15 @@
|
|
4
4
|
<h1>Existing Plans
|
5
5
|
<% if can? :config_upload, Kaui::AdminTenant %>
|
6
6
|
<%= link_to '<i class="fa fa-plus-square"></i>'.html_safe,
|
7
|
-
|
7
|
+
admin_tenant_new_catalog_path(:id => @tenant.id),
|
8
8
|
:class => 'btn btn-xs' %>
|
9
9
|
<% end %>
|
10
|
+
<%= link_to '<i class="fa fa-arrow-down" aria-hidden="true"></i>'.html_safe,
|
11
|
+
download_catalog_xml_path(:id => @tenant.id, :effective_date => @latest_version),
|
12
|
+
:class => 'btn btn-xs', :id => 'download_link' %>
|
10
13
|
<% if can?(:delete, Kaui::AdminTenant) %>
|
11
|
-
<%= link_to '<i class="fa fa-times"></i>'.html_safe,
|
14
|
+
<%= link_to '<i class="fa fa-times"></i>'.html_safe,
|
15
|
+
admin_tenant_delete_catalog_path(:id => @tenant.id), :method => :delete, :class => 'btn btn-xs' %>
|
12
16
|
<% end %>
|
13
17
|
<a class='btn btn-xs' href="javascript:void(0);" onclick="switchXMLConfig();">Enable XML View</a>
|
14
18
|
</h1>
|
@@ -153,7 +157,7 @@
|
|
153
157
|
function fetchCatalog(effectiveDate) {
|
154
158
|
if (effectiveDate == '')
|
155
159
|
return;
|
156
|
-
|
160
|
+
|
157
161
|
$.ajax(
|
158
162
|
{
|
159
163
|
url: Routes.kaui_engine_catalog_by_effective_date_path(),
|
@@ -166,6 +170,10 @@
|
|
166
170
|
success: function(data) {
|
167
171
|
renderCurrencySelect(data);
|
168
172
|
renderCatalog(data);
|
173
|
+
|
174
|
+
//update the download path
|
175
|
+
var download_path = Routes.kaui_engine_download_catalog_xml_path(<%= @tenant.id %>, { 'effective_date': effectiveDate });
|
176
|
+
$('#download_link').attr('href',download_path);
|
169
177
|
}
|
170
178
|
});
|
171
179
|
}
|
@@ -34,14 +34,14 @@
|
|
34
34
|
<td><%= state.external_message %></td>
|
35
35
|
<td>
|
36
36
|
<ul>
|
37
|
-
<% if state.
|
37
|
+
<% if state.is_block_changes %>
|
38
38
|
<li>
|
39
|
-
<%= 'Block changes:' %><%= state.
|
39
|
+
<%= 'Block changes:' %><%= state.is_block_changes %>
|
40
40
|
</li>
|
41
41
|
<% end %>
|
42
|
-
<% if state.
|
42
|
+
<% if state.is_disable_entitlement %>
|
43
43
|
<li>
|
44
|
-
<%= 'Cancel subscriptions:' %><%= state.
|
44
|
+
<%= 'Cancel subscriptions:' %><%= state.is_disable_entitlement %>
|
45
45
|
(policy:<%= state.subscription_cancellation_policy %>)
|
46
46
|
</li>
|
47
47
|
<% end %>
|