biovision-base 0.5.170614

Sign up to get free protection for your applications and to get access to all the features.
Files changed (271) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +42 -0
  4. data/Rakefile +26 -0
  5. data/app/assets/config/biovision_base_manifest.js +0 -0
  6. data/app/assets/images/biovision/base/icons/alert.svg +15 -0
  7. data/app/assets/images/biovision/base/icons/back.svg +28 -0
  8. data/app/assets/images/biovision/base/icons/create.svg +1 -0
  9. data/app/assets/images/biovision/base/icons/destroy.svg +3 -0
  10. data/app/assets/images/biovision/base/icons/edit.svg +22 -0
  11. data/app/assets/images/biovision/base/icons/exit.svg +1 -0
  12. data/app/assets/images/biovision/base/icons/foreign/facebook.svg +1 -0
  13. data/app/assets/images/biovision/base/icons/gear.svg +4 -0
  14. data/app/assets/images/biovision/base/icons/lock-closed.svg +1 -0
  15. data/app/assets/images/biovision/base/icons/lock-open.svg +1 -0
  16. data/app/assets/images/biovision/base/icons/notice.svg +1 -0
  17. data/app/assets/images/biovision/base/icons/return.svg +1 -0
  18. data/app/assets/images/biovision/base/icons/warning.svg +43 -0
  19. data/app/assets/images/biovision/base/icons/world.svg +4 -0
  20. data/app/assets/images/biovision/base/placeholders/image.svg +19 -0
  21. data/app/assets/images/biovision/base/placeholders/photo.svg +23 -0
  22. data/app/assets/images/biovision/base/placeholders/user.svg +21 -0
  23. data/app/assets/javascripts/biovision/base/biovision.js +238 -0
  24. data/app/assets/stylesheets/biovision/base/admin.scss +58 -0
  25. data/app/assets/stylesheets/biovision/base/biovision.scss +472 -0
  26. data/app/assets/stylesheets/biovision/base/buttons.scss +90 -0
  27. data/app/assets/stylesheets/biovision/base/default.scss +45 -0
  28. data/app/assets/stylesheets/biovision/base/filters.scss +53 -0
  29. data/app/assets/stylesheets/biovision/base/fonts.scss +9 -0
  30. data/app/assets/stylesheets/biovision/base/message-box.scss +60 -0
  31. data/app/assets/stylesheets/biovision/base/pagination.scss +42 -0
  32. data/app/assets/stylesheets/biovision/base/tootik.scss +385 -0
  33. data/app/assets/stylesheets/biovision/base/track.scss +28 -0
  34. data/app/controllers/admin/agents_controller.rb +30 -0
  35. data/app/controllers/admin/browsers_controller.rb +30 -0
  36. data/app/controllers/admin/codes_controller.rb +25 -0
  37. data/app/controllers/admin/editable_pages_controller.rb +25 -0
  38. data/app/controllers/admin/index_controller.rb +5 -0
  39. data/app/controllers/admin/metrics_controller.rb +29 -0
  40. data/app/controllers/admin/privilege_groups_controller.rb +48 -0
  41. data/app/controllers/admin/privileges_controller.rb +5 -0
  42. data/app/controllers/admin/tokens_controller.rb +28 -0
  43. data/app/controllers/admin/users_controller.rb +87 -0
  44. data/app/controllers/admin_controller.rb +10 -0
  45. data/app/controllers/agents_controller.rb +67 -0
  46. data/app/controllers/authentication_controller.rb +70 -0
  47. data/app/controllers/browsers_controller.rb +63 -0
  48. data/app/controllers/codes_controller.rb +60 -0
  49. data/app/controllers/concerns/authentication.rb +19 -0
  50. data/app/controllers/concerns/biovision/admin/privileges.rb +34 -0
  51. data/app/controllers/concerns/entity_priority.rb +7 -0
  52. data/app/controllers/concerns/lockable_entity.rb +23 -0
  53. data/app/controllers/concerns/toggleable_entity.rb +7 -0
  54. data/app/controllers/editable_pages_controller.rb +60 -0
  55. data/app/controllers/index_controller.rb +5 -0
  56. data/app/controllers/metrics_controller.rb +33 -0
  57. data/app/controllers/my/confirmations_controller.rb +37 -0
  58. data/app/controllers/my/index_controller.rb +7 -0
  59. data/app/controllers/my/profiles_controller.rb +81 -0
  60. data/app/controllers/my/recoveries_controller.rb +68 -0
  61. data/app/controllers/privilege_groups_controller.rb +57 -0
  62. data/app/controllers/privileges_controller.rb +74 -0
  63. data/app/controllers/profiles_controller.rb +22 -0
  64. data/app/controllers/tokens_controller.rb +60 -0
  65. data/app/controllers/users_controller.rb +57 -0
  66. data/app/helpers/biovision_helper.rb +81 -0
  67. data/app/helpers/biovision_users_helper.rb +52 -0
  68. data/app/helpers/codes_helper.rb +10 -0
  69. data/app/helpers/editable_pages_helper.rb +20 -0
  70. data/app/helpers/privileges_helper.rb +11 -0
  71. data/app/helpers/tracking_helper.rb +17 -0
  72. data/app/jobs/application_job.rb +7 -0
  73. data/app/jobs/clean_tokens_job.rb +8 -0
  74. data/app/mailers/code_sender.rb +15 -0
  75. data/app/models/agent.rb +38 -0
  76. data/app/models/application_record.rb +3 -0
  77. data/app/models/browser.rb +22 -0
  78. data/app/models/code.rb +58 -0
  79. data/app/models/code_type.rb +11 -0
  80. data/app/models/concerns/biovision/privilege_base.rb +143 -0
  81. data/app/models/concerns/biovision/user_base.rb +124 -0
  82. data/app/models/concerns/biovision/user_privilege_base.rb +46 -0
  83. data/app/models/concerns/has_owner.rb +19 -0
  84. data/app/models/concerns/required_unique_name.rb +13 -0
  85. data/app/models/concerns/required_unique_slug.rb +12 -0
  86. data/app/models/concerns/toggleable.rb +29 -0
  87. data/app/models/editable_page.rb +30 -0
  88. data/app/models/foreign_site.rb +75 -0
  89. data/app/models/foreign_user.rb +26 -0
  90. data/app/models/metric.rb +67 -0
  91. data/app/models/metric_value.rb +15 -0
  92. data/app/models/privilege.rb +3 -0
  93. data/app/models/privilege_group.rb +50 -0
  94. data/app/models/privilege_group_privilege.rb +6 -0
  95. data/app/models/token.rb +75 -0
  96. data/app/models/user.rb +3 -0
  97. data/app/models/user_privilege.rb +3 -0
  98. data/app/services/canonizer.rb +29 -0
  99. data/app/services/code_manager.rb +16 -0
  100. data/app/services/code_manager/confirmation.rb +26 -0
  101. data/app/services/code_manager/invitation.rb +27 -0
  102. data/app/services/code_manager/recovery.rb +31 -0
  103. data/app/uploaders/avatar_uploader.rb +62 -0
  104. data/app/uploaders/editable_page_image_uploader.rb +38 -0
  105. data/app/views/admin/agents/_filter.html.erb +16 -0
  106. data/app/views/admin/agents/_list.html.erb +17 -0
  107. data/app/views/admin/agents/_nav_item.html.erb +6 -0
  108. data/app/views/admin/agents/_toggleable.html.erb +7 -0
  109. data/app/views/admin/agents/entity/_in_list.html.erb +13 -0
  110. data/app/views/admin/agents/index.html.erb +17 -0
  111. data/app/views/admin/agents/show.html.erb +28 -0
  112. data/app/views/admin/browsers/_list.html.erb +17 -0
  113. data/app/views/admin/browsers/_nav_item.html.erb +6 -0
  114. data/app/views/admin/browsers/_toggleable.html.erb +7 -0
  115. data/app/views/admin/browsers/agents/_add.html.erb +79 -0
  116. data/app/views/admin/browsers/entity/_in_list.html.erb +13 -0
  117. data/app/views/admin/browsers/index.html.erb +17 -0
  118. data/app/views/admin/browsers/show.html.erb +29 -0
  119. data/app/views/admin/codes/_list.html.erb +11 -0
  120. data/app/views/admin/codes/_nav_item.html.erb +6 -0
  121. data/app/views/admin/codes/entity/_in_list.html.erb +24 -0
  122. data/app/views/admin/codes/index.html.erb +16 -0
  123. data/app/views/admin/codes/show.html.erb +51 -0
  124. data/app/views/admin/editable_pages/_list.html.erb +11 -0
  125. data/app/views/admin/editable_pages/_nav_item.html.erb +6 -0
  126. data/app/views/admin/editable_pages/entity/_in_list.html.erb +13 -0
  127. data/app/views/admin/editable_pages/index.html.erb +14 -0
  128. data/app/views/admin/editable_pages/show.html.erb +47 -0
  129. data/app/views/admin/index/index.html.erb +25 -0
  130. data/app/views/admin/metrics/_list.html.erb +26 -0
  131. data/app/views/admin/metrics/_nav_item.html.erb +6 -0
  132. data/app/views/admin/metrics/data.jbuilder +6 -0
  133. data/app/views/admin/metrics/index.html.erb +14 -0
  134. data/app/views/admin/metrics/show.html.erb +52 -0
  135. data/app/views/admin/privilege_groups/_list.html.erb +11 -0
  136. data/app/views/admin/privilege_groups/_nav_item.html.erb +6 -0
  137. data/app/views/admin/privilege_groups/entity/_in_list.html.erb +10 -0
  138. data/app/views/admin/privilege_groups/index.html.erb +14 -0
  139. data/app/views/admin/privilege_groups/show.html.erb +31 -0
  140. data/app/views/admin/privileges/_list.html.erb +15 -0
  141. data/app/views/admin/privileges/_nav_item.html.erb +6 -0
  142. data/app/views/admin/privileges/entity/_groups.html.erb +34 -0
  143. data/app/views/admin/privileges/entity/_in_list.html.erb +25 -0
  144. data/app/views/admin/privileges/index.html.erb +20 -0
  145. data/app/views/admin/privileges/show.html.erb +66 -0
  146. data/app/views/admin/privileges/users.html.erb +24 -0
  147. data/app/views/admin/tokens/_filter.html.erb +17 -0
  148. data/app/views/admin/tokens/_list.html.erb +11 -0
  149. data/app/views/admin/tokens/_nav_item.html.erb +6 -0
  150. data/app/views/admin/tokens/_toggleable.html.erb +7 -0
  151. data/app/views/admin/tokens/entity/_in_list.html.erb +25 -0
  152. data/app/views/admin/tokens/index.html.erb +19 -0
  153. data/app/views/admin/tokens/show.html.erb +43 -0
  154. data/app/views/admin/users/_filter.html.erb +22 -0
  155. data/app/views/admin/users/_list.html.erb +17 -0
  156. data/app/views/admin/users/_nav_item.html.erb +6 -0
  157. data/app/views/admin/users/_search.html.erb +5 -0
  158. data/app/views/admin/users/_toggleable.html.erb +7 -0
  159. data/app/views/admin/users/codes.html.erb +24 -0
  160. data/app/views/admin/users/entity/_in_list.html.erb +24 -0
  161. data/app/views/admin/users/entity/_privilege.html.erb +10 -0
  162. data/app/views/admin/users/entity/_privilege_tree.html.erb +17 -0
  163. data/app/views/admin/users/index.html.erb +19 -0
  164. data/app/views/admin/users/privileges.html.erb +35 -0
  165. data/app/views/admin/users/search.jbuilder +10 -0
  166. data/app/views/admin/users/search/_results.html.erb +11 -0
  167. data/app/views/admin/users/show.html.erb +94 -0
  168. data/app/views/admin/users/tokens.html.erb +24 -0
  169. data/app/views/agents/_agent.jbuilder +20 -0
  170. data/app/views/agents/_filter.html.erb +53 -0
  171. data/app/views/agents/_form.html.erb +33 -0
  172. data/app/views/agents/edit.html.erb +17 -0
  173. data/app/views/agents/index.jbuilder +5 -0
  174. data/app/views/agents/new.html.erb +15 -0
  175. data/app/views/agents/show.jbuilder +3 -0
  176. data/app/views/application/not_found.html.erb +9 -0
  177. data/app/views/application/not_found.jbuilder +3 -0
  178. data/app/views/application/service_unavailable.html.erb +9 -0
  179. data/app/views/application/unauthorized.html.erb +11 -0
  180. data/app/views/application/unauthorized.jbuilder +3 -0
  181. data/app/views/authentication/_form.html.erb +16 -0
  182. data/app/views/authentication/_info.html.erb +8 -0
  183. data/app/views/authentication/new.html.erb +10 -0
  184. data/app/views/browsers/_form.html.erb +28 -0
  185. data/app/views/browsers/edit.html.erb +17 -0
  186. data/app/views/browsers/new.html.erb +15 -0
  187. data/app/views/code_sender/email.text.erb +9 -0
  188. data/app/views/code_sender/password.text.erb +10 -0
  189. data/app/views/codes/_form.html.erb +49 -0
  190. data/app/views/codes/edit.html.erb +17 -0
  191. data/app/views/codes/new.html.erb +15 -0
  192. data/app/views/editable_pages/_form.html.erb +63 -0
  193. data/app/views/editable_pages/edit.html.erb +17 -0
  194. data/app/views/editable_pages/form/_ckeditor.html.erb +11 -0
  195. data/app/views/editable_pages/new.html.erb +15 -0
  196. data/app/views/index/index.html.erb +5 -0
  197. data/app/views/layouts/admin.html.erb +23 -0
  198. data/app/views/layouts/admin/_footer.html.erb +0 -0
  199. data/app/views/layouts/admin/_header.html.erb +11 -0
  200. data/app/views/layouts/admin/header/_logo.html.erb +3 -0
  201. data/app/views/metrics/_form.html.erb +41 -0
  202. data/app/views/metrics/edit.html.erb +17 -0
  203. data/app/views/metrics/index.jbuilder +7 -0
  204. data/app/views/metrics/show.jbuilder +3 -0
  205. data/app/views/my/confirmations/show.html.erb +30 -0
  206. data/app/views/my/index/index.html.erb +17 -0
  207. data/app/views/my/profiles/edit.html.erb +10 -0
  208. data/app/views/my/profiles/edit/_form.html.erb +70 -0
  209. data/app/views/my/profiles/new.html.erb +7 -0
  210. data/app/views/my/profiles/new/_form.html.erb +34 -0
  211. data/app/views/my/profiles/show.html.erb +3 -0
  212. data/app/views/my/recoveries/show.html.erb +39 -0
  213. data/app/views/privilege_groups/_form.html.erb +25 -0
  214. data/app/views/privilege_groups/edit.html.erb +17 -0
  215. data/app/views/privilege_groups/new.html.erb +15 -0
  216. data/app/views/privileges/_form.html.erb +42 -0
  217. data/app/views/privileges/edit.html.erb +21 -0
  218. data/app/views/privileges/new.html.erb +14 -0
  219. data/app/views/profiles/_profile.html.erb +48 -0
  220. data/app/views/profiles/show.html.erb +4 -0
  221. data/app/views/shared/_flash_messages.html.erb +7 -0
  222. data/app/views/shared/_list_of_errors.html.erb +11 -0
  223. data/app/views/shared/_meta_texts.html.erb +17 -0
  224. data/app/views/shared/_nothing_found.html.erb +1 -0
  225. data/app/views/shared/_track.html.erb +10 -0
  226. data/app/views/shared/actions/_locks.html.erb +4 -0
  227. data/app/views/shared/actions/_priority_changer.html.erb +4 -0
  228. data/app/views/shared/admin/_breadcrumbs.html.erb +6 -0
  229. data/app/views/shared/editable_pages/_body.html.erb +12 -0
  230. data/app/views/shared/filter/_flag.html.erb +17 -0
  231. data/app/views/tokens/_form.html.erb +30 -0
  232. data/app/views/tokens/edit.html.erb +17 -0
  233. data/app/views/tokens/new.html.erb +15 -0
  234. data/app/views/users/_form.html.erb +78 -0
  235. data/app/views/users/edit.html.erb +18 -0
  236. data/app/views/users/new.html.erb +15 -0
  237. data/config/initializers/carrierwave.rb +22 -0
  238. data/config/initializers/pluralization.rb +2 -0
  239. data/config/locales/common-ru.yml +96 -0
  240. data/config/locales/editable-pages-ru.yml +43 -0
  241. data/config/locales/plurals.rb +17 -0
  242. data/config/locales/track-ru.yml +102 -0
  243. data/config/locales/users-ru.yml +324 -0
  244. data/config/routes.rb +92 -0
  245. data/db/migrate/20170301000001_create_metrics.rb +23 -0
  246. data/db/migrate/20170301000002_create_metric_values.rb +19 -0
  247. data/db/migrate/20170301000101_create_browsers.rb +22 -0
  248. data/db/migrate/20170301000102_create_agents.rb +22 -0
  249. data/db/migrate/20170302000001_create_users.rb +52 -0
  250. data/db/migrate/20170302000002_create_tokens.rb +23 -0
  251. data/db/migrate/20170302000003_create_code_types.rb +20 -0
  252. data/db/migrate/20170302000004_create_codes.rb +24 -0
  253. data/db/migrate/20170302000101_create_privileges.rb +34 -0
  254. data/db/migrate/20170302000102_create_user_privileges.rb +17 -0
  255. data/db/migrate/20170302000103_create_privilege_groups.rb +23 -0
  256. data/db/migrate/20170302000104_create_privilege_group_privileges.rb +24 -0
  257. data/db/migrate/20170320000000_create_editable_pages.rb +22 -0
  258. data/db/migrate/20170425000001_create_foreign_sites.rb +18 -0
  259. data/db/migrate/20170425000002_create_foreign_users.rb +23 -0
  260. data/lib/biovision/base.rb +9 -0
  261. data/lib/biovision/base/base_methods.rb +96 -0
  262. data/lib/biovision/base/engine.rb +17 -0
  263. data/lib/biovision/base/privilege_methods.rb +35 -0
  264. data/lib/biovision/base/version.rb +5 -0
  265. data/lib/tasks/biovision/agents.rake +38 -0
  266. data/lib/tasks/biovision/base_tasks.rake +4 -0
  267. data/lib/tasks/biovision/browsers.rake +38 -0
  268. data/lib/tasks/biovision/codes.rake +49 -0
  269. data/lib/tasks/biovision/tokens.rake +54 -0
  270. data/lib/tasks/biovision/users.rake +67 -0
  271. metadata +467 -0
@@ -0,0 +1,58 @@
1
+ .entity-page {
2
+ figure.preview {
3
+ margin: 0;
4
+
5
+ img {
6
+ max-width: 32rem;
7
+ }
8
+ }
9
+
10
+ dl {
11
+ margin: 0 0 1.6rem 0;
12
+ padding: 0;
13
+
14
+ dt {
15
+ border-top: .1rem solid #f0f0f0;
16
+ margin: 1rem 0 0 0;
17
+ padding: 0;
18
+ }
19
+
20
+ dd {
21
+ margin: 0 0 0 .8rem;
22
+ padding: 0;
23
+
24
+ input,
25
+ textarea {
26
+ font-size: $normal-font-size;
27
+ }
28
+
29
+ input:not([type=checkbox]):not([type=radio]):not([size]):not([max]),
30
+ textarea {
31
+ width: calc(100% - 1rem);
32
+ }
33
+ }
34
+ }
35
+
36
+ ul.flags {
37
+ margin: 1.6rem 0;
38
+ padding: 0;
39
+
40
+ > li {
41
+ list-style: none;
42
+ margin: 0;
43
+ padding: 0;
44
+
45
+ label {
46
+ font-weight: normal;
47
+ }
48
+ }
49
+ }
50
+ }
51
+
52
+ nav.admin-breadcrumbs {
53
+ a::after {
54
+ color: $primary-text-color;
55
+ content: ' / ';
56
+ text-decoration: none;
57
+ }
58
+ }
@@ -0,0 +1,472 @@
1
+ $toggleable-active: #34c749;
2
+ $toggleable-inactive: #fc605c;
3
+ $toggleable-switch: #fdbc40;
4
+ $toggleable-unknown: #c0c0c0;
5
+ $toggleable-background: #fff;
6
+
7
+ .toggleable {
8
+ font-size: $small-font-size;
9
+ margin: .8rem;
10
+
11
+ > span {
12
+ background-color: $toggleable-background;
13
+ border: .1rem solid;
14
+ border-radius: .8rem;
15
+ cursor: pointer;
16
+ display: inline-block;
17
+ line-height: calc(#{$small-font-size} * 2);
18
+ margin: .4rem;
19
+ padding: 0 .8rem 0 0;
20
+
21
+ &::before {
22
+ border-radius: .6rem 0 0 .6rem;
23
+ display: inline-block;
24
+ line-height: calc(#{$small-font-size} * 2);
25
+ margin: 0 .4rem 0 0;
26
+ text-align: center;
27
+ width: 2.2rem;
28
+ }
29
+ }
30
+
31
+ .active {
32
+ border-color: $toggleable-active;
33
+
34
+ &::before {
35
+ background-color: $toggleable-active;
36
+ content: '\2611';
37
+ }
38
+ }
39
+
40
+ .inactive {
41
+ border-color: $toggleable-inactive;
42
+
43
+ &::before {
44
+ background-color: $toggleable-inactive;
45
+ content: '\2610';
46
+ }
47
+ }
48
+
49
+ .switch {
50
+ border-color: $toggleable-switch;
51
+ cursor: not-allowed;
52
+
53
+ &::before {
54
+ background-color: $toggleable-switch;
55
+ content: '\231B';
56
+ }
57
+ }
58
+
59
+ .unknown {
60
+ border-color: $toggleable-unknown;
61
+
62
+ &::before {
63
+ background-color: $toggleable-unknown;
64
+ content: '\26A0';
65
+ }
66
+ }
67
+ }
68
+
69
+ article.entity-page {
70
+ position: relative;
71
+
72
+ > nav {
73
+ ul {
74
+ margin: 1.6rem 0;
75
+ padding: 0;
76
+
77
+ li {
78
+ list-style: none;
79
+ display: inline-block;
80
+ margin: 0 1.6rem;
81
+
82
+ a {
83
+ @include nav-button;
84
+ }
85
+ }
86
+ }
87
+ }
88
+
89
+ > section {
90
+ border-top: .1rem solid $secondary-text-color;
91
+ padding: .8rem 0 0 0;
92
+
93
+ > h2 {
94
+ font-size: $increased-font-size;
95
+ }
96
+ }
97
+
98
+ table {
99
+ border-spacing: 0;
100
+ margin: 1.6rem;
101
+
102
+ figure {
103
+ margin: 0;
104
+ padding: 0;
105
+ text-align: center;
106
+
107
+ img {
108
+ max-height: 32rem;
109
+ max-width: 32rem;
110
+ }
111
+ }
112
+
113
+ tbody {
114
+ tr:nth-of-type(even) {
115
+ background: $row-background-even;
116
+ }
117
+
118
+ tr:nth-of-type(odd) {
119
+ background: $row-background-odd;
120
+ }
121
+
122
+ th {
123
+ padding: .4rem .8rem;
124
+ text-align: right;
125
+ }
126
+
127
+ td {
128
+ padding: .4rem .8rem;
129
+
130
+ &[colspan]:first-letter {
131
+ text-transform: capitalize;
132
+ }
133
+
134
+ figure {
135
+ text-align: center;
136
+ }
137
+ }
138
+ }
139
+ }
140
+
141
+ form {
142
+ table {
143
+ th {
144
+ font-weight: normal;
145
+ line-height: 2.8rem;
146
+ text-align: right;
147
+ vertical-align: top;
148
+
149
+ &[colspan] {
150
+ border-top: .1rem solid $secondary-text-color;
151
+ font-weight: bold;
152
+ padding-top: 1.6rem;
153
+ text-align: center;
154
+ }
155
+ }
156
+
157
+ input[type=text]:not([size]), input[type=url], textarea {
158
+ width: calc(100% - 1rem);
159
+ }
160
+
161
+ tfoot {
162
+ tr {
163
+ td {
164
+ padding: .8rem 0;
165
+ text-align: center;
166
+ }
167
+ }
168
+ }
169
+
170
+ .flags {
171
+ text-align: left;
172
+
173
+ ul {
174
+ margin: 0;
175
+ padding: 0;
176
+
177
+ > li {
178
+ list-style: none;
179
+ margin: 0;
180
+ padding: 0;
181
+
182
+ label {
183
+ font-weight: normal;
184
+ }
185
+ }
186
+ }
187
+ }
188
+
189
+ .tree {
190
+ text-align: left;
191
+
192
+ > ul {
193
+ margin: 0;
194
+ padding: 0;
195
+
196
+ li {
197
+ list-style: none;
198
+ margin: 0;
199
+ padding: 0;
200
+
201
+ label {
202
+ font-weight: normal;
203
+ }
204
+
205
+ ul {
206
+ margin: 0 0 0 2rem;
207
+ padding: 0;
208
+ }
209
+ }
210
+ }
211
+ }
212
+ }
213
+
214
+ .fields {
215
+ figure {
216
+ margin: 0 auto;
217
+ padding: 0;
218
+ max-width: 32rem;
219
+ text-align: center;
220
+
221
+ img {
222
+ max-width: 100%;
223
+ }
224
+ }
225
+
226
+ > div {
227
+ background: $row_background_odd;
228
+ padding: .4rem 0;
229
+
230
+ &:nth-of-type(even) {
231
+ background: $row_background_even;
232
+ }
233
+
234
+ > div {
235
+ padding: 0 .4rem;
236
+ }
237
+ }
238
+
239
+ ul.flags {
240
+ margin: 0;
241
+ padding: 0;
242
+
243
+ li {
244
+ list-style: none;
245
+ margin: 0;
246
+ padding: .4rem;
247
+ }
248
+ }
249
+
250
+ input:not([type=checkbox]):not([size]), textarea {
251
+ width: calc(100% - 1rem);
252
+ }
253
+ }
254
+ }
255
+ }
256
+
257
+ ul.actions {
258
+ align-items: center;
259
+ background: #fff;
260
+ border-radius: .4rem;
261
+ box-shadow: $block-shadow;
262
+ display: flex;
263
+ justify-content: flex-end;
264
+ margin: 0;
265
+ opacity: .5;
266
+ padding: 0;
267
+ position: absolute;
268
+ right: .4rem;
269
+ top: .4rem;
270
+ transition: .25s;
271
+
272
+ &:hover {
273
+ opacity: 1;
274
+ }
275
+
276
+ > li {
277
+ flex-basis: 1.6rem;
278
+ height: 1.6rem;
279
+ line-height: 1.6rem;
280
+ list-style: none;
281
+ margin: .4rem;
282
+
283
+ &.danger {
284
+ margin-left: 3.2rem;
285
+ }
286
+
287
+ &.priority-changer {
288
+ align-items: center;
289
+ display: flex;
290
+ flex-basis: 3.6rem;
291
+ justify-content: space-between;
292
+ }
293
+
294
+ > a, button {
295
+ box-sizing: border-box;
296
+ display: inline-block;
297
+ font-size: 1.2rem;
298
+ height: 1.6rem;
299
+ line-height: 1.6rem;
300
+ margin: 0;
301
+ padding: 0;
302
+ width: 1.6rem;
303
+ }
304
+
305
+ img {
306
+ max-height: 1.6rem;
307
+ max-width: 1.6rem;
308
+ }
309
+ }
310
+ }
311
+
312
+ .list-of-entities {
313
+ margin: 1.6rem 0;
314
+ padding: 0;
315
+
316
+ > li {
317
+ align-items: center;
318
+ background: $row-background-odd;
319
+ display: flex;
320
+ flex-wrap: wrap;
321
+ list-style: none;
322
+ margin: 0;
323
+ padding: 0.8rem;
324
+
325
+ &:nth-of-type(even) {
326
+ background: $row-background-even;
327
+ }
328
+
329
+ &[data-number]::before {
330
+ content: attr(data-number) ":";
331
+ display: inline-block;
332
+ margin: 0 .8rem 0 0;
333
+ text-align: right;
334
+ width: 2.4rem;
335
+ }
336
+
337
+ .image {
338
+ flex-basis: 8rem;
339
+ margin: 0 .8rem 0 0;
340
+ text-align: center;
341
+
342
+ img {
343
+ max-height: 8rem;
344
+ max-width: 8rem;
345
+ }
346
+
347
+ & + .data {
348
+ max-width: calc(100% - 8.8rem);
349
+ }
350
+ }
351
+
352
+ .data {
353
+ flex: 1;
354
+ max-width: 100%;
355
+ position: relative;
356
+
357
+ .info {
358
+ font-size: $small-font-size;
359
+ }
360
+
361
+ .secondary {
362
+ color: $secondary-text-color;
363
+ }
364
+
365
+ .truncate {
366
+ overflow: hidden;
367
+ text-overflow: ellipsis;
368
+ white-space: nowrap;
369
+ }
370
+
371
+ .compact {
372
+ align-items: center;
373
+ display: flex;
374
+ flex-wrap: wrap;
375
+
376
+ .toggleable, > span {
377
+ margin: 0 .8rem;
378
+ }
379
+ }
380
+
381
+ .children {
382
+ border-left: .1rem dotted;
383
+ margin-left: 1.6rem;
384
+ }
385
+ }
386
+ }
387
+ }
388
+
389
+ .dashboard {
390
+ display: flex;
391
+ flex-wrap: wrap;
392
+ justify-content: space-between;
393
+
394
+ nav {
395
+ box-shadow: $block-shadow;
396
+ margin: .4rem;
397
+ max-width: 32rem;
398
+
399
+ ul {
400
+ margin: 0;
401
+ padding: 0;
402
+
403
+ li {
404
+ background: $row-background-odd;
405
+ list-style: none;
406
+ margin: 0;
407
+ padding: .4rem;
408
+ position: relative;
409
+
410
+ &:nth-last-of-type(even) {
411
+ background: $row-background-even;
412
+ }
413
+
414
+ .description {
415
+ color: $secondary-text-color;
416
+ font-size: $decreased-font-size;
417
+ }
418
+ }
419
+ }
420
+ }
421
+ }
422
+
423
+ form {
424
+ .guideline {
425
+ color: $secondary-text-color;
426
+ font-size: $decreased-font-size;
427
+ margin: 0;
428
+
429
+ &::before {
430
+ content: '\261E';
431
+ margin-right: .4rem;
432
+ }
433
+ }
434
+
435
+ button {
436
+ @include action-button;
437
+ }
438
+ }
439
+
440
+ .hidden {
441
+ display: none !important;
442
+ }
443
+
444
+ div.user-search {
445
+ .message-box-warning {
446
+ background-position: left .4rem center;
447
+ font-weight: 400;
448
+ margin: .4rem;
449
+ padding: .4rem .4rem .4rem 2.4rem;
450
+ }
451
+
452
+ .results {
453
+ ul {
454
+ margin: .4rem;
455
+ padding: 0;
456
+
457
+ li {
458
+ cursor: pointer;
459
+ font-size: 1.4rem;
460
+ font-weight: 400;
461
+ line-height: 2rem;
462
+ list-style: none;
463
+ margin: 0;
464
+ padding: 0 .4rem;
465
+
466
+ &:hover {
467
+ outline: .1rem solid #070;
468
+ }
469
+ }
470
+ }
471
+ }
472
+ }