administrate 1.0.0.beta3 → 1.0.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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/builds/administrate/application.css +91 -19
  3. data/app/assets/builds/administrate/application.css.map +1 -1
  4. data/app/assets/builds/administrate/application.js +12576 -3114
  5. data/app/assets/builds/administrate/application.js.map +4 -4
  6. data/app/assets/builds/administrate-internal/docs.css +25 -12
  7. data/app/assets/builds/administrate-internal/docs.css.map +1 -1
  8. data/app/assets/javascripts/administrate/application.js +1 -0
  9. data/app/assets/javascripts/administrate/controllers/index.js +2 -0
  10. data/app/assets/javascripts/administrate/controllers/select_controller.js +18 -1
  11. data/app/assets/javascripts/administrate/controllers/tooltip_controller.js +24 -0
  12. data/app/assets/javascripts/administrate/vendor/css-anchor-positioning.js +9310 -0
  13. data/app/assets/stylesheets/administrate/base/_typography.scss +8 -5
  14. data/app/assets/stylesheets/administrate/components/_buttons.scss +26 -1
  15. data/app/assets/stylesheets/administrate/components/_cells.scss +8 -1
  16. data/app/assets/stylesheets/administrate/components/_search.scss +44 -3
  17. data/app/assets/stylesheets/administrate-internal/docs.scss +25 -23
  18. data/app/controllers/administrate/application_controller.rb +9 -22
  19. data/app/controllers/concerns/administrate/punditize.rb +1 -9
  20. data/app/helpers/administrate/application_helper.rb +9 -1
  21. data/app/views/administrate/application/_collection.html.erb +29 -19
  22. data/app/views/administrate/application/_collection_header_actions.html.erb +1 -1
  23. data/app/views/administrate/application/_collection_item_actions.html.erb +2 -2
  24. data/app/views/administrate/application/_form.html.erb +1 -1
  25. data/app/views/administrate/application/_icons.html.erb +14 -6
  26. data/app/views/administrate/application/_index_header.html.erb +19 -0
  27. data/app/views/administrate/application/index.html.erb +1 -0
  28. data/app/views/fields/has_many/_form.html.erb +1 -1
  29. data/app/views/fields/has_one/_form.html.erb +6 -0
  30. data/app/views/fields/polymorphic/_form.html.erb +1 -1
  31. data/docs/customizing_dashboards.md +75 -6
  32. data/docs/guides/switching_templates_with_view_variants.md +45 -0
  33. data/docs/guides.md +1 -0
  34. data/docs/migrating-to-v1.md +34 -0
  35. data/lib/administrate/base_dashboard.rb +0 -6
  36. data/lib/administrate/field/associative.rb +2 -21
  37. data/lib/administrate/field/base.rb +19 -2
  38. data/lib/administrate/field/belongs_to.rb +1 -6
  39. data/lib/administrate/field/date.rb +5 -1
  40. data/lib/administrate/field/date_time.rb +2 -3
  41. data/lib/administrate/field/deferred.rb +5 -17
  42. data/lib/administrate/field/has_many.rb +22 -3
  43. data/lib/administrate/field/has_one.rb +1 -9
  44. data/lib/administrate/field/password.rb +4 -0
  45. data/lib/administrate/field/polymorphic.rb +1 -1
  46. data/lib/administrate/field/time.rb +5 -4
  47. data/lib/administrate/namespace.rb +10 -10
  48. data/lib/administrate/order.rb +8 -8
  49. data/lib/administrate/search.rb +8 -9
  50. data/lib/administrate/version.rb +1 -1
  51. data/lib/administrate/view_generator.rb +1 -0
  52. data/lib/administrate.rb +0 -38
  53. data/lib/generators/administrate/install/install_generator.rb +1 -0
  54. data/lib/generators/administrate/routes/routes_generator.rb +1 -0
  55. metadata +12 -20
@@ -1,3 +1,16 @@
1
+ :root {
2
+ --blue: #53adc6;
3
+ --red: #cf726e;
4
+ --green: #5bc89e;
5
+ --white: #f0f0f0;
6
+ --code-black: #202020;
7
+ --code-white: #e0e0dc;
8
+ --code-green: #b0bf82;
9
+ --code-blue: #8fbdcc;
10
+ --code-yellow: #f8d29d;
11
+ --code-red: #b95c56;
12
+ }
13
+
1
14
  html,
2
15
  body {
3
16
  font-family: "Lato", serif;
@@ -18,7 +31,7 @@ h3 {
18
31
  }
19
32
 
20
33
  a {
21
- color: #53adc6;
34
+ color: var(--blue);
22
35
  text-decoration: none;
23
36
  }
24
37
 
@@ -43,8 +56,8 @@ a {
43
56
  }
44
57
 
45
58
  .flash-wrapper {
46
- background-color: #cf726e;
47
- color: #f0f0f0;
59
+ background-color: var(--red);
60
+ color: var(--white);
48
61
  padding: 1em;
49
62
  }
50
63
  .flash-wrapper .flash {
@@ -59,31 +72,31 @@ code {
59
72
  padding: 0.4em 0.2em 0;
60
73
  }
61
74
  code.hljs {
62
- background-color: #202020;
63
- color: #e0e0dc;
75
+ background-color: var(--code-black);
76
+ color: var(--code-white);
64
77
  padding-left: 1rem;
65
78
  }
66
79
  code.hljs .hljs-string {
67
- color: #b0bf82;
80
+ color: var(--code-green);
68
81
  }
69
82
  code.hljs .hljs-subst {
70
- color: #e0e0dc;
83
+ color: var(--code-white);
71
84
  }
72
85
  code.hljs .hljs-constant {
73
- color: #8fbdcc;
86
+ color: var(--code-blue);
74
87
  }
75
88
  code.hljs .hljs-symbol {
76
- color: #b95c56;
89
+ color: var(--code-red);
77
90
  }
78
91
  code.hljs .hljs-keyword {
79
- color: #f8d29d;
92
+ color: var(--code-yellow);
80
93
  }
81
94
  code.hljs .hljs-title,
82
95
  code.hljs .hljs-parent {
83
- color: #8fbdcc;
96
+ color: var(--code-blue);
84
97
  }
85
98
  code.hljs .hljs-tag {
86
- color: #f8d29d;
99
+ color: var(--code-yellow);
87
100
  }
88
101
 
89
102
  /*# sourceMappingURL=docs.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../stylesheets/administrate-internal/docs.scss"],"names":[],"mappings":"AAYA;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;AAAA;AAAA;EAGE;EACA;;;AAGF;EACE,OAhCK;EAiCL;;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;;;AAIJ;EACE,kBA3DI;EA4DJ,OA1DM;EA2DN;;AAEA;EACE;EACA;EACA;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE,kBAxES;EAyET,OAxES;EAyET;;AAEA;EAAe,OA1EN;;AA2ET;EAAc,OA5EL;;AA6ET;EAAiB,OA3ET;;AA4ER;EAAe,OA1ER;;AA2EP;EAAgB,OA5EN;;AA8EV;AAAA;EACe,OAhFP;;AAkFR;EAAY,OAjFF","file":"docs.css","sourcesContent":["$blue: #53adc6;\n$red: #cf726e;\n$green: #5bc89e;\n$white: #f0f0f0;\n\n$code-black: #202020;\n$code-white: #e0e0dc;\n$code-green: #b0bf82;\n$code-blue: #8fbdcc;\n$code-yellow: #f8d29d;\n$code-red: #b95c56;\n\nhtml,\nbody {\n font-family: 'Lato', serif;\n font-size: 18px;\n line-height: 1.62em;\n margin: 0;\n}\n\nimg {\n max-width: 100%;\n}\n\nh1,\nh2,\nh3 {\n font-family: 'Fjalla One', sans-serif;\n margin-top: 2em;\n}\n\na {\n color: $blue;\n text-decoration: none;\n}\n\n.content {\n margin-bottom: 2em;\n margin-left: auto;\n margin-right: auto;\n margin-top: 2em;\n width: 60em;\n\n .sidebar {\n float: left;\n width: 20em;\n\n &-links {\n list-style: none;\n padding-left: 0;\n }\n }\n\n .main {\n float: right;\n width: 40em;\n }\n}\n\n.flash-wrapper {\n background-color: $red;\n color: $white;\n padding: 1em;\n\n .flash {\n margin-left: auto;\n margin-right: auto;\n width: 40em;\n }\n}\n\ncode {\n font-family: \"Source Code Pro\";\n font-size: 0.8rem;\n padding: 0.4em 0.2em 0;\n\n &.hljs {\n background-color: $code-black;\n color: $code-white;\n padding-left: 1rem;\n\n .hljs-string { color: $code-green; }\n .hljs-subst { color: $code-white; }\n .hljs-constant { color: $code-blue; }\n .hljs-symbol { color: $code-red; }\n .hljs-keyword { color: $code-yellow; }\n\n .hljs-title,\n .hljs-parent { color: $code-blue; }\n\n .hljs-tag { color: $code-yellow; }\n }\n}\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../../stylesheets/administrate-internal/docs.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;AAAA;AAAA;EAGE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EAAe;;AACf;EAAc;;AACd;EAAiB;;AACjB;EAAe;;AACf;EAAgB;;AAEhB;AAAA;EACe;;AAEf;EAAY","file":"docs.css","sourcesContent":[":root {\n --blue: #53adc6;\n --red: #cf726e;\n --green: #5bc89e;\n --white: #f0f0f0;\n\n --code-black: #202020;\n --code-white: #e0e0dc;\n --code-green: #b0bf82;\n --code-blue: #8fbdcc;\n --code-yellow: #f8d29d;\n --code-red: #b95c56;\n}\n\nhtml,\nbody {\n font-family: 'Lato', serif;\n font-size: 18px;\n line-height: 1.62em;\n margin: 0;\n}\n\nimg {\n max-width: 100%;\n}\n\nh1,\nh2,\nh3 {\n font-family: 'Fjalla One', sans-serif;\n margin-top: 2em;\n}\n\na {\n color: var(--blue);\n text-decoration: none;\n}\n\n.content {\n margin-bottom: 2em;\n margin-left: auto;\n margin-right: auto;\n margin-top: 2em;\n width: 60em;\n\n .sidebar {\n float: left;\n width: 20em;\n\n &-links {\n list-style: none;\n padding-left: 0;\n }\n }\n\n .main {\n float: right;\n width: 40em;\n }\n}\n\n.flash-wrapper {\n background-color: var(--red);\n color: var(--white);\n padding: 1em;\n\n .flash {\n margin-left: auto;\n margin-right: auto;\n width: 40em;\n }\n}\n\ncode {\n font-family: \"Source Code Pro\";\n font-size: 0.8rem;\n padding: 0.4em 0.2em 0;\n\n &.hljs {\n background-color: var(--code-black);\n color: var(--code-white);\n padding-left: 1rem;\n\n .hljs-string { color: var(--code-green); }\n .hljs-subst { color: var(--code-white); }\n .hljs-constant { color: var(--code-blue); }\n .hljs-symbol { color: var(--code-red); }\n .hljs-keyword { color: var(--code-yellow); }\n\n .hljs-title,\n .hljs-parent { color: var(--code-blue); }\n\n .hljs-tag { color: var(--code-yellow); }\n }\n}\n"]}
@@ -6,3 +6,4 @@ import "@hotwired/turbo-rails";
6
6
  import "selectize/dist/js/selectize.min.js";
7
7
 
8
8
  import "./controllers";
9
+ import "./vendor/css-anchor-positioning";
@@ -2,6 +2,8 @@ import { application } from "./application";
2
2
 
3
3
  import SelectController from "./select_controller";
4
4
  import TableController from "./table_controller";
5
+ import TooltipController from "./tooltip_controller";
5
6
 
6
7
  application.register("select", SelectController);
7
8
  application.register("table", TableController);
9
+ application.register("tooltip", TooltipController);
@@ -3,6 +3,23 @@ import $ from "jquery";
3
3
 
4
4
  export default class extends Controller {
5
5
  connect() {
6
- $(this.element).selectize({});
6
+ if (!this.selectize) {
7
+ const options = this.selectizeOptions || {};
8
+ const selectedValues = $(this.element).val();
9
+ this.selectize = $(this.element).selectize(options)[0].selectize;
10
+ this.selectize.setValue(selectedValues);
11
+ }
12
+ }
13
+
14
+ disconnect() {
15
+ if (this.selectize) {
16
+ const selectedValues = this.selectize.getValue();
17
+ if (!this.selectizeOptions) {
18
+ this.selectizeOptions = this.selectize.settings;
19
+ }
20
+ this.selectize.destroy();
21
+ this.selectize = null;
22
+ $(this.element).val(selectedValues);
23
+ }
7
24
  }
8
25
  };
@@ -0,0 +1,24 @@
1
+ import { Controller } from "@hotwired/stimulus";
2
+
3
+ export default class extends Controller {
4
+ static targets = ["popover", "tooltip"];
5
+
6
+ connect() {
7
+ this.tooltipTarget.addEventListener("mouseenter", this.showPopover);
8
+ this.tooltipTarget.addEventListener("mouseleave", this.hidePopover);
9
+ }
10
+
11
+ disconnect() {
12
+ this.tooltipTarget.removeEventListener("mouseenter", this.showPopover);
13
+ this.tooltipTarget.removeEventListener("mouseleave", this.hidePopover);
14
+ }
15
+
16
+ showPopover = () => {
17
+ this.popoverTarget.showPopover();
18
+ }
19
+
20
+ hidePopover = () => {
21
+ this.popoverTarget.hidePopover();
22
+ }
23
+ };
24
+