Sha256: f326389e2143b7733f3e889173e2d59b7dc9b08e40c2b8ab8cb5eb316a6fe8e6

Contents?: true

Size: 1.16 KB

Versions: 24

Compression:

Stored size: 1.16 KB

Contents

# frozen_string_literal: true

module Thredded
  class EditTopicForm
    include ActiveModel::Model

    delegate :id, :title, :title_was, :category_ids, :locked, :sticky, :messageboard, :messageboard_id, :valid?,
             :errors,
             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

24 entries across 24 versions & 1 rubygems

Version Path
thredded-1.1.0 app/forms/thredded/edit_topic_form.rb
thredded-1.0.1 app/forms/thredded/edit_topic_form.rb
thredded-1.0.0 app/forms/thredded/edit_topic_form.rb
thredded-0.16.16 app/forms/thredded/edit_topic_form.rb
thredded-0.16.15 app/forms/thredded/edit_topic_form.rb
thredded-0.16.14 app/forms/thredded/edit_topic_form.rb
thredded-0.16.13 app/forms/thredded/edit_topic_form.rb
thredded-0.16.12 app/forms/thredded/edit_topic_form.rb
thredded-0.16.11 app/forms/thredded/edit_topic_form.rb
thredded-0.16.10 app/forms/thredded/edit_topic_form.rb
thredded-0.16.9 app/forms/thredded/edit_topic_form.rb
thredded-0.16.8 app/forms/thredded/edit_topic_form.rb
thredded-0.16.7 app/forms/thredded/edit_topic_form.rb
thredded-0.16.6 app/forms/thredded/edit_topic_form.rb
thredded-0.16.5 app/forms/thredded/edit_topic_form.rb
thredded-0.16.4 app/forms/thredded/edit_topic_form.rb
thredded-0.16.3 app/forms/thredded/edit_topic_form.rb
thredded-0.16.1 app/forms/thredded/edit_topic_form.rb
thredded-0.16.0 app/forms/thredded/edit_topic_form.rb
thredded-0.15.5 app/forms/thredded/edit_topic_form.rb