From 461fe9a6dc1a0a319f49bbbc6777b89475195936 Mon Sep 17 00:00:00 2001 From: albert Date: Tue, 1 Nov 2011 17:51:15 -0400 Subject: [PATCH] added news updates ui --- .../javascripts/{news.js => news_updates.js} | 12 ++-- app/assets/stylesheets/common/news.css.scss | 2 +- app/assets/stylesheets/news_updates.css | 4 ++ app/controllers/news_updates_controller.rb | 38 ++++++++++++ app/helpers/news_updates_helper.rb | 2 + app/models/news_update.rb | 15 +++++ app/views/layouts/default.html.erb | 2 +- app/views/news/_listing.html.erb | 10 ---- app/views/news_updates/_listing.html.erb | 11 ++++ .../news_updates/_secondary_links.html.erb | 6 ++ app/views/news_updates/destroy.js.erb | 1 + app/views/news_updates/edit.html.erb | 16 +++++ app/views/news_updates/index.html.erb | 32 ++++++++++ app/views/news_updates/new.html.erb | 16 +++++ config/routes.rb | 1 + db/development_structure.sql | 59 ++++++++++++++++++- db/migrate/20100204211522_create_users.rb | 2 +- .../20111101212358_create_news_updates.rb | 12 ++++ test/factories/news_update.rb | 3 + .../news_updates_controller_test.rb | 59 +++++++++++++++++++ test/unit/helpers/news_updates_helper_test.rb | 4 ++ 21 files changed, 287 insertions(+), 20 deletions(-) rename app/assets/javascripts/{news.js => news_updates.js} (67%) create mode 100644 app/assets/stylesheets/news_updates.css create mode 100644 app/controllers/news_updates_controller.rb create mode 100644 app/helpers/news_updates_helper.rb create mode 100644 app/models/news_update.rb delete mode 100644 app/views/news/_listing.html.erb create mode 100644 app/views/news_updates/_listing.html.erb create mode 100644 app/views/news_updates/_secondary_links.html.erb create mode 100644 app/views/news_updates/destroy.js.erb create mode 100644 app/views/news_updates/edit.html.erb create mode 100644 app/views/news_updates/index.html.erb create mode 100644 app/views/news_updates/new.html.erb create mode 100644 db/migrate/20111101212358_create_news_updates.rb create mode 100644 test/factories/news_update.rb create mode 100644 test/functional/news_updates_controller_test.rb create mode 100644 test/unit/helpers/news_updates_helper_test.rb diff --git a/app/assets/javascripts/news.js b/app/assets/javascripts/news_updates.js similarity index 67% rename from app/assets/javascripts/news.js rename to app/assets/javascripts/news_updates.js index 9fba309c1..24d6ab0c2 100644 --- a/app/assets/javascripts/news.js +++ b/app/assets/javascripts/news_updates.js @@ -1,14 +1,14 @@ (function() { - Danbooru.News = {}; + Danbooru.NewsUpdate = {}; - Danbooru.News.initialize = function() { - var key = $("#news-ticker").data("updated-at"); + Danbooru.NewsUpdate.initialize = function() { + var key = $("#news-updates").data("updated-at"); if (Danbooru.Cookie.get("news-ticker") === key) { - $("#news-ticker").hide(); + $("#news-updates").hide(); } else { $("#close-news-ticker-link").click(function(e) { - $("#news-ticker").hide(); + $("#news-updates").hide(); Danbooru.Cookie.put("news-ticker", key); // need to reset the more link @@ -20,6 +20,6 @@ } $(function() { - Danbooru.News.initialize(); + Danbooru.NewsUpdate.initialize(); }); })(); diff --git a/app/assets/stylesheets/common/news.css.scss b/app/assets/stylesheets/common/news.css.scss index 16b623cdf..8042b2338 100644 --- a/app/assets/stylesheets/common/news.css.scss +++ b/app/assets/stylesheets/common/news.css.scss @@ -1,4 +1,4 @@ -div#news-ticker { +div#news-updates { padding: 5px; background: #EEE; border-bottom: 2px solid #666; diff --git a/app/assets/stylesheets/news_updates.css b/app/assets/stylesheets/news_updates.css new file mode 100644 index 000000000..afad32db0 --- /dev/null +++ b/app/assets/stylesheets/news_updates.css @@ -0,0 +1,4 @@ +/* + Place all the styles related to the matching controller here. + They will automatically be included in application.css. +*/ diff --git a/app/controllers/news_updates_controller.rb b/app/controllers/news_updates_controller.rb new file mode 100644 index 000000000..3680066e2 --- /dev/null +++ b/app/controllers/news_updates_controller.rb @@ -0,0 +1,38 @@ +class NewsUpdatesController < ApplicationController + before_filter :admin_only + respond_to :html + + def index + @news_updates = NewsUpdate.paginate(params[:page]) + respond_with(@news_updates) + end + + def edit + @news_update = NewsUpdate.find(params[:id]) + respond_with(@news_update) + end + + def update + @news_update = NewsUpdate.find(params[:id]) + @news_update.update_attributes(params[:news_update]) + respond_with(@news_update, :location => news_updates_path) + end + + def new + @news_update = NewsUpdate.new + respond_with(@news_update) + end + + def create + @news_update = NewsUpdate.create(params[:news_update]) + respond_with(@news_update, :location => news_updates_path) + end + + def destroy + @news_update = NewsUpdate.find(params[:id]) + @news_update.destroy + respond_with(@news_update) do |format| + format.js + end + end +end diff --git a/app/helpers/news_updates_helper.rb b/app/helpers/news_updates_helper.rb new file mode 100644 index 000000000..ad303a632 --- /dev/null +++ b/app/helpers/news_updates_helper.rb @@ -0,0 +1,2 @@ +module NewsUpdatesHelper +end diff --git a/app/models/news_update.rb b/app/models/news_update.rb new file mode 100644 index 000000000..9b844767d --- /dev/null +++ b/app/models/news_update.rb @@ -0,0 +1,15 @@ +class NewsUpdate < ActiveRecord::Base + belongs_to :creator, :class_name => "User" + belongs_to :udpater, :class_name => "User" + scope :recent, order("created_at desc").limit(5) + before_validation :initialize_creator, :on => :create + before_validation :initialize_updater + + def initialize_creator + self.creator_id = CurrentUser.id + end + + def initialize_updater + self.updater_id = CurrentUser.id + end +end diff --git a/app/views/layouts/default.html.erb b/app/views/layouts/default.html.erb index 0058b85c5..9ce46e125 100644 --- a/app/views/layouts/default.html.erb +++ b/app/views/layouts/default.html.erb @@ -23,7 +23,7 @@
- <%= render "news/listing" %> + <%= render "news_updates/listing" %>

<%= link_to Danbooru.config.app_name, "/" %>