Sha256: 150d872990d40803a7dbafc9869aa595d3760fccb8740eb40b210e5c1a89d7fe

Contents?: true

Size: 1.13 KB

Versions: 6

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

6 entries across 6 versions & 1 rubygems

Version Path
thredded-0.12.1 app/forms/thredded/edit_topic_form.rb
thredded-0.12.0 app/forms/thredded/edit_topic_form.rb
thredded-0.11.1 app/forms/thredded/edit_topic_form.rb
thredded-0.11.0 app/forms/thredded/edit_topic_form.rb
thredded-0.10.1 app/forms/thredded/edit_topic_form.rb
thredded-0.10.0 app/forms/thredded/edit_topic_form.rb