diff --git a/app/assets/javascripts/initializers/initializeEllipsisMenu.js b/app/assets/javascripts/initializers/initializeEllipsisMenu.js index 7363504b9..f4f2bcda1 100644 --- a/app/assets/javascripts/initializers/initializeEllipsisMenu.js +++ b/app/assets/javascripts/initializers/initializeEllipsisMenu.js @@ -68,6 +68,8 @@ function handleFormSubmit(e) { if (xhr.status === 200) { onXhrSuccess(form, article, values); + var message = values.commit === 'Mute Notifications' ? 'Notifications Muted' : 'Notifications Restored'; + article.querySelector('.dashboard-meta-details').innerHTML = message; } else { article.querySelector('.dashboard-meta-details').innerHTML = 'Failed to update article.'; diff --git a/app/controllers/articles_controller.rb b/app/controllers/articles_controller.rb index 2f158f2b4..99dc459c9 100644 --- a/app/controllers/articles_controller.rb +++ b/app/controllers/articles_controller.rb @@ -146,6 +146,10 @@ class ArticlesController < ApplicationController respond_to do |format| format.html do + if article_params_json[:archived] && @article.archived #just to get archived working + render json: @article.to_json(only: [:id], methods: [:current_state_path]) + return + end # NOTE: destination is used by /dashboard/organization when it re-assigns an article # not a great solution but for now it will do redirect_to(params[:destination] || @article.path) @@ -241,7 +245,7 @@ class ArticlesController < ApplicationController else %i[ title body_markdown main_image published description - tag_list canonical_url series collection_id + tag_list canonical_url series collection_id archived ] end diff --git a/spec/requests/articles_update_spec.rb b/spec/requests/articles_update_spec.rb index 40bb11941..272e2523c 100644 --- a/spec/requests/articles_update_spec.rb +++ b/spec/requests/articles_update_spec.rb @@ -75,4 +75,11 @@ RSpec.describe "ArticlesUpdate", type: :request do expect(article.reload.user).to eq(other_user) expect(article.organization_id).to eq(admin_org_id) end + + it "archives" do + put "/articles/#{article.id}", params: { + article: { archived: true } + } + expect(article.archived).to eq(false) + end end