Sha256: 476c61a7687d68f190c7883a01857f6ed42ecd554ffd90737a4ce4dc406e10ba

Contents?: true

Size: 1.13 KB

Versions: 18

Compression:

Stored size: 1.13 KB

Contents

# frozen_string_literal: true

module Thredded
  class EditTopicForm
    include ActiveModel::Model

    delegate :id, :title, :category_ids, :locked, :sticky, :messageboard, :messageboard_id, :valid?,
             to: :@topic

    # @param user [Thredded.user_class]
    # @param topic [Thredded::Topic]
    def initialize(user:, topic:)
      @user = user
      @topic = topic
    end

    def self.model_name
      Thredded::Topic.model_name
    end

    def category_options
      @topic.messageboard.categories.map { |cat| [cat.name, cat.id] }
    end

    def messageboard_options
      @user.thredded_can_write_messageboards.map { |messageboard| [messageboard.name, messageboard.id] }
    end

    def save
      return false unless valid?
      @topic.save!
      true
    end

    def persisted?
      true
    end

    def path
      Thredded::UrlsHelper.messageboard_topic_path(@topic.messageboard, @topic)
    end

    def edit_path
      Thredded::UrlsHelper.edit_messageboard_topic_path(@topic.messageboard, @topic)
    end

    def messageboard_path
      Thredded::UrlsHelper.messageboard_topics_path(@topic.messageboard)
    end
  end
end

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
threddedDANIEL-0.14.5 app/forms/thredded/edit_topic_form.rb
thredded-0.14.4 app/forms/thredded/edit_topic_form.rb
thredded-0.14.3 app/forms/thredded/edit_topic_form.rb
thredded-0.14.2 app/forms/thredded/edit_topic_form.rb
thredded-0.14.1 app/forms/thredded/edit_topic_form.rb
thredded-0.14.0 app/forms/thredded/edit_topic_form.rb
thredded-0.13.8 app/forms/thredded/edit_topic_form.rb
thredded-0.13.7 app/forms/thredded/edit_topic_form.rb
thredded-0.13.6 app/forms/thredded/edit_topic_form.rb
thredded-0.13.5 app/forms/thredded/edit_topic_form.rb
thredded-0.13.4 app/forms/thredded/edit_topic_form.rb
thredded-0.13.3 app/forms/thredded/edit_topic_form.rb
thredded-0.13.2 app/forms/thredded/edit_topic_form.rb
thredded-0.13.1 app/forms/thredded/edit_topic_form.rb
thredded-0.13.0 app/forms/thredded/edit_topic_form.rb
thredded-0.12.4 app/forms/thredded/edit_topic_form.rb
thredded-0.12.3 app/forms/thredded/edit_topic_form.rb
thredded-0.12.2 app/forms/thredded/edit_topic_form.rb