From e5e7a18bd8e953eab90dd050efdeda984b4f5f4b Mon Sep 17 00:00:00 2001 From: manson Date: Wed, 28 May 2014 15:57:58 +0800 Subject: [PATCH] Announcement email and log user login/logout and update orbit initialize script and some fixes --- .../admin/member_selects_controller.rb | 7 ++ app/controllers/admin/sites_controller.rb | 9 +- app/controllers/application_controller.rb | 15 ++++ app/controllers/orbit_admin_controller.rb | 17 ---- app/controllers/sessions_controller.rb | 1 + app/helpers/orbit_helper.rb | 2 + app/mailers/orbit_mailer.rb | 3 - app/models/email.rb | 2 + app/views/admin/items/_node.html.erb | 2 +- .../_email_selection_box.html.erb | 90 +++++++++++++++++++ .../member_selects/_modal_select.html.erb | 78 ---------------- .../member_selects/select_emails.html.erb | 62 +++++++++++++ app/views/admin/sites/_mail_cron.html.erb | 18 ++-- app/views/admin/sites/_mail_cron_log.html.erb | 23 +++-- app/views/admin/sites/system_info.html.erb | 45 ++-------- app/views/admin/sites/system_info.js.erb | 4 +- config/environment.rb | 29 ++++-- config/routes.rb | 3 + 18 files changed, 238 insertions(+), 172 deletions(-) create mode 100644 app/controllers/admin/member_selects_controller.rb create mode 100644 app/views/admin/member_selects/_email_selection_box.html.erb delete mode 100644 app/views/admin/member_selects/_modal_select.html.erb create mode 100644 app/views/admin/member_selects/select_emails.html.erb diff --git a/app/controllers/admin/member_selects_controller.rb b/app/controllers/admin/member_selects_controller.rb new file mode 100644 index 0000000..58c5d4c --- /dev/null +++ b/app/controllers/admin/member_selects_controller.rb @@ -0,0 +1,7 @@ +class Admin::MemberSelectsController < OrbitAdminController + layout :false + + def select_emails + @roles = Role.all + end +end \ No newline at end of file diff --git a/app/controllers/admin/sites_controller.rb b/app/controllers/admin/sites_controller.rb index 24a8fff..c738759 100644 --- a/app/controllers/admin/sites_controller.rb +++ b/app/controllers/admin/sites_controller.rb @@ -35,7 +35,7 @@ class Admin::SitesController < OrbitAdminController @mail_crons = Email.can_deliver.desc(:created_at) - @mail_cron_logs = EmailLog.desc(:created_at).page(params[:page]).per(10) + @mail_cron_logs = EmailLog.desc(:created_at).page(params[:mail_log_page]).per(10) respond_to do |format| format.html @@ -43,6 +43,13 @@ class Admin::SitesController < OrbitAdminController end end + def delete_mail_log + if params[:ids] + EmailLog.any_in(:_id => params[:ids]).destroy + end + redirect_to :action => "system_info", :format => 'js' + end + def preference end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 9451e7e..6e686d0 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -49,6 +49,21 @@ class ApplicationController < ActionController::Base current_user.nil? and !current_site.frontend_open end + def log_user_action + unless (request.filtered_parameters['action'].eql? "system_info") and (request.filtered_parameters['controller'].eql? "admin/sites") + log = UserAction.new + log.action = request.filtered_parameters['action'] + log.controller = request.filtered_parameters['controller'] + log.request_path = request.original_fullpath + log.request_method = request.request_method + log.remote_ip = request.remote_ip + log.referer = request.referer + log.save + + current_user.user_actions << log + end + end + private def current_user diff --git a/app/controllers/orbit_admin_controller.rb b/app/controllers/orbit_admin_controller.rb index f98ce05..f93cfad 100644 --- a/app/controllers/orbit_admin_controller.rb +++ b/app/controllers/orbit_admin_controller.rb @@ -50,21 +50,4 @@ class OrbitAdminController < ApplicationController end end - private - - def log_user_action - unless (request.filtered_parameters['action'].eql? "system_info") and (request.filtered_parameters['controller'].eql? "admin/sites") - log = UserAction.new - log.action = request.filtered_parameters['action'] - log.controller = request.filtered_parameters['controller'] - log.request_path = request.original_fullpath - log.request_method = request.request_method - log.remote_ip = request.remote_ip - log.referer = request.referer - log.save - - current_user.user_actions << log - end - end - end diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 072dac3..f2aabc1 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -24,6 +24,7 @@ class SessionsController < ApplicationController end def destroy + log_user_action session[:user_id] = nil redirect_to root_url, :notice => "Logged out!" end diff --git a/app/helpers/orbit_helper.rb b/app/helpers/orbit_helper.rb index aa0ef8d..c6425bc 100644 --- a/app/helpers/orbit_helper.rb +++ b/app/helpers/orbit_helper.rb @@ -66,12 +66,14 @@ module OrbitHelper if p.categories == widget_categories finalpage = p end + break if !finalpage.nil? end if finalpage.nil? pages.each do |p| if self.array_include(p.categories, widget_categories) finalpage = p end + break if !finalpage.nil? end end finalpage = pages.first if finalpage.nil? diff --git a/app/mailers/orbit_mailer.rb b/app/mailers/orbit_mailer.rb index ccaaab0..de28672 100644 --- a/app/mailers/orbit_mailer.rb +++ b/app/mailers/orbit_mailer.rb @@ -62,9 +62,6 @@ class OrbitMailer < ActionMailer::Base mail_log.save - email.is_sent = true - email.save - end end \ No newline at end of file diff --git a/app/models/email.rb b/app/models/email.rb index 4a4c27e..e834baf 100644 --- a/app/models/email.rb +++ b/app/models/email.rb @@ -29,6 +29,8 @@ class Email def self.deliver_all Email.can_deliver.each do |email| + email.is_sent = true + email.save OrbitMailer.set_mail(email).deliver end end diff --git a/app/views/admin/items/_node.html.erb b/app/views/admin/items/_node.html.erb index c98681d..25168d7 100644 --- a/app/views/admin/items/_node.html.erb +++ b/app/views/admin/items/_node.html.erb @@ -18,11 +18,11 @@ <% end %>
<%= link_to content_tag(:i, nil, class: "icon-eye-open"), pages_edit_view_path(:id => node.id.to_s), class: "view-page open-slide tip", title: "View", data: {title: node.name} if node.class.to_s.eql?('Page') %> - <%= link_to content_tag(:i, nil, class: "icon-edit"), edit_page_path(node.id), class: "open-slide tip page edit", title: "Edit Page", data: {title: "Edit Page"} if node.class.to_s.downcase.eql?("page") && !node.root? %> <%# elsif node.class.to_s.downcase.eql?("link") %> <%#= link_to content_tag(:i, nil, class: "icon-edit"), "#link", class: "open-slide tip link edit", title: t('editing.link'), data: {title: t('editing.link'), id: node.id.to_s, parent: node.parent_id.to_s, form: {name: node.name}.merge(node.title_translations).merge(node.urls)} %> <%# end %> <% unless name.eql? "sitemap" %> + <%= link_to content_tag(:i, nil, class: "icon-edit"), edit_page_path(node.id), class: "open-slide tip page edit", title: "Edit Page", data: {title: "Edit Page"} if node.class.to_s.downcase.eql?("page") && !node.root? %> <%= link_to content_tag(:i, nil, class: "icons-newspaper"), new_page_path(:parent_page => node.id.to_s), class: "open-slide tip page", title: "Add Page", data: {title: "Add Page", id: 'new', parent: node.id.to_s} if node.class.to_s.eql?('Page') && level < 3 %> <%#= link_to content_tag(:i, nil, class: "icon-link"), "#link", class: "open-slide tip link", title: t(:add_link), data: {title: t(:add_link), id: 'new', parent: node.id.to_s} if node.class.to_s.eql?('Page') %> <%= link_to content_tag(:i, nil, class: "icon-trash"), page_path(node.id),:method => :delete,:remote => true, "data-confirm" => "Are you sure ?", class: "delete tip", title: "Delete", data: {title: "Delete"} unless node.root? %> diff --git a/app/views/admin/member_selects/_email_selection_box.html.erb b/app/views/admin/member_selects/_email_selection_box.html.erb new file mode 100644 index 0000000..7ed7cba --- /dev/null +++ b/app/views/admin/member_selects/_email_selection_box.html.erb @@ -0,0 +1,90 @@ +<% content_for :page_specific_javascript do -%> + <%= javascript_include_tag "lib/jquery.nanoscroller" %> +<% end -%> +<% content_for :page_specific_css do -%> + <%= stylesheet_link_tag "member_select" %> +<% end %> + +
+ <% email_members.each do |email_member| %> + + x + <%= email_member.name %> + <%= hidden_field_tag field, email_member.id %> + + <% end %> +
+<%= t(:add) %> + \ No newline at end of file diff --git a/app/views/admin/member_selects/_modal_select.html.erb b/app/views/admin/member_selects/_modal_select.html.erb deleted file mode 100644 index 940bfb4..0000000 --- a/app/views/admin/member_selects/_modal_select.html.erb +++ /dev/null @@ -1,78 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/views/admin/member_selects/select_emails.html.erb b/app/views/admin/member_selects/select_emails.html.erb new file mode 100644 index 0000000..69cdeb3 --- /dev/null +++ b/app/views/admin/member_selects/select_emails.html.erb @@ -0,0 +1,62 @@ + \ No newline at end of file diff --git a/app/views/admin/sites/_mail_cron.html.erb b/app/views/admin/sites/_mail_cron.html.erb index be03b58..5e07abd 100644 --- a/app/views/admin/sites/_mail_cron.html.erb +++ b/app/views/admin/sites/_mail_cron.html.erb @@ -1,11 +1,7 @@ - - - - <% if is_manager? %> - <%= check_box_tag 'to_delete[]', mail_cron.id, false, :class => "list-check" %> - <% end -%> - - <%= format_value(mail_cron.mail_sentdate) %> - <%= mail_cron.mail_subject %> - <%= mail_cron.module_app.key %> - \ No newline at end of file + + + + <%= format_value(mail_cron.mail_sentdate) %> + <%= mail_cron.mail_subject %> + <%= mail_cron.module_app.key %> + \ No newline at end of file diff --git a/app/views/admin/sites/_mail_cron_log.html.erb b/app/views/admin/sites/_mail_cron_log.html.erb index 1b57db3..591e0a5 100644 --- a/app/views/admin/sites/_mail_cron_log.html.erb +++ b/app/views/admin/sites/_mail_cron_log.html.erb @@ -1,12 +1,11 @@ - - - - <% if is_manager? %> - <%= check_box_tag 'to_delete[]', mail_cron_log.id, false, :class => "list-check" %> - <% end -%> - - <%= format_value(mail_cron_log.created_at) %> - <%= mail_cron_log.mail_subject %> - <%= mail_cron_log.mail_user.user_name %> - <%= mail_cron_log.module_app.key %> - \ No newline at end of file + + + <% if is_manager? %> + <%= check_box_tag 'to_delete[]', mail_cron_log.id, false, :class => "list-check" %> + <% end %> + +<%= format_value(mail_cron_log.created_at) %> +<%= mail_cron_log.mail_subject rescue "" %> +<%= mail_cron_log.mail_user.user_name rescue "" %> +<%= mail_cron_log.module_app.key rescue "" %> + \ No newline at end of file diff --git a/app/views/admin/sites/system_info.html.erb b/app/views/admin/sites/system_info.html.erb index d8e2af4..8106d12 100644 --- a/app/views/admin/sites/system_info.html.erb +++ b/app/views/admin/sites/system_info.html.erb @@ -87,9 +87,9 @@

- <%#= link_to(content_tag(:i, nil, :class => "icons-trash"), '#', :class => "btn list-active-btn disabled", :rel => delete_admin_mail_cron_logs_path) if at_least_module_manager %> + <%= link_to(content_tag(:i, nil, :class => "icons-trash"), '#', :class => "btn list-active-btn disabled", :rel => admin_site_delete_mail_log_path) %>

- +
- + <%= render :partial => "mail_cron_log", :collection=> @mail_cron_logs%>
@@ -101,25 +101,21 @@ <%= t(:mail_from_app) %>
-
-

- <%#= link_to(content_tag(:i, nil, :class => "icons-trash"), '#', :class => "btn list-active-btn disabled", :rel => delete_admin_mail_crons_path) if at_least_module_manager %> -

@@ -151,34 +147,3 @@ - - - diff --git a/app/views/admin/sites/system_info.js.erb b/app/views/admin/sites/system_info.js.erb index 6c72454..262902d 100644 --- a/app/views/admin/sites/system_info.js.erb +++ b/app/views/admin/sites/system_info.js.erb @@ -1,8 +1,8 @@ $("#user_actions").html("<%= j(render :partial => 'user_action', :collection => @user_actions) %>"); $(".user-paginate").html("<%= j(paginate @user_actions, :remote => true) %>"); -// $("<%#= j(render :partial => 'mail_cron_log', :collection => @mail_cron_logs) %>").appendTo($("#mail_cron_logs")); -// $(".paginate").html("<%#= j(paginate @mail_cron_logs, :remote => true) %>"); +$("#mail_cron_logs").html("<%= j(render :partial => 'mail_cron_log', :collection => @mail_cron_logs) %>"); +$(".paginate").html("<%= j(paginate @mail_cron_logs, :remote => true, :param_name => :mail_log_page) %>"); checkScroll(); $('.list-check').listCheck(); \ No newline at end of file diff --git a/config/environment.rb b/config/environment.rb index 15b6668..c05b111 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -38,25 +38,40 @@ if Page.where(:module=>"sitemap").blank? sitemap.save end +if Page.where(:page_id=>'termofuse').blank? + termofuse = Page.new + termofuse.module = "page_content" + termofuse.page_id = "termofuse" + termofuse.name_translations = {:en=>"Term of use",:zh_tw=>"使用規則"} + termofuse.enabled_for = ["en", "zh_tw"] + termofuse.menu_enabled_for = [] + termofuse.url = "/termofuse" + termofuse.parent_page_id = Page.root.id + termofuse.save + + page = PageContext.new + page.content_translations = {:en=>"", :zh_tw=>""} + page.version = 1 + page.save + termofuse.page_contexts << page + + site = Site.first + site.terms_of_use_link = "/termofuse" + site.save +end + if User.count==0 group = Workgroup.new group.title = "Administrator" group.key = 'admin' group.save - role = Role.new - role.key = 'admin' - role.title_translations = {:en=>'Administrator', :zh_tw=>'Administrator'} - role.save - profile = MemberProfile.new profile.first_name_translations = {:en=>'Digital', :zh_tw=>'Digital'} profile.last_name_translations = {:en=>'Ruling', :zh_tw=>'Ruling'} profile.email = "orbit@rulingcom.com" profile.save - role.member_profiles << profile - user = User.new user.workgroup = group user.member_profile = profile diff --git a/config/routes.rb b/config/routes.rb index 96d7a38..b84ed41 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -94,6 +94,8 @@ Orbit::Application.routes.draw do resources :role_statuses do post 'toggle' end + + get 'select_emails' => 'member_selects#select_emails', :as => "select_emails" resources :module_apps do resources :categories do @@ -163,6 +165,7 @@ Orbit::Application.routes.draw do get 'check_updates' get 'update_orbit' get 'restart_server' + get 'delete_mail_log' end resources :designs do
- <%= t(:sent_date) %> <%= t(:subject) %>