decidim-reporting_proposals 0.5.2 → 0.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/lint.yml +3 -3
- data/.github/workflows/test_integration.yml +17 -3
- data/.github/workflows/test_unit.yml +18 -4
- data/.gitignore +2 -0
- data/.rubocop.yml +1 -3
- data/.rubocop_ruby.yml +1 -2
- data/.ruby-version +1 -1
- data/Gemfile +6 -5
- data/Gemfile.lock +381 -402
- data/README.md +14 -9
- data/Rakefile +0 -2
- data/app/cells/concerns/decidim/reporting_proposals/linked_resources_for_cell_override.rb +23 -0
- data/app/cells/decidim/reporting_proposals/edit_note_modal/show.erb +22 -19
- data/app/commands/concerns/decidim/{proposals → reporting_proposals}/admin/answer_proposal_override.rb +2 -2
- data/app/commands/concerns/decidim/{proposals → reporting_proposals}/admin/assign_proposals_to_valuator_override.rb +1 -1
- data/app/commands/concerns/decidim/reporting_proposals/admin/update_category_override.rb +1 -1
- data/app/commands/concerns/decidim/reporting_proposals/admin/update_proposal_answer_template_override.rb +26 -0
- data/app/commands/concerns/decidim/{proposals → reporting_proposals}/publish_proposal_override.rb +2 -2
- data/app/commands/decidim/reporting_proposals/create_reporting_proposal.rb +1 -1
- data/app/commands/decidim/reporting_proposals/update_reporting_proposal.rb +38 -0
- data/app/controllers/concerns/decidim/reporting_proposals/admin/proposal_answer_templates_controller_override.rb +14 -0
- data/app/controllers/concerns/decidim/reporting_proposals/admin/proposal_answers_controller_override.rb +1 -1
- data/app/controllers/concerns/decidim/reporting_proposals/admin/proposals_controller_override.rb +2 -2
- data/app/controllers/concerns/decidim/{proposals → reporting_proposals}/admin/valuation_assignments_controller_override.rb +5 -5
- data/app/controllers/concerns/decidim/reporting_proposals/needs_proposal_extra_validations_snippets.rb +0 -1
- data/app/controllers/concerns/decidim/reporting_proposals/proposals_controller_override.rb +39 -0
- data/app/controllers/decidim/reporting_proposals/admin/proposals_controller.rb +4 -4
- data/app/controllers/decidim/reporting_proposals/geolocation_controller.rb +1 -1
- data/app/events/concerns/decidim/{proposals → reporting_proposals}/publish_proposal_event_override.rb +1 -1
- data/app/forms/concerns/decidim/reporting_proposals/form_builder_override.rb +9 -16
- data/app/forms/concerns/decidim/reporting_proposals/map_builder_override.rb +6 -5
- data/app/forms/decidim/reporting_proposals/admin/proposal_photo_form.rb +1 -5
- data/app/forms/decidim/reporting_proposals/proposal_form.rb +2 -0
- data/app/helpers/concerns/decidim/reporting_proposals/proposal_wizard_helper_override.rb +7 -30
- data/app/helpers/concerns/decidim/reporting_proposals/resource_helper_override.rb +1 -1
- data/app/mailers/concerns/decidim/reporting_proposals/admin/hidden_resource_mailer.rb +30 -0
- data/app/mailers/concerns/decidim/{proposals → reporting_proposals}/admin/notification_answer_proposal_mailer.rb +1 -1
- data/app/mailers/concerns/decidim/{proposals → reporting_proposals}/admin/proposals_valuator_mailer.rb +2 -2
- data/app/mailers/concerns/decidim/{proposals → reporting_proposals}/notification_publish_proposal_mailer.rb +1 -1
- data/app/mailers/concerns/decidim/reporting_proposals/reported_mailer_override.rb +18 -0
- data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/add_valuators_name.html.erb.deface +2 -2
- data/app/overrides/decidim/proposals/admin/proposals/show/add_address.html.erb.deface +1 -1
- data/app/overrides/decidim/proposals/admin/proposals/show/add_photo_management.html.erb.deface +1 -1
- data/app/overrides/decidim/proposals/admin/proposals/show/add_send_email_btn.html.erb.deface +1 -1
- data/app/overrides/decidim/proposals/admin/proposals/show/add_valuators_form.html.erb.deface +16 -10
- data/app/overrides/decidim/proposals/proposals/_wizard_header/add_description.html.erb.deface +5 -0
- data/app/overrides/decidim/proposals/proposals/_wizard_header/replace_title.html.erb.deface +5 -6
- data/app/overrides/decidim/proposals/proposals/compare/add_css.html.erb.deface +5 -0
- data/app/overrides/decidim/proposals/proposals/compare/add_distance_badge.html.erb.deface +10 -0
- data/app/overrides/decidim/proposals/proposals/edit/add_css.html.erb.deface +1 -1
- data/app/overrides/decidim/proposals/proposals/edit/replace_javascript.html.erb.deface +2 -2
- data/app/overrides/decidim/proposals/proposals/edit_draft/replace_javascript.html.erb.deface +3 -3
- data/app/overrides/decidim/proposals/proposals/edit_draft/replace_partial_edit_form_fields.html.erb.deface +6 -1
- data/app/overrides/decidim/proposals/proposals/new/add_css.html.erb.deface +2 -2
- data/app/overrides/decidim/proposals/proposals/new/remove_body.html.erb.deface +1 -0
- data/app/overrides/decidim/proposals/proposals/new/remove_title.html.erb.deface +1 -1
- data/app/overrides/decidim/proposals/proposals/new/replace_javascript.html.erb.deface +2 -2
- data/app/overrides/decidim/proposals/proposals/preview/add_css.html.erb.deface +5 -0
- data/app/overrides/decidim/proposals/proposals/show/add_additional_button.html.erb.deface +1 -1
- data/app/packs/entrypoints/decidim_reporting_proposals.js +1 -0
- data/app/packs/src/decidim/reporting_proposals/proposal_extra_validations.js +12 -13
- data/app/packs/src/decidim/reporting_proposals/proposals/add_proposal.js +45 -41
- data/app/packs/src/decidim/reporting_proposals/reverse_geocoding.js +0 -2
- data/app/packs/src/decidim/reporting_proposals/user_camera_inputs.js +7 -7
- data/app/packs/stylesheets/decidim/reporting_proposals/geocoding_addons.scss +9 -26
- data/app/packs/stylesheets/decidim/reporting_proposals/list_component_admin.scss +6 -6
- data/app/packs/stylesheets/decidim/reporting_proposals/manage_component_admin.scss +44 -30
- data/app/packs/stylesheets/decidim/reporting_proposals/proposals/add_proposal.scss +9 -4
- data/app/packs/stylesheets/decidim/reporting_proposals/user_camera_inputs.scss +21 -13
- data/app/presenters/concerns/decidim/reporting_proposals/resource_locator_presenter_override.rb +40 -0
- data/app/resources/concerns/decidim/reporting_proposals/resource_manifest_override.rb +16 -0
- data/app/serializers/decidim/reporting_proposals/proposal_serializer_override.rb +4 -4
- data/app/views/decidim/proposals/admin/proposal_notes/_editing_note.html.erb +3 -3
- data/app/views/decidim/proposals/admin/proposal_notes/_proposal_notes_body.html.erb +1 -1
- data/app/views/decidim/proposals/admin/proposals/_address.html.erb +11 -10
- data/app/views/decidim/proposals/admin/proposals/_send_email_button.html.erb +6 -4
- data/app/views/decidim/proposals/proposals/_additional_button.html.erb +1 -1
- data/app/views/decidim/proposals/proposals/index.js.erb +0 -2
- data/app/views/decidim/reporting_proposals/admin/proposals/_photo_form.html.erb +2 -3
- data/app/views/decidim/reporting_proposals/admin/proposals/_photo_gallery.html.erb +3 -4
- data/app/views/decidim/reporting_proposals/admin/proposals/_photos.html.erb +15 -11
- data/app/views/decidim/reporting_proposals/admin/proposals/_proposal_td_hide.html.erb +7 -11
- data/app/views/decidim/reporting_proposals/admin/proposals/_proposal_td_title.html.erb +2 -2
- data/app/views/decidim/reporting_proposals/admin/proposals_valuator_mailer/notify_proposals_valuator.html.erb +17 -0
- data/app/views/decidim/reporting_proposals/proposals/_additional_button_for_show.html.erb +5 -2
- data/app/views/decidim/reporting_proposals/proposals/_camera_button.html.erb +26 -0
- data/app/views/decidim/reporting_proposals/proposals/_new_proposal_fields.html.erb +7 -5
- data/app/views/decidim/reporting_proposals/proposals/_reporting_proposal_fields.html.erb +61 -86
- data/app/views/decidim/reporting_proposals/proposals/_user_group.html.erb +1 -1
- data/bin/dev +5 -0
- data/bin/{webpack-dev-server → shakapacker} +1 -1
- data/bin/shakapacker-dev-server +6 -0
- data/config/assets.rb +1 -3
- data/config/locales/ca.yml +0 -2
- data/config/locales/en.yml +22 -48
- data/decidim-reporting_proposals.gemspec +1 -2
- data/lib/decidim/reporting_proposals/admin_engine.rb +4 -0
- data/lib/decidim/reporting_proposals/component.rb +26 -26
- data/lib/decidim/reporting_proposals/engine.rb +18 -12
- data/lib/decidim/reporting_proposals/test/factories.rb +2 -12
- data/lib/decidim/reporting_proposals/version.rb +3 -4
- data/lib/tasks/reporting_proposals_upgrade.rake +5 -0
- data/package-lock.json +4043 -5064
- data/package.json +12 -7
- metadata +73 -106
- data/app/commands/concerns/decidim/admin/hide_resource_override.rb +0 -34
- data/app/commands/concerns/decidim/templates/admin/copy_questionnaire_template_override.rb +0 -32
- data/app/commands/concerns/decidim/templates/admin/create_questionnaire_template_override.rb +0 -32
- data/app/commands/decidim/templates/admin/copy_proposal_answer_template.rb +0 -35
- data/app/commands/decidim/templates/admin/create_proposal_answer_template.rb +0 -48
- data/app/commands/decidim/templates/admin/update_proposal_answer_template.rb +0 -52
- data/app/controllers/concerns/decidim/templates/admin/application_controller_override.rb +0 -20
- data/app/controllers/decidim/templates/admin/proposal_answer_templates_controller.rb +0 -183
- data/app/forms/decidim/templates/admin/proposal_answer_template_form.rb +0 -21
- data/app/mailers/concerns/decidim/admin/hidden_resource_mailer.rb +0 -28
- data/app/mailers/concerns/decidim/reported_mailer_override.rb +0 -16
- data/app/overrides/decidim/proposals/admin/proposal_answers/_form/add_template_chooser.html.erb.deface +0 -5
- data/app/overrides/decidim/proposals/proposals/_edit_form_fields/replace_add_photos.html.erb.deface +0 -37
- data/app/overrides/decidim/proposals/proposals/_proposal_similar/add_distance_badge.html.erb.deface +0 -5
- data/app/overrides/decidim/proposals/proposals/edit_draft/add_css.html.erb.deface +0 -5
- data/app/overrides/decidim/proposals/proposals/edit_draft/add_user_group.html.erb.deface +0 -3
- data/app/packs/entrypoints/decidim_reporting_proposals_js_validations.js +0 -1
- data/app/packs/entrypoints/decidim_templates_admin.js +0 -1
- data/app/packs/src/decidim/templates/admin/proposal_answer_template_chooser.js +0 -27
- data/app/permissions/decidim/templates/admin/extra_permissions.rb +0 -37
- data/app/presenters/concerns/decidim/resource_locator_presenter_override.rb +0 -38
- data/app/resources/concerns/decidim/resource_manifest_override.rb +0 -14
- data/app/views/decidim/proposals/admin/proposals_valuator_mailer/notify_proposals_valuator.html.erb +0 -17
- data/app/views/decidim/templates/admin/proposal_answer_templates/_form.html.erb +0 -34
- data/app/views/decidim/templates/admin/proposal_answer_templates/_template_chooser.html.erb +0 -16
- data/app/views/decidim/templates/admin/proposal_answer_templates/edit.html.erb +0 -3
- data/app/views/decidim/templates/admin/proposal_answer_templates/index.html.erb +0 -52
- data/app/views/decidim/templates/admin/proposal_answer_templates/new.html.erb +0 -6
- data/db/migrate/20230404103706_add_target_and_field_values_to_decidim_templates_templates.rb +0 -8
- data/db/migrate/20230404104741_migrate_templatable.rb +0 -13
- /data/app/views/decidim/{admin → reporting_proposals/admin}/hidden_resource_mailer/notify_mail.html.erb +0 -0
- /data/app/views/decidim/{proposals → reporting_proposals}/admin/notification_answer_proposal_mailer/notify_proposal_author.html.erb +0 -0
- /data/app/views/decidim/{proposals → reporting_proposals}/notification_publish_proposal_mailer/notify_proposal_author.html.erb +0 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ReportingProposals
|
5
|
+
module Admin
|
6
|
+
# A custom mailer to mail Decidim users
|
7
|
+
# that they have been hidden
|
8
|
+
class HiddenResourceMailer < Decidim::ApplicationMailer
|
9
|
+
include Decidim::TranslationsHelper
|
10
|
+
include Decidim::SanitizeHelper
|
11
|
+
include Decidim::ApplicationHelper
|
12
|
+
include Decidim::TranslatableAttributes
|
13
|
+
|
14
|
+
helper Decidim::ResourceHelper
|
15
|
+
helper Decidim::TranslationsHelper
|
16
|
+
helper Decidim::ApplicationHelper
|
17
|
+
|
18
|
+
def notify_mail(resource, resource_authors, reason)
|
19
|
+
@resource_authors = resource_authors
|
20
|
+
@organization = resource.organization
|
21
|
+
@resource = resource
|
22
|
+
@reason = reason
|
23
|
+
|
24
|
+
mail(to: resource_authors.pluck(:email).uniq,
|
25
|
+
subject: I18n.t("decidim.admin.hidden_resource_mailer.notify_mail.subject"))
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Decidim
|
4
|
-
module
|
4
|
+
module ReportingProposals
|
5
5
|
module Admin
|
6
6
|
class ProposalsValuatorMailer < Decidim::ApplicationMailer
|
7
7
|
include Decidim::TranslationsHelper
|
@@ -21,7 +21,7 @@ module Decidim
|
|
21
21
|
|
22
22
|
with_user(user) do
|
23
23
|
mail to: "#{user.name} <#{user.email}>",
|
24
|
-
subject: t("subject", scope: "decidim.
|
24
|
+
subject: t("subject", scope: "decidim.reporting_proposals.admin.proposals_valuator_mailer.notify_proposals_valuator")
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module ReportingProposals
|
5
|
+
module ReportedMailerOverride
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
included do
|
9
|
+
helper Decidim::ComponentPathHelper
|
10
|
+
helper_method :resource_admin_url
|
11
|
+
|
12
|
+
def resource_admin_url
|
13
|
+
@resource_admin_url ||= Decidim::ResourceLocatorPresenter.new(@reportable).admin_url
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/app/overrides/decidim/proposals/admin/proposals/_proposal-tr/add_valuators_name.html.erb.deface
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
<!-- replace "erb[loud]:contains('proposal.valuation_assignments.
|
1
|
+
<!-- replace "erb[loud]:contains('proposal.valuation_assignments.size')" -->
|
2
2
|
|
3
|
-
<% count = proposal.valuation_assignments.
|
3
|
+
<% count = proposal.valuation_assignments.size %>
|
4
4
|
<% if count.zero? %>
|
5
5
|
0
|
6
6
|
<% else %>
|
data/app/overrides/decidim/proposals/admin/proposals/show/add_send_email_btn.html.erb.deface
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
<!-- insert_after "
|
1
|
+
<!-- insert_after ".component__show_nav-author-title" -->
|
2
2
|
|
3
3
|
<%= render partial: "decidim/proposals/admin/proposals/send_email_button", locals: { presented_author: presented_author } %>
|
data/app/overrides/decidim/proposals/admin/proposals/show/add_valuators_form.html.erb.deface
CHANGED
@@ -1,19 +1,25 @@
|
|
1
1
|
<!-- insert_after "#valuators" -->
|
2
2
|
|
3
3
|
<% if allowed_to? :assign_to_valuator, :proposals %>
|
4
|
-
<div id="js-assign-proposal-to-valuator-actions" class="js-bulk-action-form form-single-proposal"
|
4
|
+
<div id="js-assign-proposal-to-valuator-actions" class="js-bulk-action-form form-single-proposal my-4"
|
5
5
|
style="max-width:400px">
|
6
6
|
<%= form_tag(valuation_assignment_path, method: :post, id: "js-form-assign-proposal-to-valuator",
|
7
|
-
class: "
|
8
|
-
<div class="
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
class: "form form-defaults") do %>
|
8
|
+
<div class="form__wrapper">
|
9
|
+
<div class="card">
|
10
|
+
<div class="flex items-center">
|
11
|
+
<div class="checkboxes hide">
|
12
|
+
<%= check_box_tag "proposal_ids[]", proposal.id, true,
|
13
|
+
class: "js-check-all-proposal js-proposal-id-#{proposal.id}" %>
|
14
|
+
</div>
|
12
15
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
16
|
+
<%= bulk_valuators_select(current_participatory_space, t("decidim.proposals.admin.proposals.index.assign_to_valuator")) %>
|
17
|
+
<%= submit_tag(t("decidim.proposals.admin.proposals.index.assign_to_valuator_button"),
|
18
|
+
id: "js-submit-assign-proposal-to-valuator",
|
19
|
+
class: "button button__sm button__secondary ml-2") %>
|
20
|
+
</div>
|
21
|
+
</div>
|
22
|
+
</div>
|
17
23
|
<% end %>
|
18
24
|
</div>
|
19
25
|
<% end %>
|
@@ -1,14 +1,13 @@
|
|
1
|
-
<!-- replace ".
|
1
|
+
<!-- replace ".title-decorator" -->
|
2
2
|
|
3
3
|
<% if geocoding_comparison? && action_name == "compare" %>
|
4
|
-
<
|
4
|
+
<h1 class="title-decorator my-12">
|
5
5
|
<%= t("title", scope: "decidim.reporting_proposals.proposals.compare.geocoding") %>
|
6
6
|
<%= "(#{@similar_proposals.count})" if @similar_proposals.present? %>
|
7
|
-
</
|
8
|
-
<p><%= t("description", scope: "decidim.reporting_proposals.proposals.compare.geocoding", meters: distance) %></p>
|
7
|
+
</h1>
|
9
8
|
<% else %>
|
10
|
-
<
|
9
|
+
<h1 class="title-decorator my-12">
|
11
10
|
<%= proposal_wizard_step_title action_name %>
|
12
11
|
<%= "(#{@similar_proposals.count})" if @similar_proposals.present? %>
|
13
|
-
</
|
12
|
+
</h1>
|
14
13
|
<% end %>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<!-- replace "erb[loud]:contains('card_for @proposal')" -->
|
2
|
+
|
3
|
+
<% if geocoding_comparison? %>
|
4
|
+
<div class="compare-by-distance mb-6">
|
5
|
+
<span class="label secondary float-right"><%= icon("map-pin-line") %> <%= t("away", scope: "decidim.reporting_proposals.proposals.compare.geocoding", meters: distance(1000 * @proposal.distance_from([proposal.latitude, proposal.longitude], :km))) %></span>
|
6
|
+
<%= card_for proposal %>
|
7
|
+
</div>
|
8
|
+
<% else %>
|
9
|
+
<%= card_for proposal %>
|
10
|
+
<% end %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<!-- replace "erb[loud]:contains('javascript_pack_tag')" -->
|
2
2
|
|
3
3
|
<% if reporting_proposal? %>
|
4
|
-
<%=
|
4
|
+
<%= prepend_javascript_pack_tag "decidim_reporting_proposals" %>
|
5
5
|
<% else %>
|
6
|
-
<%=
|
6
|
+
<%= prepend_javascript_pack_tag "decidim_proposals" %>
|
7
7
|
<% end %>
|
data/app/overrides/decidim/proposals/proposals/edit_draft/replace_javascript.html.erb.deface
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
<!-- replace "erb[loud]:contains('javascript_pack_tag')" -->
|
2
2
|
|
3
3
|
<% if reporting_proposal? %>
|
4
|
-
<%=
|
5
|
-
<%=
|
4
|
+
<%= prepend_javascript_pack_tag "decidim_reporting_proposals" %>
|
5
|
+
<%= append_stylesheet_pack_tag "decidim_reporting_proposals" %>
|
6
6
|
<% else %>
|
7
|
-
<%=
|
7
|
+
<%= prepend_javascript_pack_tag "decidim_proposals" %>
|
8
8
|
<% end %>
|
@@ -1,3 +1,8 @@
|
|
1
1
|
<!-- replace "erb[loud]:contains('edit_form_fields')" -->
|
2
2
|
|
3
|
-
|
3
|
+
<% if reporting_proposal? %>
|
4
|
+
<%= render "decidim/reporting_proposals/proposals/reporting_proposal_fields", form: form %>
|
5
|
+
<%= render "decidim/reporting_proposals/proposals/user_group", form: form %>
|
6
|
+
<% else %>
|
7
|
+
<%= render "decidim/proposals/proposals/edit_form_fields", form: form %>
|
8
|
+
<% end %>
|
@@ -1,5 +1,5 @@
|
|
1
|
-
<!--
|
1
|
+
<!-- insert_after "erb[loud]:contains('append_stylesheet_pack_tag')" -->
|
2
2
|
|
3
3
|
<% if reporting_proposal? %>
|
4
|
-
|
4
|
+
<% append_stylesheet_pack_tag "decidim_reporting_proposals" %>
|
5
5
|
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<!-- remove "erb[loud]:contains('text_editor_for_proposal_body(form)')" -->
|
@@ -1 +1 @@
|
|
1
|
-
<!-- remove "
|
1
|
+
<!-- remove "erb[loud]:contains(':title')" -->
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<!-- replace "erb[loud]:contains('javascript_pack_tag')" -->
|
2
2
|
|
3
3
|
<% if reporting_proposal? %>
|
4
|
-
|
4
|
+
<% append_javascript_pack_tag "decidim_reporting_proposals" %>
|
5
5
|
<% else %>
|
6
|
-
|
6
|
+
<% append_javascript_pack_tag "decidim_proposals" %>
|
7
7
|
<% end %>
|
@@ -2,12 +2,7 @@ $(() => {
|
|
2
2
|
|
3
3
|
const $title = $('input[name="proposal[title]"]');
|
4
4
|
const $body = $('[name="proposal[body]"]');
|
5
|
-
|
6
|
-
try {
|
7
|
-
quill = window.Quill.find(document.querySelector(".editor-container"));
|
8
|
-
} catch (e) {
|
9
|
-
console.log("Quill not found");
|
10
|
-
}
|
5
|
+
const prosemirror = document.querySelector(".ProseMirror");
|
11
6
|
const $form = $title.closest("form");
|
12
7
|
|
13
8
|
const findError = ($field, prop) => {
|
@@ -15,12 +10,12 @@ $(() => {
|
|
15
10
|
if (!$closest.length) {
|
16
11
|
$closest = $field.closest(".editor");
|
17
12
|
}
|
18
|
-
// console.log("findError", $closest, $field, prop);
|
19
13
|
let search = `.form-error.${prop}`;
|
20
14
|
if (!prop) {
|
21
15
|
search = ".form-error"
|
22
16
|
}
|
23
17
|
let $error = $closest.find(search);
|
18
|
+
console.log("findError", "$closest", $closest, " $field", $field, "prop", prop, "$error", $error);
|
24
19
|
if ($error.length === 0) {
|
25
20
|
$error = $(`<span class="${search.replace(/\./g, " ")}"></span>`).appendTo($closest);
|
26
21
|
}
|
@@ -42,7 +37,7 @@ $(() => {
|
|
42
37
|
};
|
43
38
|
|
44
39
|
const validate = ($field, value, options) => {
|
45
|
-
|
40
|
+
console.log("validate", $field, value, options);
|
46
41
|
|
47
42
|
// validate caps if needed
|
48
43
|
const minLen = $field.attr("minlength");
|
@@ -64,23 +59,27 @@ $(() => {
|
|
64
59
|
$title.change(() => {
|
65
60
|
clearErrors($title, "caps");
|
66
61
|
});
|
67
|
-
if (
|
68
|
-
// on change
|
69
|
-
|
62
|
+
if (prosemirror) {
|
63
|
+
// on change prosemirror (tiptap is not available as a global object)
|
64
|
+
prosemirror.addEventListener("focus", () => {
|
65
|
+
clearErrors($body, "caps");
|
66
|
+
});
|
67
|
+
prosemirror.addEventListener("blur", () => {
|
70
68
|
clearErrors($body, "caps");
|
71
69
|
clearErrors($body);
|
72
70
|
});
|
73
71
|
} else {
|
74
72
|
$body.change(() => {
|
75
73
|
clearErrors($body, "caps");
|
74
|
+
clearErrors($body);
|
76
75
|
});
|
77
76
|
}
|
78
77
|
$form.on("submit", (ev) => {
|
79
78
|
if (!validate($title, $title.val(), Decidim.ProposalRules.title)) {
|
80
79
|
ev.preventDefault();
|
81
80
|
}
|
82
|
-
if (!validate($body,
|
83
|
-
?
|
81
|
+
if (!validate($body, prosemirror
|
82
|
+
? prosemirror.textContent
|
84
83
|
: $body.val(), Decidim.ProposalRules.body)) {
|
85
84
|
ev.preventDefault();
|
86
85
|
}
|
@@ -4,63 +4,67 @@ $(() => {
|
|
4
4
|
const $checkbox = $("input:checkbox[name$='[has_no_address]']");
|
5
5
|
const $hasAdressInput = $("input[name$='[has_address]']");
|
6
6
|
const $addressInput = $("#address_input");
|
7
|
-
const $addressInputField = $("
|
7
|
+
const $addressInputField = $("[data-decidim-geocoding]");
|
8
8
|
const $map = $("#address_map");
|
9
9
|
let latFieldName = "proposal[latitude]";
|
10
10
|
let longFieldName = "proposal[longitude]";
|
11
11
|
const $labelInput = $("label[for='proposal_address']");
|
12
12
|
const $buttonLocation = $(".user-device-location button");
|
13
13
|
|
14
|
-
$map.
|
14
|
+
if ($map.length) {
|
15
|
+
if (!$addressInputField.data("coordinates")) {
|
16
|
+
$map.hide();
|
17
|
+
}
|
18
|
+
$addressInputField.on("geocoder-suggest-coordinates.decidim", () => $map.show());
|
15
19
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
// Handle no address checkbox in reverse, mandatory by default instead of default decidim
|
21
|
+
if ($checkbox.length > 0) {
|
22
|
+
const toggleInput = () => {
|
23
|
+
$hasAdressInput.val($checkbox[0].checked
|
24
|
+
? 0
|
25
|
+
: 1);
|
22
26
|
|
23
|
-
|
24
|
-
|
27
|
+
if ($checkbox[0].checked) {
|
28
|
+
const $formError = $labelInput.find('span.form-error[style="display: block;"]');
|
25
29
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
$formError.attr("style", "display:none;");
|
30
|
+
$map.hide();
|
31
|
+
$addressInputField.prop("disabled", true);
|
32
|
+
$addressInputField.removeClass("is-invalid-input");
|
33
|
+
$labelInput.removeClass("is-invalid-label");
|
34
|
+
$buttonLocation.prop("disabled", true);
|
35
|
+
$formError.attr("style", "display:none;");
|
33
36
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
+
} else {
|
38
|
+
if ($(`input[name='${latFieldName}']`).val()) {
|
39
|
+
$map.show();
|
40
|
+
}
|
41
|
+
$addressInputField.prop("disabled", false);
|
42
|
+
$buttonLocation.prop("disabled", false);
|
37
43
|
}
|
38
|
-
$addressInputField.prop("disabled", false);
|
39
|
-
$buttonLocation.prop("disabled", false);
|
40
44
|
}
|
45
|
+
toggleInput();
|
46
|
+
$checkbox.on("change", toggleInput);
|
41
47
|
}
|
42
|
-
toggleInput();
|
43
|
-
$checkbox.on("change", toggleInput);
|
44
|
-
}
|
45
48
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
$(
|
51
|
-
|
49
|
+
$("[data-decidim-map]").on("ready.decidim", () => {
|
50
|
+
if ($addressInput.length <= 0) {
|
51
|
+
return;
|
52
|
+
}
|
53
|
+
const ctrl = $("[data-decidim-map]").data("map-controller");
|
54
|
+
ctrl.setEventHandler("coordinates", (ev) => {
|
55
|
+
$(`input[name='${latFieldName}']`).val(ev.lat);
|
56
|
+
$(`input[name='${longFieldName}']`).val(ev.lng);
|
57
|
+
});
|
52
58
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
59
|
+
attachGeocoding($addressInputField, null, (coordinates) => {
|
60
|
+
// Remove previous marker when user updates address in address field
|
61
|
+
ctrl.removeMarker();
|
62
|
+
ctrl.addMarker({
|
63
|
+
latitude: coordinates[0],
|
64
|
+
longitude: coordinates[1],
|
65
|
+
address: $addressInputField.val()
|
66
|
+
});
|
61
67
|
});
|
62
68
|
});
|
63
69
|
}
|
64
|
-
|
65
|
-
|
66
70
|
});
|
@@ -1,9 +1,8 @@
|
|
1
1
|
$(() => {
|
2
2
|
const $input = $("#proposal_add_photos");
|
3
|
-
const $
|
4
|
-
const $
|
5
|
-
const $
|
6
|
-
const $formError = $inputField.find("span.form-error")
|
3
|
+
const $button = $(".camera-container .user-device-camera");
|
4
|
+
const $checkbox = $("#proposal_has_no_image");
|
5
|
+
const $formError = $(".camera-container .form-error")
|
7
6
|
const $labelInput = $("label[for='proposal_add_photos']")
|
8
7
|
|
9
8
|
const removeErrors = () => {
|
@@ -26,20 +25,21 @@ $(() => {
|
|
26
25
|
$input.attr("accept", "image/*");
|
27
26
|
|
28
27
|
$button.on("click", () => {
|
29
|
-
console.log("click button")
|
28
|
+
// console.log("click button")
|
30
29
|
$input.attr("capture", "camera");
|
31
30
|
$input.click();
|
32
31
|
$input.removeAttr("capture", "camera");
|
33
32
|
});
|
34
33
|
|
35
34
|
$input.on("click", () => {
|
36
|
-
console.log("click", $input);
|
35
|
+
// console.log("click", $input);
|
37
36
|
$input.one("blur", () => {
|
38
|
-
console.log("blur", $input);
|
37
|
+
// console.log("blur", $input);
|
39
38
|
removeErrors();
|
40
39
|
});
|
41
40
|
});
|
42
41
|
|
42
|
+
|
43
43
|
if ($checkbox.length > 0) {
|
44
44
|
$checkbox.on("change", toggleInput);
|
45
45
|
toggleInput();
|
@@ -1,34 +1,17 @@
|
|
1
|
-
.
|
2
|
-
|
1
|
+
.geocoding-container {
|
2
|
+
@apply sm:flex sm:items-end;
|
3
3
|
|
4
|
-
.
|
5
|
-
|
4
|
+
.autoComplete_wrapper {
|
5
|
+
@apply w-full mb-2 sm:m-0 sm:mr-2;
|
6
6
|
}
|
7
|
-
}
|
8
|
-
|
9
|
-
.user-device-location{
|
10
|
-
button{
|
11
|
-
max-height: 3rem;
|
12
7
|
|
13
|
-
|
14
|
-
|
15
|
-
|
8
|
+
.user-device-location {
|
9
|
+
button {
|
10
|
+
@apply whitespace-nowrap p-2 w-full sm:w-auto;
|
16
11
|
|
17
|
-
|
18
|
-
|
19
|
-
top: 6px;
|
20
|
-
left: 12px;
|
12
|
+
svg {
|
13
|
+
margin-right: 0.2rem;
|
21
14
|
}
|
22
15
|
}
|
23
16
|
}
|
24
|
-
|
25
|
-
@media only screen and (max-width: 596px){
|
26
|
-
display: block !important;
|
27
|
-
margin-top: 1rem;
|
28
|
-
margin-bottom: -.5rem;
|
29
|
-
|
30
|
-
button{
|
31
|
-
border-radius: 4px !important;
|
32
|
-
}
|
33
|
-
}
|
34
17
|
}
|
@@ -1,27 +1,27 @@
|
|
1
|
-
.table__title-block{
|
1
|
+
.table__title-block {
|
2
2
|
display: flex;
|
3
3
|
align-items: flex-start;
|
4
4
|
}
|
5
5
|
|
6
|
-
.table__title-icon{
|
6
|
+
.table__title-icon {
|
7
7
|
width: 20px;
|
8
8
|
padding: 3px;
|
9
9
|
margin-right: 5px;
|
10
10
|
float: left;
|
11
11
|
}
|
12
12
|
|
13
|
-
.table__list-title{
|
13
|
+
.table__list-title {
|
14
14
|
display: flex;
|
15
15
|
flex-direction: column;
|
16
16
|
align-items: start;
|
17
17
|
}
|
18
18
|
|
19
|
-
.table__list-title a{
|
19
|
+
.table__list-title a {
|
20
20
|
text-align: start;
|
21
21
|
}
|
22
22
|
|
23
|
-
.help-text-overdue{
|
23
|
+
.help-text-overdue {
|
24
24
|
font-style: italic;
|
25
|
-
font-size: .8125rem;
|
25
|
+
font-size: 0.8125rem;
|
26
26
|
text-align: start;
|
27
27
|
}
|