decidim-forms 0.24.3 → 0.25.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- 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/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: ユーザーの状態
|