vaultify 0.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.
Files changed (38) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +203 -0
  3. data/README.md +29 -0
  4. data/Rakefile +33 -0
  5. data/app/assets/config/vaultify_manifest.js +2 -0
  6. data/app/assets/javascripts/vaultify/aat.js +38 -0
  7. data/app/assets/javascripts/vaultify/application.js +15 -0
  8. data/app/assets/javascripts/vaultify/autocomplete.js +79 -0
  9. data/app/assets/javascripts/vaultify/dcmi.js +16 -0
  10. data/app/assets/javascripts/vaultify/edtf.js +16 -0
  11. data/app/assets/javascripts/vaultify/fast.js +26 -0
  12. data/app/assets/javascripts/vaultify/horsey.js +2917 -0
  13. data/app/assets/javascripts/vaultify/iso.js +200 -0
  14. data/app/assets/javascripts/vaultify/vaultify.js.erb +152 -0
  15. data/app/assets/stylesheets/vaultify/application.css +16 -0
  16. data/app/assets/stylesheets/vaultify/horsey.css +61 -0
  17. data/app/assets/stylesheets/vaultify/vaultify.css +81 -0
  18. data/app/controllers/vaultify/application_controller.rb +5 -0
  19. data/app/controllers/vaultify/vaultify_controller.rb +370 -0
  20. data/app/helpers/vaultify/application_helper.rb +4 -0
  21. data/app/helpers/vaultify/edtf_helper.rb +126 -0
  22. data/app/jobs/vaultify/application_job.rb +4 -0
  23. data/app/mailers/vaultify/application_mailer.rb +6 -0
  24. data/app/models/vaultify/application_record.rb +5 -0
  25. data/app/views/layouts/vaultify/application.html.erb +16 -0
  26. data/app/views/vaultify/vaultify/_modal.html.erb +37 -0
  27. data/app/views/vaultify/vaultify/translate.html.erb +71 -0
  28. data/app/views/vaultify/vaultify/upload.html.erb +18 -0
  29. data/config/initializers/session_store.rb +1 -0
  30. data/config/routes.rb +8 -0
  31. data/db/migrate/20181127173405_add_sessions_table.rb +12 -0
  32. data/lib/generators/vaultify/install/install_generator.rb +13 -0
  33. data/lib/generators/vaultify/install/templates/config/vaultify.yml +12 -0
  34. data/lib/tasks/vaultify_tasks.rake +4 -0
  35. data/lib/vaultify.rb +5 -0
  36. data/lib/vaultify/engine.rb +20 -0
  37. data/lib/vaultify/version.rb +3 -0
  38. metadata +121 -0
@@ -0,0 +1,4 @@
1
+ module Vaultify
2
+ class ApplicationJob < ActiveJob::Base
3
+ end
4
+ end
@@ -0,0 +1,6 @@
1
+ module Vaultify
2
+ class ApplicationMailer < ActionMailer::Base
3
+ default from: 'from@example.com'
4
+ layout 'mailer'
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ module Vaultify
2
+ class ApplicationRecord < ActiveRecord::Base
3
+ self.abstract_class = true
4
+ end
5
+ end
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Vaultify</title>
5
+ <%= csrf_meta_tags %>
6
+ <%= csp_meta_tag %>
7
+
8
+ <%= stylesheet_link_tag "vaultify/application", media: "all" %>
9
+ <%= javascript_include_tag "vaultify/application" %>
10
+ </head>
11
+ <body>
12
+
13
+ <%= yield %>
14
+
15
+ </body>
16
+ </html>
@@ -0,0 +1,37 @@
1
+ <div id="editModal" class="modal">
2
+
3
+ <div class="modal-content">
4
+ <span id="current_row" class="no-dis"></span>
5
+ <table id="modal_table">
6
+ <tr>
7
+ <td>Title</td>
8
+ <td id="modal_title"></td>
9
+ </tr>
10
+ <tr>
11
+ <td>Original</td>
12
+ <td id="modal_orig"></td>
13
+ </tr>
14
+ <tr>
15
+ <td>Adjusted</td>
16
+ <td>
17
+ <ul id="modal_adjust"></ul>
18
+ </td>
19
+ </tr>
20
+ <tr>
21
+ <td colspan="2" id="modal_autoc">
22
+ <%= text_field_tag '', nil, placeholder: 'enter search here', id: 'autoc_field' %><%= button_tag 'add', onclick: "add_field()" %>
23
+ </td>
24
+ </tr>
25
+ </table>
26
+ <div class="modal_buttons">
27
+ <div class="modal_cancel_button">
28
+ <%= button_tag 'Cancel', id: 'modal_cancel', onclick: "closeModal()" %>
29
+ </div>
30
+ <div class="modal_apply_buttons">
31
+ <%= button_tag 'Apply All', id: 'modal_apply_all', onclick: "modal_apply_all()" %>
32
+ <%= button_tag 'Apply', id: 'modal_apply', onclick: "modal_apply(document.getElementById('current_row').innerText)" %>
33
+ </div>
34
+ </div>
35
+ </div>
36
+
37
+ </div>
@@ -0,0 +1,71 @@
1
+ <div id="wrapper">
2
+ <header>
3
+ <h1>Translate</h1>
4
+ <style>
5
+ Body {
6
+ text-align: center
7
+ }
8
+
9
+ table {
10
+ border-collapse: collapse;
11
+ width: 100%;
12
+ background: white;
13
+ }
14
+
15
+ td {
16
+ width: 33%
17
+ }
18
+
19
+ table, th, td {
20
+ border: 1px solid lightgray;
21
+ }
22
+ </style>
23
+ <%= submit_tag 'Export', form: "translate", onclick: "document.getElementById('translate').submit()" %>
24
+ </header>
25
+ </div>
26
+
27
+ <%= form_tag vaultify_export_path + '.csv', id: 'translate', method: 'post', multipart: true do %>
28
+
29
+ <%= select_tag 'field', options_for_select(@fields.map {|f, v| [f, f]}), onchange: 'loadTable(this);' %>
30
+
31
+ <% @fields.each do |field, api| %>
32
+ <table id="<%= field %>" class="" style="display: <%= 'none' unless @fields.keys.first==field %>;">
33
+ <span id="<%= field %>_api" class="no-dis"><%= api %></span>
34
+ <tr>
35
+ <th>Title</th>
36
+ <th>Original</th>
37
+ <th>Adjusted</th>
38
+ </tr>
39
+ <% @csv.each_with_index do |row, row_index| %>
40
+ <tr id="<%= field + "-" + row_index.to_s %>" onclick="openModal(this)">
41
+ <td class="title"><%= row['title'] %></td>
42
+ <td class="original">
43
+ <ul class="original-list">
44
+ <% unless row[field].nil? %>
45
+ <% row[field].split(@mvs).each do |li| %>
46
+ <li><%= li %></li>
47
+ <% end %>
48
+ <% end %>
49
+ </ul>
50
+ </td>
51
+ <td class="adjusted">
52
+ <ul class="adjusted-list">
53
+ <% unless row["#{field}-adjusted"].nil? %>
54
+ <% row["#{field}-adjusted"].split(@mvs).each_with_index do |li, li_index| %>
55
+ <li>
56
+ <%= li.split('url:').first %>
57
+ <%= hidden_field_tag field + "[" + row_index.to_s + '][' + li_index.to_s + ']', li.split('url:').last, class: "url no-dis" %>
58
+ </li>
59
+ <% end %>
60
+ <% end %>
61
+ </ul>
62
+ </td>
63
+ </tr>
64
+ <% end %>
65
+ </table>
66
+ <% end %>
67
+ <% end %>
68
+ </br>
69
+ </br>
70
+ </br>
71
+ <%= render 'modal' %>
@@ -0,0 +1,18 @@
1
+ <div id="wrapper">
2
+ <header>
3
+ <h1>Welcome to the Vaultify Application</h1>
4
+ <style>
5
+ Body {text-align:center}
6
+ </style>
7
+ </header>
8
+ </div>
9
+
10
+ </br>
11
+ </br>
12
+ </br>
13
+ <%= form_tag vaultify_translate_path, method: 'post', multipart: true do %>
14
+
15
+ <%= file_field_tag 'csv', accept: 'text/csv', onchange: "fileValidation();" %>
16
+ <%= submit_tag 'upload file' %>
17
+
18
+ <% end %>
@@ -0,0 +1 @@
1
+ Rails.application.config.session_store :active_record_store, :key => '_vaultify_session'
data/config/routes.rb ADDED
@@ -0,0 +1,8 @@
1
+ Vaultify::Engine.routes.draw do
2
+ get '/upload', to: 'vaultify#upload', as: 'vaultify_upload'
3
+ post '/translate', to: 'vaultify#translate', as: 'vaultify_translate'
4
+ post '/export', to: 'vaultify#export', as: 'vaultify_export'
5
+ get '/fast', to: 'vaultify#fast', as: 'vaultify_fast'
6
+ get '/aat', to: 'vaultify#aat', as: 'vaultify_aat'
7
+ get '/edtf', to: 'vaultify#edtf', as: 'vaultify_edtf'
8
+ end
@@ -0,0 +1,12 @@
1
+ class AddSessionsTable < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :sessions do |t|
4
+ t.string :session_id, :null => false
5
+ t.text :data
6
+ t.timestamps
7
+ end
8
+
9
+ add_index :sessions, :session_id, :unique => true
10
+ add_index :sessions, :updated_at
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ class Vaultify::InstallGenerator < Rails::Generators::Base
2
+ source_root File.expand_path('../templates', __FILE__)
3
+
4
+ def inject_routes
5
+ insert_into_file "config/routes.rb", after: ".draw do" do
6
+ %(\n mount Vaultify::Engine => '/vaultify'\n)
7
+ end
8
+ end
9
+
10
+ def inject_vaultify_yml
11
+ copy_file "config/vaultify.yml", "config/vaultify.yml"
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ fields:
2
+ creator: 'fast'
3
+ contributor: 'fast'
4
+ subject: 'fast'
5
+ geographic: 'fast'
6
+ date_created: 'edtf'
7
+ chronological: 'fast'
8
+ date_digitized: 'edtf'
9
+ language: 'iso'
10
+ type: 'dcmi'
11
+ genre: 'aat'
12
+ mvs: ";"
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :vaultify do
3
+ # # Task goes here
4
+ # end
data/lib/vaultify.rb ADDED
@@ -0,0 +1,5 @@
1
+ require "vaultify/engine"
2
+
3
+ module Vaultify
4
+ # Your code goes here...
5
+ end
@@ -0,0 +1,20 @@
1
+ module Vaultify
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace Vaultify
4
+ class << self
5
+
6
+ def config
7
+ file = File.open(File.join(::Rails.root, "/config/vaultify.yml"))
8
+ @config ||= YAML.safe_load(file)
9
+ end
10
+
11
+ # loads a yml file with the configuration options
12
+ #
13
+ # @param file [String] path to the yml file
14
+ #
15
+ def load_config(file)
16
+ @config = YAML.load_file(file)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,3 @@
1
+ module Vaultify
2
+ VERSION = '0.1.0'
3
+ end
metadata ADDED
@@ -0,0 +1,121 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vaultify
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Braydon Justice
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-12-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '5.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '5.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: sqlite3
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: engine_cart
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ description: Data standardization application
56
+ email: bjustice@uvic.ca
57
+ executables: []
58
+ extensions: []
59
+ extra_rdoc_files: []
60
+ files:
61
+ - LICENSE
62
+ - README.md
63
+ - Rakefile
64
+ - app/assets/config/vaultify_manifest.js
65
+ - app/assets/javascripts/vaultify/aat.js
66
+ - app/assets/javascripts/vaultify/application.js
67
+ - app/assets/javascripts/vaultify/autocomplete.js
68
+ - app/assets/javascripts/vaultify/dcmi.js
69
+ - app/assets/javascripts/vaultify/edtf.js
70
+ - app/assets/javascripts/vaultify/fast.js
71
+ - app/assets/javascripts/vaultify/horsey.js
72
+ - app/assets/javascripts/vaultify/iso.js
73
+ - app/assets/javascripts/vaultify/vaultify.js.erb
74
+ - app/assets/stylesheets/vaultify/application.css
75
+ - app/assets/stylesheets/vaultify/horsey.css
76
+ - app/assets/stylesheets/vaultify/vaultify.css
77
+ - app/controllers/vaultify/application_controller.rb
78
+ - app/controllers/vaultify/vaultify_controller.rb
79
+ - app/helpers/vaultify/application_helper.rb
80
+ - app/helpers/vaultify/edtf_helper.rb
81
+ - app/jobs/vaultify/application_job.rb
82
+ - app/mailers/vaultify/application_mailer.rb
83
+ - app/models/vaultify/application_record.rb
84
+ - app/views/layouts/vaultify/application.html.erb
85
+ - app/views/vaultify/vaultify/_modal.html.erb
86
+ - app/views/vaultify/vaultify/translate.html.erb
87
+ - app/views/vaultify/vaultify/upload.html.erb
88
+ - config/initializers/session_store.rb
89
+ - config/routes.rb
90
+ - db/migrate/20181127173405_add_sessions_table.rb
91
+ - lib/generators/vaultify/install/install_generator.rb
92
+ - lib/generators/vaultify/install/templates/config/vaultify.yml
93
+ - lib/tasks/vaultify_tasks.rake
94
+ - lib/vaultify.rb
95
+ - lib/vaultify/engine.rb
96
+ - lib/vaultify/version.rb
97
+ homepage: https://github.com/UVicLibrary/vaultify
98
+ licenses:
99
+ - Apache 2.0
100
+ metadata: {}
101
+ post_install_message:
102
+ rdoc_options: []
103
+ require_paths:
104
+ - lib
105
+ required_ruby_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ required_rubygems_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ requirements: []
116
+ rubyforge_project:
117
+ rubygems_version: 2.7.7
118
+ signing_key:
119
+ specification_version: 4
120
+ summary: Standardizes metadata
121
+ test_files: []