From cf4a6c0b35f12a01f0b6471cddb91722a01df138 Mon Sep 17 00:00:00 2001 From: Christophe Vilayphiou Date: Fri, 17 Feb 2012 12:26:03 +0800 Subject: [PATCH 02/44] Remove useless destroy methods --- app/controllers/admin/links_controller.rb | 1 - app/controllers/admin/pages_controller.rb | 2 -- 2 files changed, 3 deletions(-) diff --git a/app/controllers/admin/links_controller.rb b/app/controllers/admin/links_controller.rb index 1f5a14304..57b1f7753 100644 --- a/app/controllers/admin/links_controller.rb +++ b/app/controllers/admin/links_controller.rb @@ -60,7 +60,6 @@ class Admin::LinksController < ApplicationController def destroy @item = Link.find(params[:id]) @item.destroy - @item.destroy_i18n_variable respond_to do |format| format.html { redirect_to admin_items_url diff --git a/app/controllers/admin/pages_controller.rb b/app/controllers/admin/pages_controller.rb index f31835483..7d8961433 100644 --- a/app/controllers/admin/pages_controller.rb +++ b/app/controllers/admin/pages_controller.rb @@ -70,8 +70,6 @@ class Admin::PagesController < ApplicationController def destroy @item = Page.find(params[:id]) @item.destroy - @item.destroy_page_parts - @item.destroy_i18n_variable respond_to do |format| format.html { redirect_to admin_items_url( :parent_id => @item.parent_id ) From 0b71714d44de2b12bfdf6aa63339aab727ff3b7e Mon Sep 17 00:00:00 2001 From: Christophe Vilayphiou Date: Fri, 17 Feb 2012 14:54:11 +0800 Subject: [PATCH 03/44] Improve code in items, pages, links --- app/controllers/admin/items_controller.rb | 15 ------------- app/controllers/admin/links_controller.rb | 6 +---- app/controllers/admin/pages_controller.rb | 12 +++++----- app/controllers/pages_controller.rb | 17 ++++++++------ app/models/item.rb | 9 ++------ app/views/admin/links/_form.html.erb | 14 +++++++----- app/views/admin/pages/_form.html.erb | 27 +++++++++-------------- 7 files changed, 37 insertions(+), 63 deletions(-) diff --git a/app/controllers/admin/items_controller.rb b/app/controllers/admin/items_controller.rb index 643646914..33bc0fd20 100644 --- a/app/controllers/admin/items_controller.rb +++ b/app/controllers/admin/items_controller.rb @@ -15,21 +15,6 @@ class Admin::ItemsController < ApplicationController @item = get_homepage end end - - -#TODO -# Allow to move items down and up different parents -# def up -# @item = Item.find(params[:id]) -# @item.move_higher -# redirect_to admin_items_url( :parent_name => @item.parent_name ) -# end -# -# def down -# @item = Item.find(params[:id]) -# @item.move_lower -# redirect_to admin_items_url( :parent_name => @item.parent_name ) -# end protected diff --git a/app/controllers/admin/links_controller.rb b/app/controllers/admin/links_controller.rb index 57b1f7753..533ff8293 100644 --- a/app/controllers/admin/links_controller.rb +++ b/app/controllers/admin/links_controller.rb @@ -12,13 +12,11 @@ class Admin::LinksController < ApplicationController def new @item = Link.new - @item.is_published = true - @item.parent_id = Page.find(params[:parent_id]).id rescue nil + @item.parent = Page.find(params[:parent_id]) rescue nil end def edit @item = Link.find(params[:id]) - @i18n_variable = @item.i18n_variable end def create @@ -34,7 +32,6 @@ class Admin::LinksController < ApplicationController end else flash.now[:error] = t('admin.create_error_link') - @i18n_variable = @item.i18n_variable render :action => "new" end end @@ -52,7 +49,6 @@ class Admin::LinksController < ApplicationController end else flash.now[:error] = t('admin.update_error_link') - @i18n_variable = @item.i18n_variable render :action => "edit" end end diff --git a/app/controllers/admin/pages_controller.rb b/app/controllers/admin/pages_controller.rb index 7d8961433..d1a465baa 100644 --- a/app/controllers/admin/pages_controller.rb +++ b/app/controllers/admin/pages_controller.rb @@ -19,19 +19,17 @@ class Admin::PagesController < ApplicationController def new @item = Page.new + @item.parent = Item.find(params[:parent_id]) rescue nil @apps = ModuleApp.all - @item.is_published = true - @item.parent_id = @parent_item.id rescue nil @designs = Design.all.entries - @default_design = Design.first + @design = Design.first end def edit @item = Page.find(params[:id]) @apps = ModuleApp.all - @i18n_variable = @item.i18n_variable @designs = Design.all.entries - @design = @item.design + @design = @item.design ? @item.design : @designs.first @app_frontend_urls = @item.module_app.app_pages if @item.module_app end @@ -47,7 +45,9 @@ class Admin::PagesController < ApplicationController end else flash.now[:error] = t('admin.create_error_page') - @i18n_variable = @item.i18n_variable + @apps = ModuleApp.all + @designs = Design.all.entries + @design = Design.first render :action => "new" end end diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index 4af02e9e7..af5f412a7 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -13,13 +13,16 @@ class PagesController < ApplicationController def show #begin - item = Item.first(:conditions => {:full_name => params[:page_name]}) - case item._type - when 'Page' - @item = item - render_page(params[:id]) - when 'Link' - redirect_to "http://#{item[:url]}" + @item = Item.first(:conditions => {:full_name => params[:page_name]}) + if @item.is_published + case @item._type + when 'Page' + render_page(params[:id]) + when 'Link' + redirect_to "http://#{@item[:url]}" + end + else + render :file => "#{Rails.root}/public/404.html", :status => :not_found end #rescue # render :file => "#{Rails.root}/public/404.html", :status => :not_found diff --git a/app/models/item.rb b/app/models/item.rb index 6bda52090..44c6762d6 100644 --- a/app/models/item.rb +++ b/app/models/item.rb @@ -5,15 +5,13 @@ class Item field :name, :index => true field :full_name, :index => true - field :parent_id, :index => true - field :parent_name field :position, :type => Integer - field :is_published, :type => Boolean, :default => true, :index => true + field :is_published, :type => Boolean, :default => false, :index => true validates_format_of :name, :with => /^[0-9a-zA-Z\-_]+$/ validates :name, :exclusion => { :in => LIST[:forbidden_item_names] } validates_uniqueness_of :name, :scope => :parent_id - validates_presence_of :name, :full_name, :position, :is_published + validates_presence_of :name, :full_name, :position belongs_to :parent, :class_name => "Item" has_one :i18n_variable, :as => :language_value, :autosave => true, :dependent => :destroy @@ -47,9 +45,6 @@ class Item self.position = (max_page)? max_page + 1 : 1 end - # Set the parent value - self.parent_name = Item.first(:conditions => {:id => self.parent_id} ).name rescue nil - # Build the full_name from the ancestors array full_node = self.ancestors.map{ |a| a.name }.push( self.name ) # Remove root node if not root diff --git a/app/views/admin/links/_form.html.erb b/app/views/admin/links/_form.html.erb index 57c5bfeb8..2f03b9689 100644 --- a/app/views/admin/links/_form.html.erb +++ b/app/views/admin/links/_form.html.erb @@ -1,16 +1,18 @@ <%= f.error_messages %> -<%= f.hidden_field :parent_id %> +<%= f.hidden_field :parent, :value => @item.parent.id %>

<%= f.label :name, "Name" %> <%= f.text_field :name, :class => 'text' %>

-<% @site_valid_locales.each do |locale| %> -

- <%= label_tag "link[title]", "#{t('admin.title')} #{locale}" %> - <%= text_field_tag "link[i18n_variable][#{locale}]", (@i18n_variable[locale] if @i18n_variable), :class => 'text' %> -

+<%= f.fields_for :i18n_variable, (@item.new_record? ? @item.build_i18n_variable : @item.i18n_variable) do |f| %> + <% @site_valid_locales.each do |locale| %> +

+ <%= f.label :locale, "#{t('admin.title')} #{I18nVariable.from_locale(locale)}" %> + <%= f.text_field locale %> +

+ <% end %> <% end %>

diff --git a/app/views/admin/pages/_form.html.erb b/app/views/admin/pages/_form.html.erb index 8223f0bb1..ecabdd130 100644 --- a/app/views/admin/pages/_form.html.erb +++ b/app/views/admin/pages/_form.html.erb @@ -1,34 +1,27 @@ <%= f.error_messages %> -<%= f.hidden_field :parent_id %> +<%= f.hidden_field :parent, :value => @item.parent.id %>

<%= f.label :name, t('admin.name') %> <%= f.text_field :name, :class => 'text' %>

- -<% @site_valid_locales.each do |locale| %> -

- <%= label_tag "page[title]", "#{t('admin.title')} #{locale}" %> - <%= text_field_tag "page[i18n_variable][#{locale}]", (@i18n_variable[locale] if @i18n_variable), :class => 'text' %> -

+<%= f.fields_for :i18n_variable, (@item.new_record? ? @item.build_i18n_variable : @item.i18n_variable) do |f| %> + <% @site_valid_locales.each do |locale| %> +

+ <%= f.label :locale, "#{t('admin.title')} #{I18nVariable.from_locale(locale)}" %> + <%= f.text_field locale %> +

+ <% end %> <% end %>

<%= t('admin.design_name') %> - <% if @design %> - <%= f.collection_select :design_id, @designs, :id, :title, {}, :rel => admin_pages_path %> - <% else %> - <%= f.select :design_id, @designs.collect { |d| [d.title, d.id] }, {:selected => @default_design.id}, {:rel => admin_pages_path} %> - <% end %> + <%= f.collection_select :design, @designs, :id, :title, {:selected => @design.id}, {:rel => admin_pages_path} %>

<%= t('admin.theme') %> - <% if @design %> - <%= f.select :theme_id, @design.themes.collect { |t| [t.name.capitalize, t.id] }, :include_blank => true %> - <% else %> - <%= f.select :theme_id, @default_design.themes.collect { |t| [t.name.capitalize, t.id] }, :include_blank => true %> - <% end %> + <%= f.select :theme_id, @design.themes.collect { |t| [t.name.capitalize, t.id] }, :include_blank => true %>

<%= t('admin.module_app') %> From daebaa43f8b80d1ce00a59b447c1cb848947c65a Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 17 Feb 2012 19:45:48 +0800 Subject: [PATCH 04/44] update announcement & web_resource widget --- .../announcement/announcement.json | 2 +- .../widget/bulletins/bulletins_list.html.erb | 12 +++--- .../widget/bulletins/index.html.erb | 28 ++++++------- .../widget/bulletins_controller.rb | 30 ------------- .../widget/web_links_controller.rb | 9 ++-- .../app/models/web_resource_tag.rb | 5 +++ .../widget/bulletins/index.html.erb | 42 ------------------- .../widget/web_links/index.html.erb | 10 +++-- 8 files changed, 39 insertions(+), 99 deletions(-) delete mode 100644 vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/bulletins_controller.rb delete mode 100644 vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/bulletins/index.html.erb diff --git a/vendor/built_in_modules/announcement/announcement.json b/vendor/built_in_modules/announcement/announcement.json index 76516b509..77026d91a 100644 --- a/vendor/built_in_modules/announcement/announcement.json +++ b/vendor/built_in_modules/announcement/announcement.json @@ -7,6 +7,6 @@ "update_info": "Some info", "create_date": "11-11-2011", "app_pages": ["bulletins"], - "widgets": ["bulletins"], + "widgets": ["bulletins","bulletins_list"], "enable_frontend": true } diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_list.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_list.html.erb index e110b5c9c..992049657 100644 --- a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_list.html.erb +++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/bulletins_list.html.erb @@ -2,7 +2,6 @@ <% if @bulletins and !@bulletins.nil? %> -

    <% @tags.each do |tag| %> @@ -11,15 +10,18 @@
- -
-

<%= t('公告訊息')%>

+<% @tags.each_with_index do |tag, index| %> +
+

<%= t('公告訊息')%>

+
prev
+
next
    - <% @bulletins.each do |post| %> + <% tag.bulletins.each do |post| %>
  • <%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post) %>
  • <% end %>
+<% end %> <% end %> diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/index.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/index.html.erb index b6ef35975..8aa261efd 100644 --- a/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/index.html.erb +++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/widget/bulletins/index.html.erb @@ -2,21 +2,19 @@ <% if @bulletins and !@bulletins.nil? %> -
-
-

<%= t('焦點新聞')%>

- <%= link_to "more+",panel_announcement_front_end_bulletins_path(), :class => "topic_note" %> -
    - <% @bulletins.each do |post| %> -
  • -
    <%= image_tag(post.image.url, :size => "290x130") if post.image.file %>
    -

    <%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post) %>

    -

    <%= post.subtitle[I18n.locale] %>

    -
  • - <% end %> -
-
-
+

<%= t('焦點新聞')%>

+<%= link_to "more+",panel_announcement_front_end_bulletins_path(), :class => "topic_note" %> +
previous page
+
next page
+
    + <% @bulletins.each do |post| %> +
  • +
    <%= image_tag(post.image.url, :size => "290x130") if post.image.file %>
    +

    <%= link_to post.title[I18n.locale], panel_announcement_front_end_bulletin_path(post) %>

    +

    <%= post.subtitle[I18n.locale] %>

    +
  • + <% end %> +
<% end %> diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/bulletins_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/bulletins_controller.rb deleted file mode 100644 index 5ba9ffc0b..000000000 --- a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/bulletins_controller.rb +++ /dev/null @@ -1,30 +0,0 @@ -class Panel::Announcement::Widget::BulletinsController < ObitWidgetController - - def initialize - super - @app_title = NewBlog::MOUDLEAPP_TITLE - end - - # GET /bulletins - # GET /bulletins.xml - - def index - - # deadline - - @bulletin = Bulletin.where( :postdate.lte => Date.today ).desc(:is_top, :postdate).first - - @bulletins = Bulletin.widget_datas - - get_categorys - - end - - - protected - - def get_categorys - @bulletin_categorys = BulletinCategory.excludes('disabled' => true) - end - -end diff --git a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb index 9bfc0d88c..ac271ea09 100644 --- a/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb +++ b/vendor/built_in_modules/web_resource/app/controllers/panel/web_resource/widget/web_links_controller.rb @@ -12,11 +12,14 @@ class Panel::WebResource::Widget::WebLinksController < ObitWidgetController # deadline - @web_link = WebLink.where( :is_hidden => false ).desc(:is_top, :name).first + # @web_link = WebLink.where( :is_hidden => false ).desc(:is_top, :name).first - @web_links = WebLink.widget_datas + @web_links = WebLink.widget_datas.limit(5) - get_categorys + # get_categorys + + module_app = ModuleApp.first(:conditions => {:key => 'web_resource'}) + @tags = Tag.all(:conditions => {:module_app_id => module_app.id}) end diff --git a/vendor/built_in_modules/web_resource/app/models/web_resource_tag.rb b/vendor/built_in_modules/web_resource/app/models/web_resource_tag.rb index 85f263b3d..2355cb5e9 100644 --- a/vendor/built_in_modules/web_resource/app/models/web_resource_tag.rb +++ b/vendor/built_in_modules/web_resource/app/models/web_resource_tag.rb @@ -2,4 +2,9 @@ class WebResourceTag < Tag has_and_belongs_to_many :web_links + + def get_visible_links(sort = :name) + self.web_links.where(:is_hidden => false).desc(:is_top, sort) + end + end \ No newline at end of file diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/bulletins/index.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/bulletins/index.html.erb deleted file mode 100644 index 2c4cd1533..000000000 --- a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/bulletins/index.html.erb +++ /dev/null @@ -1,42 +0,0 @@ - - -<% if @bulletin and !@bulletin.nil? %> - -
-

<%= @bulletin.title %>

-

<%= @bulletin.subtitle %>

- <%= link_to "read more >",panel_announcement_front_end_bulletin_path(@bulletin.id) %> - read more > -
- -<% end %> - -<% if @bulletins and !@bulletins.nil? %> - -
-

news

-
    - <% @bulletins.each do |post| %> -
  • <%= post.postdate.to_s.gsub("-", "") %><%= link_to post.title,panel_announcement_front_end_bulletin_path(post) %>
  • - <% end %> -
-<%= link_to "read more >",panel_announcement_front_end_bulletins_path(), :class => "btn" %> -read more > -
- -
-

news

-
    - <% @bulletins.each do |post| %> -
  • - <%= image_tag(post.image.url, :size => "160x140") if post.image.file %> -

    <%= post.title %>

    - <%= post.subtitle %> -
  • - <% end %> -
-<%= link_to "read more >",panel_announcement_front_end_bulletins_path(), :class => "btn" %> -read more > -
- -<% end %> diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/web_links/index.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/web_links/index.html.erb index 265b07101..8b617206f 100644 --- a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/web_links/index.html.erb +++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/widget/web_links/index.html.erb @@ -2,13 +2,17 @@ <% if @web_links and !@web_links.nil? %> - \ No newline at end of file diff --git a/app/views/layouts/_side_bar.html.erb b/app/views/layouts/_side_bar.html.erb index fcd762050..48af1d860 100644 --- a/app/views/layouts/_side_bar.html.erb +++ b/app/views/layouts/_side_bar.html.erb @@ -1,5 +1,13 @@
  • <%= link_to content_tag(:i, nil, :class => 'icons-purchase') + t('admin.purchase'), admin_purchases_path %>
  • -
  • <%= link_to content_tag(:i, nil, :class => 'icons-announcement') + t('admin.announcement'), panel_announcement_back_end_bulletins_path %>
  • +
  • + <%= link_to content_tag(:i, nil, :class => 'icons-announcement') + t('admin.announcement'), panel_announcement_back_end_bulletins_path %> + +
  • <%= link_to content_tag(:i, nil, :class => 'icons-member') + t('admin.member'), admin_users_path %>
  • <%= link_to content_tag(:i, nil, :class => 'icons-page') + t('admin.page'), admin_items_path %>
  • <%= link_to content_tag(:i, nil, :class => 'icons-window-block') + t('admin.design'), admin_designs_path %>
  • diff --git a/config/locales/en.yml b/config/locales/en.yml index eb3d75b4f..d228c2c8e 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -23,6 +23,7 @@ en: hide: Hide homepage: Homepage login: Login + logout: Logout no_: "No" nothing: Nothing or_lower: or diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb index 3bb7d54be..92bf922f8 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb @@ -1,6 +1,6 @@ class Panel::Announcement::BackEnd::BulletinCategorysController < ApplicationController - layout 'admin' + layout 'new_admin' def index @bulletin_categorys = BulletinCategory.all diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin.html.erb index a9ab39ae2..dcfa74854 100644 --- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin.html.erb +++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin.html.erb @@ -1,4 +1,4 @@ - + <% if bulletin.is_top? %> @@ -14,13 +14,13 @@
    +
    +

    Content

    +
    +

    Quantity9,517

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    University2,304
    Master783
    Doctor45
    Staff62
    Teacher52
    Professor20
    Assistant Professor41
    Substitute teacher37
    Lecturer41
    Part-time teacher20
    +
    +
    +
    +
    +
    +
    +

    Asset

    +
    +

    Quantity9,517

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    University2,304
    Master783
    Doctor45
    Staff62
    Teacher52
    Professor20
    Assistant Professor41
    Substitute teacher37
    Lecturer41
    Part-time teacher20
    +
    +
    +
    +
    +
    +
    +

    Traffic

    +
    +

    Quantity9,517

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    University2,304
    Master783
    Doctor45
    Staff62
    Teacher52
    Professor20
    Assistant Professor41
    Substitute teacher37
    Lecturer41
    Part-time teacher20
    Staff62
    Teacher52
    Professor20
    Assistant Professor41
    Substitute teacher37
    Lecturer41
    Part-time teacher20
    Staff62
    Teacher52
    Professor20
    Assistant Professor41
    Substitute teacher37
    Lecturer41
    Part-time teacher20
    Staff62
    Teacher52
    Professor20
    Assistant Professor41
    Substitute teacher37
    Lecturer41
    Part-time teacher20
    +
    +
    +
    +
    +
    +
    +

    Site info

    +
    +

    Quantity9,517

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    University2,304
    Master783
    Doctor45
    Staff62
    Teacher52
    Professor20
    Assistant Professor41
    Substitute teacher37
    Lecturer41
    Part-time teacher20
    +
    +
    +
    +
    +
    +
    +

    Connection

    +
    +

    Quantity9,517

    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    University2,304
    Master783
    Doctor45
    Staff62
    Teacher52
    Professor20
    Assistant Professor41
    Substitute teacher37
    Lecturer41
    Part-time teacher20
    +
    +
    +
    +
    +
    + \ No newline at end of file diff --git a/app/views/admin/module_apps/reload_frontend_pages.js.erb b/app/views/admin/module_apps/reload_frontend_pages.js.erb index d9589cc91..3feb17cf1 100644 --- a/app/views/admin/module_apps/reload_frontend_pages.js.erb +++ b/app/views/admin/module_apps/reload_frontend_pages.js.erb @@ -1 +1,2 @@ -$('#app_page_url').html("<%= escape_javascript(select 'page','app_frontend_url', @module_app.app_pages) %>"); \ No newline at end of file +$('#app_page_url').html("<%= escape_javascript(select 'page', 'app_frontend_url', @module_app.app_pages) %>"); +$('#app_page_category').html("<%= escape_javascript(select 'page', 'category', @categories.collect{|category| [category.i18n_variable[I18n.locale], category.id]}) if @categories %>"); \ No newline at end of file diff --git a/app/views/admin/pages/_form.html.erb b/app/views/admin/pages/_form.html.erb index c0cb433dd..a45dbbd29 100644 --- a/app/views/admin/pages/_form.html.erb +++ b/app/views/admin/pages/_form.html.erb @@ -26,7 +26,8 @@

    <%= t('admin.module_app') %> <%= render :partial => "admin/module_apps/app_selector", :locals => { :f => f } %> - <%= select('page','app_frontend_url', @app_frontend_urls ) rescue ''%> + <%= select('page','app_frontend_url', @app_frontend_urls ) rescue ''%> + <%= select('page','category', @categories.collect{|category| [category.i18n_variable[I18n.locale], category.id]} ) rescue ''%>

    <%= f.label :is_published, "#{t('admin.is_published')} ?" %> diff --git a/lib/parsers/parser_back_end.rb b/lib/parsers/parser_back_end.rb index dddc27a9f..10d9d4a2b 100644 --- a/lib/parsers/parser_back_end.rb +++ b/lib/parsers/parser_back_end.rb @@ -98,8 +98,9 @@ module ParserBackEnd c.define_tag 'content' do |tag| ret = '' if (tag.attributes["main"] == "true" && !page.module_app.nil?) - # ret << "

    " - ret << "
    " + ret << "
    " else part = page.page_parts.detect{ |p| p.name.to_s == tag.attr['name'].to_s } ret << "
    " diff --git a/lib/parsers/parser_front_end.rb b/lib/parsers/parser_front_end.rb index 2b9f3a4fe..2ddbb84c7 100644 --- a/lib/parsers/parser_front_end.rb +++ b/lib/parsers/parser_front_end.rb @@ -76,6 +76,7 @@ module ParserFrontEnd res << "" res << "" res << "" + res << "" res << "" res << "" page.design.javascripts.each do |js| @@ -124,8 +125,9 @@ module ParserFrontEnd if (tag.attributes["main"] == "true" && !page.module_app.nil?) ret << "
    " - ret << "?inner=true&page_id=#{page.id}'>
    " + ret << "?inner=true&page_id=#{page.id}" + ret << "&bulletin_category_id=#{page.category}" if page.category + ret << "'>" else part = page.page_parts.detect{ |p| p.name.to_s == tag.attr['name'].to_s } rescue nil case part.kind diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb index 20870a7c8..919fc387e 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletins_controller.rb @@ -12,7 +12,9 @@ class Panel::Announcement::BackEnd::BulletinsController < ApplicationController # @bulletins = Bulletin.where("bulletin_category_id" => params[:bulletin_category_id]).desc("postdate") if params[:bulletin_category_id] - @bulletins = Bulletin.search(params[:search], params[:category_id]).order_by([params[:sort], params[:direction]]) + # @bulletins = Bulletin.search(params[:search], params[:category_id]) + # @bulletins = Bulletin.all.order_by([params[:sort], params[:direction]]) + @bulletins = params[:sort] ? get_sorted_bulletins : Bulletin.all @bulletin_categories = BulletinCategory.all module_app = ModuleApp.first(:conditions => {:key => 'announcement'}) @@ -20,6 +22,7 @@ class Panel::Announcement::BackEnd::BulletinsController < ApplicationController respond_to do |format| format.html # index.html.erb + format.js format.xml { render :xml => @bulletins } end end @@ -145,6 +148,36 @@ class Panel::Announcement::BackEnd::BulletinsController < ApplicationController def get_categorys(id = nil) @bulletin_categorys = (id ? BulletinCategory.find(id).to_a : BulletinCategory.excludes('disabled' => true)) end + + def get_sorted_bulletins + bulletins = Bulletin.all + case params[:sort] + when 'postdate', 'deadline' + bulletins.order_by([params[:sort], params[:direction]]) + when 'category' + category_ids = bulletins.distinct(:bulletin_category_id) + categories = BulletinCategory.find(category_ids) if category_ids + if categories + h = Hash.new + categories.each { |category| h[category.i18n_variable[I18n.locale]] = category.id } + sorted = params[:direction].eql?('asc') ? h.sort : h.sort.reverse! + sorted_categorys = sorted.collect {|a| bulletins.where(:bulletin_category_id => a[1]).entries } + sorted_categorys.flatten + else + nil + end + when 'title' + h = Hash.new + bulletins.each { |bulletin| h[bulletin.title[I18n.locale]] = bulletin } + sorted = params[:direction].eql?('asc') ? h.sort : h.sort.reverse! + sorted.collect {|a| a[1] } + when 'status' + # a << bulletins.order_by(:is_top, params[:direction]).order_by + # a << bulletins.where(:is_hot => true).entries + # a << bulletins.where(:is_hidden => true).entries + # a.flatten.uniq + end + end end diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb index 28a3ec5b9..eb429e4df 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb @@ -10,9 +10,12 @@ class Panel::Announcement::FrontEnd::BulletinsController < ObitWidgetController def index - date_now = Time.now - - @bulletins = Bulletin.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(1) + date_now = Time.now + if params[:bulletin_category_id] + @bulletins = Bulletin.where(:bulletin_category_id => params[:bulletin_category_id]).any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(1) + else + @bulletins = Bulletin.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page]).per(1) + end get_categorys end diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletins.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletins.html.erb new file mode 100644 index 000000000..e5559f461 --- /dev/null +++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletins.html.erb @@ -0,0 +1,36 @@ + + + + + + + + <%= link_to (t('bulletin.status') + content_tag(:b, nil)), panel_announcement_back_end_bulletins_path(sortable('status')) %> + + + <%= t('bulletin.category') %> + <%= content_tag(:b, nil, :class => is_sort?('category')) %> + + + <%= t('bulletin.title') %> + <%= content_tag(:b, nil, :class => is_sort?('title')) %> + + + <%= t('bulletin.start_date') %> + <%= content_tag(:b, nil, :class => is_sort?('postdate')) %> + + + <%= t('bulletin.end_date') %> + <%= content_tag(:b, nil, :class => is_sort?('deadline')) %> + + + <%= link_to (t('bulletin.tags') + content_tag(:b, nil)), panel_announcement_back_end_bulletins_path(sortable('tags')) %> + + + <%= link_to (t('bulletin.last_modified') + content_tag(:b, nil)), panel_announcement_back_end_bulletins_path(sortable('update_user_id')) %> + + + + + <%= render :partial => 'bulletin', :collection => @bulletins %> + \ No newline at end of file diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_quick_edit_picture.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_quick_edit_picture.html.erb index c2503fde6..6e7c656a6 100644 --- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_quick_edit_picture.html.erb +++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_quick_edit_picture.html.erb @@ -3,7 +3,7 @@
    - +