decidim-forms 0.24.0 → 0.25.0.rc1
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/app/cells/decidim/forms/step_navigation/show.erb +1 -1
- data/app/commands/decidim/forms/admin/update_questionnaire.rb +3 -2
- data/app/forms/decidim/forms/admin/question_form.rb +14 -0
- data/app/forms/decidim/forms/admin/question_matrix_row_form.rb +2 -2
- data/app/forms/decidim/forms/questionnaire_form.rb +1 -0
- data/app/helpers/decidim/forms/application_helper.rb +1 -0
- data/app/jobs/decidim/forms/export_questionnaire_answers_job.rb +1 -1
- data/app/models/decidim/forms/question.rb +4 -0
- data/app/models/decidim/forms/question_matrix_row.rb +3 -0
- data/app/packs/entrypoints/decidim_forms.js +4 -0
- data/app/packs/entrypoints/decidim_forms_admin.js +4 -0
- data/app/packs/entrypoints/decidim_questionnaire_answers_pdf.js +1 -0
- data/app/packs/entrypoints/decidim_questionnaire_answers_pdf.scss +1 -0
- data/app/{assets/images/decidim/surveys/icon.svg → packs/images/decidim/surveys/decidim_surveys.svg} +0 -0
- data/app/packs/src/decidim/forms/admin/auto_buttons_by_min_items.component.js +20 -0
- data/app/packs/src/decidim/forms/admin/auto_select_options_by_total_items.component.js +18 -0
- data/app/packs/src/decidim/forms/admin/auto_select_options_from_url.component.js +35 -0
- data/app/{assets/javascripts/decidim/forms/admin/collapsible_questions.js.es6 → packs/src/decidim/forms/admin/collapsible_questions.js} +0 -0
- data/app/{assets/javascripts/decidim/forms/admin/forms.js.es6 → packs/src/decidim/forms/admin/forms.js} +16 -12
- data/app/packs/src/decidim/forms/admin/live_text_update.component.js +49 -0
- data/app/packs/src/decidim/forms/autosortable_checkboxes.component.js +83 -0
- data/app/packs/src/decidim/forms/display_conditions.component.js +200 -0
- data/app/{assets/javascripts/decidim/forms/forms.js.es6 → packs/src/decidim/forms/forms.js} +7 -7
- data/app/packs/src/decidim/forms/max_choices_alert.component.js +43 -0
- data/app/packs/src/decidim/forms/option_attached_inputs.component.js +31 -0
- data/app/{assets → packs}/stylesheets/decidim/forms/forms.scss +5 -0
- data/app/{assets → packs}/stylesheets/decidim/forms/questionnaire-answers-pdf.scss +0 -0
- data/app/views/decidim/forms/admin/questionnaires/_display_condition.html.erb +2 -2
- data/app/views/decidim/forms/admin/questionnaires/_form.html.erb +5 -3
- data/app/views/decidim/forms/admin/questionnaires/_matrix_row.html.erb +1 -0
- data/app/views/decidim/forms/admin/questionnaires/_question.html.erb +1 -1
- data/app/views/decidim/forms/questionnaires/answers/_matrix_multiple.html.erb +1 -1
- data/app/views/decidim/forms/questionnaires/answers/_matrix_single.html.erb +1 -1
- data/app/views/decidim/forms/questionnaires/show.html.erb +7 -1
- data/app/views/layouts/decidim/forms/admin/questionnaires/questionnaire_answers.html.erb +1 -1
- data/config/assets.rb +10 -0
- data/config/locales/fr-LU.yml +178 -0
- data/config/locales/hu.yml +2 -0
- data/config/locales/it.yml +7 -0
- data/config/locales/ja.yml +8 -0
- data/config/locales/lb-LU.yml +1 -0
- data/config/locales/pl.yml +2 -2
- data/config/locales/pt-BR.yml +93 -0
- data/config/locales/sv.yml +9 -0
- data/db/migrate/20170515144119_create_decidim_forms_answers.rb +1 -2
- data/db/migrate/20210616153042_set_position_to_question_matrix_rows.rb +11 -0
- data/lib/decidim/forms/admin_engine.rb +0 -4
- data/lib/decidim/forms/engine.rb +2 -4
- data/lib/decidim/forms/test/factories.rb +39 -2
- data/lib/decidim/forms/test/shared_examples/has_questionnaire.rb +2 -0
- data/lib/decidim/forms/user_answers_serializer.rb +3 -0
- data/lib/decidim/forms/version.rb +1 -1
- metadata +35 -32
- data/app/assets/config/admin/decidim_forms_manifest.css +0 -3
- data/app/assets/config/admin/decidim_forms_manifest.js +0 -2
- data/app/assets/config/decidim_forms_manifest.css +0 -4
- data/app/assets/config/decidim_forms_manifest.js +0 -1
- data/app/assets/javascripts/decidim/forms/admin/auto_buttons_by_min_items.component.js.es6 +0 -25
- data/app/assets/javascripts/decidim/forms/admin/auto_select_options_by_total_items.component.js.es6 +0 -23
- data/app/assets/javascripts/decidim/forms/admin/auto_select_options_from_url.component.js.es6 +0 -40
- data/app/assets/javascripts/decidim/forms/admin/live_text_update.component.js.es6 +0 -52
- data/app/assets/javascripts/decidim/forms/autosortable_checkboxes.component.js.es6 +0 -85
- data/app/assets/javascripts/decidim/forms/display_conditions.component.js.es6 +0 -203
- data/app/assets/javascripts/decidim/forms/max_choices_alert.component.js.es6 +0 -44
- data/app/assets/javascripts/decidim/forms/option_attached_inputs.component.js.es6 +0 -32
- data/config/locales/ja-JP.yml +0 -170
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
((exports) => {
|
|
2
|
-
class MaxChoicesAlertComponent {
|
|
3
|
-
constructor(options = {}) {
|
|
4
|
-
this.wrapperField = options.wrapperField;
|
|
5
|
-
this.alertElement = options.alertElement;
|
|
6
|
-
this.controllerFieldSelector = options.controllerFieldSelector;
|
|
7
|
-
this.controllerCollectionSelector = options.controllerCollectionSelector;
|
|
8
|
-
this.maxChoices = options.maxChoices;
|
|
9
|
-
this.controllerSelector = this.wrapperField.find(this.controllerFieldSelector);
|
|
10
|
-
this._bindEvent();
|
|
11
|
-
this._run();
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
_run() {
|
|
15
|
-
const rows = this.wrapperField.find(this.controllerCollectionSelector);
|
|
16
|
-
|
|
17
|
-
let alert = false;
|
|
18
|
-
|
|
19
|
-
rows.each((rowIdx, row) => {
|
|
20
|
-
const checked = $(row).find(this.controllerFieldSelector).filter((checkboxIdx, checkbox) => $(checkbox).is(":checked"));
|
|
21
|
-
|
|
22
|
-
alert = alert || checked.length > this.maxChoices;
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
if (alert) {
|
|
26
|
-
this.alertElement.show();
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
this.alertElement.hide();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
_bindEvent() {
|
|
34
|
-
this.controllerSelector.on("change", () => {
|
|
35
|
-
this._run();
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
exports.Decidim = exports.Decidim || {};
|
|
41
|
-
exports.Decidim.createMaxChoicesAlertComponent = (options) => {
|
|
42
|
-
return new MaxChoicesAlertComponent(options);
|
|
43
|
-
};
|
|
44
|
-
})(window);
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
((exports) => {
|
|
2
|
-
class OptionAttachedInputsComponent {
|
|
3
|
-
constructor(options = {}) {
|
|
4
|
-
this.wrapperField = options.wrapperField;
|
|
5
|
-
this.controllerFieldSelector = options.controllerFieldSelector;
|
|
6
|
-
this.dependentInputSelector = options.dependentInputSelector;
|
|
7
|
-
this.controllerSelector = this.wrapperField.find(this.controllerFieldSelector);
|
|
8
|
-
this._bindEvent();
|
|
9
|
-
this._run();
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
_run() {
|
|
13
|
-
this.controllerSelector.each((idx, el) => {
|
|
14
|
-
const $field = $(el);
|
|
15
|
-
const enabled = $field.is(":checked");
|
|
16
|
-
|
|
17
|
-
$field.parents("div.collection-input").find(this.dependentInputSelector).prop("disabled", !enabled);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
_bindEvent() {
|
|
22
|
-
this.controllerSelector.on("change", () => {
|
|
23
|
-
this._run();
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
exports.Decidim = exports.Decidim || {};
|
|
29
|
-
exports.Decidim.createOptionAttachedInputs = (options) => {
|
|
30
|
-
return new OptionAttachedInputsComponent(options);
|
|
31
|
-
};
|
|
32
|
-
})(window);
|
data/config/locales/ja-JP.yml
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
ja:
|
|
2
|
-
activemodel:
|
|
3
|
-
attributes:
|
|
4
|
-
answer:
|
|
5
|
-
body: 回答
|
|
6
|
-
question:
|
|
7
|
-
max_choices: 選択肢の最大数
|
|
8
|
-
question_type: タイプ
|
|
9
|
-
questionnaire_question:
|
|
10
|
-
mandatory: Mandatory
|
|
11
|
-
errors:
|
|
12
|
-
models:
|
|
13
|
-
answer:
|
|
14
|
-
attributes:
|
|
15
|
-
choices:
|
|
16
|
-
missing: は完全ではありません
|
|
17
|
-
too_many: 多すぎます
|
|
18
|
-
questionnaire:
|
|
19
|
-
request_invalid: リクエストの処理中にエラーが発生しました。もう一度やり直してください。
|
|
20
|
-
decidim:
|
|
21
|
-
forms:
|
|
22
|
-
admin:
|
|
23
|
-
models:
|
|
24
|
-
components:
|
|
25
|
-
description: 説明
|
|
26
|
-
tos: 利用規約
|
|
27
|
-
questionnaires:
|
|
28
|
-
actions:
|
|
29
|
-
back: 質問に戻る
|
|
30
|
-
show: 回答を表示
|
|
31
|
-
answer_option:
|
|
32
|
-
answer_option: 回答オプション
|
|
33
|
-
free_text: フリーテキスト
|
|
34
|
-
remove: 削除
|
|
35
|
-
statement: ステートメント
|
|
36
|
-
answers:
|
|
37
|
-
actions:
|
|
38
|
-
back: 返信に戻る
|
|
39
|
-
export: エクスポート
|
|
40
|
-
show: 回答を表示
|
|
41
|
-
empty: まだ回答がありません
|
|
42
|
-
export:
|
|
43
|
-
answer:
|
|
44
|
-
title: '応答 #%{number}'
|
|
45
|
-
export_response:
|
|
46
|
-
title: survey_user_answers_%{token}
|
|
47
|
-
index:
|
|
48
|
-
title: "合計%{total} 件の回答"
|
|
49
|
-
show:
|
|
50
|
-
title: '回答 #%{number}'
|
|
51
|
-
display_condition:
|
|
52
|
-
answer_option: 回答オプション
|
|
53
|
-
condition_question: 質問
|
|
54
|
-
condition_type: 条件
|
|
55
|
-
condition_types:
|
|
56
|
-
answered: 回答済み
|
|
57
|
-
equal: 等しい
|
|
58
|
-
match: テキストを含む
|
|
59
|
-
not_answered: 応答がありません
|
|
60
|
-
not_equal: 等しくない
|
|
61
|
-
condition_value: 含まれるテキスト
|
|
62
|
-
display_condition: 条件を表示
|
|
63
|
-
mandatory: 他の条件にかかわらず、この条件は常に満たされる必要があります
|
|
64
|
-
remove: 削除
|
|
65
|
-
save_warning: 表示条件を設定する前にフォームを保存してください
|
|
66
|
-
select_answer_option: 回答オプションを選択
|
|
67
|
-
select_condition_question: 質問を選択
|
|
68
|
-
select_condition_type: 条件の種類を選択
|
|
69
|
-
edit:
|
|
70
|
-
save: 保存
|
|
71
|
-
title: アンケートを編集
|
|
72
|
-
form:
|
|
73
|
-
add_question: 質問を追加
|
|
74
|
-
add_separator: 区切り文字を追加
|
|
75
|
-
already_answered_warning: このフォームはすでに一部のユーザーによって回答されているため、質問を修正することはできません。
|
|
76
|
-
collapse: すべての質問を閉じる
|
|
77
|
-
expand: すべての質問を展開
|
|
78
|
-
preview: プレビュー
|
|
79
|
-
title: フォームの編集
|
|
80
|
-
unpublished_warning: フォームは公開されていません。質問を修正することはできますが、そうすると現在の回答が削除されます。
|
|
81
|
-
matrix_row:
|
|
82
|
-
matrix_row: 行
|
|
83
|
-
remove: 削除
|
|
84
|
-
statement: ステートメント
|
|
85
|
-
question:
|
|
86
|
-
add_answer_option: 回答オプションを追加
|
|
87
|
-
add_display_condition: 表示条件を追加
|
|
88
|
-
add_display_condition_info: 表示条件を設定するためにフォームを保存します
|
|
89
|
-
add_matrix_row: 行を追加
|
|
90
|
-
any: 任意の
|
|
91
|
-
collapse: 折りたたむ
|
|
92
|
-
description: 説明
|
|
93
|
-
down: 下
|
|
94
|
-
expand: 展開
|
|
95
|
-
question: 質問
|
|
96
|
-
remove: 削除
|
|
97
|
-
statement: ステートメント
|
|
98
|
-
up: 上へ
|
|
99
|
-
separator:
|
|
100
|
-
down: 下
|
|
101
|
-
remove: 削除
|
|
102
|
-
separator: 区切り記号
|
|
103
|
-
up: 上へ
|
|
104
|
-
update:
|
|
105
|
-
invalid: フォームの保存に失敗しました。
|
|
106
|
-
success: フォームを保存しました。
|
|
107
|
-
errors:
|
|
108
|
-
answer:
|
|
109
|
-
body: 本文は空白にできません
|
|
110
|
-
files:
|
|
111
|
-
extension_whitelist: '承認されたフォーマット:'
|
|
112
|
-
images:
|
|
113
|
-
dimensions: "%{width} x %{height} px"
|
|
114
|
-
dimensions_info: 'この画像は次のようになります:'
|
|
115
|
-
processors:
|
|
116
|
-
resize_and_pad: リサイズおよびパッド先
|
|
117
|
-
resize_to_fit: フィットするようにリサイズしました
|
|
118
|
-
question_types:
|
|
119
|
-
long_answer: 長い回答
|
|
120
|
-
matrix_multiple: マトリクス (複数オプション)
|
|
121
|
-
matrix_single: マトリクス(シングルオプション)
|
|
122
|
-
multiple_option: 複数のオプション
|
|
123
|
-
short_answer: 短い回答
|
|
124
|
-
single_option: 単一オプション
|
|
125
|
-
sorting: 並び替え
|
|
126
|
-
questionnaires:
|
|
127
|
-
answer:
|
|
128
|
-
invalid: フォームの回答に問題がありました。
|
|
129
|
-
max_choices_alert: 選択された選択肢が多すぎます
|
|
130
|
-
success: フォームは正常に回答しました。
|
|
131
|
-
question:
|
|
132
|
-
max_choices: '最大選択肢: %{n}'
|
|
133
|
-
show:
|
|
134
|
-
answer_questionnaire:
|
|
135
|
-
anonymous_user_message: <a href="%{sign_in_link}">アカウント</a> でサインインするか、 <a href="%{sign_up_link}">サインアップ</a> してフォームに回答してください。
|
|
136
|
-
title: フォームに回答
|
|
137
|
-
current_step: ステップ %{step}
|
|
138
|
-
of_total_steps: / %{total_steps}
|
|
139
|
-
questionnaire_answered:
|
|
140
|
-
body: このフォームには既に回答済みです。
|
|
141
|
-
title: すでに回答済み
|
|
142
|
-
questionnaire_closed:
|
|
143
|
-
body: フォームが閉じられているため、回答できません。
|
|
144
|
-
title: フォームを閉じました
|
|
145
|
-
questionnaire_for_private_users:
|
|
146
|
-
body: このフォームはプライベートユーザーのみ利用できます
|
|
147
|
-
title: フォームを閉じました
|
|
148
|
-
questionnaire_js_disabled:
|
|
149
|
-
body: このフォームのいくつかの機能は無効になります。あなたのエクスペリエンスを向上させるために、ブラウザでJavaScriptを有効にしてください。
|
|
150
|
-
title: JavaScriptは無効です
|
|
151
|
-
questionnaire_not_published:
|
|
152
|
-
body: このフォームはまだ公開されていません。
|
|
153
|
-
tos_agreement: 参加することにより、利用規約に同意します。
|
|
154
|
-
step_navigation:
|
|
155
|
-
show:
|
|
156
|
-
are_you_sure: この操作は元に戻すことができず、回答を編集することはできません。よろしいですか?
|
|
157
|
-
back: 戻る
|
|
158
|
-
continue: 続ける
|
|
159
|
-
submit: 送信
|
|
160
|
-
user_answers_serializer:
|
|
161
|
-
body: 回答
|
|
162
|
-
completion: 完了
|
|
163
|
-
created_at: 回答日時
|
|
164
|
-
id: 回答ID
|
|
165
|
-
ip_hash: IP ハッシュ
|
|
166
|
-
question: 質問
|
|
167
|
-
registered: 登録済み
|
|
168
|
-
session_token: ユーザー識別子
|
|
169
|
-
unregistered: 未登録
|
|
170
|
-
user_status: ユーザーの状態
|