avo 4.0.0.beta.40 → 4.0.0.beta.41
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/Gemfile.lock +1 -1
- data/app/assets/builds/avo/application.css +74 -53
- data/app/assets/builds/avo/application.js +99 -99
- data/app/assets/builds/avo/application.js.map +4 -4
- data/app/assets/stylesheets/application.css +1 -1
- data/app/assets/stylesheets/css/components/breadcrumbs.css +4 -4
- data/app/assets/stylesheets/css/components/color_scheme_switcher.css +3 -3
- data/app/assets/stylesheets/css/fields/stars.css +3 -3
- data/app/assets/stylesheets/css/fields/tags.css +5 -0
- data/app/assets/stylesheets/css/layout.css +14 -5
- data/app/assets/stylesheets/css/variables.css +37 -0
- data/app/components/avo/field_wrapper_component.html.erb +1 -1
- data/app/components/avo/fields/boolean_field/edit_component.html.erb +2 -2
- data/app/components/avo/fields/common/boolean_check_component.rb +3 -3
- data/app/components/avo/fields/common/files/view_type/grid_item_component.html.erb +3 -3
- data/app/components/avo/fields/common/files/view_type/grid_item_component.rb +2 -2
- data/app/components/avo/fields/common/status_viewer_component.html.erb +1 -1
- data/app/components/avo/fields/file_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/files_field/edit_component.html.erb +1 -1
- data/app/components/avo/fields/preview_field/index_component.rb +1 -1
- data/app/components/avo/fields/tags_field/tag_component.html.erb +1 -1
- data/app/components/avo/paginator_component.html.erb +13 -9
- data/app/controllers/avo/attachments_controller.rb +20 -4
- data/app/javascript/application.js +2 -13
- data/app/javascript/js/controllers/appearance_controller.js +2 -2
- data/app/javascript/js/controllers/appearance_preview_controller.js +34 -0
- data/app/javascript/js/controllers.js +2 -0
- data/app/javascript/js/global_hotkeys.js +2 -2
- data/app/views/avo/partials/_color_theme_override.html.erb +13 -0
- data/app/views/avo/private/appearance.html.erb +20 -55
- data/bin/setup +91 -0
- data/lib/avo/version.rb +1 -1
- data/lib/generators/avo/templates/locales/avo.ar.yml +7 -0
- data/lib/generators/avo/templates/locales/avo.de.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.en.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.es.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.fr.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.it.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.ja.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.nb.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.nl.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.nn.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.pl.yml +5 -0
- data/lib/generators/avo/templates/locales/avo.pt-BR.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.pt.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.ro.yml +4 -0
- data/lib/generators/avo/templates/locales/avo.ru.yml +5 -0
- data/lib/generators/avo/templates/locales/avo.tr.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.ua.yml +5 -0
- data/lib/generators/avo/templates/locales/avo.zh-TW.yml +3 -0
- data/lib/generators/avo/templates/locales/avo.zh.yml +3 -0
- metadata +3 -2
- data/bin/init +0 -52
|
@@ -286,7 +286,7 @@
|
|
|
286
286
|
}
|
|
287
287
|
</style>
|
|
288
288
|
|
|
289
|
-
<div class="flex flex-col">
|
|
289
|
+
<div class="flex flex-col" data-controller="appearance-preview">
|
|
290
290
|
<%= render ui.panel(title: 'Color Tokens', description: 'Avo design system color variables for Light and Dark modes. Click any swatch to copy the CSS variable name.') do |panel| %>
|
|
291
291
|
<% panel.with_body do %>
|
|
292
292
|
<div class="flex flex-col gap-6">
|
|
@@ -296,14 +296,14 @@
|
|
|
296
296
|
<p class="section-subtitle">Base colors used for layout and structure</p>
|
|
297
297
|
|
|
298
298
|
<div class="tabs" id="foundations-tabs">
|
|
299
|
-
<button class="tab-button active" data-tab="foundations-light">☀️ Light Mode</button>
|
|
300
|
-
<button class="tab-button" data-tab="foundations-dark">🌙 Dark Mode</button>
|
|
299
|
+
<button data-action="click->appearance-preview#switchTab" class="tab-button active" data-tab="foundations-light">☀️ Light Mode</button>
|
|
300
|
+
<button data-action="click->appearance-preview#switchTab" class="tab-button" data-tab="foundations-dark">🌙 Dark Mode</button>
|
|
301
301
|
</div>
|
|
302
302
|
|
|
303
303
|
<div id="foundations-light" class="tab-content active">
|
|
304
304
|
<div class="color-group">
|
|
305
305
|
<% @foundation_tokens.each do |color| %>
|
|
306
|
-
<div class="color-swatch"
|
|
306
|
+
<div class="color-swatch" data-action="click->appearance-preview#copy" data-copy-text="<%= color[:name] %>">
|
|
307
307
|
<div class="swatch-color" style="background-color: var(<%= color[:name] %>)"></div>
|
|
308
308
|
<div class="swatch-info">
|
|
309
309
|
<div class="swatch-label"><%= color[:name] %></div>
|
|
@@ -321,7 +321,7 @@
|
|
|
321
321
|
<div class="dark">
|
|
322
322
|
<div class="color-group">
|
|
323
323
|
<% @foundation_tokens.each do |color| %>
|
|
324
|
-
<div class="color-swatch"
|
|
324
|
+
<div class="color-swatch" data-action="click->appearance-preview#copy" data-copy-text="<%= color[:name] %>">
|
|
325
325
|
<div class="swatch-color" style="background-color: var(<%= color[:name] %>)"></div>
|
|
326
326
|
<div class="swatch-info">
|
|
327
327
|
<div class="swatch-label"><%= color[:name] %></div>
|
|
@@ -339,7 +339,7 @@
|
|
|
339
339
|
<h4 class="section-header" style="font-size: 0.95rem;">Neutral Scale</h4>
|
|
340
340
|
<div class="neutral-scale">
|
|
341
341
|
<% @neutral_scale.each do |item| %>
|
|
342
|
-
<div class="neutral-swatch"
|
|
342
|
+
<div class="neutral-swatch" data-action="click->appearance-preview#copy" data-copy-text="--color-avo-neutral-<%= item[:name] %>">
|
|
343
343
|
<div class="neutral-color" style="background-color: var(<%= item[:css_var] %>)"></div>
|
|
344
344
|
<div class="neutral-info">
|
|
345
345
|
<div class="neutral-label"><%= item[:name] %></div>
|
|
@@ -356,7 +356,7 @@
|
|
|
356
356
|
<div class="accent-group">
|
|
357
357
|
<div class="accent-group-label" style="text-transform: capitalize;"><%= color[:name] %></div>
|
|
358
358
|
<div class="accent-group-swatches">
|
|
359
|
-
<div class="neutral-swatch"
|
|
359
|
+
<div class="neutral-swatch" data-action="click->appearance-preview#copy" data-copy-text="--color-<%= color[:name] %>-500">
|
|
360
360
|
<div class="neutral-color" style="background-color: var(--color-<%= color[:name] %>-500)"></div>
|
|
361
361
|
<div class="neutral-info">
|
|
362
362
|
<div class="neutral-label">500</div>
|
|
@@ -364,7 +364,7 @@
|
|
|
364
364
|
</div>
|
|
365
365
|
</div>
|
|
366
366
|
|
|
367
|
-
<div class="neutral-swatch"
|
|
367
|
+
<div class="neutral-swatch" data-action="click->appearance-preview#copy" data-copy-text="--color-<%= color[:name] %>-600">
|
|
368
368
|
<div class="neutral-color" style="background-color: var(--color-<%= color[:name] %>-600)"></div>
|
|
369
369
|
<div class="neutral-info">
|
|
370
370
|
<div class="neutral-label">600</div>
|
|
@@ -372,7 +372,7 @@
|
|
|
372
372
|
</div>
|
|
373
373
|
</div>
|
|
374
374
|
|
|
375
|
-
<div class="neutral-swatch"
|
|
375
|
+
<div class="neutral-swatch" data-action="click->appearance-preview#copy" data-copy-text="--color-white">
|
|
376
376
|
<div class="neutral-color" style="background-color: var(--color-white)"></div>
|
|
377
377
|
<div class="neutral-info">
|
|
378
378
|
<div class="neutral-label">fg</div>
|
|
@@ -391,10 +391,10 @@
|
|
|
391
391
|
<p class="section-subtitle">Brand colors used for emphasis and accent elements</p>
|
|
392
392
|
|
|
393
393
|
<div class="tabs" id="accents-tabs">
|
|
394
|
-
<button class="tab-button active" data-tab="accents-default">◼️ Default</button>
|
|
395
|
-
<button class="tab-button" data-tab="accents-light">☀️ Light Mode</button>
|
|
396
|
-
<button class="tab-button" data-tab="accents-dark">🌙 Dark Mode</button>
|
|
397
|
-
<button class="tab-button" data-tab="accents-options">🎨 All Colors</button>
|
|
394
|
+
<button data-action="click->appearance-preview#switchTab" class="tab-button active" data-tab="accents-default">◼️ Default</button>
|
|
395
|
+
<button data-action="click->appearance-preview#switchTab" class="tab-button" data-tab="accents-light">☀️ Light Mode</button>
|
|
396
|
+
<button data-action="click->appearance-preview#switchTab" class="tab-button" data-tab="accents-dark">🌙 Dark Mode</button>
|
|
397
|
+
<button data-action="click->appearance-preview#switchTab" class="tab-button" data-tab="accents-options">🎨 All Colors</button>
|
|
398
398
|
</div>
|
|
399
399
|
|
|
400
400
|
<div id="accents-default" class="tab-content active">
|
|
@@ -402,7 +402,7 @@
|
|
|
402
402
|
<div class="accent-group-label">Light Mode</div>
|
|
403
403
|
<div class="accent-cards accent-cards--detailed">
|
|
404
404
|
<% @accent_tokens.each do |color| %>
|
|
405
|
-
<div class="accent-card accent-card--detailed"
|
|
405
|
+
<div class="accent-card accent-card--detailed" data-action="click->appearance-preview#copy" data-copy-text="<%= color[:name] %>">
|
|
406
406
|
<div class="accent-swatch-color" style="background-color: <%= color[:value] %>">
|
|
407
407
|
<%= color[:name].sub('--color-', '') %>
|
|
408
408
|
</div>
|
|
@@ -420,7 +420,7 @@
|
|
|
420
420
|
<div class="dark">
|
|
421
421
|
<div class="accent-cards accent-cards--detailed">
|
|
422
422
|
<% @accent_tokens.each do |color| %>
|
|
423
|
-
<div class="accent-card accent-card--detailed"
|
|
423
|
+
<div class="accent-card accent-card--detailed" data-action="click->appearance-preview#copy" data-copy-text="<%= color[:name] %>">
|
|
424
424
|
<div class="accent-swatch-color" style="background-color: <%= color[:value] %>">
|
|
425
425
|
<%= color[:name].sub('--color-', '') %>
|
|
426
426
|
</div>
|
|
@@ -440,7 +440,7 @@
|
|
|
440
440
|
<div id="accents-light" class="tab-content">
|
|
441
441
|
<div class="accent-cards accent-cards--detailed">
|
|
442
442
|
<% @accent_tokens.each do |color| %>
|
|
443
|
-
<div class="accent-card accent-card--detailed"
|
|
443
|
+
<div class="accent-card accent-card--detailed" data-action="click->appearance-preview#copy" data-copy-text="<%= color[:name] %>">
|
|
444
444
|
<div class="accent-swatch-color" style="background-color: <%= color[:value] %>">
|
|
445
445
|
<%= color[:name].sub('--color-', '') %>
|
|
446
446
|
</div>
|
|
@@ -459,7 +459,7 @@
|
|
|
459
459
|
<div class="dark">
|
|
460
460
|
<div class="accent-cards accent-cards--detailed">
|
|
461
461
|
<% @accent_tokens.each do |color| %>
|
|
462
|
-
<div class="accent-card accent-card--detailed"
|
|
462
|
+
<div class="accent-card accent-card--detailed" data-action="click->appearance-preview#copy" data-copy-text="<%= color[:name] %>">
|
|
463
463
|
<div class="accent-swatch-color" style="background-color: <%= color[:value] %>">
|
|
464
464
|
<%= color[:name].sub('--color-', '') %>
|
|
465
465
|
</div>
|
|
@@ -478,7 +478,7 @@
|
|
|
478
478
|
<div id="accents-options" class="tab-content">
|
|
479
479
|
<div class="accent-cards">
|
|
480
480
|
<% @accent_options.each do |color| %>
|
|
481
|
-
<div class="accent-card"
|
|
481
|
+
<div class="accent-card" data-action="click->appearance-preview#copy" data-copy-text="--color-<%= color[:name] %>-500">
|
|
482
482
|
<div class="accent-swatch-color" style="background-color: var(--color-<%= color[:name] %>-500)"></div>
|
|
483
483
|
<div class="accent-swatch-info">
|
|
484
484
|
<div class="accent-name"><%= color[:name] %></div>
|
|
@@ -491,41 +491,6 @@
|
|
|
491
491
|
</div>
|
|
492
492
|
<% end %>
|
|
493
493
|
<% end %>
|
|
494
|
-
</div>
|
|
495
494
|
|
|
496
|
-
<div class="copy-indicator"
|
|
497
|
-
|
|
498
|
-
<script>
|
|
499
|
-
// Tab switching
|
|
500
|
-
document.querySelectorAll('.tab-button').forEach(button => {
|
|
501
|
-
button.addEventListener('click', function(event) {
|
|
502
|
-
event.preventDefault();
|
|
503
|
-
const tabId = this.dataset.tab;
|
|
504
|
-
const tabGroup = this.closest('.tabs');
|
|
505
|
-
const tabContainer = tabGroup.parentElement;
|
|
506
|
-
|
|
507
|
-
// Hide all tabs in this group
|
|
508
|
-
tabContainer.querySelectorAll('.tab-content').forEach(tab => {
|
|
509
|
-
tab.classList.remove('active');
|
|
510
|
-
});
|
|
511
|
-
|
|
512
|
-
// Deactivate all buttons in this group
|
|
513
|
-
tabGroup.querySelectorAll('.tab-button').forEach(btn => {
|
|
514
|
-
btn.classList.remove('active');
|
|
515
|
-
});
|
|
516
|
-
|
|
517
|
-
// Show selected tab and activate button
|
|
518
|
-
document.getElementById(tabId).classList.add('active');
|
|
519
|
-
this.classList.add('active');
|
|
520
|
-
});
|
|
521
|
-
});
|
|
522
|
-
|
|
523
|
-
// Copy to clipboard
|
|
524
|
-
function copyToClipboard(text) {
|
|
525
|
-
navigator.clipboard.writeText(text).then(() => {
|
|
526
|
-
const indicator = document.getElementById('copyIndicator');
|
|
527
|
-
indicator.classList.add('show');
|
|
528
|
-
setTimeout(() => indicator.classList.remove('show'), 2000);
|
|
529
|
-
});
|
|
530
|
-
}
|
|
531
|
-
</script>
|
|
495
|
+
<div class="copy-indicator" data-appearance-preview-target="indicator">Copied to clipboard!</div>
|
|
496
|
+
</div>
|
data/bin/setup
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
# Usage: bin/setup [options]
|
|
4
|
+
#
|
|
5
|
+
# One-stop setup for the Avo gem. Configures the upstream git remote, installs
|
|
6
|
+
# gems and yarn deps, copies env templates, optionally brings up Docker Postgres,
|
|
7
|
+
# prepares the dummy app's databases, and builds front-end assets.
|
|
8
|
+
#
|
|
9
|
+
# Options:
|
|
10
|
+
# --fast Restore the dummy DB from the committed snapshot at
|
|
11
|
+
# spec/dummy/db/fast_seed/ (sub-seconds). Skips ~60-120s of
|
|
12
|
+
# db:seed work, including ~25 picsum.photos HTTP fetches.
|
|
13
|
+
# --docker Use Docker Compose for Postgres. Default is to use your
|
|
14
|
+
# local Postgres (no Docker).
|
|
15
|
+
# -h, --help Print this message.
|
|
16
|
+
|
|
17
|
+
require_relative "helpers"
|
|
18
|
+
require "optparse"
|
|
19
|
+
|
|
20
|
+
options = {fast: false, docker: false}
|
|
21
|
+
|
|
22
|
+
OptionParser.new do |opts|
|
|
23
|
+
opts.banner = "Usage: bin/setup [--fast] [--docker]"
|
|
24
|
+
opts.on("--fast", "Restore from the committed fast-seed snapshot instead of running db:seed")
|
|
25
|
+
opts.on("--docker", "Use Docker Compose for Postgres (default: local Postgres)")
|
|
26
|
+
opts.on("-h", "--help", "Show this message") do
|
|
27
|
+
File.foreach(__FILE__)
|
|
28
|
+
.take_while { |l| l.start_with?("#") || l.strip.empty? }
|
|
29
|
+
.drop_while { |l| !l.start_with?("# Usage:") }
|
|
30
|
+
.each { |l| puts l.sub(/\A# ?/, "") }
|
|
31
|
+
exit
|
|
32
|
+
end
|
|
33
|
+
end.parse!(into: options)
|
|
34
|
+
|
|
35
|
+
app_root do
|
|
36
|
+
use_docker = options[:docker]
|
|
37
|
+
|
|
38
|
+
header "Configuring git"
|
|
39
|
+
target_upstream = "https://github.com/avo-hq/avo.git"
|
|
40
|
+
current_upstream = `git config --get remote.upstream.url`.chomp
|
|
41
|
+
if current_upstream.nil? || current_upstream.empty?
|
|
42
|
+
puts "Adding new remote 'upstream' to #{target_upstream}"
|
|
43
|
+
run! "git remote add upstream #{target_upstream}"
|
|
44
|
+
elsif current_upstream != target_upstream
|
|
45
|
+
puts "Updating existing remote 'upstream' to #{target_upstream}"
|
|
46
|
+
run! "git remote set-url upstream #{target_upstream}"
|
|
47
|
+
else
|
|
48
|
+
puts "Remote 'upstream' already points to #{target_upstream}, no change"
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
header "Installing gems"
|
|
52
|
+
run! "bundle install"
|
|
53
|
+
|
|
54
|
+
header "Installing Yarn packages"
|
|
55
|
+
run! "yarn"
|
|
56
|
+
run! "(cd spec/dummy; yarn)"
|
|
57
|
+
|
|
58
|
+
unless File.exist?("spec/dummy/.env.test")
|
|
59
|
+
run! "cp spec/dummy/.env.test.sample spec/dummy/.env.test"
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
if use_docker
|
|
63
|
+
header "Creating the Docker volume"
|
|
64
|
+
run! "docker volume create --name=avo-db-data"
|
|
65
|
+
|
|
66
|
+
header "Creating and running the Docker image"
|
|
67
|
+
run! "docker-compose up -d"
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
if options[:fast]
|
|
71
|
+
header "Preparing the database (fast path)"
|
|
72
|
+
# Restores from spec/dummy/db/fast_seed/ (committed snapshot).
|
|
73
|
+
# If the snapshot is missing or stale, the rake task prints an actionable error
|
|
74
|
+
# pointing at `bin/rails app:db:fast_seed:rebuild`.
|
|
75
|
+
run! "bin/rails app:db:fast_seed"
|
|
76
|
+
run! "RAILS_ENV=test bin/rails db:create db:schema:load"
|
|
77
|
+
else
|
|
78
|
+
header "Preparing the database"
|
|
79
|
+
run! "bin/rails db:setup"
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
header "Building assets"
|
|
83
|
+
run! "yarn build:js"
|
|
84
|
+
run! "yarn build:custom-js"
|
|
85
|
+
run! "yarn build:css"
|
|
86
|
+
|
|
87
|
+
if use_docker
|
|
88
|
+
header "Stopping the Docker image"
|
|
89
|
+
run! "docker-compose stop"
|
|
90
|
+
end
|
|
91
|
+
end
|
data/lib/avo/version.rb
CHANGED
|
@@ -149,6 +149,13 @@ ar:
|
|
|
149
149
|
pages: صفحات
|
|
150
150
|
per_page: لكل صفحة
|
|
151
151
|
prev_page: الصفحة السابقة
|
|
152
|
+
record:
|
|
153
|
+
few: سجلات
|
|
154
|
+
many: سجلات
|
|
155
|
+
one: سجل
|
|
156
|
+
other: سجلات
|
|
157
|
+
two: سجلان
|
|
158
|
+
zero: سجلات
|
|
152
159
|
records_selected_from_all_pages_html: جميع السجلات مختارة من جميع الصفحات
|
|
153
160
|
reload: إعادة تحميل
|
|
154
161
|
remove_selection: إزالة التحديد
|
|
@@ -135,6 +135,9 @@ de:
|
|
|
135
135
|
pages: Seiten
|
|
136
136
|
per_page: Pro Seite
|
|
137
137
|
prev_page: Vorherige Seite
|
|
138
|
+
record:
|
|
139
|
+
one: Eintrag
|
|
140
|
+
other: Einträge
|
|
138
141
|
records_selected_from_all_pages_html: Alle Einträge von allen Seiten ausgewählt
|
|
139
142
|
reload: Neu laden
|
|
140
143
|
remove_selection: Auswahl aufheben
|
|
@@ -135,6 +135,9 @@ en:
|
|
|
135
135
|
pages: Pages
|
|
136
136
|
per_page: Per page
|
|
137
137
|
prev_page: Previous page
|
|
138
|
+
record:
|
|
139
|
+
one: record
|
|
140
|
+
other: records
|
|
138
141
|
records_selected_from_all_pages_html: All records selected from all pages
|
|
139
142
|
reload: Reload
|
|
140
143
|
remove_selection: Remove selection
|
|
@@ -137,6 +137,9 @@ es:
|
|
|
137
137
|
pages: Páginas
|
|
138
138
|
per_page: Por página
|
|
139
139
|
prev_page: Página anterior
|
|
140
|
+
record:
|
|
141
|
+
one: registro
|
|
142
|
+
other: registros
|
|
140
143
|
records_selected_from_all_pages_html: Todos los registros seleccionados de todas las páginas.
|
|
141
144
|
reload: Recargar
|
|
142
145
|
remove_selection: Quitar la selección
|
|
@@ -137,6 +137,9 @@ fr:
|
|
|
137
137
|
pages: Pages
|
|
138
138
|
per_page: Par page
|
|
139
139
|
prev_page: Page précédente
|
|
140
|
+
record:
|
|
141
|
+
one: enregistrement
|
|
142
|
+
other: enregistrements
|
|
140
143
|
records_selected_from_all_pages_html: tous les éléments sélectionnés de toutes les pages
|
|
141
144
|
reload: Recharger
|
|
142
145
|
remove_selection: Supprimer la sélection
|
|
@@ -135,6 +135,9 @@ it:
|
|
|
135
135
|
pages: Pagine
|
|
136
136
|
per_page: Per pagina
|
|
137
137
|
prev_page: Pagina precedente
|
|
138
|
+
record:
|
|
139
|
+
one: record
|
|
140
|
+
other: record
|
|
138
141
|
records_selected_from_all_pages_html: Tutti i record selezionati da tutte le pagine
|
|
139
142
|
reload: Ricarica
|
|
140
143
|
remove_selection: Rimuovi selezione
|
|
@@ -137,6 +137,9 @@ nb:
|
|
|
137
137
|
pages: Sider
|
|
138
138
|
per_page: Per side
|
|
139
139
|
prev_page: Forrige side
|
|
140
|
+
record:
|
|
141
|
+
one: post
|
|
142
|
+
other: poster
|
|
140
143
|
records_selected_from_all_pages_html: Alle poster valgt fra alle sider
|
|
141
144
|
reload: Last inn på nytt
|
|
142
145
|
remove_selection: Fjern valg
|
|
@@ -135,6 +135,9 @@ nl:
|
|
|
135
135
|
pages: Pagina's
|
|
136
136
|
per_page: Per pagina
|
|
137
137
|
prev_page: Vorige pagina
|
|
138
|
+
record:
|
|
139
|
+
one: record
|
|
140
|
+
other: records
|
|
138
141
|
records_selected_from_all_pages_html: Alle geselecteerde records van alle pagina's
|
|
139
142
|
reload: Vernieuwen
|
|
140
143
|
remove_selection: Selectie verwijderen
|
|
@@ -139,6 +139,11 @@ pl:
|
|
|
139
139
|
pages: Strony
|
|
140
140
|
per_page: Na stronie
|
|
141
141
|
prev_page: Poprzednia strona
|
|
142
|
+
record:
|
|
143
|
+
few: rekordy
|
|
144
|
+
many: rekordów
|
|
145
|
+
one: rekord
|
|
146
|
+
other: rekordów
|
|
142
147
|
records_selected_from_all_pages_html: Wybrane rekordy z wszystkich stron
|
|
143
148
|
reload: Odśwież
|
|
144
149
|
remove_selection: Usuń zaznaczenie
|
|
@@ -137,6 +137,9 @@ pt-BR:
|
|
|
137
137
|
pages: Páginas
|
|
138
138
|
per_page: Por página
|
|
139
139
|
prev_page: Página anterior
|
|
140
|
+
record:
|
|
141
|
+
one: registro
|
|
142
|
+
other: registros
|
|
140
143
|
records_selected_from_all_pages_html: Todos os registros de todas as páginas selecionados
|
|
141
144
|
reload: Recarregar
|
|
142
145
|
remove_selection: Remover seleção
|
|
@@ -137,6 +137,9 @@ pt:
|
|
|
137
137
|
pages: Páginas
|
|
138
138
|
per_page: Por página
|
|
139
139
|
prev_page: Página anterior
|
|
140
|
+
record:
|
|
141
|
+
one: registo
|
|
142
|
+
other: registos
|
|
140
143
|
records_selected_from_all_pages_html: Todos os itens de todas as páginas selecionados
|
|
141
144
|
reload: Recarregar
|
|
142
145
|
remove_selection: Remover seleção
|
|
@@ -140,6 +140,10 @@ ro:
|
|
|
140
140
|
pages: Pagini
|
|
141
141
|
per_page: Pe pagină
|
|
142
142
|
prev_page: Pagina anterioara
|
|
143
|
+
record:
|
|
144
|
+
few: înregistrări
|
|
145
|
+
one: înregistrare
|
|
146
|
+
other: înregistrări
|
|
143
147
|
records_selected_from_all_pages_html: Toate selectate din toate paginile
|
|
144
148
|
reload: Reîncarcă
|
|
145
149
|
remove_selection: Șterge selecția
|
|
@@ -139,6 +139,11 @@ ru:
|
|
|
139
139
|
pages: Страницы
|
|
140
140
|
per_page: На странице
|
|
141
141
|
prev_page: Предыдущая страница
|
|
142
|
+
record:
|
|
143
|
+
few: записи
|
|
144
|
+
many: записей
|
|
145
|
+
one: запись
|
|
146
|
+
other: записей
|
|
142
147
|
records_selected_from_all_pages_html: Все записи выбраны со всех страниц
|
|
143
148
|
reload: Обновить
|
|
144
149
|
remove_selection: Убрать выбор
|
|
@@ -137,6 +137,9 @@ tr:
|
|
|
137
137
|
pages: Sayfalar
|
|
138
138
|
per_page: Sayfa başına
|
|
139
139
|
prev_page: Önceki sayfa
|
|
140
|
+
record:
|
|
141
|
+
one: kayıt
|
|
142
|
+
other: kayıtlar
|
|
140
143
|
records_selected_from_all_pages_html: Tüm sayfalardan seçilen tüm kayıtlar
|
|
141
144
|
reload: Yeniden yükle
|
|
142
145
|
remove_selection: Seçimi sil
|
|
@@ -137,6 +137,11 @@ ua:
|
|
|
137
137
|
pages: Pages
|
|
138
138
|
per_page: На сторінці
|
|
139
139
|
prev_page: Попередня сторінка
|
|
140
|
+
record:
|
|
141
|
+
few: записи
|
|
142
|
+
many: записів
|
|
143
|
+
one: запис
|
|
144
|
+
other: записів
|
|
140
145
|
records_selected_from_all_pages_html: Вибрані всі записи з усіх сторінок
|
|
141
146
|
reload: Перезавантажити
|
|
142
147
|
remove_selection: Видалити вибір
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: avo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.0.0.beta.
|
|
4
|
+
version: 4.0.0.beta.41
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Adrian Marin
|
|
@@ -749,6 +749,7 @@ files:
|
|
|
749
749
|
- app/javascript/js/controllers/actions_overflow_controller.js
|
|
750
750
|
- app/javascript/js/controllers/actions_picker_controller.js
|
|
751
751
|
- app/javascript/js/controllers/appearance_controller.js
|
|
752
|
+
- app/javascript/js/controllers/appearance_preview_controller.js
|
|
752
753
|
- app/javascript/js/controllers/attachments_controller.js
|
|
753
754
|
- app/javascript/js/controllers/base_modal_controller.js
|
|
754
755
|
- app/javascript/js/controllers/boolean_filter_controller.js
|
|
@@ -891,10 +892,10 @@ files:
|
|
|
891
892
|
- avo.gemspec
|
|
892
893
|
- bin/dev
|
|
893
894
|
- bin/helpers.rb
|
|
894
|
-
- bin/init
|
|
895
895
|
- bin/prod
|
|
896
896
|
- bin/rails
|
|
897
897
|
- bin/rspec
|
|
898
|
+
- bin/setup
|
|
898
899
|
- bin/spring
|
|
899
900
|
- bin/test
|
|
900
901
|
- config/brakeman.ignore
|
data/bin/init
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
|
|
3
|
-
require_relative 'helpers'
|
|
4
|
-
|
|
5
|
-
app_root do
|
|
6
|
-
use_docker = ask(
|
|
7
|
-
question: 'Would you like to use Docker Compose for Postgres?',
|
|
8
|
-
valid_answers: ['y', 'N']
|
|
9
|
-
)
|
|
10
|
-
|
|
11
|
-
header 'Configuring git'
|
|
12
|
-
target_upstream = "https://github.com/avo-hq/avo.git"
|
|
13
|
-
current_upstream = `git config --get remote.upstream.url`.chomp
|
|
14
|
-
if current_upstream.nil? || current_upstream.empty?
|
|
15
|
-
puts "Adding new remote 'upstream' to #{target_upstream}"
|
|
16
|
-
run! "git remote add upstream #{target_upstream}"
|
|
17
|
-
elsif current_upstream != target_upstream
|
|
18
|
-
puts "Updating existing remote 'upstream' to #{target_upstream}"
|
|
19
|
-
run! "git remote set-url upstream #{target_upstream}"
|
|
20
|
-
else
|
|
21
|
-
puts "Remote 'upstream' already points to #{target_upstream}, no change"
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
header 'Installing gems'
|
|
25
|
-
run! 'bundle install'
|
|
26
|
-
|
|
27
|
-
header 'Installing Yarn packages'
|
|
28
|
-
run! 'yarn'
|
|
29
|
-
run! '(cd spec/dummy; yarn)'
|
|
30
|
-
run! '(cp spec/dummy/.env.test.sample spec/dummy/.env.test)'
|
|
31
|
-
|
|
32
|
-
if use_docker == 'y'
|
|
33
|
-
header 'Creating the Docker volume'
|
|
34
|
-
run! 'docker volume create --name=avo-db-data'
|
|
35
|
-
|
|
36
|
-
header 'Creating and running the Docker image'
|
|
37
|
-
run! 'docker-compose up -d'
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
header 'Preparing the database'
|
|
41
|
-
run! 'bin/rails db:setup'
|
|
42
|
-
|
|
43
|
-
header 'Building assets'
|
|
44
|
-
run! 'yarn build:js'
|
|
45
|
-
run! 'yarn build:custom-js'
|
|
46
|
-
run! 'yarn build:css'
|
|
47
|
-
|
|
48
|
-
if use_docker == 'y'
|
|
49
|
-
header 'Stopping the Docker image'
|
|
50
|
-
run! 'docker-compose stop'
|
|
51
|
-
end
|
|
52
|
-
end
|