gdpr_rails 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +270 -13
- data/app/assets/javascripts/policy_manager/application.js +4 -0
- data/app/assets/javascripts/policy_manager/portability_requests.js +2 -0
- data/app/assets/javascripts/policy_manager/user_portability_requests.js +2 -0
- data/app/assets/stylesheets/policy_manager/portability_requests.css +4 -0
- data/app/assets/stylesheets/policy_manager/user_portability_requests.css +4 -0
- data/app/controllers/policy_manager/application_controller.rb +22 -0
- data/app/controllers/policy_manager/categories_controller.rb +5 -47
- data/app/controllers/policy_manager/portability_requests_controller.rb +34 -0
- data/app/controllers/policy_manager/terms_controller.rb +16 -13
- data/app/controllers/policy_manager/user_portability_requests_controller.rb +41 -0
- data/app/controllers/policy_manager/user_terms_controller.rb +68 -28
- data/app/helpers/policy_manager/application_helper.rb +28 -0
- data/app/helpers/policy_manager/portability_requests_helper.rb +4 -0
- data/app/helpers/policy_manager/scripts_helper.rb +11 -0
- data/app/helpers/policy_manager/terms_helper.rb +1 -1
- data/app/helpers/policy_manager/user_portability_requests_helper.rb +4 -0
- data/app/jobs/policy_manager/exporter_job.rb +10 -0
- data/app/mailers/policy_manager/application_mailer.rb +20 -2
- data/app/mailers/policy_manager/portability_mailer.rb +34 -0
- data/app/models/policy_manager/concerns/user_behavior.rb +80 -22
- data/app/models/policy_manager/portability_request.rb +65 -0
- data/app/models/policy_manager/term.rb +18 -0
- data/app/models/policy_manager/user_term.rb +14 -7
- data/app/views/layouts/policy_manager/application.html.erb +41 -39
- data/app/views/layouts/policy_manager/mailer.html.erb +13 -0
- data/app/views/layouts/policy_manager/mailer.text.erb +1 -0
- data/app/views/policy_manager/categories/index.html.erb +6 -12
- data/app/views/policy_manager/categories/show.html.erb +13 -20
- data/app/views/policy_manager/portability_mailer/completed_notification.erb +7 -0
- data/app/views/policy_manager/portability_mailer/progress_notification.erb +3 -0
- data/app/views/policy_manager/portability_requests/index.html.erb +42 -0
- data/app/views/policy_manager/portability_requests/index.json.jbuilder +5 -0
- data/app/views/policy_manager/terms/_form.html.erb +12 -11
- data/app/views/policy_manager/terms/edit.html.erb +6 -4
- data/app/views/policy_manager/terms/index.html.erb +12 -13
- data/app/views/policy_manager/terms/new.html.erb +5 -3
- data/app/views/policy_manager/terms/show.html.erb +12 -10
- data/app/views/policy_manager/user_portability_requests/index.html.erb +42 -0
- data/app/views/policy_manager/user_portability_requests/index.json.jbuilder +5 -0
- data/app/views/policy_manager/user_terms/pending.html.erb +10 -6
- data/app/views/policy_manager/user_terms/show.html.erb +7 -8
- data/app/views/policy_manager/user_terms/show.json.jbuilder +15 -8
- data/config/locales/en.yml +122 -0
- data/config/locales/es.yml +122 -0
- data/config/routes.rb +15 -6
- data/db/migrate/20180326193825_create_policy_manager_terms.rb +1 -0
- data/db/migrate/20180410171354_create_policy_manager_portability_requests.rb +18 -0
- data/lib/policy_manager/anonimizer.rb +18 -0
- data/lib/policy_manager/config.rb +35 -1
- data/lib/policy_manager/exporter/handler.rb +110 -0
- data/lib/policy_manager/exporter/paginator_renderer.rb +74 -0
- data/lib/policy_manager/exporter/view.rb +108 -0
- data/lib/policy_manager/exporter/zip_generator.rb +60 -0
- data/lib/policy_manager/exporter.rb +75 -0
- data/lib/policy_manager/portability_rule.rb +15 -0
- data/lib/policy_manager/rule.rb +21 -4
- data/lib/policy_manager/script.rb +56 -0
- data/lib/policy_manager/templates/index.html.erb +1 -0
- data/lib/policy_manager/version.rb +1 -1
- data/lib/policy_manager.rb +10 -0
- metadata +160 -19
- data/app/controllers/policy_manager/dashboard_controller.rb +0 -6
- data/app/helpers/policy_manager/categories_helper.rb +0 -4
- data/app/helpers/policy_manager/dashboard_helper.rb +0 -4
- data/app/helpers/policy_manager/terms_categories_helper.rb +0 -4
- data/app/views/policy_manager/categories/_form.html.erb +0 -22
- data/app/views/policy_manager/categories/edit.html.erb +0 -6
- data/app/views/policy_manager/categories/new.html.erb +0 -5
- data/app/views/policy_manager/dashboard/index.erb +0 -33
- data/app/views/policy_manager/terms_categories/_form.html.erb +0 -17
- data/app/views/policy_manager/terms_categories/edit.html.erb +0 -6
- data/app/views/policy_manager/terms_categories/index.html.erb +0 -24
- data/app/views/policy_manager/terms_categories/new.html.erb +0 -5
- data/app/views/policy_manager/terms_categories/show.html.erb +0 -4
- data/app/views/policy_manager/user_terms/_form.html.erb +0 -17
- data/app/views/policy_manager/user_terms/edit.html.erb +0 -6
- data/app/views/policy_manager/user_terms/index.html.erb +0 -24
- data/app/views/policy_manager/user_terms/new.html.erb +0 -5
@@ -0,0 +1 @@
|
|
1
|
+
<%= yield %>
|
@@ -1,13 +1,14 @@
|
|
1
|
+
<h2><%= I18n.t("terms_app.categories.index.title") %></h2>
|
1
2
|
|
2
|
-
<h1>Categories</h1>
|
3
3
|
|
4
|
+
<%= chart ->{PolicyManager::UserTerm.group_by_day(:created_at, format: "%a").count} %>
|
4
5
|
|
5
6
|
<div class="table-responsive">
|
6
7
|
<table class="table table-striped table-sm">
|
7
8
|
<thead>
|
8
9
|
<tr>
|
9
|
-
<th
|
10
|
-
<th
|
10
|
+
<th><%= I18n.t("terms_app.categories.index.table.name") %></th>
|
11
|
+
<th><%= I18n.t("terms_app.categories.index.table.terms") %></th>
|
11
12
|
<th colspan="3"></th>
|
12
13
|
</tr>
|
13
14
|
</thead>
|
@@ -17,16 +18,9 @@
|
|
17
18
|
<tr>
|
18
19
|
<td><%= category.name %></td>
|
19
20
|
<td><%= category.terms.size %></td>
|
20
|
-
<td><%= link_to
|
21
|
-
<td><%= link_to 'Edit', edit_category_path(category) %></td>
|
22
|
-
<td><%= link_to 'Destroy', category, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
21
|
+
<td><%= link_to I18n.t("terms_app.categories.index.table.show"), category_path(category.name) %></td>
|
23
22
|
</tr>
|
24
23
|
<% end %>
|
25
24
|
</tbody>
|
26
25
|
</table>
|
27
|
-
|
28
|
-
</div>
|
29
|
-
|
30
|
-
<br>
|
31
|
-
|
32
|
-
<%= link_to 'New Category', new_category_path %>
|
26
|
+
</div>
|
@@ -1,25 +1,19 @@
|
|
1
|
+
<h2><%= I18n.t("terms_app.categories.show.title", name: @category.name) %></h2>
|
1
2
|
|
2
|
-
<
|
3
|
-
|
4
|
-
<%= @category.name %>
|
5
|
-
</
|
6
|
-
|
7
|
-
|
8
|
-
<%= link_to 'New Article', new_category_term_path(@category), class: " btn btn-success float-right" %>
|
9
|
-
|
10
|
-
<%= link_to 'Edit', edit_category_path(@category), class: "btn btn-default" %> |
|
11
|
-
<%= link_to 'Back', categories_path , class: "btn btn-default"%>
|
12
|
-
|
13
|
-
|
3
|
+
<div class="float-right">
|
4
|
+
<%= link_to I18n.t("terms_app.misc.back"), categories_path, class: " btn btn-primary" %>
|
5
|
+
<%= link_to I18n.t("terms_app.categories.show.new"), new_category_term_path(@category.name), class: " btn btn-success"%>
|
6
|
+
</div>
|
14
7
|
|
15
8
|
<div class="table-responsive">
|
16
9
|
<table class="table table-striped table-sm">
|
17
10
|
<thead>
|
18
11
|
<tr>
|
19
|
-
<th
|
20
|
-
<th
|
21
|
-
<th
|
22
|
-
<th
|
12
|
+
<th><%= I18n.t("terms_app.categories.show.table.id") %></th>
|
13
|
+
<th><%= I18n.t("terms_app.categories.show.table.content") %></th>
|
14
|
+
<th><%= I18n.t("terms_app.categories.show.table.state") %></th>
|
15
|
+
<th><%= I18n.t("terms_app.categories.show.table.updated_at") %></th>
|
16
|
+
<th></th>
|
23
17
|
</tr>
|
24
18
|
</thead>
|
25
19
|
|
@@ -27,11 +21,10 @@
|
|
27
21
|
<% @category.terms.each do |term| %>
|
28
22
|
<tr>
|
29
23
|
<td><%= term.id %></td>
|
30
|
-
<td><%= truncate(term.description, length: 17, separator: " ", omission: '...
|
24
|
+
<td><%= truncate(term.description, length: 17, separator: " ", omission: '...') %></td>
|
25
|
+
<td><%= I18n.t("terms_app.states.#{term.state}") %></td>
|
31
26
|
<td><%= term.updated_at %></td>
|
32
|
-
<td><%= link_to
|
33
|
-
<td><%= link_to 'Edit', edit_category_term_path(@category, term) %></td>
|
34
|
-
<td><%= link_to 'Destroy', category_term_path(@category, term), method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
27
|
+
<td><%= link_to I18n.t("terms_app.categories.show.table.show"), category_term_path(@category.name, term) %></td>
|
35
28
|
</tr>
|
36
29
|
<% end %>
|
37
30
|
</tbody>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<h2><%= I18n.t("terms_app.portability_requests.index.title") %></h2>
|
2
|
+
|
3
|
+
<% if @portability_requests.size == 0 %>
|
4
|
+
<p><%= I18n.t("terms_app.portability_requests.index.empty") %></p>
|
5
|
+
<% else %>
|
6
|
+
|
7
|
+
<%= chart ->{PolicyManager::PortabilityRequest.group_by_day(:created_at).count} %>
|
8
|
+
|
9
|
+
<div class="table-responsive">
|
10
|
+
<table class="table table-striped table-sm">
|
11
|
+
<thead>
|
12
|
+
<tr>
|
13
|
+
<th><%= I18n.t("terms_app.portability_requests.index.table.user") %></th>
|
14
|
+
<th><%= I18n.t("terms_app.portability_requests.index.table.state") %></th>
|
15
|
+
<th><%= I18n.t("terms_app.portability_requests.index.table.created_at") %></th>
|
16
|
+
<!--<th>Expire at</th>-->
|
17
|
+
<th colspan="2"></th>
|
18
|
+
</tr>
|
19
|
+
</thead>
|
20
|
+
|
21
|
+
<tbody>
|
22
|
+
<% @portability_requests.each do |portability_request| %>
|
23
|
+
<tr>
|
24
|
+
<td><%= portability_request.user.email %></td>
|
25
|
+
<td><%= I18n.t("terms_app.portability_requests.index.states.#{portability_request.state}") %></td>
|
26
|
+
<td><%= portability_request.created_at %></td>
|
27
|
+
<!--<td><%= portability_request.expire_at %></td>-->
|
28
|
+
<td>
|
29
|
+
<%= link_to I18n.t("terms_app.portability_requests.index.table.confirm"), confirm_portability_request_path(portability_request), data: { confirm: I18n.t("terms_app.misc.are_you_sure") } if portability_request.pending?
|
30
|
+
%>
|
31
|
+
|
32
|
+
</td>
|
33
|
+
<td><%= link_to I18n.t("terms_app.portability_requests.index.table.destroy"), portability_request, method: :delete, data: { confirm: I18n.t("terms_app.misc.are_you_sure") } %></td>
|
34
|
+
</tr>
|
35
|
+
<% end %>
|
36
|
+
</tbody>
|
37
|
+
</table>
|
38
|
+
|
39
|
+
<%= will_paginate @portability_requests, :style => 'letter-spacing: 5px' %>
|
40
|
+
|
41
|
+
</div>
|
42
|
+
<% end %>
|
@@ -1,10 +1,9 @@
|
|
1
|
-
|
2
1
|
<% path = @term.persisted? ? category_term_path(params[:category_id], @term) : category_terms_path(params[:category_id]) %>
|
3
2
|
|
4
3
|
<%= form_with(model: term, local: true, url: path ) do |form| %>
|
5
4
|
<% if term.errors.any? %>
|
6
5
|
<div id="error_explanation">
|
7
|
-
<h2><%= pluralize(term.errors.count, "error") %>
|
6
|
+
<h2><%= pluralize(term.errors.count, "error") %> <%= I18n.t("terms_app.terms.new.error") %></h2>
|
8
7
|
|
9
8
|
<ul>
|
10
9
|
<% term.errors.full_messages.each do |message| %>
|
@@ -14,17 +13,19 @@
|
|
14
13
|
</div>
|
15
14
|
<% end %>
|
16
15
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
<%= form.text_area :description, id: :term_description, class: "form-control" %>
|
24
|
-
</div>
|
16
|
+
<%= form.hidden_field :rule, value: params[:category_id] %>
|
17
|
+
|
18
|
+
<div class="form-group">
|
19
|
+
<label><%= I18n.t("terms_app.terms.new.state") %></label>
|
20
|
+
<%= form.select :state, PolicyManager::Term.aasm.states.collect{ |state| [I18n.t("terms_app.states.#{state}"), state] }%>
|
21
|
+
</div>
|
25
22
|
|
26
|
-
|
23
|
+
<div class="form-group">
|
24
|
+
<%= form.label I18n.t("terms_app.terms.new.description") %>
|
25
|
+
<%= form.text_area :description, id: :term_description, class: "form-control" %>
|
26
|
+
</div>
|
27
27
|
|
28
|
+
<%= form.submit class: "btn btn-success", value: I18n.t("terms_app.misc.save") %>
|
28
29
|
<% end %>
|
29
30
|
|
30
31
|
<script>
|
@@ -1,6 +1,8 @@
|
|
1
|
-
<
|
1
|
+
<h2><%= I18n.t("terms_app.terms.edit.title", name: @term.rule.name) %></h2>
|
2
2
|
|
3
|
-
|
3
|
+
<div class="float-right">
|
4
|
+
<%= link_to I18n.t("terms_app.misc.back"), category_path(@term.rule.name), class: "btn btn-primary" %>
|
5
|
+
<%= link_to I18n.t("terms_app.misc.show"), category_term_path(@term.rule.name, @term), class: "btn btn-success" %>
|
6
|
+
</div>
|
4
7
|
|
5
|
-
<%=
|
6
|
-
<%= link_to 'Back', category_terms_path %>
|
8
|
+
<%= render 'form', term: @term %>
|
@@ -1,13 +1,16 @@
|
|
1
|
+
<h2><%= I18n.t("terms_app.terms.index.title") %></h2>
|
1
2
|
|
2
|
-
<
|
3
|
+
<div class="float-right">
|
4
|
+
<%= link_to I18n.t("terms_app.terms.index.button"), new_category_term_path(params[:category_id]), class: "btn btn-success" %>
|
5
|
+
</div>
|
3
6
|
|
4
7
|
<div class="table-responsive">
|
5
8
|
<table class="table table-striped table-sm">
|
6
9
|
<thead>
|
7
10
|
<tr>
|
8
|
-
<th
|
9
|
-
<th
|
10
|
-
<th
|
11
|
+
<th><%= I18n.t("terms_app.terms.index.table.description") %></th>
|
12
|
+
<th><%= I18n.t("terms_app.terms.index.table.category") %></th>
|
13
|
+
<th><%= I18n.t("terms_app.terms.index.table.updated_at") %></th>
|
11
14
|
<th colspan="3"></th>
|
12
15
|
</tr>
|
13
16
|
</thead>
|
@@ -15,19 +18,15 @@
|
|
15
18
|
<tbody>
|
16
19
|
<% @terms.each do |term| %>
|
17
20
|
<tr>
|
18
|
-
<td><%= truncate(term.description, length: 170, separator: " ", omission: '...
|
19
|
-
<td><%= term.
|
21
|
+
<td><%= truncate(term.description, length: 170, separator: " ", omission: '...') %></td>
|
22
|
+
<td><%= term.rule.name %></td>
|
20
23
|
<td><%= term.updated_at %></td>
|
21
|
-
<td><%= link_to
|
22
|
-
<td><%= link_to
|
23
|
-
<td><%= link_to
|
24
|
+
<td><%= link_to I18n.t("terms_app.terms.index.table.show"), category_term_path(term.rule.name,term) %></td>
|
25
|
+
<td><%= link_to I18n.t("terms_app.terms.index.table.edit"), edit_category_term_path(term.rule.name,term) %></td>
|
26
|
+
<td><%= link_to I18n.t("terms_app.terms.index.table.destroy"), category_term_path(term.rule.name, term), method: :delete, data: { confirm: I18n.t("terms_app.misc.are_you_sure") } %></td>
|
24
27
|
</tr>
|
25
28
|
<% end %>
|
26
29
|
</tbody>
|
27
30
|
</table>
|
28
31
|
|
29
32
|
</div>
|
30
|
-
|
31
|
-
<br>
|
32
|
-
|
33
|
-
<%= link_to 'New Term', new_category_term_path(params[:category_id]) %>
|
@@ -1,5 +1,7 @@
|
|
1
|
-
<
|
1
|
+
<h2><%= I18n.t("terms_app.terms.new.title", name: params[:category_id]) %></h2>
|
2
2
|
|
3
|
-
|
3
|
+
<div class="float-right">
|
4
|
+
<%= link_to I18n.t("terms_app.misc.back"), category_terms_path(params[:category_id]), class: " btn btn-primary" %>
|
5
|
+
</div>
|
4
6
|
|
5
|
-
<%=
|
7
|
+
<%= render 'form', term: @term %>
|
@@ -1,16 +1,18 @@
|
|
1
|
+
<h2><%= I18n.t("terms_app.terms.show.title") %> <%= @term.rule.name %></h2>
|
1
2
|
|
2
3
|
<div class="float-right">
|
3
|
-
|
4
|
+
<%= link_to I18n.t("terms_app.misc.back"), category_path(@term.rule.name), class: "btn btn-primary" %>
|
5
|
+
<%= link_to I18n.t("terms_app.misc.edit"), edit_category_term_path(@term.rule.name, @term), class: "btn btn-success" %>
|
6
|
+
</div>
|
7
|
+
|
4
8
|
<span class="badge badge-pill badge-primary">
|
5
|
-
<%= @term.
|
9
|
+
<%= I18n.t("terms_app.states.#{@term.state}") %>
|
6
10
|
</span>
|
7
|
-
<br/>
|
8
|
-
<span class="text-muted">
|
9
|
-
last updated on <%= @term.updated_at %>
|
10
|
-
</span>
|
11
|
-
</div>
|
12
11
|
|
13
|
-
|
12
|
+
<span class="text-muted">
|
13
|
+
<%= I18n.t("terms_app.terms.show.last_update") %> <%= @term.updated_at %>
|
14
|
+
</span>
|
15
|
+
|
16
|
+
<hr />
|
14
17
|
|
15
|
-
<%=
|
16
|
-
<%= link_to 'Back', category_terms_path(@term.category) %>
|
18
|
+
<%= raw @term.to_html %>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<h2><%= I18n.t("terms_app.user_portability_requests.index.title") %></h2>
|
2
|
+
|
3
|
+
<% if @user_portability_requests.any? %>
|
4
|
+
<div class="table-responsive">
|
5
|
+
<table class="table table-striped table-sm">
|
6
|
+
<thead>
|
7
|
+
<tr>
|
8
|
+
<th><%= I18n.t("terms_app.user_portability_requests.index.table.state") %></th>
|
9
|
+
<th><%= I18n.t("terms_app.user_portability_requests.index.table.file") %></th>
|
10
|
+
<th><%= I18n.t("terms_app.user_portability_requests.index.table.created_at") %></th>
|
11
|
+
<!--<th>Expire at</th>-->
|
12
|
+
<th></th>
|
13
|
+
</tr>
|
14
|
+
</thead>
|
15
|
+
|
16
|
+
<tbody>
|
17
|
+
<% @user_portability_requests.each do |portability_request| %>
|
18
|
+
<tr>
|
19
|
+
<td><%= I18n.t("terms_app.user_portability_requests.index.states.#{portability_request.state}") %></td>
|
20
|
+
<% if portability_request.completed? %>
|
21
|
+
<td><%= link_to I18n.t("terms_app.misc.download"), portability_request.attachment.expiring_url(60) %></td>
|
22
|
+
<% else %>
|
23
|
+
<td></td>
|
24
|
+
<% end %>
|
25
|
+
<td><%= portability_request.created_at %></td>
|
26
|
+
<!--<td><%= portability_request.expire_at %></td>-->
|
27
|
+
<td><%= link_to I18n.t("terms_app.user_portability_requests.index.table.destroy"), user_portability_request_url(portability_request.id), method: :delete, data: { confirm: I18n.t("terms_app.misc.are_you_sure") } %></td>
|
28
|
+
</tr>
|
29
|
+
<% end %>
|
30
|
+
</tbody>
|
31
|
+
</table>
|
32
|
+
</div>
|
33
|
+
|
34
|
+
<%= will_paginate @user_portability_requests, :style => 'letter-spacing: 5px' %>
|
35
|
+
|
36
|
+
<br/>
|
37
|
+
|
38
|
+
<% else %>
|
39
|
+
<p><%= I18n.t("terms_app.user_portability_requests.index.empty") %></p>
|
40
|
+
<% end %>
|
41
|
+
|
42
|
+
<%= link_to I18n.t("terms_app.user_portability_requests.index.button"), user_portability_requests_path, class: "btn btn-success", method: :post, data: { confirm: I18n.t("terms_app.misc.are_you_sure") } %>
|
@@ -1,7 +1,11 @@
|
|
1
|
-
<h2
|
1
|
+
<h2><%= I18n.t("terms_app.user_terms.pending.title") %></h2>
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
3
|
+
<% if @pending_policies.size == 0 %>
|
4
|
+
<p><%= I18n.t("terms_app.user_terms.pending.empty") %></p>
|
5
|
+
<% else %>
|
6
|
+
<ul>
|
7
|
+
<% @pending_policies.each do |category| %>
|
8
|
+
<li><%= link_to category.name, user_term_path(category.name) %></li>
|
9
|
+
<% end %>
|
10
|
+
</ul>
|
11
|
+
<% end %>
|
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
<%= raw @term.to_html %>
|
3
2
|
|
4
3
|
<hr/>
|
@@ -6,12 +5,12 @@
|
|
6
5
|
<% if @user_term.persisted? && @user_term.state == "accepted" %>
|
7
6
|
|
8
7
|
<div>
|
9
|
-
<strong
|
10
|
-
<br
|
8
|
+
<strong><%= I18n.t("terms_app.user_terms.show.accepted.message") %></strong>
|
9
|
+
<br/><%= I18n.t("terms_app.user_terms.show.accepted.question") %>
|
11
10
|
|
12
11
|
<%= form_with model: @user_term, url: reject_user_term_path(params[:id]), method: :put, local: true do |f| %>
|
13
|
-
<%= f.submit "reject", class: "btn btn-danger" %>
|
14
|
-
|
12
|
+
<%= f.submit I18n.t("terms_app.user_terms.show.accepted.reject"), class: "btn btn-danger" %>
|
13
|
+
<%= link_to I18n.t("terms_app.user_terms.show.pending.not_now"), pending_user_terms_path, class: "btn btn-secondary" %>
|
15
14
|
<% end %>
|
16
15
|
|
17
16
|
</div>
|
@@ -19,13 +18,13 @@
|
|
19
18
|
<% else %>
|
20
19
|
<strong>
|
21
20
|
<%= current_user.email %>
|
22
|
-
</strong>
|
21
|
+
</strong> <%= I18n.t("terms_app.user_terms.show.pending.message") %>
|
23
22
|
|
24
23
|
<hr/>
|
25
24
|
|
26
25
|
<%= form_with model: @user_term, url: accept_user_term_path(params[:id]), method: :put, local: true do |f| %>
|
27
|
-
<%= f.submit "
|
28
|
-
|
26
|
+
<%= f.submit I18n.t("terms_app.user_terms.show.pending.agree"), class: "btn btn-success" %>
|
27
|
+
<%= link_to I18n.t("terms_app.user_terms.show.pending.not_now"), pending_user_terms_path, class: "btn btn-secondary" %>
|
29
28
|
<% end %>
|
30
29
|
|
31
30
|
<hr/>
|
@@ -1,11 +1,18 @@
|
|
1
|
-
json.body raw(
|
1
|
+
json.body raw(@term.to_html)
|
2
2
|
|
3
3
|
if @user_term.persisted? && @user_term.state == "accepted"
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
json.status "accepted"
|
5
|
+
json.message "#{I18n.t("terms_app.user_terms.show.accepted.message")}"
|
6
|
+
json.url reject_user_term_path(params[:id])
|
7
|
+
json.method :put
|
8
|
+
elsif current_user.present?
|
9
|
+
json.status "pending"
|
10
|
+
json.message "#{current_user.email} #{I18n.t("terms_app.user_terms.show.pending.message")}"
|
11
|
+
json.url accept_user_term_path(params[:id])
|
12
|
+
json.method :put
|
13
|
+
else
|
14
|
+
json.status @user_term.state
|
15
|
+
json.message "#{I18n.t("terms_app.user_terms.show.pending.message")} #{params[:id]}"
|
16
|
+
json.url accept_user_term_path(params[:id])
|
17
|
+
json.method :put
|
11
18
|
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
en:
|
2
|
+
terms_app:
|
3
|
+
title: PolicyManager
|
4
|
+
sub_title: PolicyManager
|
5
|
+
sign_out: Logout
|
6
|
+
menu:
|
7
|
+
policies: Policies
|
8
|
+
portability_requests: Portability requests
|
9
|
+
user_portability_requests: My Portability requests
|
10
|
+
user_pending_policies: My pending policies
|
11
|
+
misc:
|
12
|
+
back: Back
|
13
|
+
edit: Edit
|
14
|
+
show: Show
|
15
|
+
save: Save
|
16
|
+
download: Download
|
17
|
+
are_you_sure: Are you sure?
|
18
|
+
states:
|
19
|
+
draft: Draft
|
20
|
+
published: Published
|
21
|
+
categories:
|
22
|
+
index:
|
23
|
+
title: Policies
|
24
|
+
table:
|
25
|
+
name: Name
|
26
|
+
terms: Terms
|
27
|
+
show: Show
|
28
|
+
show:
|
29
|
+
title: "%{name} Policy"
|
30
|
+
new: New Term
|
31
|
+
table:
|
32
|
+
id: Id
|
33
|
+
content: Content
|
34
|
+
state: State
|
35
|
+
updated_at: Updated at
|
36
|
+
show: Show
|
37
|
+
terms:
|
38
|
+
index:
|
39
|
+
title: Terms
|
40
|
+
button: New Term
|
41
|
+
table:
|
42
|
+
description: Description
|
43
|
+
category: Policy
|
44
|
+
updated_at: Updated at
|
45
|
+
show: Show
|
46
|
+
edit: Edit
|
47
|
+
destroy: Delete
|
48
|
+
new:
|
49
|
+
title: "%{name} new term"
|
50
|
+
state: State
|
51
|
+
description: Description
|
52
|
+
button: Button
|
53
|
+
error: error saving term
|
54
|
+
created: Successfully created
|
55
|
+
updated: Successfully updated
|
56
|
+
destroyed: Successfully deleted
|
57
|
+
edit:
|
58
|
+
title: Edit %{name} term
|
59
|
+
state: State
|
60
|
+
description: Description
|
61
|
+
error: saving term
|
62
|
+
show:
|
63
|
+
title: Term
|
64
|
+
last_update: Last update
|
65
|
+
table:
|
66
|
+
name: Name
|
67
|
+
terms: Terms
|
68
|
+
show: Show
|
69
|
+
user_terms:
|
70
|
+
pending:
|
71
|
+
title: My pending policies
|
72
|
+
empty: There are no pending policies
|
73
|
+
show:
|
74
|
+
accepted:
|
75
|
+
message: Accepted policy
|
76
|
+
question: Change your mind?
|
77
|
+
reject: Reject
|
78
|
+
not_now: No not now
|
79
|
+
pending:
|
80
|
+
message: Please accept this policy
|
81
|
+
agree: Accept
|
82
|
+
not_now: No not now
|
83
|
+
user_portability_requests:
|
84
|
+
index:
|
85
|
+
title: My portability requests
|
86
|
+
empty: There are no portability requests
|
87
|
+
table:
|
88
|
+
state: State
|
89
|
+
file: File
|
90
|
+
created_at: Created at
|
91
|
+
destroy: Delete
|
92
|
+
button: New portability request
|
93
|
+
states:
|
94
|
+
pending: Pending
|
95
|
+
progress: In progress
|
96
|
+
completed: Completed
|
97
|
+
has_pending: You have one pending information request, you can't create another one yet.
|
98
|
+
created: Information Request Submitted!
|
99
|
+
portability_requests:
|
100
|
+
index:
|
101
|
+
title: Pending requests
|
102
|
+
destroyed: Successfully deleted
|
103
|
+
empty: There is no requests
|
104
|
+
table:
|
105
|
+
user: User
|
106
|
+
state: State
|
107
|
+
created_at: Created at
|
108
|
+
destroy: Delete
|
109
|
+
confirm: Confirm
|
110
|
+
states:
|
111
|
+
pending: Pending
|
112
|
+
progress: In Progress
|
113
|
+
completed: Completed
|
114
|
+
mails:
|
115
|
+
progress:
|
116
|
+
subject: Your data is being handled
|
117
|
+
completed:
|
118
|
+
subject: Your data is available
|
119
|
+
will_paginate:
|
120
|
+
previous_label: "<"
|
121
|
+
next_label: ">"
|
122
|
+
page_gap: "…"
|