Module: KirguduBase::Controllers::BasicActions::Base::DeleteActions

Defined in:
app/helpers/kirgudu_base/controllers/basic_actions.rb

Instance Method Summary collapse

Instance Method Details

#destroyObject



526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
# File 'app/helpers/kirgudu_base/controllers/basic_actions.rb', line 526

def destroy
  unless self.class.respond_to?(:get_kb_page)
    raise "Method :get_kb_page must be implemented for controller '#{self.class}'"
  end

  local_data = {
    errors: [],
    messages: [],
    page: self.class.get_kb_page(:delete)
  }

  #unless local_data[:page]
  #  respond_to do |format|
  #    format.html { render_html1 "#{self.class.get_method_latest_result(:get_kb_template)}/#{self.class.get_method_latest_result(:get_kb_view_path, :page_404)}" }
  #    format.json { render_json_page_404 }
  #  end
  #  return
  #end


  # fill parent for data
  filters_for_parents = {}
  self.fill_obligatory_db_query_params(filters_for_parents)
  self.fill_parents_for_local_data(local_data, filters_for_parents)
  # filling filters for search
  filters = {}
  self.fill_obligatory_db_query_params(filters)
  filters.merge!(local_data[:parent_ids])
  # retrieving entry from database
  local_data[:entry] = self.entry_class.get_entry_by_id(params[:id], filters, {logger: string_logger})
  # entry not found, showing not found page
  unless local_data[:entry]
    local_data[:errors] << I18n.t("#{self.to_i18n}.messages.not_found", entry_id: params[:id])
    respond_to do |format|
      format.html { render_html1 "#{self.class.get_method_latest_result(:get_kb_template)}/#{self.class.get_method_latest_result(:get_kb_view_path, :entry_not_found)}", locals: {data: local_data} }
      format.json { render_json_not_found message: local_data[:errors] }
    end
    return
  end
  # destroying entry
  if local_data[:entry].destroy
    # entry destroyed
    respond_to do |format|
      format.html { render_redirect(self.to_url_for(:index, local_data[:parent_ids])) }
      format.json { render_json_ok(local_data[:entry], message: "Record Deleted") }
    end
  else
    # failed to destroy entry
    local_data[:errors] << I18n.t("#{self.to_i18n}.messages.delete_error")
    respond_to do |format|
      format.html { render_html1 self.get_view_path_for_page_edit, locals: {data: local_data} }
      format.json { render_json_error(local_data[:entry], message: local_data[:errors]) }
    end
  end
end