Class: ContactPointsController
- Inherits:
-
CrmController
- Object
- ActionController::Base
- ApplicationController
- CrmController
- ContactPointsController
- Includes:
- Controllers::Showable, Controllers::Sortable
- Defined in:
- app/controllers/contact_points_controller.rb
Overview
Controller: contact points.
Constant Summary
Constants included from Controllers::ReferenceFindable
Controllers::ReferenceFindable::ID_EMBEDDED_PATTERNS
Constants included from Controllers::AnalyticsEvents
Controllers::AnalyticsEvents::MAX_QUEUED_EVENTS, Controllers::AnalyticsEvents::SESSION_KEY
Constants included from Controllers::ErrorRendering
Controllers::ErrorRendering::NON_CONTENT_PATH_PREFIXES
Instance Method Summary collapse
-
#create ⇒ void
POST /contact_points — creates a contact point.
-
#destroy ⇒ void
DELETE /contact_points/:id — removes the contact point, or just detaches its party if the contact point has dependents that need it kept.
-
#edit ⇒ void
GET /contact_points/:id/edit — edit form for an existing contact point.
-
#index ⇒ void
GET /contact_points — a context object's contact points, plus a blank one for the inline add form.
-
#mark_as_working ⇒ void
PATCH /contact_points/:id/mark_as_working — clears the "email bounced" flag for this contact point's address.
-
#new ⇒ void
GET /contact_points/new — blank contact point form.
-
#update ⇒ void
PATCH/PUT /contact_points/:id — updates a contact point.
Methods included from Controllers::Showable
Methods included from Controllers::Sortable
Methods inherited from CrmController
#access_denied, #context_id, #context_object, #crm_home_path, #current_ability, #default_url_options, #download_temp, #get_tempfile_path_for_download, #init_status_job_collector, #initialize_crm_lazy_chunks, #persist_enqueued_status_jobs, #record_not_found, #redirect_to_job_or_fallback, #render_edit_action, #set_context, #set_download_path, #stash_file_for_temp_download, #sync_admin_presence_cookie, #touch_employee_last_seen
Methods inherited from ApplicationController
#account_impersonated?, #add_to_flash, #after_sign_in_path_for, #bypass_forgery_protection?, #chat_enabled?, #cloudflare_cleared?, #default_catalog, #default_url_options, #enable_turbo_frames, #find_publication, #fix_invalid_accept_header, #init_js_utils, #is_globals_call?, #layout_by_resource, #locale_store, #redirect_to, #require_employee_for_crm, #set_base_host, #set_real_ip, #set_report_errors_for, #should_render_layout?, #skip_layout_for_turbo_frame?, #stamp_impersonation_context, #tab_frame_breakout_request?, #warmlyyours_canada_ip?, #warmlyyours_ip?, #y
Methods included from Controllers::ReturnPathHandling
#check_for_return_path, #redirect_to_return_path_or_default
Methods included from Controllers::AnalyticsEvents
#consume_queued_analytics_events, #registration_lead_type, #track_event
Methods included from Controllers::DeviceDetection
Methods included from Controllers::SubdomainDetection
#is_crm_request?, #is_www_request?, #json_request?
Methods included from Controllers::TurboSafeRedirect
Methods included from Controllers::TrackingDetection
#bot_request?, #gdpr_country?, #gdpr_country_data, #prevent_bots, #set_tracking_cookie, #track_visitor?
Methods included from Controllers::AcceleratedFileSending
#send_file_accelerated, #send_upload_accelerated
Methods included from Controllers::ErrorRendering
#excp_string, #mail_to_for_error_reporting, #render_400, #render_404, #render_406, #render_410, #render_500, #render_invalid_authenticity_token, #render_ip_spoof_error, #render_unpermitted_parameters, #safe_referer_or_fallback
Methods included from Controllers::TurnstileVerification
#load_turnstile_script_tag, #turnstile_lazy_widget, #turnstile_script_tag, #turnstile_widget, #validate_turnstile!
Methods included from Controllers::CloudflareCaching
edge_cached, #edge_cached_action?, #reset_cloudflare_cache, #set_cloudflare_cache, #skip_edge_cache!, #skip_session
Methods included from Controllers::Webpackable
#preload_webpack_fonts, #webpack_css_include, #webpack_css_url, #webpack_js_include, #wpd_is_running?
Methods included from Controllers::Localizable
#cloudflare_country_locale, #determine_request_locale, #geocoder_locale, #guest_user_locale_check, #locale_optional_www_auth_path?, #param_locale, #set_locale, #set_request_locale, #skip_localization?, #warmlyyours_ip_locale
Methods included from Controllers::Authenticable
#access_denied, #authenticate_account, #authenticate_account!, #authenticate_account_from_login_token!, #check_is_a_manager, #check_is_a_sales_manager, #check_is_an_admin, #check_is_an_employee, #check_party, #clear_mismatched_guest_user, #create_guest_user, #credentials?, #current_or_guest_user, #current_or_guest_user_id_read_only, #current_user, #devise_mapping, #fully_logged_in?, #generate_bot_id, #guest_user, #identifiable?, #init_current_user, #initialize_guest, #load_context_user, #logging_in, #resource, #resource_name, #restrict_access_for_non_employees, #scrubbed_request_path, #user_object, #warn_on_session_guest_id_leak
Methods included from UrlsHelper
#catalog_breadcrumb_links, #catalog_link, #catalog_link_for_product_line, #catalog_link_for_sku, #cms_link, #delocalized_path, #path_to_sales_product_sku, #path_to_sales_product_sku_for_product_line, #path_to_sales_product_sku_for_product_line_slug, #product_line_from_catalog_link, #protocol_neutral_url, #sanitize_external_url, #valid_external_url?
Instance Method Details
#create ⇒ void
This method returns an undefined value.
POST /contact_points — creates a contact point.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'app/controllers/contact_points_controller.rb', line 36 def create @contact_point = context_object.contact_points.new(params[:contact_point]) respond_to do |format| if @contact_point.save @save_ok = true @contact_points = context_object.contact_points.sorted format.html { redirect_to_return_path_or_default polymorphic_url([@contact_point.party, :contact_points]) } format.xml { head :ok } format.turbo_stream else @save_ok = false format.html { render action: 'new', status: :unprocessable_content } format.xml { render xml: @contact_point.errors, status: :unprocessable_content } format.turbo_stream end end end |
#destroy ⇒ void
This method returns an undefined value.
DELETE /contact_points/:id — removes the contact point, or just detaches
its party if the contact point has dependents that need it kept.
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'app/controllers/contact_points_controller.rb', line 71 def destroy party = @contact_point.party if @contact_point.dependents? # Just remove the party @contact_point.update_attribute!(:party_id, nil) else # safely delete begin @contact_point.destroy rescue StandardError => e @contact_point.errors.add(:base, "Unable to delete contact point. Error: #{e}") end end respond_to do |format| format.turbo_stream format.html do redirect_to_return_path_or_default polymorphic_path(party) end end end |
#edit ⇒ void
This method returns an undefined value.
GET /contact_points/:id/edit — edit form for an existing contact point.
29 30 31 |
# File 'app/controllers/contact_points_controller.rb', line 29 def edit @edit ||= polymorphic_path(@contact_point.party) end |
#index ⇒ void
This method returns an undefined value.
GET /contact_points — a context object's contact points, plus a blank
one for the inline add form.
13 14 15 16 17 |
# File 'app/controllers/contact_points_controller.rb', line 13 def index @contact_points = context_object.contact_points.sorted @contact_point = @context_object.contact_points.new @contact_point_form_path = [@context_object, @contact_point] end |
#mark_as_working ⇒ void
This method returns an undefined value.
PATCH /contact_points/:id/mark_as_working — clears the "email bounced"
flag for this contact point's address.
95 96 97 98 |
# File 'app/controllers/contact_points_controller.rb', line 95 def mark_as_working ContactPoint.mark_email_as_working(@contact_point.detail) redirect_to_return_path_or_default polymorphic_path(@contact_point.party) end |
#new ⇒ void
This method returns an undefined value.
GET /contact_points/new — blank contact point form.
22 23 24 |
# File 'app/controllers/contact_points_controller.rb', line 22 def new @contact_point = context_object.contact_points.new end |
#update ⇒ void
This method returns an undefined value.
PATCH/PUT /contact_points/:id — updates a contact point.
58 59 60 61 62 63 64 65 |
# File 'app/controllers/contact_points_controller.rb', line 58 def update if @contact_point.update(params[:contact_point]) redirect_to_return_path_or_default polymorphic_path(@contact_point.party) else @return_path ||= polymorphic_path(@contact_point.party) render :edit, status: :unprocessable_content end end |