super 0.0.12 → 0.0.13
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.
- checksums.yaml +4 -4
- data/.yardopts +0 -1
- data/README.md +36 -44
- data/app/assets/javascripts/super/application.js +2439 -2
- data/app/assets/stylesheets/super/application.css +805 -0
- data/app/views/super/application/_filter_type_timestamp.html.erb +2 -2
- data/app/views/super/application/_form_field_flatpickr_date.html.erb +8 -0
- data/app/views/super/application/_form_field_flatpickr_datetime.html.erb +8 -0
- data/app/views/super/application/_form_field_flatpickr_time.html.erb +8 -0
- data/frontend/super-frontend/dist/application.css +805 -0
- data/frontend/super-frontend/dist/application.js +2439 -2
- data/lib/super/display/guesser.rb +2 -0
- data/lib/super/display/schema_types.rb +2 -1
- data/lib/super/form/builder.rb +92 -0
- data/lib/super/form/guesser.rb +10 -1
- data/lib/super/form/schema_types.rb +13 -0
- data/lib/super/version.rb +1 -1
- metadata +5 -4
- data/CONTRIBUTING.md +0 -56
- data/Rakefile +0 -36
@@ -92,9 +92,10 @@ module Super
|
|
92
92
|
alias text string
|
93
93
|
|
94
94
|
def timestamp; real(&:to_s); end
|
95
|
+
def time; real { |value| value.strftime("%H:%M:%S") }; end
|
95
96
|
|
96
97
|
def rich_text
|
97
|
-
|
98
|
+
computed do |value|
|
98
99
|
Partial.new("display_rich_text", locals: { rich_text: value })
|
99
100
|
end
|
100
101
|
end
|
data/lib/super/form/builder.rb
CHANGED
@@ -58,6 +58,62 @@ module Super
|
|
58
58
|
@builder.check_box(attribute, options, checked_value, unchecked_value)
|
59
59
|
end
|
60
60
|
|
61
|
+
def flatpickr_date(attribute, options = {})
|
62
|
+
options, defaults = split_defaults(
|
63
|
+
options,
|
64
|
+
class: "super-input w-full",
|
65
|
+
data: {
|
66
|
+
controller: "flatpickr",
|
67
|
+
flatpickr_options_value: {
|
68
|
+
dateFormat: "Y-m-d",
|
69
|
+
}
|
70
|
+
}
|
71
|
+
)
|
72
|
+
options[:class] = join_classes(defaults[:class], options[:class])
|
73
|
+
options[:data] = defaults[:data].deep_merge(options[:data] || {})
|
74
|
+
|
75
|
+
@builder.text_field(attribute, options)
|
76
|
+
end
|
77
|
+
|
78
|
+
def flatpickr_datetime(attribute, options = {})
|
79
|
+
options, defaults = split_defaults(
|
80
|
+
options,
|
81
|
+
class: "super-input w-full",
|
82
|
+
data: {
|
83
|
+
controller: "flatpickr",
|
84
|
+
flatpickr_options_value: {
|
85
|
+
enableSeconds: true,
|
86
|
+
enableTime: true,
|
87
|
+
dateFormat: "Z",
|
88
|
+
}
|
89
|
+
}
|
90
|
+
)
|
91
|
+
options[:class] = join_classes(defaults[:class], options[:class])
|
92
|
+
options[:data] = defaults[:data].deep_merge(options[:data] || {})
|
93
|
+
|
94
|
+
@builder.text_field(attribute, options)
|
95
|
+
end
|
96
|
+
|
97
|
+
def flatpickr_time(attribute, options = {})
|
98
|
+
options, defaults = split_defaults(
|
99
|
+
options,
|
100
|
+
class: "super-input w-full",
|
101
|
+
data: {
|
102
|
+
controller: "flatpickr",
|
103
|
+
flatpickr_options_value: {
|
104
|
+
enableSeconds: true,
|
105
|
+
enableTime: true,
|
106
|
+
noCalendar: true,
|
107
|
+
dateFormat: "H:i:S",
|
108
|
+
}
|
109
|
+
}
|
110
|
+
)
|
111
|
+
options[:class] = join_classes(defaults[:class], options[:class])
|
112
|
+
options[:data] = defaults[:data].deep_merge(options[:data] || {})
|
113
|
+
|
114
|
+
@builder.text_field(attribute, options)
|
115
|
+
end
|
116
|
+
|
61
117
|
def password_field(attribute, options = {})
|
62
118
|
options, defaults = split_defaults(options, class: "super-input w-full")
|
63
119
|
options[:class] = join_classes(defaults[:class], options[:class])
|
@@ -129,6 +185,42 @@ module Super
|
|
129
185
|
end
|
130
186
|
end
|
131
187
|
|
188
|
+
def flatpickr_date!(attribute, label: {}, field: {}, show_errors: true)
|
189
|
+
container do
|
190
|
+
compact_join([
|
191
|
+
public_send(:label, attribute, label),
|
192
|
+
%(<div class="mt-1">).html_safe,
|
193
|
+
public_send(:flatpickr_date, attribute, field),
|
194
|
+
show_errors && inline_errors(attribute),
|
195
|
+
%(</div>).html_safe,
|
196
|
+
])
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
200
|
+
def flatpickr_datetime!(attribute, label: {}, field: {}, show_errors: true)
|
201
|
+
container do
|
202
|
+
compact_join([
|
203
|
+
public_send(:label, attribute, label),
|
204
|
+
%(<div class="mt-1">).html_safe,
|
205
|
+
public_send(:flatpickr_datetime, attribute, field),
|
206
|
+
show_errors && inline_errors(attribute),
|
207
|
+
%(</div>).html_safe,
|
208
|
+
])
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
def flatpickr_time!(attribute, label: {}, field: {}, show_errors: true)
|
213
|
+
container do
|
214
|
+
compact_join([
|
215
|
+
public_send(:label, attribute, label),
|
216
|
+
%(<div class="mt-1">).html_safe,
|
217
|
+
public_send(:flatpickr_time, attribute, field),
|
218
|
+
show_errors && inline_errors(attribute),
|
219
|
+
%(</div>).html_safe,
|
220
|
+
])
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
132
224
|
def password_field!(attribute, label: {}, field: {}, show_errors: true)
|
133
225
|
container do
|
134
226
|
compact_join([
|
data/lib/super/form/guesser.rb
CHANGED
@@ -22,7 +22,16 @@ module Super
|
|
22
22
|
private
|
23
23
|
|
24
24
|
def attribute_type_for(attribute_name)
|
25
|
-
@type
|
25
|
+
case @model.type_for_attribute(attribute_name).type
|
26
|
+
when :datetime
|
27
|
+
@type.flatpickr_datetime
|
28
|
+
when :time
|
29
|
+
@type.flatpickr_time
|
30
|
+
when :date
|
31
|
+
@type.flatpickr_date
|
32
|
+
else
|
33
|
+
@type.string
|
34
|
+
end
|
26
35
|
end
|
27
36
|
end
|
28
37
|
end
|
@@ -11,6 +11,7 @@ module Super
|
|
11
11
|
end
|
12
12
|
|
13
13
|
attr_reader :nested_fields
|
14
|
+
attr_reader :extras
|
14
15
|
|
15
16
|
def each_attribute
|
16
17
|
if block_given?
|
@@ -86,6 +87,18 @@ module Super
|
|
86
87
|
Generic.new(partial_path: "form_field_checkbox", extras: extras, nested: {})
|
87
88
|
end
|
88
89
|
|
90
|
+
def flatpickr_date(**extras)
|
91
|
+
Generic.new(partial_path: "form_field_flatpickr_date", extras: extras, nested: {})
|
92
|
+
end
|
93
|
+
|
94
|
+
def flatpickr_datetime(**extras)
|
95
|
+
Generic.new(partial_path: "form_field_flatpickr_datetime", extras: extras, nested: {})
|
96
|
+
end
|
97
|
+
|
98
|
+
def flatpickr_time(**extras)
|
99
|
+
Generic.new(partial_path: "form_field_flatpickr_time", extras: extras, nested: {})
|
100
|
+
end
|
101
|
+
|
89
102
|
def has_many(reader, **extras)
|
90
103
|
nested = @fields.nested do
|
91
104
|
yield
|
data/lib/super/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: super
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zach Ahn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -220,10 +220,8 @@ extensions: []
|
|
220
220
|
extra_rdoc_files: []
|
221
221
|
files:
|
222
222
|
- ".yardopts"
|
223
|
-
- CONTRIBUTING.md
|
224
223
|
- LICENSE
|
225
224
|
- README.md
|
226
|
-
- Rakefile
|
227
225
|
- app/assets/config/super_manifest.js
|
228
226
|
- app/assets/javascripts/super/application.js
|
229
227
|
- app/assets/stylesheets/super/application.css
|
@@ -243,6 +241,9 @@ files:
|
|
243
241
|
- app/views/super/application/_form.html.erb
|
244
242
|
- app/views/super/application/_form_field__destroy.html.erb
|
245
243
|
- app/views/super/application/_form_field_checkbox.html.erb
|
244
|
+
- app/views/super/application/_form_field_flatpickr_date.html.erb
|
245
|
+
- app/views/super/application/_form_field_flatpickr_datetime.html.erb
|
246
|
+
- app/views/super/application/_form_field_flatpickr_time.html.erb
|
246
247
|
- app/views/super/application/_form_field_rich_text_area.html.erb
|
247
248
|
- app/views/super/application/_form_field_select.html.erb
|
248
249
|
- app/views/super/application/_form_field_text.html.erb
|
data/CONTRIBUTING.md
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
# Contributing
|
2
|
-
|
3
|
-
Thank you for thinking about contributing to Super!
|
4
|
-
|
5
|
-
|
6
|
-
## General guidelines
|
7
|
-
|
8
|
-
There are a few ground rules that to adhere to:
|
9
|
-
|
10
|
-
* be friendly and patient,
|
11
|
-
* be welcoming,
|
12
|
-
* be considerate,
|
13
|
-
* be respectful,
|
14
|
-
* be careful in the words that you choose and be kind to others,
|
15
|
-
* when we disagree, try to understand why.
|
16
|
-
|
17
|
-
This isn't an exhaustive list of things that you can't do. Rather, take it in
|
18
|
-
the spirit in which it's intended - a guide to make it easier to communicate and
|
19
|
-
participate in the community.
|
20
|
-
|
21
|
-
This applies to all spaces managed by the Super project.
|
22
|
-
|
23
|
-
If you believe someone is violating the code of conduct, we ask that you report
|
24
|
-
it by emailing: super+conduct at zachahn.com
|
25
|
-
|
26
|
-
Offenders may be banned, asked to apologize, etc.
|
27
|
-
|
28
|
-
(These guidelines are based on the [FreeBSD CoC][FreeBSD CoC], which in turn is
|
29
|
-
based on [LLVM Project's draft CoC][LLVM CoC], which in turn is based on the
|
30
|
-
[Django Project Code of Conduct][Django CoC], which is in turn based on wording
|
31
|
-
from the Speak Up! project.)
|
32
|
-
|
33
|
-
|
34
|
-
## Bug reports / issues
|
35
|
-
|
36
|
-
1. Please tell us what version of Super, Ruby, and Rails you are using
|
37
|
-
1. Please search the issues before posting your problem
|
38
|
-
1. Please ask questions in a public place to benefit all Super users
|
39
|
-
1. Please email security-related problems to super+security [at] zachahn.com
|
40
|
-
|
41
|
-
|
42
|
-
## Feature requests / pull requests
|
43
|
-
|
44
|
-
Contributors will need to sign a CLA. This isn't set up yet, so I won't be able
|
45
|
-
to accept contributions.
|
46
|
-
|
47
|
-
1. Please note that pull requests may be closed/denied for any reason.
|
48
|
-
Your feature may be better as its own repository. If so, I will link to your
|
49
|
-
project from the README!
|
50
|
-
1. Please allow Super's contributors to modify your PR before merging.
|
51
|
-
It might make the process a bit smoother, but this isn't a necessity.
|
52
|
-
|
53
|
-
|
54
|
-
[FreeBSD CoC]: https://www.freebsd.org/internal/code-of-conduct.html
|
55
|
-
[LLVM CoC]: https://llvm.org/docs/CodeOfConduct.html
|
56
|
-
[Django CoC]: https://www.djangoproject.com/conduct/
|
data/Rakefile
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
begin
|
4
|
-
require "bundler/setup"
|
5
|
-
rescue LoadError
|
6
|
-
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
|
7
|
-
end
|
8
|
-
|
9
|
-
require "rdoc/task"
|
10
|
-
|
11
|
-
RDoc::Task.new(:rdoc) do |rdoc|
|
12
|
-
rdoc.rdoc_dir = "rdoc"
|
13
|
-
rdoc.title = "Super"
|
14
|
-
rdoc.options << "--line-numbers"
|
15
|
-
rdoc.rdoc_files.include("README.md")
|
16
|
-
rdoc.rdoc_files.include("lib/**/*.rb")
|
17
|
-
end
|
18
|
-
|
19
|
-
require_relative "dummy_path"
|
20
|
-
|
21
|
-
APP_RAKEFILE = File.expand_path("#{SUPER_DUMMY_PATH}/Rakefile", __dir__)
|
22
|
-
load "rails/tasks/engine.rake"
|
23
|
-
|
24
|
-
load "rails/tasks/statistics.rake"
|
25
|
-
|
26
|
-
require "bundler/gem_tasks"
|
27
|
-
|
28
|
-
require "rake/testtask"
|
29
|
-
|
30
|
-
Rake::TestTask.new(:test) do |t|
|
31
|
-
t.libs << "test"
|
32
|
-
t.pattern = "test/**/*_test.rb"
|
33
|
-
t.verbose = false
|
34
|
-
end
|
35
|
-
|
36
|
-
task default: :test
|