iqvoc 4.2.0 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/Gemfile +15 -12
  4. data/Gemfile.lock +124 -90
  5. data/README.md +17 -1
  6. data/app/assets/images/iqvoc_logo.svg +41 -0
  7. data/app/assets/javascripts/framework.js +1 -1
  8. data/app/assets/javascripts/iqvoc/concept_mapper.js +62 -0
  9. data/app/assets/javascripts/iqvoc/concept_mapping_manager.js +137 -0
  10. data/app/assets/javascripts/iqvoc/entityselect.js.erb +51 -19
  11. data/app/assets/javascripts/iqvoc/federated_concept_mapper.js +75 -0
  12. data/app/assets/javascripts/iqvoc/iqvoc.js +16 -4
  13. data/app/assets/javascripts/iqvoc/label_resolver.js +23 -0
  14. data/app/assets/javascripts/iqvoc/manifest.js +4 -0
  15. data/app/assets/javascripts/iqvoc/onebox.js.erb +4 -4
  16. data/app/assets/javascripts/iqvoc/quicksearch.js +1 -1
  17. data/app/assets/stylesheets/framework.css.scss +2 -1
  18. data/app/assets/stylesheets/iqvoc/_settings.css.scss +12 -0
  19. data/app/assets/stylesheets/iqvoc/components/_components.css.scss +237 -0
  20. data/app/assets/stylesheets/iqvoc/{entity_select.css.scss → components/_entity_select.css.scss} +0 -2
  21. data/app/assets/stylesheets/iqvoc/{forms.css.scss → components/_forms.css.scss} +0 -0
  22. data/app/assets/stylesheets/iqvoc/{note.css.scss → components/_notes.css.scss} +2 -10
  23. data/app/assets/stylesheets/iqvoc/{panel.css.scss → components/_panels.css.scss} +3 -5
  24. data/app/assets/stylesheets/iqvoc/{sidebar.css.scss → components/_sidebars.css.scss} +0 -0
  25. data/app/assets/stylesheets/iqvoc/{visualization.css.scss → components/_visualization.css.scss} +0 -0
  26. data/app/assets/stylesheets/iqvoc/{bootstrap_extensions.css.scss → hacks/_bootstrap_extensions.css.scss} +0 -0
  27. data/app/assets/stylesheets/iqvoc/{hacks.css.scss → hacks/_hacks.css.scss} +0 -0
  28. data/app/assets/stylesheets/iqvoc/{jquery-ui_extensions.css.scss → hacks/_jquery-ui_extensions.css.scss} +0 -0
  29. data/app/assets/stylesheets/iqvoc/manifest.css.scss +10 -10
  30. data/app/controllers/concepts/alphabetical_controller.rb +23 -9
  31. data/app/controllers/concepts/scheme_controller.rb +19 -0
  32. data/app/controllers/concepts_controller.rb +13 -1
  33. data/app/controllers/concerns/dataset_initialization.rb +18 -0
  34. data/app/controllers/dashboard_controller.rb +17 -0
  35. data/app/controllers/hierarchy_controller.rb +65 -6
  36. data/app/controllers/{import_controller.rb → imports_controller.rb} +14 -11
  37. data/app/controllers/rdf_controller.rb +6 -0
  38. data/app/controllers/remote_labels_controller.rb +31 -0
  39. data/app/controllers/search_results_controller.rb +95 -14
  40. data/app/helpers/application_helper.rb +6 -4
  41. data/app/helpers/dashboard_helper.rb +3 -3
  42. data/app/helpers/link_helper.rb +14 -0
  43. data/app/helpers/search_results_helper.rb +5 -1
  44. data/app/jobs/import_job.rb +19 -0
  45. data/app/models/concept/base.rb +2 -2
  46. data/app/models/dataset/adaptors/iqvoc/alphabetical_search_adaptor.rb +38 -0
  47. data/app/models/dataset/adaptors/iqvoc/http_adaptor.rb +39 -0
  48. data/app/models/dataset/adaptors/iqvoc/label_adaptor.rb +15 -0
  49. data/app/models/dataset/adaptors/iqvoc/search_adaptor.rb +60 -0
  50. data/app/models/dataset/iqvoc_dataset.rb +39 -0
  51. data/app/models/import.rb +16 -0
  52. data/app/models/labeling/skos/base.rb +2 -1
  53. data/app/models/note/base.rb +2 -2
  54. data/app/models/note/skos/change_note.rb +3 -2
  55. data/app/presenters/alphabetical_search_result.rb +33 -0
  56. data/app/presenters/alphabetical_search_result_remote.rb +37 -0
  57. data/app/presenters/search_result.rb +33 -0
  58. data/app/presenters/search_result_collection.rb +8 -0
  59. data/app/presenters/search_result_remote.rb +52 -0
  60. data/app/views/collections/_sidebar.html.erb +3 -3
  61. data/app/views/concepts/_form.html.erb +1 -1
  62. data/app/views/concepts/alphabetical/_search_result.html.erb +16 -0
  63. data/app/views/concepts/alphabetical/_search_result_remote.html.erb +14 -0
  64. data/app/views/concepts/alphabetical/index.html.erb +5 -3
  65. data/app/views/concepts/expired/index.html.erb +5 -2
  66. data/app/views/concepts/scheme/_sidebar.html.erb +3 -3
  67. data/app/views/concepts/sidebars/_singular.html.erb +4 -4
  68. data/app/views/dashboard/_sidebar.html.erb +7 -4
  69. data/app/views/dashboard/index.html.erb +1 -1
  70. data/app/views/dashboard/reset.html.erb +6 -0
  71. data/app/views/imports/index.html.erb +44 -0
  72. data/app/views/imports/show.html.erb +7 -0
  73. data/app/views/layouts/application.html.erb +7 -1
  74. data/app/views/partials/labeling/skos/_search_result.html.erb +12 -16
  75. data/app/views/partials/match/_edit_base.html.erb +1 -1
  76. data/app/views/partials/note/_search_result.html.erb +8 -5
  77. data/app/views/partials/note/skos/change_note/_search_result.html.erb +7 -10
  78. data/app/views/partials/note/skos/definition/_search_result.html.erb +5 -5
  79. data/app/views/rdf/dataset.iqrdf +9 -0
  80. data/app/views/search_results/_search_result_remote.html.erb +13 -0
  81. data/app/views/search_results/_sidebar.html.erb +3 -3
  82. data/app/views/search_results/index.html.erb +4 -4
  83. data/app/views/search_results/index.iqrdf +7 -7
  84. data/app/views/search_results/sections/_datasets.html.erb +17 -0
  85. data/app/views/search_results/sections/_klass.html.erb +2 -2
  86. data/app/views/search_results/sections/_languages.html.erb +3 -3
  87. data/app/views/users/_sidebar.html.erb +1 -1
  88. data/config/application.rb +0 -2
  89. data/config/engine.rb +5 -0
  90. data/config/environments/heroku.rb +62 -16
  91. data/config/initializers/apipie.rb +17 -0
  92. data/config/initializers/secret_token.rb +25 -9
  93. data/config/locales/activerecord.de.yml +5 -0
  94. data/config/locales/activerecord.en.yml +5 -0
  95. data/config/locales/de.yml +14 -0
  96. data/config/locales/en.yml +14 -0
  97. data/config/locales/pt.yml +1 -0
  98. data/config/routes.rb +7 -4
  99. data/db/migrate/20131220134356_create_delayed_jobs.rb +22 -0
  100. data/db/migrate/20131220144601_create_imports.rb +11 -0
  101. data/db/schema.rb +26 -1
  102. data/iqvoc.gemspec +12 -3
  103. data/lib/iqvoc/ability.rb +2 -0
  104. data/lib/iqvoc/configuration/core.rb +36 -9
  105. data/lib/iqvoc/controller_extensions.rb +4 -0
  106. data/lib/iqvoc/environments/production.rb +1 -1
  107. data/lib/iqvoc/skos_importer.rb +31 -19
  108. data/lib/iqvoc/version.rb +1 -1
  109. data/lib/tasks/importer.rake +10 -2
  110. data/lib/tasks/release.rake +1 -1
  111. data/public/404.html +43 -11
  112. data/public/422.html +43 -11
  113. data/public/500.html +43 -12
  114. data/test/functional/{rdf_test.rb → rdf_rendering_test.rb} +1 -1
  115. data/test/integration/alphabetical_test.rb +5 -5
  116. data/test/integration/search_test.rb +16 -16
  117. data/test/unit/skos_import_test.rb +9 -9
  118. data/vendor/assets/images/animated-overlay.gif +0 -0
  119. data/vendor/assets/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  120. data/vendor/assets/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
  121. data/vendor/assets/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
  122. data/vendor/assets/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
  123. data/vendor/assets/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  124. data/vendor/assets/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
  125. data/vendor/assets/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
  126. data/vendor/assets/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  127. data/vendor/assets/images/ui-icons_217bc0_256x240.png +0 -0
  128. data/vendor/assets/images/ui-icons_2e83ff_256x240.png +0 -0
  129. data/vendor/assets/images/ui-icons_469bdd_256x240.png +0 -0
  130. data/vendor/assets/images/ui-icons_6da8d5_256x240.png +0 -0
  131. data/vendor/assets/images/ui-icons_cd0a0a_256x240.png +0 -0
  132. data/vendor/assets/images/ui-icons_d8e7f3_256x240.png +0 -0
  133. data/vendor/assets/images/ui-icons_f9bd01_256x240.png +0 -0
  134. data/vendor/assets/javascripts/jquery-ui.custom.js +4538 -0
  135. data/vendor/assets/stylesheets/jquery-ui-1.10.3.custom.css.scss +724 -0
  136. metadata +214 -64
  137. data/app/assets/images/arrow_down.gif +0 -0
  138. data/app/assets/images/arrow_up.gif +0 -0
  139. data/app/assets/images/iqvoc_logo.png +0 -0
  140. data/app/assets/images/spinner_16x16.gif +0 -0
  141. data/app/assets/images/spinner_24x24.gif +0 -0
  142. data/app/assets/stylesheets/iqvoc/components.css.scss +0 -155
  143. data/app/assets/stylesheets/iqvoc/layout.css.scss +0 -0
  144. data/app/views/concepts/alphabetical/_pref_labeling.html.erb +0 -19
  145. data/app/views/import/import.html.erb +0 -7
  146. data/app/views/import/index.html.erb +0 -17
  147. data/vendor/assets/javascripts/jquery-ui-1.8.23.custom.js +0 -3399
  148. data/vendor/assets/stylesheets/jquery-ui-1.8.23.custom.css.scss +0 -405
@@ -164,11 +164,11 @@ jQuery(document).ready(function($) {
164
164
  });
165
165
 
166
166
  // Search
167
- $("button#language_select_all").click(function() {
168
- $("input[type=checkbox].lang_check").attr("checked", true);
167
+ $(".checkbox-select-all").click(function() {
168
+ $(this).closest('.controls').find("input:checkbox").attr("checked", true);
169
169
  });
170
- $("button#language_select_none").click(function() {
171
- $("input[type=checkbox].lang_check").attr("checked", false);
170
+ $(".checkbox-select-none").click(function() {
171
+ $(this).closest('.controls').find("input:checkbox").attr("checked", false);
172
172
  });
173
173
  $("select.search_type").change(function() {
174
174
  var result_type_filter = $(".result_type_filter");
@@ -201,4 +201,16 @@ jQuery(document).ready(function($) {
201
201
  $(".tab-panels").addClass("tab-content"); // the latter is for Bootstrap Tabs
202
202
 
203
203
  IQVOC.onebox(".onebox");
204
+ new IQVOC.FederatedConceptMapper(".matches");
205
+ // XXX: inelegant
206
+ if($("textarea:first").length) { // edit mode
207
+ new IQVOC.ConceptMappingManager(".matches", true);
208
+ } else { // view mode
209
+ new IQVOC.ConceptMappingManager("#matches", false);
210
+ }
211
+
212
+ IQVOC.labelResolver();
213
+ $(document.body).on("concept-label", function(ev, container) {
214
+ IQVOC.labelResolver(container);
215
+ })
204
216
  });
@@ -0,0 +1,23 @@
1
+ IQVOC.labelResolver = (function($) {
2
+
3
+ "use strict";
4
+
5
+ return function(context) {
6
+ $("a.unlabeled", context).each(processNode);
7
+ };
8
+
9
+ function retrieveLabel(conceptURL, el, callback) {
10
+ var proxy = $("body").data("remote-label-path");
11
+ $.get(proxy, { concept_url: conceptURL }, function(data, status, xhr) {
12
+ el.text(data.label);
13
+ el.removeClass("unlabeled");
14
+ });
15
+ }
16
+
17
+ function processNode(i, node) {
18
+ var el = $(node);
19
+ var uri = el.attr("href");
20
+ retrieveLabel(uri, el);
21
+ }
22
+
23
+ }(jQuery))
@@ -4,3 +4,7 @@
4
4
  //= require iqvoc/langselect
5
5
  //= require iqvoc/entityselect
6
6
  //= require iqvoc/entityselect_qualified
7
+ //= require iqvoc/concept_mapper
8
+ //= require iqvoc/federated_concept_mapper
9
+ //= require iqvoc/concept_mapping_manager
10
+ //= require iqvoc/label_resolver
@@ -10,9 +10,8 @@ function OneBox(form) {
10
10
  this.input = $(".onebox-input", this.form); // TODO: document
11
11
  this.container = this.form.removeClass("onebox").
12
12
  wrap('<div class="onebox" />').parent(); // TODO: document
13
- this.results = $('<ol class="results concepts unstyled" />');
14
- this.spinner = $("<img />").
15
- attr("src", "<%= asset_path('spinner_24x24.gif') %>").
13
+ this.results = $('<ol class="results concept-items unstyled" />');
14
+ this.spinner = $('<i class="fa fa-refresh fa-spin fa-3x" />').
16
15
  appendTo(this.container).hide();
17
16
 
18
17
  this.form.on("submit", $.proxy(this, "onSubmit"));
@@ -23,7 +22,7 @@ OneBox.prototype.reset = function() {
23
22
  };
24
23
  OneBox.prototype.renderResults = function(html) {
25
24
  var doc = $("<div />").append(html);
26
- var items = $(".concepts > li", doc);
25
+ var items = $(".concept-items > li", doc);
27
26
  var pagination = $(".pagination", doc);
28
27
 
29
28
  this.reset();
@@ -50,6 +49,7 @@ OneBox.prototype.getConcepts = function() {
50
49
  });
51
50
  };
52
51
  OneBox.prototype.onResults = function(html, status, xhr) {
52
+ // TODO request resource with layout=0
53
53
  // disable scripts (adapted from jQuery#load)
54
54
  var rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;
55
55
  html = html.replace(rscript, "");
@@ -38,7 +38,7 @@ function extractConcepts(html) {
38
38
  var rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;
39
39
  var html = html.replace(rscript, "");
40
40
 
41
- var concepts = $("<div />").append(html).find("ol.concepts li");
41
+ var concepts = $("<div />").append(html).find(".concept-items .concept-item");
42
42
  concepts = concepts.map(function(i, node) {
43
43
  var el = $("a", node);
44
44
  return {
@@ -1,8 +1,9 @@
1
1
  @import 'jquery.treeview';
2
- @import 'jquery-ui-1.8.23.custom';
2
+ @import 'jquery-ui-1.10.3.custom';
3
3
 
4
4
  @import 'bootstrap';
5
5
  body {
6
6
  padding-top: 60px;
7
7
  }
8
8
  @import 'bootstrap-responsive';
9
+ @import 'font-awesome';
@@ -0,0 +1,12 @@
1
+ // Colors
2
+ $background-color: #fff;
3
+
4
+ $widget-border-color-dark: #eee;
5
+ $widget-background-color-dark: #f5f5f5;
6
+ $widget-highlight-color: #d9edf7;
7
+ $widget-highlight-background-color: #3a87ad;
8
+
9
+ $muted-color: #999;
10
+
11
+ // Dimensions
12
+ $border-radius-default: 4px;
@@ -0,0 +1,237 @@
1
+ .navbar {
2
+ .quicksearch {
3
+ }
4
+ }
5
+
6
+ .onebox {
7
+ padding-top: 80px;
8
+ margin-top: 2em;
9
+ text-align: center;
10
+
11
+ background: asset-url("iqvoc_logo.svg") top center no-repeat;
12
+
13
+ .logo {
14
+ margin: 2em 0 1em 0;
15
+ }
16
+
17
+ input {
18
+ min-width: 60%;
19
+ }
20
+
21
+ ol {
22
+ margin-left: 0;
23
+ list-style: none;
24
+ text-align: left;
25
+ }
26
+
27
+ .pagination {
28
+ text-align: left;
29
+ }
30
+ }
31
+
32
+ tr.highlightable {
33
+ cursor: pointer;
34
+ }
35
+
36
+ .alert {
37
+ p {
38
+ margin: 0 0 10px 0;
39
+ }
40
+ ul {
41
+ margin-left: 30px;
42
+ margin-bottom: 0px;
43
+ }
44
+ }
45
+
46
+ .sorting-controls {
47
+ margin-left: 5px;
48
+ > * {
49
+ margin-right: 2px;
50
+ color: inherit;
51
+ }
52
+ }
53
+
54
+ .spinner {
55
+ position: absolute;
56
+ margin: 8px 0 0 -20px;
57
+ }
58
+
59
+ .arrow_down {
60
+ margin-top: 3px;
61
+ }
62
+
63
+ .arrow_up {
64
+ margin-top: 2px;
65
+ }
66
+
67
+ .letter-selector {
68
+ $active: white;
69
+ margin: 0;
70
+ li {
71
+ a {
72
+ color: #BFBFBF;
73
+ font-weight: bold;
74
+ }
75
+ border-radius: 4px;
76
+ display: inline-block;
77
+ margin-right: 2px;
78
+ padding: 2px 6px;
79
+ &:last-child {
80
+ margin-right: 0;
81
+ }
82
+ &.active {
83
+ background-color: $active;
84
+ }
85
+ }
86
+ }
87
+
88
+ .translation {
89
+ margin-bottom: 15px;
90
+ }
91
+
92
+ .nav-list {
93
+ li {
94
+ a {
95
+ &.inline-language-selector {
96
+ display: inline;
97
+ margin: inherit;
98
+ padding: inherit;
99
+ &:hover {
100
+ background: inherit;
101
+ }
102
+ }
103
+ }
104
+ }
105
+ }
106
+
107
+ .concept-items {
108
+ .concept-item {
109
+ margin-bottom: 15px;
110
+ p {
111
+ margin: 0;
112
+ }
113
+ .concept-item-link {
114
+ font-weight: bold;
115
+ }
116
+ .concept-item-uri {
117
+ color: green;
118
+ }
119
+ }
120
+ }
121
+
122
+ .lang-widget {
123
+ padding: 0 15px 20px 15px;
124
+
125
+ .lang-widget-item {
126
+ white-space: nowrap;
127
+
128
+ label {
129
+ margin: 0;
130
+ padding: 2px 10px;
131
+
132
+ input {
133
+ margin-top: -2px;
134
+ margin-right: 0.5em;
135
+ display: inline;
136
+ }
137
+
138
+ a {
139
+ padding-left: 0;
140
+ display: inline;
141
+ }
142
+ }
143
+ }
144
+
145
+ .lang-widget-header {
146
+ margin-top: 10px;
147
+ margin-bottom: 0;
148
+ font-size: 18px;
149
+ }
150
+ }
151
+
152
+ .search-result {
153
+ margin-top: 10px;
154
+ a {
155
+ font-weight: bold;
156
+ }
157
+ }
158
+
159
+ .search-result-meta {
160
+ margin-top: 0;
161
+ }
162
+
163
+ .search-result-key {
164
+ float: left;
165
+ margin-right: 5px;
166
+ // font-weight: normal;
167
+ &:after {
168
+ content: ':';
169
+ }
170
+ }
171
+
172
+ .search-result-link {}
173
+
174
+ .search-result-uri {
175
+ display: block;
176
+ color: green;
177
+ }
178
+
179
+ .search-result-value {}
180
+
181
+ .search-result-body {
182
+ margin-top: 0;
183
+ }
184
+
185
+ .concept-mapper {
186
+ margin-bottom: 25px;
187
+ > * { margin-right: 10px; }
188
+ }
189
+
190
+ .concept-mapper-indicator {
191
+ position: absolute;
192
+ margin: 8px 0 0 -30px;
193
+ }
194
+
195
+ .concept-mappings { margin-left: 0; }
196
+
197
+ .concept-mapping {
198
+ %padded { padding: 7px 10px; }
199
+
200
+ display: inline-block;
201
+ float: left;
202
+ clear: left;
203
+ overflow: hidden;
204
+ margin-right: 10px;
205
+ margin-bottom: 5px;
206
+ padding: 5px 0;
207
+
208
+ border-radius: $border-radius-default;
209
+ background-color: $widget-background-color-dark;
210
+
211
+ .concept-mapping-link {
212
+ @extend %padded;
213
+ background-color: $widget-highlight-color;
214
+ color: $widget-highlight-background-color;
215
+ }
216
+
217
+ .concept-mapping-dataset, .concept-mapping-match-type {
218
+ @extend %padded;
219
+ color: $muted-color;
220
+ }
221
+
222
+ .concept-mapping-dataset {
223
+ @extend %padded;
224
+ background-color: $widget-border-color-dark;
225
+ }
226
+
227
+ .concept-mapping-match-type {
228
+ @extend %padded;
229
+ font-style: italic;
230
+ }
231
+
232
+ .concept-mapping-remove {
233
+ padding-right: 10px;
234
+ cursor: pointer;
235
+ color: $muted-color;
236
+ }
237
+ }
@@ -4,8 +4,6 @@
4
4
  padding: 5px 8px;
5
5
  border: 1px solid #CCD5E4;
6
6
  border-radius: 5px;
7
- -moz-border-radius: 5px;
8
- -webkit-border-radius: 5px;
9
7
  // font-size: 11px;
10
8
  color: #000;
11
9
  background-color: #EFF2F7;
@@ -5,10 +5,6 @@
5
5
  padding: 5px 10px 5px 10px;
6
6
  background-color: #f5f5f5;
7
7
  border: 1px solid #eee;
8
- -webkit-border-top-left-radius: 4px;
9
- -webkit-border-bottom-left-radius: 4px;
10
- -moz-border-radius-topleft: 4px;
11
- -moz-border-radius-bottomleft: 4px;
12
8
  border-top-left-radius: 4px;
13
9
  border-bottom-left-radius: 4px;
14
10
  border-right: 0;
@@ -34,12 +30,8 @@
34
30
  background-image: -ms-linear-gradient(-90deg , rgb(255,255,255) 0%, rgb(251,251,251) 100%);
35
31
  background-image: linear-gradient(-90deg , rgb(255,255,255) 0%, rgb(251,251,251) 100%);
36
32
 
37
- -webkit-border-bottom-left-radius: 4px;
38
- -moz-border-radius-bottomleft: 4px;
39
- border-bottom-left-radius: 4px;
40
- -webkit-border-bottom-right-radius: 4px;
41
- -moz-border-radius-bottomright: 4px;
42
- border-bottom-right-radius: 4px;
33
+ border-bottom-left-radius: 4px;
34
+ border-bottom-right-radius: 4px;
43
35
 
44
36
  p {
45
37
  margin: 0 0 20px 0;
@@ -3,16 +3,14 @@
3
3
  padding: 0 19px 19px 19px;
4
4
  margin-bottom: 20px;
5
5
  background-color: #fff;
6
- border: 1px solid #eee;
7
- -webkit-border-radius: 4px;
8
- -moz-border-radius: 4px;
9
- border-radius: 4px;
6
+ border: 1px solid $widget-border-color-dark;
7
+ border-radius: $border-radius-default;
10
8
  h1, h2, h3, h4, h5, .panel-header {
11
9
  border-bottom: 1px solid #eee;
12
10
  margin: 0 -19px 0 -19px;
13
11
  padding: 5px 10px;
14
12
  margin-bottom: 25px;
15
- background-color: #f5f5f5;
13
+ background-color: $widget-background-color-dark;
16
14
  &.centered {
17
15
  text-align: center;
18
16
  }
@@ -1,10 +1,10 @@
1
- @import 'iqvoc/bootstrap_extensions';
2
- @import 'iqvoc/jquery-ui_extensions';
3
- @import 'iqvoc/layout';
4
- @import 'iqvoc/components';
5
- @import 'iqvoc/panel';
6
- @import 'iqvoc/sidebar';
7
- @import 'iqvoc/forms';
8
- @import 'iqvoc/note';
9
- @import 'iqvoc/entity_select';
10
- @import 'iqvoc/hacks';
1
+ @import 'iqvoc/settings';
2
+ @import 'iqvoc/hacks/bootstrap_extensions';
3
+ @import 'iqvoc/hacks/jquery-ui_extensions';
4
+ @import 'iqvoc/components/components';
5
+ @import 'iqvoc/components/panels';
6
+ @import 'iqvoc/components/sidebars';
7
+ @import 'iqvoc/components/forms';
8
+ @import 'iqvoc/components/notes';
9
+ @import 'iqvoc/components/entity_select';
10
+ @import 'iqvoc/hacks/hacks';