diff --git a/app/assets/javascripts/initializers/initializeBaseUserData.js b/app/assets/javascripts/initializers/initializeBaseUserData.js
index 843c0ed66..d9a534dc4 100644
--- a/app/assets/javascripts/initializers/initializeBaseUserData.js
+++ b/app/assets/javascripts/initializers/initializeBaseUserData.js
@@ -13,7 +13,9 @@ function addRelevantButtonsToArticle(user) {
articleContainer.dataset.buttonsInitialized !== 'true'
) {
let actions = [];
+
const published = JSON.parse(articleContainer.dataset.published);
+ const scheduled = JSON.parse(articleContainer.dataset.scheduled);
if (parseInt(articleContainer.dataset.authorId, 10) === user.id) {
actions.push(
@@ -25,9 +27,9 @@ function addRelevantButtonsToArticle(user) {
clickToEditButton.style.display = 'inline-block';
}
- if (published === true) {
+ if (published === true && !scheduled) {
actions.push(
- `Manage`,
+ `Manage`,
);
}
diff --git a/app/models/article.rb b/app/models/article.rb
index 9489661a7..537a8969a 100644
--- a/app/models/article.rb
+++ b/app/models/article.rb
@@ -443,7 +443,7 @@ class Article < ApplicationRecord
end
def scheduled?
- published_at.future?
+ published_at? && published_at.future?
end
def search_id
diff --git a/app/views/articles/show.html.erb b/app/views/articles/show.html.erb
index 1c9a602c4..d111557c3 100644
--- a/app/views/articles/show.html.erb
+++ b/app/views/articles/show.html.erb
@@ -90,6 +90,7 @@
data-pin-path="<%= stories_feed_pinned_article_path %>"
data-pinned-article-id="<%= @pinned_article_id %>"
data-published="<%= @article.published? %>"
+ data-scheduled="<%= @article.scheduled? %>"
<%= @article.pinned? ? "data-pinned" : " " %>>
<% if @article.video.present? %>
diff --git a/spec/system/articles/user_visits_an_article_spec.rb b/spec/system/articles/user_visits_an_article_spec.rb
index 0ea532ee6..5e856a332 100644
--- a/spec/system/articles/user_visits_an_article_spec.rb
+++ b/spec/system/articles/user_visits_an_article_spec.rb
@@ -150,6 +150,11 @@ RSpec.describe "Views an article", type: :system do
expect(edit_link.matches_style?(display: "inline-block")).to be true
end
+ it "doesn't show the article manage link, even for the author", js: true do
+ visit scheduled_article_path
+ expect(page).to have_no_link("article-action-space-manage")
+ end
+
it "doesn't show an article edit link for the non-authorized user" do
sign_out user
sign_in create(:user)