binda 0.1.3 → 0.1.4

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 (132) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +83 -25
  3. data/app/assets/javascripts/binda/application.js +3 -3
  4. data/app/assets/javascripts/binda/components/bootstrap.js +3 -4
  5. data/app/assets/javascripts/binda/components/field_group_editor.js +10 -10
  6. data/app/assets/javascripts/binda/components/field_setting_choices.js +61 -49
  7. data/app/assets/javascripts/binda/components/fileupload.js +135 -118
  8. data/app/assets/javascripts/binda/components/form_item.js +65 -65
  9. data/app/assets/javascripts/binda/components/form_item_editor.js +19 -19
  10. data/app/assets/javascripts/binda/components/form_item_image.js +11 -13
  11. data/app/assets/javascripts/binda/components/form_item_repeater.js +77 -71
  12. data/app/assets/javascripts/binda/components/login-shader.js +171 -164
  13. data/app/assets/javascripts/binda/components/login_form.js +65 -73
  14. data/app/assets/javascripts/binda/components/radio-toggle.js +8 -12
  15. data/app/assets/javascripts/binda/components/select2.js +19 -14
  16. data/app/assets/javascripts/binda/components/sortable.js +76 -71
  17. data/app/assets/javascripts/binda/dist/binda.bundle.js +735 -727
  18. data/app/assets/javascripts/binda/index.js +49 -35
  19. data/app/assets/stylesheets/binda/components/assets_manager.scss +13 -22
  20. data/app/assets/stylesheets/binda/components/b-alert.scss +18 -14
  21. data/app/assets/stylesheets/binda/components/b-btn.scss +24 -43
  22. data/app/assets/stylesheets/binda/components/field_setting_choices.scss +16 -31
  23. data/app/assets/stylesheets/binda/components/fileupload.scss +25 -42
  24. data/app/assets/stylesheets/binda/components/form_item.scss +51 -93
  25. data/app/assets/stylesheets/binda/components/form_item_choices.scss +7 -10
  26. data/app/assets/stylesheets/binda/components/login.scss +2 -2
  27. data/app/assets/stylesheets/binda/components/main_header.scss +5 -10
  28. data/app/assets/stylesheets/binda/components/main_sidebar.scss +42 -46
  29. data/app/assets/stylesheets/binda/components/main_sortable_table.scss +12 -21
  30. data/app/assets/stylesheets/binda/components/main_table.scss +18 -35
  31. data/app/assets/stylesheets/binda/components/popup_warning.scss +14 -27
  32. data/app/assets/stylesheets/binda/components/select2.scss +46 -48
  33. data/app/assets/stylesheets/binda/components/sortable.scss +25 -45
  34. data/app/assets/stylesheets/binda/components/standard-form.scss +43 -73
  35. data/app/assets/stylesheets/binda/controllers/users_sessions_new.scss +52 -89
  36. data/app/assets/stylesheets/binda/index.scss +0 -1
  37. data/app/assets/stylesheets/binda/settings/buttons.scss +9 -10
  38. data/app/assets/stylesheets/binda/settings/common.scss +17 -22
  39. data/app/assets/stylesheets/binda/settings/fonts.scss +112 -67
  40. data/app/assets/stylesheets/binda/settings/tiny_mce_overrides.scss +20 -36
  41. data/app/assets/stylesheets/binda/settings/variables.scss +38 -43
  42. data/app/controllers/binda/choices_controller.rb +14 -11
  43. data/app/controllers/binda/components_controller.rb +6 -4
  44. data/app/controllers/binda/structures_controller.rb +7 -3
  45. data/app/helpers/binda/components_helper.rb +69 -3
  46. data/app/helpers/binda/field_groups_helper.rb +16 -6
  47. data/app/helpers/binda/structures_helper.rb +1 -4
  48. data/app/models/binda/application_record.rb +4 -1
  49. data/app/models/binda/asset.rb +3 -1
  50. data/app/models/binda/b.rb +1 -0
  51. data/app/models/binda/category.rb +1 -0
  52. data/app/models/binda/checkbox.rb +2 -0
  53. data/app/models/binda/choice.rb +74 -41
  54. data/app/models/binda/component.rb +1 -1
  55. data/app/models/binda/date.rb +4 -0
  56. data/app/models/binda/deprecation.rb +7 -0
  57. data/app/models/binda/field_group.rb +16 -3
  58. data/app/models/binda/field_setting.rb +168 -41
  59. data/app/models/binda/image.rb +1 -0
  60. data/app/models/binda/radio.rb +2 -0
  61. data/app/models/binda/relation.rb +3 -0
  62. data/app/models/binda/repeater.rb +3 -0
  63. data/app/models/binda/selection.rb +237 -0
  64. data/app/models/binda/string.rb +4 -0
  65. data/app/models/binda/structure.rb +25 -14
  66. data/app/models/binda/text.rb +9 -0
  67. data/app/models/binda/video.rb +1 -0
  68. data/app/models/concerns/binda/default_helpers.rb +40 -31
  69. data/app/models/concerns/binda/deprecations.rb +6 -0
  70. data/app/models/concerns/binda/fieldable_association_helpers.rb +366 -0
  71. data/app/models/concerns/binda/fieldable_associations.rb +32 -369
  72. data/app/views/binda/boards/edit.html.erb +15 -2
  73. data/app/views/binda/categories/_form.html.erb +24 -51
  74. data/app/views/binda/categories/edit.html.erb +23 -3
  75. data/app/views/binda/categories/index.html.erb +49 -25
  76. data/app/views/binda/categories/new.html.erb +21 -2
  77. data/app/views/binda/components/edit.html.erb +27 -4
  78. data/app/views/binda/components/index.html.erb +47 -50
  79. data/app/views/binda/components/new.html.erb +12 -2
  80. data/app/views/binda/components/sort_index.html.erb +28 -13
  81. data/app/views/binda/field_groups/_form_body.html.erb +43 -82
  82. data/app/views/binda/field_groups/_form_item.html.erb +3 -120
  83. data/app/views/binda/field_groups/_form_section.html.erb +11 -16
  84. data/app/views/binda/field_groups/_form_section_repeater.html.erb +7 -15
  85. data/app/views/binda/field_groups/edit.html.erb +14 -2
  86. data/app/views/binda/field_groups/form_item/_form_item_choice_editor.html.erb +11 -0
  87. data/app/views/binda/field_groups/form_item/_form_item_editor.html.erb +14 -0
  88. data/app/views/binda/field_groups/form_item/_form_item_header.html.erb +25 -0
  89. data/app/views/binda/field_groups/form_item/_form_item_new_editor.html.erb +8 -0
  90. data/app/views/binda/field_groups/form_item/_form_item_persisted_editor.html.erb +27 -0
  91. data/app/views/binda/field_groups/form_item/form_item_choice/_form_item_allow_null_choice.html.erb +11 -0
  92. data/app/views/binda/field_groups/form_item/form_item_choice/_form_item_choice_header.html.erb +11 -0
  93. data/app/views/binda/field_groups/form_item/form_item_choice/_form_item_default_choice.html.erb +11 -0
  94. data/app/views/binda/field_groups/form_item/form_item_choice/_form_item_new_choice.html.erb +16 -0
  95. data/app/views/binda/field_groups/form_item/form_item_choice/_form_item_persisted_choices.html.erb +16 -0
  96. data/app/views/binda/field_groups/new.html.erb +14 -2
  97. data/app/views/binda/field_settings/_form_body.html.erb +1 -3
  98. data/app/views/binda/field_settings/edit.html.erb +1 -1
  99. data/app/views/binda/field_settings/new.html.erb +1 -1
  100. data/app/views/binda/fieldable/_form_body.html.erb +24 -72
  101. data/app/views/binda/fieldable/_form_item_date.html.erb +1 -4
  102. data/app/views/binda/fieldable/_form_item_image.html.erb +3 -7
  103. data/app/views/binda/fieldable/_form_item_new_repeater.html.erb +0 -13
  104. data/app/views/binda/fieldable/_form_item_selections.html.erb +20 -112
  105. data/app/views/binda/fieldable/form_item_selections/_form_item_checkbox.html.erb +34 -0
  106. data/app/views/binda/fieldable/form_item_selections/_form_item_radio.html.erb +28 -0
  107. data/app/views/binda/fieldable/form_item_selections/_form_item_selection.html.erb +30 -0
  108. data/app/views/binda/manage/users/_form_body.html.erb +1 -31
  109. data/app/views/binda/manage/users/edit.html.erb +12 -2
  110. data/app/views/binda/manage/users/index.html.erb +36 -19
  111. data/app/views/binda/manage/users/new.html.erb +14 -3
  112. data/app/views/binda/structures/_form_body.html.erb +2 -25
  113. data/app/views/binda/structures/_form_section.html.erb +43 -65
  114. data/app/views/binda/structures/_form_sidebar.html.erb +19 -12
  115. data/app/views/binda/structures/edit.html.erb +20 -3
  116. data/app/views/binda/structures/index.html.erb +46 -26
  117. data/app/views/binda/structures/new.html.erb +13 -2
  118. data/app/views/binda/structures/sort_index.html.erb +37 -17
  119. data/app/views/binda/users/sessions/new.html.erb +25 -20
  120. data/app/views/layouts/binda/_form_errors.html.erb +10 -0
  121. data/app/views/layouts/binda/_sidebar.html.erb +6 -6
  122. data/app/views/layouts/binda/application.html.erb +1 -1
  123. data/config/initializers/carrierwave.rb +3 -2
  124. data/config/locales/en.yml +56 -12
  125. data/config/tinymce.yml +2 -2
  126. data/db/migrate/1_create_binda_tables.rb +1 -1
  127. data/lib/binda/version.rb +1 -1
  128. data/lib/generators/binda/setup/setup_generator.rb +2 -2
  129. data/lib/tasks/add_default_choice_to_all_selections_with_no_choices_task.rake +6 -0
  130. metadata +58 -8
  131. data/app/assets/stylesheets/binda/components/form_item_image.scss +0 -0
  132. data/app/views/binda/field_groups/_form_item_choice.erb +0 -104
@@ -20,7 +20,6 @@
20
20
  @import "components/standard-form";
21
21
  @import "components/form_item";
22
22
  @import "components/form_item_choices";
23
- @import "components/form_item_image";
24
23
  @import "components/form_item_video";
25
24
  @import "components/sortable";
26
25
  @import "components/assets_manager";
@@ -1,27 +1,27 @@
1
1
  .b-btn-primary {
2
2
  color: $color-white;
3
- background-color: $color-gray-darker;
4
- transition: background-color .3s ease-out;
3
+ background-color: $color-gray-darker;
4
+ transition: background-color 0.3s ease-out;
5
5
  }
6
6
 
7
7
  .b-btn-alternative {
8
8
  color: #555555;
9
9
  background-color: white;
10
- transition: background-color .3s ease-out;
10
+ transition: background-color 0.3s ease-out;
11
11
  }
12
12
 
13
13
  .b-btn-primary:hover {
14
- background-color: $color-gray;
14
+ background-color: $color-gray;
15
15
  }
16
16
 
17
17
  .b-btn-danger {
18
18
  color: $color-white;
19
- background-color: $color-danger;
20
- transition: background-color .3s ease-out;
19
+ background-color: $color-danger;
20
+ transition: background-color 0.3s ease-out;
21
21
  }
22
22
 
23
23
  .b-btn-danger:hover {
24
- background-color: lighten($color-danger, 10%);
24
+ background-color: lighten($color-danger, 10%);
25
25
  }
26
26
 
27
27
  .b-btn {
@@ -29,8 +29,7 @@
29
29
  border-radius: 0px;
30
30
  padding: 4px 12px;
31
31
 
32
- i
33
- {
32
+ i {
34
33
  padding-right: 6px;
35
34
  }
36
- }
35
+ }
@@ -1,54 +1,49 @@
1
- body
2
- {
1
+ body {
3
2
  min-height: 100vh;
4
3
  padding: 0;
5
- background-image: linear-gradient( to bottom, $color-gray-lightest, darken($color-gray-lightest, 6%));
4
+ background-image: linear-gradient(
5
+ to bottom,
6
+ $color-gray-lightest,
7
+ darken($color-gray-lightest, 6%)
8
+ );
6
9
  }
7
10
 
8
11
  // this could be avoided using more recent version of bootstrap or with bourbon
9
- .clearfix
10
- {
11
- &::after
12
- {
12
+ .clearfix {
13
+ &::after {
13
14
  display: table;
14
15
  clear: both;
15
- content: '';
16
+ content: "";
16
17
  }
17
18
  }
18
19
 
19
20
  // useful to debug
20
- .bordered
21
- {
21
+ .bordered {
22
22
  border: 2px solid red;
23
23
  }
24
24
 
25
- .vertical-center
26
- {
25
+ .vertical-center {
27
26
  position: absolute;
28
27
  top: 50%;
29
28
  transform: translateY(-50%);
30
29
  }
31
30
 
32
- .absolute-center
33
- {
31
+ .absolute-center {
34
32
  position: absolute;
35
33
  top: 50%;
36
34
  left: 50%;
37
35
  transform: translate(-50%, -50%);
38
36
  }
39
37
 
40
- .box-shadowed
41
- {
42
- box-shadow: 0 3px 6px 0 rgba( 200, 200, 200, .7 );
38
+ .box-shadowed {
39
+ box-shadow: 0 3px 6px 0 rgba(200, 200, 200, 0.7);
43
40
  }
44
41
 
45
- .box-shadowed-up
46
- {
47
- box-shadow: 0 3px 10px 2px rgba( 150, 150, 150, .7 );
42
+ .box-shadowed-up {
43
+ box-shadow: 0 3px 10px 2px rgba(150, 150, 150, 0.7);
48
44
  }
49
45
 
50
- .pagination
51
- {
46
+ .pagination {
52
47
  float: left;
53
48
  width: 100%;
54
49
  margin-top: 0;
@@ -1,30 +1,96 @@
1
- .default-font
2
- {
3
- font-family: 'Work Sans', arial, sans-serif;
1
+ .default-font {
2
+ font-family: "Work Sans", arial, sans-serif;
4
3
  }
5
4
 
6
- // - - - - - - - - - - - - - - - - - -
5
+ // - - - - - - - - - - - - - - - - - -
7
6
  // LAYOUT
8
- // - - - - - - - - - - - - - - - - - -
9
-
10
- html, body, div, span, applet, object, iframe,
11
- h1, h2, h3, h4, h5, h6, p, blockquote, pre,
12
- a, abbr, acronym, address, big, cite, code,
13
- del, dfn, em, img, ins, kbd, q, s, samp,
14
- small, strike, strong, sub, sup, tt, var,
15
- b, u, i, center,
16
- dl, dt, dd, ol, ul, li,
17
- fieldset, form, label, legend,
18
- table, caption, tbody, tfoot, thead, tr, th, td,
19
- article, aside, canvas, details, embed,
20
- figure, figcaption, footer, header, hgroup,
21
- menu, nav, output, ruby, section, summary,
22
- time, mark, audio, video {
23
- font-weight: 300;
24
- }
25
-
26
- body
27
- {
7
+ // - - - - - - - - - - - - - - - - - -
8
+
9
+ html,
10
+ body,
11
+ div,
12
+ span,
13
+ applet,
14
+ object,
15
+ iframe,
16
+ h1,
17
+ h2,
18
+ h3,
19
+ h4,
20
+ h5,
21
+ h6,
22
+ p,
23
+ blockquote,
24
+ pre,
25
+ a,
26
+ abbr,
27
+ acronym,
28
+ address,
29
+ big,
30
+ cite,
31
+ code,
32
+ del,
33
+ dfn,
34
+ em,
35
+ img,
36
+ ins,
37
+ kbd,
38
+ q,
39
+ s,
40
+ samp,
41
+ small,
42
+ strike,
43
+ strong,
44
+ sub,
45
+ sup,
46
+ tt,
47
+ var,
48
+ b,
49
+ u,
50
+ i,
51
+ center,
52
+ dl,
53
+ dt,
54
+ dd,
55
+ ol,
56
+ ul,
57
+ li,
58
+ fieldset,
59
+ form,
60
+ label,
61
+ legend,
62
+ table,
63
+ caption,
64
+ tbody,
65
+ tfoot,
66
+ thead,
67
+ tr,
68
+ th,
69
+ td,
70
+ article,
71
+ aside,
72
+ canvas,
73
+ details,
74
+ embed,
75
+ figure,
76
+ figcaption,
77
+ footer,
78
+ header,
79
+ hgroup,
80
+ menu,
81
+ nav,
82
+ output,
83
+ ruby,
84
+ section,
85
+ summary,
86
+ time,
87
+ mark,
88
+ audio,
89
+ video {
90
+ font-weight: 300;
91
+ }
92
+
93
+ body {
28
94
  font-size: 100%;
29
95
  font-size: $font-size-base;
30
96
  line-height: 1.25em;
@@ -32,116 +98,95 @@ body
32
98
 
33
99
  @extend .default-font;
34
100
  }
35
- ::selection
36
- {
101
+ ::selection {
37
102
  color: $body-bg !important;
38
103
  background: $text-color !important; /* WebKit/Blink Browsers */
39
104
  }
40
- ::-moz-selection
41
- {
105
+ ::-moz-selection {
42
106
  color: $body-bg !important;
43
107
  background: $text-color !important; /* Gecko Browsers */
44
108
  }
45
109
 
46
-
47
- // - - - - - - - - - - - - - - - - - -
110
+ // - - - - - - - - - - - - - - - - - -
48
111
  // TYPO
49
- // - - - - - - - - - - - - - - - - - -
112
+ // - - - - - - - - - - - - - - - - - -
50
113
 
51
114
  a,
52
115
  a:link,
53
116
  a:visited,
54
117
  a:hover,
55
- a:active
56
- {
118
+ a:active {
57
119
  // font-weight: bold;
58
120
  // color: $link-color;
59
121
  text-decoration: none;
60
122
  }
61
123
 
62
- a:hover
63
- {
124
+ a:hover {
64
125
  // border-bottom: 2px solid $link-color;
65
126
  }
66
127
 
67
- button a
68
- {
128
+ button a {
69
129
  border-bottom: none;
70
130
  }
71
131
 
72
- .p
73
- {
132
+ .p {
74
133
  @include font-size( $font-size-base, $font-size-base * 1.25 );
75
134
 
76
- @media ( min-width: $tablet )
77
- {
135
+ @media (min-width: $tablet) {
78
136
  @include font-size( $font-size-base, $font-size-base * 1.25 );
79
137
  }
80
138
  }
81
139
 
82
- .small
83
- {
140
+ .small {
84
141
  @include font-size( $font-size-base * 0.8, $font-size-base * 0.8 * 1.25 );
85
142
 
86
- @media ( min-width: $tablet )
87
- {
143
+ @media (min-width: $tablet) {
88
144
  @include font-size( $font-size-large * 0.85, $font-size-large * 0.85 * 1.25 );
89
145
  }
90
146
  }
91
147
 
92
- .tiny
93
- {
148
+ .tiny {
94
149
  @include font-size( $font-size-base * 0.8 );
95
150
  }
96
151
 
97
- em
98
- {
152
+ em {
99
153
  font-style: italic;
100
154
  display: inline-block;
101
155
  }
102
156
 
103
- strong
104
- {
157
+ strong {
105
158
  font-weight: bold;
106
159
  display: inline-block;
107
160
  }
108
161
 
109
- .b-h1
110
- {
162
+ .b-h1 {
111
163
  @include font-size( $font-size-h2, $font-size-h2 * 1.25 );
112
164
 
113
- @media ( min-width: $tablet )
114
- {
165
+ @media (min-width: $tablet) {
115
166
  @include font-size( $font-size-h1, $font-size-h1 * 1.25 );
116
167
  }
117
168
  }
118
169
 
119
- .b-h2
120
- {
170
+ .b-h2 {
121
171
  @include font-size( $font-size-h3, $font-size-h3 * 1.25 );
122
172
 
123
- @media ( min-width: $tablet )
124
- {
173
+ @media (min-width: $tablet) {
125
174
  @include font-size( $font-size-h2, $font-size-h2 * 1.25 );
126
175
  }
127
176
  }
128
177
 
129
- .b-h3
130
- {
178
+ .b-h3 {
131
179
  @include font-size( $font-size-h4, $font-size-h4 * 1.25 );
132
180
 
133
- @media ( min-width: $tablet )
134
- {
181
+ @media (min-width: $tablet) {
135
182
  @include font-size( $font-size-h3, $font-size-h3 * 1.25 );
136
183
  }
137
184
  }
138
185
 
139
- .b-h4
140
- {
186
+ .b-h4 {
141
187
  @include font-size( $font-size-h5, $font-size-h5 * 1.25 );
142
188
 
143
- @media ( min-width: $tablet )
144
- {
189
+ @media (min-width: $tablet) {
145
190
  @include font-size( $font-size-h4, $font-size-h4 * 1.25 );
146
191
  }
147
192
  }
@@ -1,98 +1,82 @@
1
1
  // TINYMCE FIXES
2
2
  // -------------
3
- body#tinymce
4
- {
3
+ body#tinymce {
5
4
  padding: 12px;
6
5
  background-color: $color-white;
7
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075) !important;
6
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075) !important;
8
7
  }
9
8
 
10
9
  .mce-tinymce,
11
- .mce-toolbar-grp
12
- {
13
- margin-bottom: $font-size-base * .5 !important;
10
+ .mce-toolbar-grp {
11
+ margin-bottom: $font-size-base * 0.5 !important;
14
12
  border: none !important;
15
13
  background-color: $color-white !important;
16
14
  }
17
15
 
18
- .mce-toolbar
19
- {
16
+ .mce-toolbar {
20
17
  border: none !important;
21
18
  }
22
19
 
23
20
  .mce-btn-group .mce-btn,
24
- .mce-flow-layout-item
25
- {
21
+ .mce-flow-layout-item {
26
22
  margin-right: 2px !important;
27
23
  margin-left: 0 !important;
28
24
  }
29
25
 
30
- .mce-btn-group:not(:first-child)
31
- {
26
+ .mce-btn-group:not(:first-child) {
32
27
  border: none !important;
33
28
  }
34
29
 
35
- .mce-btn
36
- {
30
+ .mce-btn {
37
31
  border-radius: 2px !important;
38
32
  }
39
33
 
40
- .mce-edit-area
41
- {
34
+ .mce-edit-area {
42
35
  border: 1px solid $color-gray-lightest !important;
43
36
  border-radius: 1px !important;
44
37
  }
45
38
 
46
- .mce-path
47
- {
39
+ .mce-path {
48
40
  padding-top: 2px !important;
49
41
  padding-bottom: 2px !important;
50
42
  }
51
43
 
52
- .mce-statusbar
53
- {
44
+ .mce-statusbar {
54
45
  border: none !important;
55
46
  border-top: none !important;
56
47
  background-color: $color-white !important;
57
48
  }
58
49
 
59
- .mce-menubar
60
- {
50
+ .mce-menubar {
61
51
  margin-top: $font-size-base !important;
62
52
  padding-top: 2px !important;
63
53
  padding-bottom: 2px !important;
64
54
 
65
- .mce-btn
66
- {
55
+ .mce-btn {
67
56
  margin-right: 4px !important;
68
- background-color: rgba(0, 0, 0, .075) !important;
57
+ background-color: rgba(0, 0, 0, 0.075) !important;
69
58
  }
70
59
 
71
- &:first-child
72
- {
60
+ &:first-child {
73
61
  margin-top: 0 !important;
74
62
  }
75
63
  }
76
64
 
77
65
  .mce-container-body,
78
66
  .mce-container,
79
- .mce-container::before
80
- {
67
+ .mce-container::before {
81
68
  box-shadow: none !important;
82
69
  }
83
70
 
84
- .mce-btn
85
- {
71
+ .mce-btn {
86
72
  background-color: $color-gray-lightest !important;
87
73
  }
88
74
 
89
75
  .mce-btn:hover,
90
- .mce-btn:active
91
- {
76
+ .mce-btn:active {
92
77
  border-color: $color-gray-lighter !important;
93
78
  }
94
79
 
95
- div.mce-edit-area
96
- {
80
+ div.mce-edit-area {
97
81
  border-color: $color-gray-lightest !important;
98
- }
82
+ }