publish_my_data 0.0.32 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (182) hide show
  1. data/app/assets/images/publish_my_data/small-spinner.gif +0 -0
  2. data/app/assets/images/publish_my_data/sort-asc.gif +0 -0
  3. data/app/assets/images/publish_my_data/sort-desc.gif +0 -0
  4. data/app/assets/javascripts/bootstrap/affix.js +126 -0
  5. data/app/assets/javascripts/bootstrap/alert.js +98 -0
  6. data/app/assets/javascripts/bootstrap/button.js +109 -0
  7. data/app/assets/javascripts/bootstrap/carousel.js +217 -0
  8. data/app/assets/javascripts/bootstrap/collapse.js +179 -0
  9. data/app/assets/javascripts/bootstrap/dropdown.js +154 -0
  10. data/app/assets/javascripts/bootstrap/modal.js +246 -0
  11. data/app/assets/javascripts/bootstrap/popover.js +117 -0
  12. data/app/assets/javascripts/bootstrap/scrollspy.js +158 -0
  13. data/app/assets/javascripts/bootstrap/tab.js +135 -0
  14. data/app/assets/javascripts/bootstrap/tooltip.js +386 -0
  15. data/app/assets/javascripts/bootstrap/transition.js +56 -0
  16. data/app/assets/javascripts/publish_my_data/grid/10_data-loader.js +142 -0
  17. data/app/assets/javascripts/publish_my_data/grid/20_cube-grid.js +512 -0
  18. data/app/assets/javascripts/publish_my_data/grid/30_cube-dimension.js +77 -0
  19. data/app/assets/javascripts/publish_my_data/grid/40_cube-dimension-dropdown.js +87 -0
  20. data/app/assets/javascripts/publish_my_data/grid/45_cube-dimension-label.js +58 -0
  21. data/app/assets/javascripts/publish_my_data/grid/50_cube-dimensions-controls.js +336 -0
  22. data/app/assets/javascripts/publish_my_data/grid/60_dataset_cube_grid.js +187 -0
  23. data/app/assets/javascripts/publish_my_data/grid/70_sparql_results_grid.js +135 -0
  24. data/app/assets/javascripts/publish_my_data/select_text.js +27 -0
  25. data/app/assets/javascripts/publish_my_data.js +3 -0
  26. data/app/assets/javascripts/slick_grid/10_event-drag.js +402 -0
  27. data/app/assets/javascripts/slick_grid/20_slick-core.js +458 -0
  28. data/app/assets/javascripts/slick_grid/30_slick-grid.js +3295 -0
  29. data/app/assets/stylesheets/bootstrap/_alerts.scss +67 -0
  30. data/app/assets/stylesheets/bootstrap/_badges.scss +51 -0
  31. data/app/assets/stylesheets/bootstrap/_breadcrumbs.scss +23 -0
  32. data/app/assets/stylesheets/bootstrap/_button-groups.scss +248 -0
  33. data/app/assets/stylesheets/bootstrap/_buttons.scss +160 -0
  34. data/app/assets/stylesheets/bootstrap/_carousel.scss +209 -0
  35. data/app/assets/stylesheets/bootstrap/_close.scss +33 -0
  36. data/app/assets/stylesheets/bootstrap/_code.scss +56 -0
  37. data/app/assets/stylesheets/bootstrap/_component-animations.scss +29 -0
  38. data/app/assets/stylesheets/bootstrap/_dropdowns.scss +194 -0
  39. data/app/assets/stylesheets/bootstrap/_forms.scss +350 -0
  40. data/app/assets/stylesheets/bootstrap/_glyphicons.scss +232 -0
  41. data/app/assets/stylesheets/bootstrap/_grid.scss +346 -0
  42. data/app/assets/stylesheets/bootstrap/_input-groups.scss +127 -0
  43. data/app/assets/stylesheets/bootstrap/_jumbotron.scss +40 -0
  44. data/app/assets/stylesheets/bootstrap/_labels.scss +58 -0
  45. data/app/assets/stylesheets/bootstrap/_list-group.scss +88 -0
  46. data/app/assets/stylesheets/bootstrap/_media.scss +56 -0
  47. data/app/assets/stylesheets/bootstrap/_mixins.scss +728 -0
  48. data/app/assets/stylesheets/bootstrap/_modals.scss +145 -0
  49. data/app/assets/stylesheets/bootstrap/_navbar.scss +625 -0
  50. data/app/assets/stylesheets/bootstrap/_navs.scss +229 -0
  51. data/app/assets/stylesheets/bootstrap/_normalize.scss +396 -0
  52. data/app/assets/stylesheets/bootstrap/_pager.scss +55 -0
  53. data/app/assets/stylesheets/bootstrap/_pagination.scss +83 -0
  54. data/app/assets/stylesheets/bootstrap/_panels.scss +148 -0
  55. data/app/assets/stylesheets/bootstrap/_popovers.scss +133 -0
  56. data/app/assets/stylesheets/bootstrap/_print.scss +100 -0
  57. data/app/assets/stylesheets/bootstrap/_progress-bars.scss +95 -0
  58. data/app/assets/stylesheets/bootstrap/_responsive-utilities.scss +209 -0
  59. data/app/assets/stylesheets/bootstrap/_scaffolding.scss +130 -0
  60. data/app/assets/stylesheets/bootstrap/_tables.scss +236 -0
  61. data/app/assets/stylesheets/bootstrap/_theme.scss +232 -0
  62. data/app/assets/stylesheets/bootstrap/_thumbnails.scss +31 -0
  63. data/app/assets/stylesheets/bootstrap/_tooltip.scss +95 -0
  64. data/app/assets/stylesheets/bootstrap/_type.scss +238 -0
  65. data/app/assets/stylesheets/bootstrap/_utilities.scss +42 -0
  66. data/app/assets/stylesheets/bootstrap/_variables.scss +620 -0
  67. data/app/assets/stylesheets/bootstrap/_wells.scss +29 -0
  68. data/app/assets/stylesheets/bootstrap/bootstrap.scss +59 -0
  69. data/app/assets/stylesheets/publish_my_data/core.scss +244 -0
  70. data/app/assets/stylesheets/publish_my_data/data_grid.scss +103 -0
  71. data/app/assets/stylesheets/publish_my_data/variables.scss +1 -0
  72. data/app/assets/stylesheets/{publish_my_data.css → publish_my_data.scss} +13 -2
  73. data/app/assets/stylesheets/slick_grid/slick_grid.scss +155 -0
  74. data/app/assets/stylesheets/slick_grid/slick_grid_default_theme.scss +97 -0
  75. data/app/controllers/concerns/publish_my_data/data_cube.rb +42 -0
  76. data/app/controllers/publish_my_data/data_cube/dimensions_controller.rb +58 -0
  77. data/app/controllers/publish_my_data/data_cube/observations_controller.rb +54 -0
  78. data/app/controllers/publish_my_data/datasets_controller.rb +0 -11
  79. data/app/controllers/publish_my_data/example_resources_controller.rb +11 -0
  80. data/app/controllers/publish_my_data/home_controller.rb +4 -0
  81. data/app/controllers/publish_my_data/information_resources_controller.rb +0 -13
  82. data/app/helpers/publish_my_data/application_helper.rb +66 -0
  83. data/app/helpers/publish_my_data/crumb_helper.rb +61 -0
  84. data/app/helpers/publish_my_data/datasets_helper.rb +31 -0
  85. data/app/helpers/publish_my_data/resources_helper.rb +24 -0
  86. data/app/models/concerns/publish_my_data/cube_results.rb +51 -0
  87. data/app/models/concerns/publish_my_data/dataset_powers.rb +13 -0
  88. data/app/models/publish_my_data/data_cube/cube.rb +358 -0
  89. data/app/models/publish_my_data/data_cube/dimension.rb +58 -0
  90. data/app/models/publish_my_data/vocabulary.rb +0 -4
  91. data/app/views/layouts/publish_my_data/application.html.haml +18 -0
  92. data/app/views/layouts/publish_my_data/error.html.haml +21 -0
  93. data/app/views/publish_my_data/classes/show.html.haml +28 -0
  94. data/app/views/publish_my_data/concept_schemes/show.html.haml +79 -0
  95. data/app/views/publish_my_data/concepts/show.html.haml +28 -0
  96. data/app/views/publish_my_data/data_cube/_controls.html.haml +19 -0
  97. data/app/views/publish_my_data/data_cube/_grid.html.haml +37 -0
  98. data/app/views/publish_my_data/datasets/_example_resources.html.haml +47 -0
  99. data/app/views/publish_my_data/datasets/_types_table.html.erb +33 -0
  100. data/app/views/publish_my_data/datasets/index.html.haml +32 -0
  101. data/app/views/publish_my_data/datasets/show.html.haml +186 -0
  102. data/app/views/publish_my_data/errors/not_found.html.haml +18 -0
  103. data/app/views/publish_my_data/errors/response_too_large.html.haml +16 -0
  104. data/app/views/publish_my_data/errors/timeout.html.haml +16 -0
  105. data/app/views/publish_my_data/errors/uncaught.html.haml +16 -0
  106. data/app/views/publish_my_data/example_resources/index.js.erb +1 -0
  107. data/app/views/publish_my_data/home/accessibility.html.haml +1 -0
  108. data/app/views/publish_my_data/home/docs.html.haml +1 -0
  109. data/app/views/publish_my_data/home/home.html.haml +5 -0
  110. data/app/views/publish_my_data/home/privacy.html.haml +1 -0
  111. data/app/views/publish_my_data/ontologies/show.html.haml +100 -0
  112. data/app/views/publish_my_data/properties/show.html.haml +28 -0
  113. data/app/views/publish_my_data/resources/_resource_data.html.haml +16 -0
  114. data/app/views/publish_my_data/resources/_sparql_section.html.haml +22 -0
  115. data/app/views/publish_my_data/resources/index.html.haml +37 -0
  116. data/app/views/publish_my_data/resources/show.html.haml +36 -0
  117. data/app/views/publish_my_data/shared/_browser_warning.html.haml +4 -0
  118. data/app/views/publish_my_data/shared/_deprecation_notice.html.haml +8 -0
  119. data/app/views/publish_my_data/shared/_footer.html.haml +11 -0
  120. data/app/views/publish_my_data/shared/_google_analytics.html.haml +11 -0
  121. data/app/views/publish_my_data/shared/_logo.html.haml +1 -0
  122. data/app/views/publish_my_data/shared/_meta_title.html.haml +2 -0
  123. data/app/views/publish_my_data/sparql/_form.html.haml +28 -0
  124. data/app/views/publish_my_data/sparql/_formats_dropdown.html.haml +11 -0
  125. data/app/views/publish_my_data/sparql/endpoint.html.haml +125 -0
  126. data/app/views/publish_my_data/sparql/formats_dropdowns/_ask.html.haml +7 -0
  127. data/app/views/publish_my_data/sparql/formats_dropdowns/_construct.html.haml +7 -0
  128. data/app/views/publish_my_data/sparql/formats_dropdowns/_describe.html.haml +1 -0
  129. data/app/views/publish_my_data/sparql/formats_dropdowns/_select.html.haml +9 -0
  130. data/app/views/publish_my_data/themes/index.html.haml +30 -0
  131. data/app/views/publish_my_data/themes/show.html.haml +43 -0
  132. data/config/routes.rb +20 -5
  133. data/lib/publish_my_data/version.rb +1 -1
  134. data/lib/publish_my_data.rb +7 -12
  135. data/spec/controllers/publish_my_data/datasets_controller_spec.rb +0 -75
  136. data/spec/controllers/publish_my_data/information_resources_controller_spec.rb +2 -11
  137. data/spec/dummy/config/environments/development.rb +0 -4
  138. data/spec/dummy/config/environments/test.rb +0 -4
  139. data/spec/dummy/log/test.log +62962 -0
  140. data/spec/dummy/tmp/cache/sass/e509ccd4d793d2c162d70125e9f3656b6c28f357/(__TEMPLATE__)c +0 -0
  141. data/spec/features/running_a_sparql_query_spec.rb +1 -1
  142. data/spec/features/uri_dereferencing_spec.rb +1 -1
  143. metadata +200 -58
  144. data/app/controllers/concerns/publish_my_data/data_download.rb +0 -22
  145. data/app/controllers/publish_my_data/vocabularies_controller.rb +0 -18
  146. data/app/views/layouts/publish_my_data/application.html.erb +0 -13
  147. data/app/views/layouts/publish_my_data/error.html.erb +0 -13
  148. data/app/views/publish_my_data/classes/show.html.erb +0 -3
  149. data/app/views/publish_my_data/concept_schemes/_concepts.html.erb +0 -18
  150. data/app/views/publish_my_data/concept_schemes/show.html.erb +0 -11
  151. data/app/views/publish_my_data/concepts/show.html.erb +0 -3
  152. data/app/views/publish_my_data/datasets/index.html.erb +0 -20
  153. data/app/views/publish_my_data/datasets/show.html.erb +0 -18
  154. data/app/views/publish_my_data/errors/not_found.html.erb +0 -1
  155. data/app/views/publish_my_data/errors/response_too_large.html.erb +0 -1
  156. data/app/views/publish_my_data/errors/timeout.html.erb +0 -1
  157. data/app/views/publish_my_data/errors/uncaught.html.erb +0 -6
  158. data/app/views/publish_my_data/ontologies/show.html.erb +0 -17
  159. data/app/views/publish_my_data/properties/show.html.erb +0 -3
  160. data/app/views/publish_my_data/resources/_predicates_table.html.erb +0 -30
  161. data/app/views/publish_my_data/resources/_predicates_table_head.html.erb +0 -6
  162. data/app/views/publish_my_data/resources/_resource_formats.html.erb +0 -4
  163. data/app/views/publish_my_data/resources/_summaries.html.erb +0 -18
  164. data/app/views/publish_my_data/resources/_uri_and_label.html.erb +0 -3
  165. data/app/views/publish_my_data/resources/index.html.erb +0 -40
  166. data/app/views/publish_my_data/resources/show.html.erb +0 -3
  167. data/app/views/publish_my_data/sparql/_ask_formats.html.erb +0 -3
  168. data/app/views/publish_my_data/sparql/_construct_formats.html.erb +0 -3
  169. data/app/views/publish_my_data/sparql/_describe_formats.html.erb +0 -1
  170. data/app/views/publish_my_data/sparql/_error_message.html.erb +0 -3
  171. data/app/views/publish_my_data/sparql/_form.html.erb +0 -4
  172. data/app/views/publish_my_data/sparql/_formats.html.erb +0 -6
  173. data/app/views/publish_my_data/sparql/_pagination.html.erb +0 -6
  174. data/app/views/publish_my_data/sparql/_results.html.erb +0 -5
  175. data/app/views/publish_my_data/sparql/_results_data.html.erb +0 -4
  176. data/app/views/publish_my_data/sparql/_select_formats.html.erb +0 -3
  177. data/app/views/publish_my_data/sparql/endpoint.html.erb +0 -10
  178. data/app/views/publish_my_data/themes/index.html.erb +0 -13
  179. data/app/views/publish_my_data/themes/show.html.erb +0 -15
  180. data/config/initializers/20_s3_setup.rb +0 -4
  181. data/spec/controllers/publish_my_data/vocabularies_controller_spec.rb +0 -14
  182. data/spec/support/data_download.rb +0 -60
@@ -0,0 +1,244 @@
1
+ main, body > header, body > footer {
2
+ @extend .container;
3
+ }
4
+
5
+ body > header {
6
+ margin-top: 10px;
7
+
8
+ ol.breadcrumb {
9
+ margin-bottom: 0;
10
+ }
11
+ }
12
+
13
+ footer.alternative-formats {
14
+ margin-top: 10px;
15
+
16
+ ul {
17
+ @extend .list-inline;
18
+ }
19
+ }
20
+
21
+ section#classes, section#properties, section#concepts, section#themes, section#datasets {
22
+ ul {
23
+ @extend .list-unstyled;
24
+ }
25
+
26
+ }
27
+
28
+ section#datasets {
29
+ .discontinued {
30
+ @extend .label;
31
+ @extend .label-warning;
32
+ }
33
+ }
34
+
35
+ article#dataset, article#ontology, article#concept-scheme {
36
+ @include make-row();
37
+ @include make-md-column(12);
38
+
39
+ & > header {
40
+ h1, h2 {
41
+ margin-top: 0;
42
+ }
43
+ }
44
+
45
+ & > footer {
46
+ ul {
47
+
48
+ }
49
+ }
50
+
51
+ & > section.metadata {
52
+ @include make-row();
53
+
54
+ .primary {
55
+ @include make-md-column(8);
56
+ }
57
+
58
+ .secondary {
59
+ @include make-md-column(4);
60
+ }
61
+ }
62
+
63
+ ul.tab-links {
64
+ @extend .nav;
65
+ @extend .nav-tabs;
66
+ }
67
+ }
68
+
69
+ article#sparql {
70
+
71
+ #error-message {
72
+ h3 {
73
+ margin-top:0;
74
+ }
75
+ @extend .alert;
76
+ @extend .alert-danger;
77
+ }
78
+ form {
79
+ @extend .form;
80
+
81
+ .field {
82
+ margin-bottom: 10px;
83
+ }
84
+
85
+ label {
86
+ @extend .control-label;
87
+ }
88
+ textarea {
89
+ @extend .form-control;
90
+ }
91
+
92
+ input[type=text] {
93
+ @extend .form-control;
94
+ }
95
+
96
+ input[type=submit] {
97
+ @extend .btn;
98
+ @extend .btn-primary;
99
+ }
100
+ }
101
+
102
+ }
103
+
104
+ .tab-content > section {
105
+ @extend .tab-pane;
106
+ @include make-row();
107
+
108
+ .primary {
109
+ @include make-md-column(8);
110
+ }
111
+ .secondary {
112
+ @include make-md-column(4);
113
+ }
114
+ .content {
115
+ @include make-md-column(12);
116
+ }
117
+ }
118
+
119
+ section#example-data, section#resource-data
120
+ {
121
+ table {
122
+ @extend .table;
123
+ // @extend .table-bordered;
124
+
125
+ thead tr th {
126
+ border: 0;
127
+ }
128
+
129
+ h3, h5 {
130
+ margin: 2px 0;
131
+ }
132
+
133
+ ul {
134
+ @extend .list-unstyled;
135
+ margin-bottom: 0;
136
+ }
137
+
138
+ a, h3, h4, icon {
139
+ transition: color 0.3s;
140
+ }
141
+
142
+ &.lowlight tbody {
143
+ h3, h4, a, icon {
144
+ color: $gray-lighter;
145
+ }
146
+ .highlight, .highlight a {
147
+ color: $link-color;
148
+ }
149
+ h4.highlight {
150
+ color: $gray-dark;
151
+ }
152
+ }
153
+ }
154
+ }
155
+
156
+ section#vocabularies {
157
+ ul {
158
+ @extend .list-unstyled;
159
+
160
+ li {
161
+ margin-bottom: 3px;
162
+ }
163
+
164
+ a:hover {
165
+ text-decoration: none;
166
+ }
167
+
168
+ .ontology-label {
169
+ @extend .label;
170
+ @extend .label-primary;
171
+ }
172
+ .concept-scheme-label {
173
+ @extend .label;
174
+ @extend .label-info;
175
+ }
176
+ }
177
+ }
178
+
179
+
180
+ section#linked-data {
181
+ a.button {
182
+ @extend .btn;
183
+ @extend .btn-primary;
184
+
185
+ margin-top: 20px;
186
+ }
187
+ }
188
+
189
+ article#dataset {
190
+
191
+ #further-information {
192
+ background: white;
193
+ overflow:hidden;
194
+ position:relative;
195
+
196
+ .fade-out {
197
+ position: absolute;
198
+ bottom: 0; left: 0;
199
+ width: 100%;
200
+ text-align: center;
201
+ margin: 0;
202
+ height:52px; /* dont fade over the whole thing - start half way up */
203
+
204
+ background: transparent; /* Old browsers */
205
+ /* css3 (not many browsers yet!) */
206
+ background-image: linear-gradient( to bottom, rgba(255,255,255,0), rgba(255,255,255,1));
207
+ background-image: -webkit-gradient(
208
+ linear,
209
+ left top,
210
+ left bottom,
211
+ color-stop(0, rgba(255,255,255,0)),
212
+ color-stop(1, rgba(255,255,255,1)));
213
+ background-image: -moz-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,1));
214
+ background-image: -ms-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,1)); /* ie10*/
215
+ background-image: -o-linear-gradient(top, rgba(255,255,255,0), rgba(255,255,255,1));
216
+ }
217
+
218
+ &.truncated {
219
+ height:105px;
220
+ }
221
+ }
222
+
223
+ section#grid-view {
224
+
225
+ .grid-intro {
226
+ margin-top:20px;
227
+ }
228
+
229
+ .controls-wrapper {
230
+ @include clearfix();
231
+
232
+ #dimensions-controls {
233
+ .rows-and-columns {
234
+ @include make-md-column(6);
235
+ }
236
+ .other-options {
237
+ @include make-md-column(6);
238
+ }
239
+ }
240
+ }
241
+
242
+
243
+ }
244
+ }
@@ -0,0 +1,103 @@
1
+ // this is to undo some bootstrap stuff.
2
+ .data-grid *, .slick-header-column {
3
+ -webkit-box-sizing: content-box;
4
+ -moz-box-sizing: content-box;
5
+ box-sizing: content-box;
6
+ }
7
+
8
+ .data-grid {
9
+ clear:both;
10
+ background: white;
11
+ outline: 0;
12
+ border: 1px solid $gray-lighter;
13
+ width:100%;
14
+ height:250px;
15
+ margin-top:0px;
16
+
17
+ .slick-cell.row-num {
18
+ background: $gray-even-lighter;
19
+ border-right: 1px solid $gray-lighter;
20
+ }
21
+
22
+ .slick-cell {
23
+ border-right: 1px dotted $gray-lighter;
24
+ border-bottom: 1px solid $gray-lighter;
25
+ background: white;
26
+ }
27
+
28
+ .slick-header-columns {
29
+ background: none;
30
+ border:none !important;
31
+ }
32
+
33
+ .slick-header-column, .slick-header-column:hover, .slick-header-column-active {
34
+ border-right: 1px solid $gray-lighter !important;
35
+ background: $gray-even-lighter;
36
+ border-bottom: 1px solid $gray-lighter !important;
37
+ }
38
+ }
39
+
40
+ #options-toggler {
41
+ padding-right: 10px;
42
+ float:left;
43
+ }
44
+
45
+ .row.controls-wrapper {
46
+ min-height: 21px;
47
+
48
+ #dimensions-controls {
49
+ fieldset {
50
+ margin: 10px 0;
51
+ }
52
+ select {
53
+ color: #000;
54
+ }
55
+ select:disabled {
56
+ color: #bbb;
57
+ }
58
+ }
59
+
60
+ .dimensions-status {
61
+ float:left;
62
+ img.busy {
63
+ float:left;
64
+ margin-right: 5px;
65
+ }
66
+ div.status-value {
67
+ float:left;
68
+ }
69
+ }
70
+ }
71
+
72
+ .row.grid-header {
73
+ margin-bottom:0;
74
+
75
+ #cube-grid-title {
76
+ display:inline;
77
+ }
78
+
79
+ .grid-status {
80
+ padding-top:2px;
81
+ img.busy {
82
+ float:right;
83
+ }
84
+ div.status-value {
85
+ float:right;
86
+ margin-left: 5px;
87
+ }
88
+ }
89
+ }
90
+
91
+ .grid-footer {
92
+ background: $gray-even-lighter;
93
+ width: 100%;
94
+ height:31px;
95
+ border: 1px solid $gray-lighter;
96
+ outline: 0px;
97
+ border-top: 0px;
98
+ .footer-content {
99
+ float:right;
100
+ padding-top:5px;
101
+ padding-right:10px;
102
+ }
103
+ }
@@ -0,0 +1 @@
1
+ $gray-even-lighter: lighten(#000, 97%) !default;
@@ -9,5 +9,16 @@
9
9
  * compiled file, but it's generally better to create a new file per style scope.
10
10
  *
11
11
  *= require_self
12
- *= require_tree ./publish_my_data
13
- */
12
+ *= require entypo
13
+ */
14
+
15
+ @charset "UTF-8";
16
+
17
+ @import "bootstrap/bootstrap";
18
+
19
+ @import "slick_grid/slick_grid";
20
+ @import "slick_grid/slick_grid_default_theme";
21
+
22
+ @import "publish_my_data/variables";
23
+ @import "publish_my_data/core";
24
+ @import "publish_my_data/data_grid";
@@ -0,0 +1,155 @@
1
+ /*
2
+ IMPORTANT:
3
+ In order to preserve the uniform grid appearance, all cell styles need to have padding, margin and border sizes.
4
+ No built-in (selected, editable, highlight, flashing, invalid, loading, :focus) or user-specified CSS
5
+ classes should alter those!
6
+ */
7
+
8
+ .slick-header.ui-state-default, .slick-headerrow.ui-state-default {
9
+ width: 100%;
10
+ overflow: hidden;
11
+ border-left: 0px;
12
+ }
13
+
14
+ .slick-header-columns, .slick-headerrow-columns {
15
+ position: relative;
16
+ white-space: nowrap;
17
+ cursor: default;
18
+ overflow: hidden;
19
+ }
20
+
21
+ .slick-header-column.ui-state-default {
22
+ position: relative;
23
+ display: inline-block;
24
+ overflow: hidden;
25
+ -o-text-overflow: ellipsis;
26
+ text-overflow: ellipsis;
27
+ height: 16px;
28
+ line-height: 16px;
29
+ margin: 0;
30
+ padding: 4px;
31
+ border-right: 1px solid silver;
32
+ border-left: 0px;
33
+ border-top: 0px;
34
+ border-bottom: 0px;
35
+ float: left;
36
+ }
37
+
38
+ .slick-headerrow-column.ui-state-default {
39
+ padding: 4px;
40
+ }
41
+
42
+ .slick-header-column-sorted {
43
+ font-style: italic;
44
+ }
45
+
46
+ .slick-sort-indicator {
47
+ display: inline-block;
48
+ width: 8px;
49
+ height: 5px;
50
+ margin-left: 4px;
51
+ }
52
+
53
+ .slick-sort-indicator-desc {
54
+ background: image-url('publish_my_data/sort-desc.gif');
55
+ }
56
+
57
+ .slick-sort-indicator-asc {
58
+ background: image-url('publish_my_data/sort-asc.gif');
59
+ }
60
+
61
+ .slick-resizable-handle {
62
+ position: absolute;
63
+ font-size: 0.1px;
64
+ display: block;
65
+ cursor: col-resize;
66
+ width: 4px;
67
+ right: 0px;
68
+ top: 0;
69
+ height: 100%;
70
+ }
71
+
72
+ .slick-sortable-placeholder {
73
+ background: silver;
74
+ }
75
+
76
+ .grid-canvas {
77
+ position: relative;
78
+ outline: 0;
79
+ }
80
+
81
+ .slick-row.ui-widget-content, .slick-row.ui-state-active {
82
+ position: absolute;
83
+ border: 0px;
84
+ width: 100%;
85
+ }
86
+
87
+ .slick-cell, .slick-headerrow-column {
88
+ position: absolute;
89
+ border: 1px solid transparent;
90
+ border-right: 1px dotted silver;
91
+ border-bottom-color: silver;
92
+ overflow: hidden;
93
+ -o-text-overflow: ellipsis;
94
+ text-overflow: ellipsis;
95
+ vertical-align: middle;
96
+ z-index: 1;
97
+ padding: 1px 2px 2px 1px;
98
+ margin: 0;
99
+ white-space: nowrap;
100
+ cursor: default;
101
+ }
102
+
103
+ .slick-group {
104
+ }
105
+
106
+ .slick-group-toggle {
107
+ display: inline-block;
108
+ }
109
+
110
+ .slick-cell.highlighted {
111
+ background: lightskyblue;
112
+ background: rgba(0, 0, 255, 0.2);
113
+ -webkit-transition: all 0.5s;
114
+ -moz-transition: all 0.5s;
115
+ -o-transition: all 0.5s;
116
+ transition: all 0.5s;
117
+ }
118
+
119
+ .slick-cell.flashing {
120
+ border: 1px solid red !important;
121
+ }
122
+
123
+ .slick-cell.editable {
124
+ z-index: 11;
125
+ overflow: visible;
126
+ background: white;
127
+ border-color: black;
128
+ border-style: solid;
129
+ }
130
+
131
+ .slick-cell:focus {
132
+ outline: none;
133
+ }
134
+
135
+ .slick-reorder-proxy {
136
+ display: inline-block;
137
+ background: blue;
138
+ opacity: 0.15;
139
+ filter: alpha(opacity = 15);
140
+ cursor: move;
141
+ }
142
+
143
+ .slick-reorder-guide {
144
+ display: inline-block;
145
+ height: 2px;
146
+ background: blue;
147
+ opacity: 0.7;
148
+ filter: alpha(opacity = 70);
149
+ }
150
+
151
+ .slick-selection {
152
+ z-index: 10;
153
+ position: absolute;
154
+ border: 2px dashed black;
155
+ }
@@ -0,0 +1,97 @@
1
+ .slick-header-columns {
2
+ background: url('../images/header-columns-bg.gif') repeat-x center bottom;
3
+ border-bottom: 1px solid silver;
4
+ }
5
+
6
+ .slick-header-column {
7
+ background: url('../images/header-columns-bg.gif') repeat-x center bottom;
8
+ border-right: 1px solid silver;
9
+ }
10
+
11
+ .slick-header-column:hover, .slick-header-column-active {
12
+ background: white url('../images/header-columns-over-bg.gif') repeat-x center bottom;
13
+ }
14
+
15
+ .slick-headerrow {
16
+ background: #fafafa;
17
+ }
18
+
19
+ .slick-headerrow-column {
20
+ background: #fafafa;
21
+ border-bottom: 0;
22
+ height: 100%;
23
+ }
24
+
25
+ .slick-row.ui-state-active {
26
+ background: #F5F7D7;
27
+ }
28
+
29
+ .slick-row {
30
+ position: absolute;
31
+ background: white;
32
+ border: 0px;
33
+ line-height: 20px;
34
+ }
35
+
36
+ .slick-row.selected {
37
+ z-index: 10;
38
+ background: #DFE8F6;
39
+ }
40
+
41
+ .slick-cell {
42
+ padding-left: 4px;
43
+ padding-right: 4px;
44
+ }
45
+
46
+ .slick-group {
47
+ border-bottom: 2px solid silver;
48
+ }
49
+
50
+ .slick-group-toggle {
51
+ width: 9px;
52
+ height: 9px;
53
+ margin-right: 5px;
54
+ }
55
+
56
+ .slick-group-toggle.expanded {
57
+ background: url(../images/collapse.gif) no-repeat center center;
58
+ }
59
+
60
+ .slick-group-toggle.collapsed {
61
+ background: url(../images/expand.gif) no-repeat center center;
62
+ }
63
+
64
+ .slick-group-totals {
65
+ color: gray;
66
+ background: white;
67
+ }
68
+
69
+ .slick-cell.selected {
70
+ background-color: beige;
71
+ }
72
+
73
+ .slick-cell.active {
74
+ border-color: gray;
75
+ border-style: solid;
76
+ }
77
+
78
+ .slick-sortable-placeholder {
79
+ background: silver !important;
80
+ }
81
+
82
+ .slick-row.odd {
83
+ background: #fafafa;
84
+ }
85
+
86
+ .slick-row.ui-state-active {
87
+ background: #F5F7D7;
88
+ }
89
+
90
+ .slick-row.loading {
91
+ opacity: 0.5;
92
+ filter: alpha(opacity = 50);
93
+ }
94
+
95
+ .slick-cell.invalid {
96
+ border-color: red;
97
+ }
@@ -0,0 +1,42 @@
1
+ module PublishMyData
2
+ module DataCubeController
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ respond_to :json
7
+ before_filter :get_dataset
8
+
9
+ private
10
+
11
+ def get_dataset
12
+ @dataset = Dataset.find_by_slug(params[:id])
13
+ raise Tripod::Errors::ResourceNotFound unless @dataset.is_cube?
14
+ @cube = @dataset.cube
15
+ end
16
+
17
+ def get_pagination_params
18
+ @page = (params[:page] || 1).to_i
19
+ @page = 1 if @page < 1
20
+
21
+ @per_page = (params[:per_page] || 500).to_i
22
+ @per_page = 1 if @per_page < 1
23
+ @per_page = 5000 if @per_page > 5000
24
+ end
25
+
26
+ def get_dimensions
27
+ @rows_dimension_uri = params[:rows_dimension]
28
+ @columns_dimension_uri = params[:columns_dimension]
29
+
30
+ @locked_dimensions = {}
31
+
32
+ params.each_pair do |k,v|
33
+ if k.to_s.starts_with?("http://")
34
+ @locked_dimensions[k] = v
35
+ end
36
+ end
37
+ end
38
+
39
+ end
40
+
41
+ end
42
+ end
@@ -0,0 +1,58 @@
1
+ module PublishMyData
2
+ module DataCube
3
+ class DimensionsController < PublishMyData::ApplicationController
4
+
5
+ include PublishMyData::DataCubeController
6
+
7
+ before_filter :get_dimension, :only => [:values, :size]
8
+ before_filter :get_dimensions, :only => [:row_labels]
9
+ before_filter :get_pagination_params, :only => [:row_labels]
10
+
11
+ # list the dimensions for the cube
12
+ # GET /data/:dataset_slug/cube/dimensions(.:format)
13
+ def index
14
+ respond_with @cube.dimensions
15
+ end
16
+
17
+ # the measure property for the cube
18
+ # GET /data/:dataset_slug/cube/measure(.:format)
19
+ def measure
20
+ respond_with @cube.measure_property
21
+ end
22
+
23
+ # all values for a single dimension in the cube.
24
+ # Useful for getting axes data for cube grids.
25
+ # GET /data/:dataset_slug/cube/dimension_values(.:format)
26
+ # Note: supply dimension parameter on query string
27
+ # e.g. /data/additional-affordable-dwellings/cube/dimension_values.json?dimension=http%3A%2F%2Fopendatacommunities.org%2Fdef%2Fhousing%2FaffordableHousingType
28
+ def values
29
+ respond_with @dimension.values
30
+ end
31
+
32
+ # size of a dimension - JSON only.
33
+ # GET /data/:dataset_slug/cube/dimension_size(.:format)
34
+ # Note: supply dimension parameter on query string
35
+ # e.g. /data/additional-affordable-dwellings/cube/dimension_values.ttl?dimension=http%3A%2F%2Fopendatacommunities.org%2Fdef%2Fhousing%2FaffordableHousingType
36
+ def size
37
+ respond_to do |format|
38
+ format.json { render :json => {:size => @dimension.size } }
39
+ end
40
+ end
41
+
42
+
43
+ # recommended starting columns
44
+ def recommended
45
+ respond_to do |format|
46
+ format.json { render :json => @cube.recommended_dimensions}
47
+ end
48
+ end
49
+
50
+ private
51
+
52
+ def get_dimension
53
+ @dimension = Dimension.new(params[:dimension], @cube)
54
+ end
55
+
56
+ end
57
+ end
58
+ end