Merge branch 'gallery_orbit' of https://github.com/Rulingcom/orbit into gallery_orbit

Conflicts:
	vendor/built_in_modules/gallery/config/routes.rb
This commit is contained in:
Harry Bomrah 2012-11-14 16:25:02 +08:00
commit 46f80ade6a
22 changed files with 1042 additions and 880 deletions

View File

@ -7,12 +7,12 @@ module AdminHelper
# Check if the current_user is manager in current module app
def is_manager?
@module_app.is_manager?(current_or_guest_user) || is_admin?
(@module_app.is_manager?(current_or_guest_user) rescue nil) || is_admin?
end
# Check if the current_user is sub manager in current module app
def is_sub_manager?
@module_app.is_sub_manager?(current_or_guest_user)|| is_admin?
(@module_app.is_sub_manager?(current_or_guest_user) rescue nil) || is_admin?
end
def is_admin?

View File

@ -163,7 +163,7 @@ protected
result << "</div>"
result << "<ul class='nav nav-pills'>"
VALID_LOCALES.each do |key|
result << content_tag(:li,link_to(t(:_locale, :locale => key),"#tab"+id.to_s+"_#{key}",:data=>{:toggle=>"tab"}),:class=>(key == I18n.locale.to_s ? "active" : nil))
result << content_tag(:li,link_to(I18n.t(:_locale, :locale => key),"#tab"+id.to_s+"_#{key}",:data=>{:toggle=>"tab"}),:class=>(key == I18n.locale.to_s ? "active" : nil))
end
result << "</ul>"
result << "</div>"

View File

@ -368,176 +368,176 @@ en:
errors:
at_least_one: must at least have one value
admin:
access:
denied:
app:
not_sub_manager: Access Denied for you are not SubManager for this app
not_manager: Access Denied for you are not SubManager for this app
not_authed_user: Access Denied for you are not User for this app
not_admin: Access Denied for you are not Admin
object: "Access Denied for you don't have permission for this object"
action: Action
ad_banner: AD Banner
orbit_gallery: Gallery
calendar: Calendar
ad:
sec_place_holder: Enter 3 if 3 sec
ab_fx: FX
all_banners: AdBanner list
banner_best_size: Banner Best Size
best_size: Best size
new_banner: New banner
new_image: New image
showing: Showing
not_showing: NotShowing
picture_list: Picture List
title: Title
transition_sec: Transition time
trans_unit_sec: sec
update_banner: Update Banner
widget_info_for_ad_image_size: "Best size with: %{best_size}"
add: Add
add_item: Add item
add_language: Add language
add_drop_down_item: +Add Menu Item
admin: Admin
action: Action
all_articles: List
always_display_title: Always displayed in the title bar
announcement: Announcement
asset: Asset
assets:
file: File
album: Album
video: Video
book: Book
attributes: Attributes
author: Author
calendar: Calendar
gprs: GPS
cant_delete_self: You can not delete yourself.
cant_revoke_self_admin: You can not revoke your admin role yourself.
category: Category
choose_file: Choose a file...
class: Class
content: Content
create_error_link: Error when creating link.
create_error_page: Error when creating page.
create_success_home: Homepage was successfully created.
create_success_layout: Layout was successfully created.
create_success_link: Link was successfully created.
create_success_page: Page was successfully created.
create_success_snippet: Snippet was successfully created.
create_success_user: User was successfully created.
data: Data
dashboard: Dashboard
delete_language: Delete language
description: Description
design: Template
disable_language: Disable language
editing_home: Editing homepage
editing_layout: Editing layout
editing_link: Editing link
editing_page: Editing page
editing_snippet: Editing snippet
editing_info: Editing user information
editing_role: Editing user role
email: Email
enable_language: Enable language
enabled_for: Enabled for
file_name: Filename
file_size: File size
file_upload: File upload
format: Format
home: Home
id: ID
info: Information
intro: Introduction
is_published: Is published
item: Item
key: Key
keywords: Keywords
language: Language
layout: Layout
layout_name: Layout name
links: Links
link: Links
list_assets: Assets list
list_designs: Designs list
list_items: Items list
list_puchases: Purchases list
list_snippets: Snippets list
list_users: Users list
list_infos: User information list
list_roles: User roles list
mail_address: Address
mail_port: Port
mail_domain: Domain
mail_authentication: Authentication
mail_user_name: User Name
mail_password: Password
mail_tls: TLS
mail_enable_starttls_auto: Enable Start TLS Auto
member: Member
menu_enabled_for: Menu enabled for
module:
authorization: Module Authorization
move_down: Move down
move_up: Move up
multilingual: Multilingual
my_avatar: My Avatar
no_home_page: You don't have a homepage
no_layout: You don't have a layout
name: Name
nccu: NCCU Custom
nccu_c:
nccu_ldap_uid: NCCU LDAP Account
new_asset: New asset
new_component: New component
new_design: New design
new_home: New homepage
new_layout: New layout
new_link: New link
new_page: New page
new_snippet: New snippet
new_user: New user
new_info: New user information
new_role: New user role
news: News
non_multilingual: Non multilingual
object_auth:
list_title_of_users: %{auth_title} Auth List
update_done: Update done,reulst showing in list
update_failed: Update failed
options: Options
orig_upload_file: Original filename
page: Page
page_context:
edit: Edit
ob_auth:
edit: Category authorization
page_part_kinds:
text: Text Area
public_r_tag: System Widget
module_widget: Plug-in Module Widget
position: Position
published?: Published?
purchase: Purchase
registered: Registered
role: Role
roles: Roles
setup_member: Member setup
setup_translations: Translations setup
setup_designs: Designs setup
site: Site
site_description: Site description
site_footer: Site footer
site_settings: Site Setting
site_sub_menu: Site sub-menu
site_title: Site title
super_pages: Super pages
structure: Structure
# admin:
# access:
# denied:
# app:
# not_sub_manager: Access Denied for you are not SubManager for this app
# not_manager: Access Denied for you are not SubManager for this app
# not_authed_user: Access Denied for you are not User for this app
# not_admin: Access Denied for you are not Admin
# object: "Access Denied for you don't have permission for this object"
# action: Action
# ad_banner: AD Banner
# orbit_gallery: Gallery
# calendar: Calendar
# ad:
# sec_place_holder: Enter 3 if 3 sec
# ab_fx: FX
# all_banners: AdBanner list
# banner_best_size: Banner Best Size
# best_size: Best size
# new_banner: New banner
# new_image: New image
# showing: Showing
# not_showing: NotShowing
# picture_list: Picture List
# title: Title
# transition_sec: Transition time
# trans_unit_sec: sec
# update_banner: Update Banner
# widget_info_for_ad_image_size: "Best size with: %{best_size}"
# add: Add
# add_item: Add item
# add_language: Add language
# add_drop_down_item: +Add Menu Item
# admin: Admin
# action: Action
# all_articles: List
# always_display_title: Always displayed in the title bar
# announcement: Announcement
# asset: Asset
# assets:
# file: File
# album: Album
# video: Video
# book: Book
# attributes: Attributes
# author: Author
# calendar: Calendar
# gprs: GPS
# cant_delete_self: You can not delete yourself.
# cant_revoke_self_admin: You can not revoke your admin role yourself.
# category: Category
# choose_file: Choose a file...
# class: Class
# content: Content
# create_error_link: Error when creating link.
# create_error_page: Error when creating page.
# create_success_home: Homepage was successfully created.
# create_success_layout: Layout was successfully created.
# create_success_link: Link was successfully created.
# create_success_page: Page was successfully created.
# create_success_snippet: Snippet was successfully created.
# create_success_user: User was successfully created.
# data: Data
# dashboard: Dashboard
# delete_language: Delete language
# description: Description
# design: Template
# disable_language: Disable language
# editing_home: Editing homepage
# editing_layout: Editing layout
# editing_link: Editing link
# editing_page: Editing page
# editing_snippet: Editing snippet
# editing_info: Editing user information
# editing_role: Editing user role
# email: Email
# enable_language: Enable language
# enabled_for: Enabled for
# file_name: Filename
# file_size: File size
# file_upload: File upload
# format: Format
# home: Home
# id: ID
# info: Information
# intro: Introduction
# is_published: Is published
# item: Item
# key: Key
# keywords: Keywords
# language: Language
# layout: Layout
# layout_name: Layout name
# links: Links
# link: Links
# list_assets: Assets list
# list_designs: Designs list
# list_items: Items list
# list_puchases: Purchases list
# list_snippets: Snippets list
# list_users: Users list
# list_infos: User information list
# list_roles: User roles list
# mail_address: Address
# mail_port: Port
# mail_domain: Domain
# mail_authentication: Authentication
# mail_user_name: User Name
# mail_password: Password
# mail_tls: TLS
# mail_enable_starttls_auto: Enable Start TLS Auto
# member: Member
# menu_enabled_for: Menu enabled for
# module:
# authorization: Module Authorization
# move_down: Move down
# move_up: Move up
# multilingual: Multilingual
# my_avatar: My Avatar
# no_home_page: You don't have a homepage
# no_layout: You don't have a layout
# name: Name
# nccu: NCCU Custom
# nccu_c:
# nccu_ldap_uid: NCCU LDAP Account
# new_asset: New asset
# new_component: New component
# new_design: New design
# new_home: New homepage
# new_layout: New layout
# new_link: New link
# new_page: New page
# new_snippet: New snippet
# new_user: New user
# new_info: New user information
# new_role: New user role
# news: News
# non_multilingual: Non multilingual
# object_auth:
# list_title_of_users: %{auth_title} Auth List
# update_done: Update done,reulst showing in list
# update_failed: Update failed
# options: Options
# orig_upload_file: Original filename
# page: Page
# page_context:
# edit: Edit
# ob_auth:
# edit: Category authorization
# page_part_kinds:
# text: Text Area
# public_r_tag: System Widget
# module_widget: Plug-in Module Widget
# position: Position
# published?: Published?
# purchase: Purchase
# registered: Registered
# role: Role
# roles: Roles
# setup_member: Member setup
# setup_translations: Translations setup
# setup_designs: Designs setup
# site: Site
# site_description: Site description
# site_footer: Site footer
# site_settings: Site Setting
# site_sub_menu: Site sub-menu
# site_title: Site title
# super_pages: Super pages
# structure: Structure
# : >>>>>>> various_bugs
tags: Tags
url: URL

View File

@ -350,278 +350,278 @@ zh_tw:
# : =======
errors:
at_least_one: 必須至少有一個值
admin:
infos:
add_attribute_field: 新增
save: 儲存
initial: 起始值
markup: 輸入模式
item_name: 資料表名稱
name: 名稱
options: 選項
multilingual: 多語言輸入
add_more: 使用者可自行延伸欄位
add: 新增
placeholder: 輸入協助
type: 類型
placeholder: 提示內容
list: 自定選單
is_range:
not_range:
date:
claendar: 紀年法
range: 本欄為時間區段
format: 格式
tw_claendar: 民國
west_claendar: 西元
access:
denied:
app:
not_sub_manager: 拒絕存取因你不是此應用程式次管理員
not_manager: 拒絕存取因你不是此應用程式管理員
not_authed_user: 拒絕存取因你不是此應用程式授權使用者
not_admin: 拒絕存取因你不是此應用程式次管理員
object: 拒絕存取因你不是網站管理者
action: 操作
ad_banner: 廣告輪播
orbit_gallery: 活動花絮
ad:
sec_place_holder: 3秒請輸入3
ab_fx: 轉場特效
all_banners: 輪播清單
banner_best_size: Banner 尺寸
best_size: 最佳尺寸
cate_auth: 分類授權
delete_banner: 刪除整組輪播
new_banner: 新增輪播
new_image: 新增橫幅
showing: 顯示中
not_showing: 沒有顯示
picture_list: 圖片列表
title: 標題
transition_sec: 轉場單位時間
trans_unit_sec:
update_banner: 更新輪播
widget_info_for_ad_image_size: "此區塊圖片尺寸請使用 %{best_size}"
add: 新增
add_item: 新增項目
add_language: 新增語言
add_drop_down_item: 增加Orbit選單
admin: 網站管理者
all_articles: 列表
always_display_title: 永遠顯示於標題列
announcement: 公告管理
asset: 資產
assets:
file: 檔案
album: 相簿
video: 影片
book: 書籍
attributes: 屬性
author: 作者
calendar: 行事曆
cant_delete_self: 您不可以刪除自己。
cant_revoke_self_admin: 您不可以撤銷自己的管理身份。
category: 類別
choose_file: 請選擇一個文件...
class: 階級
content: 內容
contenteditable:
update_done: 更新完成
update_failed: 更新失敗
create_error_link: 新增連接時出錯。
create_error_page: 新增頁面時出錯。
create_success_home: 首頁已成功新增。
create_success_layout: 樣板已成功新增。
create_success_link: 連結已成功新增。
create_success_page: 頁面已成功新增。
create_success_home: 首頁已成功新增。
create_success_layout: 佈局已成功新增。
create_success_link: 連結已成功新增。
create_success_page: 頁面已成功新增。
create_success_snippet: 片段已成功新增。
create_success_user: 用戶已成功新增。。
dashboard: 儀表板
data: 選擇檔案
delete_language: 刪除語言
description: 描述
design: 版型管理
disable_language: 禁用語言
edit: 編輯
editing_home: 編輯首頁
editing_layout: 編輯樣板
editing_link: 編輯連結
editing_page: 編輯頁面
editing_snippet: 編輯片段
editing_info: 編輯用戶資料
editing_role: 編輯用戶身份
email: Email
enable_language: 啟用語言
enabled_for: 啟用
file_name: 檔名
file_size: 檔案大小
file_upload: 文件上載
format: 格式
home: 首頁
id: ID
info: 資料
intro: 簡介
is_published: 被出版
item: 網站架構
key: 關鍵
keywords: 關鍵字
language: 語言
layout: 佈局
layout_name: 佈局名字
link: 連結管理
links: 網路資源
list_assets: 資產列表
list_designs: 設計列表
list_items: 項目列表
list_puchases: 購買清單
list_snippets: 斷片列表
list_users: 使用列表
list_infos: 用戶資料列表
list_roles: 用戶身份列表
mail_address: 郵件地址
mail_port: 傳輸埠
mail_domain: 網域名稱
mail_authentication: 認證
mail_user_name: 帳號
mail_password: 密碼
mail_tls: TLS
mail_enable_starttls_auto: Enable Start TLS Auto
member: 會員
menu_enabled_for: 選單啟用
module:
authorization: 模組授權
move_down: 往下移
move_up: 往上移
multilingual: 多種語言
my_avatar: 我的頭像
no_home_page: 您沒有首頁
no_layout: 您沒有佈局
name: 名稱
new_admin:
side_bar:
all_user: 所有使用者
add_user: 新增使用者
user_roles: 角色
user_info: 使用者資訊
user: 會員
users:
all_plugin_summary: 全部
profile: 基本資料
roles:
staff: 職員資料
student: 學生資料
teacher: 教師資料
action:
add: 新增
edit: 編輯
delete: 刪除
quick_edit: 快速編輯
next: 下一頁
prev: 上一頁
attributes:
roles: 角色
name: 名稱
publications: 出版數
courses: 開課數
followers: 被關注數
show_mode:
index: 清單
summary: 摘要
thumbnail: 縮圖
table_header:
status: 狀態
category: 分類
tags: 標籤
clear_filter: 重置
new_asset: 新增資產
new_component: 新增元件
new_design: 新設計
new_home: 新增首頁
new_layout: 新增樣板
new_link: 新增連結
new_page: 新增頁面
new_snippet: 新增片段
new_user: 新增使用
new_info: 新增用戶資料
new_role: 新增用戶身份
news: 新聞
non_multilingual:
object_auth:
list_title_of_users: 授權清單-%{auth_title}
update_done: 更新完成,結果顯示於清單
update_failed: 更新失敗
options: 選項
orig_upload_file: 原上傳檔名
page: 頁面管理
page_context:
edit: 編輯
ob_auth:
edit: 分類授權
page_part_kinds:
text: 文字區塊
public_r_tag: 系統模塊
module_widget: 外掛模塊
position: 位置
published?: 發布?
purchase: 購買
role: 身份
roles: 身份
site_description: 網站描述
site_footer: 網站頁尾
site_settings: 基本設定
site_sub_menu: 網站次選單
site_title: 網站標題
setup_member: 成員設置
setup_translations: 語系設定
setup_designs: 版型設定
site: 網站
site_setting: 網站設定
super_pages: 可編頁面
structure: 網站結構
tags: 標籤
title: 標題
translation: 翻譯
type: 類型
up_to_date: 最新版本
update_error_link: 更新鏈接時出現錯誤。
update_error_page: 更新頁面時出現錯誤。
update_success_content: 內容已成功更新。
update_success_home: 首頁已成功更新。
update_success_layout: 樣板已成功更新。
update_success_link: 連結已成功更新。
update_success_page: 頁面已成功更新。
update_success_snippet: 片段已成功更新。
update_success_user: 用戶已成功更新
upload_design: 上傳設計
url: URL
user: 用戶
user_new_interface:
sys_basic_form: 系統基本資料表
password: 密碼
password_confirmation: 確認密碼
email: 使用者帳號信箱
user_role:
auth:
all_member: 所有會員
manager: 管理員
sub_manager: 次管理員
by_role: 根據身份
by_sub_role: 根據次身份
block_list: 封鎖名單
add_manager: 增加到管理員
add_sub_manager: 增加到次管理員
add_to_block_list: 封鎖名單
add_to_privilege_list: 特許名單
auth_by: -由%{user_display_name}授權
user: 使用會員
info: 用戶資料
panel: 用戶面板
role: 用戶身份
# admin:
# infos:
# add_attribute_field: 新增
# save: 儲存
# initial: 起始值
# markup: 輸入模式
# item_name: 資料表名稱
# name: 名稱
# options: 選項
# multilingual: 多語言輸入
# add_more: 使用者可自行延伸欄位
# add: 新增
# placeholder: 輸入協助
# type: 類型
# placeholder: 提示內容
# list: 自定選單
# is_range: 是
# not_range: 否
# date:
# claendar: 紀年法
# range: 本欄為時間區段
# format: 格式
# tw_claendar: 民國
# west_claendar: 西元
# access:
# denied:
# app:
# not_sub_manager: 拒絕存取因你不是此應用程式次管理員
# not_manager: 拒絕存取因你不是此應用程式管理員
# not_authed_user: 拒絕存取因你不是此應用程式授權使用者
# not_admin: 拒絕存取因你不是此應用程式次管理員
# object: 拒絕存取因你不是網站管理者
# action: 操作
# ad_banner: 廣告輪播
# orbit_gallery: 活動花絮
# ad:
# sec_place_holder: 3秒請輸入3
# ab_fx: 轉場特效
# all_banners: 輪播清單
# banner_best_size: Banner 尺寸
# best_size: 最佳尺寸
# cate_auth: 分類授權
# delete_banner: 刪除整組輪播
# new_banner: 新增輪播
# new_image: 新增橫幅
# showing: 顯示中
# not_showing: 沒有顯示
# picture_list: 圖片列表
# title: 標題
# transition_sec: 轉場單位時間
# trans_unit_sec: 秒
# update_banner: 更新輪播
# widget_info_for_ad_image_size: "此區塊圖片尺寸請使用 %{best_size}"
# add: 新增
# add_item: 新增項目
# add_language: 新增語言
# add_drop_down_item: 增加Orbit選單
# admin: 網站管理者
# all_articles: 列表
# always_display_title: 永遠顯示於標題列
# announcement: 公告管理
# asset: 資產
# assets:
# file: 檔案
# album: 相簿
# video: 影片
# book: 書籍
# attributes: 屬性
# author: 作者
# calendar: 行事曆
# cant_delete_self: 您不可以刪除自己。
# cant_revoke_self_admin: 您不可以撤銷自己的管理身份。
# category: 類別
# choose_file: 請選擇一個文件...
# class: 階級
# content: 內容
# contenteditable:
# update_done: 更新完成
# update_failed: 更新失敗
# create_error_link: 新增連接時出錯。
# create_error_page: 新增頁面時出錯。
# create_success_home: 首頁已成功新增。
# create_success_layout: 樣板已成功新增。
# create_success_link: 連結已成功新增。
# create_success_page: 頁面已成功新增。
# create_success_home: 首頁已成功新增。
# create_success_layout: 佈局已成功新增。
# create_success_link: 連結已成功新增。
# create_success_page: 頁面已成功新增。
# create_success_snippet: 片段已成功新增。
# create_success_user: 用戶已成功新增。。
# dashboard: 儀表板
# data: 選擇檔案
# delete_language: 刪除語言
# description: 描述
# design: 版型管理
# disable_language: 禁用語言
# edit: 編輯
# editing_home: 編輯首頁
# editing_layout: 編輯樣板
# editing_link: 編輯連結
# editing_page: 編輯頁面
# editing_snippet: 編輯片段
# editing_info: 編輯用戶資料
# editing_role: 編輯用戶身份
# email: Email
# enable_language: 啟用語言
# enabled_for: 啟用
# file_name: 檔名
# file_size: 檔案大小
# file_upload: 文件上載
# format: 格式
# home: 首頁
# id: ID
# info: 資料
# intro: 簡介
# is_published: 被出版
# item: 網站架構
# key: 關鍵
# keywords: 關鍵字
# language: 語言
# layout: 佈局
# layout_name: 佈局名字
# link: 連結管理
# links: 網路資源
# list_assets: 資產列表
# list_designs: 設計列表
# list_items: 項目列表
# list_puchases: 購買清單
# list_snippets: 斷片列表
# list_users: 使用列表
# list_infos: 用戶資料列表
# list_roles: 用戶身份列表
# mail_address: 郵件地址
# mail_port: 傳輸埠
# mail_domain: 網域名稱
# mail_authentication: 認證
# mail_user_name: 帳號
# mail_password: 密碼
# mail_tls: TLS
# mail_enable_starttls_auto: Enable Start TLS Auto
# member: 會員
# menu_enabled_for: 選單啟用
# module:
# authorization: 模組授權
# move_down: 往下移
# move_up: 往上移
# multilingual: 多種語言
# my_avatar: 我的頭像
# no_home_page: 您沒有首頁
# no_layout: 您沒有佈局
# name: 名稱
# new_admin:
# side_bar:
# all_user: 所有使用者
# add_user: 新增使用者
# user_roles: 角色
# user_info: 使用者資訊
# user: 會員
# users:
# all_plugin_summary: 全部
# profile: 基本資料
# roles:
# staff: 職員資料
# student: 學生資料
# teacher: 教師資料
# action:
# add: 新增
# edit: 編輯
# delete: 刪除
# quick_edit: 快速編輯
# next: 下一頁
# prev: 上一頁
# attributes:
# roles: 角色
# name: 名稱
# publications: 出版數
# courses: 開課數
# followers: 被關注數
# show_mode:
# index: 清單
# summary: 摘要
# thumbnail: 縮圖
# table_header:
# status: 狀態
# category: 分類
# tags: 標籤
# clear_filter: 重置
# new_asset: 新增資產
# new_component: 新增元件
# new_design: 新設計
# new_home: 新增首頁
# new_layout: 新增樣板
# new_link: 新增連結
# new_page: 新增頁面
# new_snippet: 新增片段
# new_user: 新增使用
# new_info: 新增用戶資料
# new_role: 新增用戶身份
# news: 新聞
# non_multilingual:
# object_auth:
# list_title_of_users: 授權清單-%{auth_title}
# update_done: 更新完成,結果顯示於清單
# update_failed: 更新失敗
# options: 選項
# orig_upload_file: 原上傳檔名
# page: 頁面管理
# page_context:
# edit: 編輯
# ob_auth:
# edit: 分類授權
# page_part_kinds:
# text: 文字區塊
# public_r_tag: 系統模塊
# module_widget: 外掛模塊
# position: 位置
# published?: 發布?
# purchase: 購買
# role: 身份
# roles: 身份
# site_description: 網站描述
# site_footer: 網站頁尾
# site_settings: 基本設定
# site_sub_menu: 網站次選單
# site_title: 網站標題
# setup_member: 成員設置
# setup_translations: 語系設定
# setup_designs: 版型設定
# site: 網站
# site_setting: 網站設定
# super_pages: 可編頁面
# structure: 網站結構
# tags: 標籤
# title: 標題
# translation: 翻譯
# type: 類型
# up_to_date: 最新版本
# update_error_link: 更新鏈接時出現錯誤。
# update_error_page: 更新頁面時出現錯誤。
# update_success_content: 內容已成功更新。
# update_success_home: 首頁已成功更新。
# update_success_layout: 樣板已成功更新。
# update_success_link: 連結已成功更新。
# update_success_page: 頁面已成功更新。
# update_success_snippet: 片段已成功更新。
# update_success_user: 用戶已成功更新
# upload_design: 上傳設計
# url: URL
# user: 用戶
# user_new_interface:
# sys_basic_form: 系統基本資料表
# password: 密碼
# password_confirmation: 確認密碼
# email: 使用者帳號信箱
# user_role:
# auth:
# all_member: 所有會員
# manager: 管理員
# sub_manager: 次管理員
# by_role: 根據身份
# by_sub_role: 根據次身份
# block_list: 封鎖名單
# add_manager: 增加到管理員
# add_sub_manager: 增加到次管理員
# add_to_block_list: 封鎖名單
# add_to_privilege_list: 特許名單
# auth_by: -由%{user_display_name}授權
# user: 使用會員
# info: 用戶資料
# panel: 用戶面板
# role: 用戶身份
dashboard:
bulletin: 公告

View File

@ -4,11 +4,11 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
before_filter :clean_values, :only => [:create, :update]
# before_filter :for_admin_only,:only => [:]
# before_filter :for_app_manager,:only => [:index,:show,]
# before_filter :for_admin_only,:only => [:]
# before_filter :for_app_manager,:only => [:index,:show,]
before_filter :force_order_for_visitor,:only=>[:index,:show,:get_sorted_and_filtered_bulletins]
before_filter :force_order_for_user,:except => [:index,:show,:get_sorted_and_filtered_bulletins]
before_filter :for_app_sub_manager,:except => [:index,:show,:get_sorted_and_filtered_bulletins]
before_filter :force_order_for_user,:except => [:index,:show,:get_sorted_and_filtered_bulletins,:get_bulletins_json]
before_filter :for_app_sub_manager,:except => [:index,:show,:get_sorted_and_filtered_bulletins,:get_bulletins_json]
before_filter :only => [ :new,:create,:edit,:update,:create] do |controller|
controller.get_categorys('BulletinCategory')
@ -22,6 +22,39 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
render '/shared/preview/preview.html.erb',:layout=>false
end
def get_bulletins_json
@bulletins = Bulletin.all
@data = Hash.new
@data[I18n.t("category")] = Hash.new
@bulletins.each do |b|
deadline = b.deadline
if not deadline.nil?
deadline = display_date_time(deadline)
else
deadline = I18n.t("no_deadline")
end
if @data[I18n.t("category")][b.bulletin_category.title].nil?
@data[I18n.t("category")][b.bulletin_category.title] = Array.new
@data[I18n.t("category")][b.bulletin_category.title] << { title: b.title,
postdate: display_date_time(b.postdate),
deadline: deadline,
tag: b.sorted_tags.to_a,
}
else
@data[I18n.t("category")][b.bulletin_category.title] << { title: b.title,
postdate: display_date_time(b.postdate),
deadline: deadline,
tag: b.sorted_tags.to_a,
}
end
end
#render :json => @data.to_json
#to print readable json
render :json => JSON.pretty_generate(@data)
end
def index
# @bulletins = Bulletin.all
# @bulletins = Bulletin.desc("postdate desc")
@ -165,9 +198,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
}
end
end
end
end
def link_quick_add
@ -178,7 +209,6 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
respond_to do |format|
format.js
end
end
def link_quick_edit
@ -196,7 +226,6 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
respond_to do |format|
format.js
end
end
def file_quick_edit
@ -214,11 +243,9 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
if params[:bulletin_link]
@bulletin_link = BulletinLink.find(params[:id])
@link_url = panel_announcement_back_end_bulletin_path(@bulletin_link)
respond_to do |format|
if @bulletin_link.update_attributes(params[:bulletin_link])
# format.html { redirect_to(panel_announcement_back_end_bulletins_url) }
format.js { render 'update_bulletin_link' }
@ -228,9 +255,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
elsif params[:bulletin_file]
@bulletin_file = BulletinFile.find(params[:id])
@file_url = panel_announcement_back_end_bulletin_path(@bulletin_file)
respond_to do |format|
if @bulletin_file.update_attributes(params[:bulletin_file])
@ -377,5 +402,4 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
end rescue nil
end
end
end

View File

@ -10,13 +10,13 @@
<table class="table main-list">
<thead>
<tr>
<th class="span1"><%= t('bulletin.category') %></th>
<th class="span3"><%= t('bulletin.title') %></th>
<th class="span1"><%= t('bulletin.start_date') %></th>
<th class="span1"><%= t('bulletin.end_date') %></th>
<th class="span1"><%= t('bulletin.tags') %></th>
<th class="span1"><%= t('category') %></th>
<th class="span3"><%= t('title') %></th>
<th class="span1"><%= t('start_date') %></th>
<th class="span1"><%= t('end_date') %></th>
<th class="span1"><%= t('tags') %></th>
<% if not @user%>
<th class="span1"><%= t('bulletin.last_modified') %></th>
<th class="span1"><%= t('last_modified') %></th>
<% end %>
</tr>
</thead>
@ -35,7 +35,7 @@
<% if not bulletin.deadline.nil?%>
<td><%= display_date_time(bulletin.deadline) %></td>
<%else%>
<td><%= t('bulletin.no_deadline') %></td>
<td><%= t('no_deadline') %></td>
<% end %>
<td>
<div class="label-group">

View File

@ -6,6 +6,7 @@ Rails.application.routes.draw do
match 'approval_setting' => "approvals#setting" ,:as => :approval_setting,:via => :get
match 'approval_setting' => "approvals#update_setting" ,:as => :approval_setting,:via => :post
match 'approval_setting' => "approvals#user_list" ,:as => :approval_user_list,:via => :put
#match 'get_bulletins_json' => "bulletins#get_bulletins_json" ,:as => :bulletins_json_list,:via => :get
resources :bulletins do
match "approve/:bulletin_id" => "approvals#preview_and_approve",:as => :approval_preview,:via => :put
match "approve/:bulletin_id" => "approvals#approve",:as => :approve,:via => :post
@ -18,6 +19,7 @@ Rails.application.routes.draw do
post "preview"
put "preview"
get 'delete'
get 'get_bulletins_json'
end
match "file_quick_add/:bulletin_id" => "bulletins#file_quick_add" ,:as => :file_quick_add
match "file_quick_edit/:bulletin_id" => "bulletins#file_quick_edit" ,:as => :file_quick_edit

View File

@ -1,8 +1,7 @@
class Panel::Gallery::BackEnd::AlbumsController < OrbitBackendController
include AdminHelper
include AdminHelper
# before_filter :force_order_for_visitor,:only=>[:index]
before_filter :force_order_for_user#,:except => [:index]
before_filter :force_order_for_user, :except => [:index,:get_album_json]
def index
if is_manager? || is_admin? || is_sub_manager?
@ -114,6 +113,47 @@ include AdminHelper
render :json =>{"success"=>true}.to_json
end
def get_album_json
albums = GalleryAlbum.all
output = Array.new
albums.each do |album|
tag_names = Array.new
all_image = Array.new
images = album.gallery_images.all
images.each do |image|
tags = Array.new
image.tag_ids.each do |tag|
tags << GalleryTag.find(tag)[I18n.locale]
end
all_image << {
image_title: image.title,
image_description: image.description,
image_file: { url: "http://#{request.host_with_port+image.file.url}",
thumb: "http://#{request.host_with_port+image.file.thumb.to_s}"},
image_tag_names: tags}
end
album.tag_ids.each do |tag|
tag_names << GalleryTag.find(tag)[I18n.locale]
end
output << {
album_cover_file: "http://#{request.host_with_port+album.cover_path}",
album_name: album.name,
album_tag_names: tag_names,
images: all_image
}
end
#render :json=>{:images => @output,
# :tag_names => @tag_names}.to_json
render :json=>JSON.pretty_generate(output)
end
def imgs
@album = GalleryAlbum.find(params[:album_id])
@tag_names = Array.new
@ -124,7 +164,14 @@ include AdminHelper
values.tag_ids.each do |tag|
tags << GalleryTag.find(tag)[I18n.locale]
end
@output << {"_id"=>values.id,"theater_link"=>panel_gallery_back_end_album_image_path(values),"description"=>values.description,"title"=>values.title,"file"=>values.file,"gallery_album_id"=>values.gallery_album_id,"tag_ids"=>values.tag_ids,"tag_names"=>tags}
@output << { _id: values.id,
theater_link: panel_gallery_back_end_album_image_path(values),
description: values.description,
title: values.title,
file: values.file,
gallery_album_id: values.gallery_album_id,
tag_ids: values.tag_ids,
tag_names: tags}
end
if is_manager? || is_admin? || is_sub_manager?
@authenticated = true #turn this value to false for view only
@ -140,10 +187,12 @@ include AdminHelper
render :json=>{"images" => @output, "tags" => @album.tag_ids, "tag_names" => @tag_names}.to_json
end
end
def upload_panel
@album = GalleryAlbum.find(params[:album_id])
render :layout => false
end
def upload_image
@album = GalleryAlbum.find(params[:album_id])
@files = params['files']
@ -180,11 +229,4 @@ include AdminHelper
@tags = GalleryTag.all
render :action => :show
end
end

View File

@ -1,4 +1,5 @@
Rails.application.routes.draw do
namespace :panel do
namespace :gallery do
namespace :back_end do
@ -16,11 +17,10 @@ Rails.application.routes.draw do
match "album_images/#!/:id" => "album_images#show"
resources :album_images
resources :gallery_categories
resources :tags
end
namespace :front_end do
match "get_albums" => "albums#get_albums"
# match "orbit_galleries" => "orbit_galleries#index"

View File

@ -0,0 +1,2 @@
// Place all the behaviors and hooks related to the matching controller here.
// All this logic will automatically be available in application.js.

View File

@ -0,0 +1,4 @@
/*
Place all the styles related to the matching controller here.
They will automatically be included in application.css.
*/

View File

@ -1,14 +1,57 @@
class Panel::Gprs::BackEnd::LocationsController < OrbitBackendController
#before_filter :clean_values, :only => [:create, :update]
before_filter :force_order_for_visitor,:only => [:index, :new, :edit, :delete]
before_filter :force_order_for_user,:except => :get_locations
#before_filter :for_app_sub_manager,:except => [:index, :new, :edit, :delete, :get_locations]
def index
@newlocation = Location.new
@locations = Location.all
respond_to do |format|
format.html # new.html.erb
format.json { render json: @locations }
end
end
def new
@location = Location.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @location }
end
end
def edit
@location = Location.find(params[:id])
end
def show
@location = Location.find(params[:id])
respond_to do |format|
format.html
format.json { render json: @location }
end
end
def create
debugger
@newlocation = Location.new(params[:location])
@newlocation.save!
render :action => "index"
@location = Location.new(params[:location])
@location.save!
redirect_to panel_gprs_back_end_locations_url
end
def update
@location = Location.find(params[:id])
@location.update_attributes(params[:location])
redirect_to panel_gprs_back_end_locations_url
end
def destroy
@location = Location.find(params[:id])
@location.destroy
redirect_to panel_gprs_back_end_locations_url
end
def get_locations
@ -16,14 +59,19 @@ class Panel::Gprs::BackEnd::LocationsController < OrbitBackendController
@data = Array.new
locations.each do |location|
picurl = "http://"+request.host + location.file.url
thumburl = "http://"+request.host + location.file.thumb.url
@data << {"name"=>location.name,"pic_url"=>picurl,"thumb_url"=>thumburl,"description"=>location.description}
end
render :json => @data.to_json
picurl = "http://#{request.host_with_port + location.file.url}",
thumburl = "http://#{request.host_with_port + location.file.thumb.url}"
@data << { name: location.name,
pic_url: picurl,
thumb_url: thumburl,
longitude: location.longitude,
latitude: location.latitude,
description: location.description }
end
#print readable json
render :json => JSON.pretty_generate({location: @data})
#render :json => {location: @data}.to_json
end
end

View File

@ -0,0 +1,2 @@
module Panel::Gprs::BackEnd::LocationsHelper
end

View File

@ -8,5 +8,4 @@ class Location
field :description
field :longitude, type: Float
field :latitude, type: Float
end

View File

@ -0,0 +1,30 @@
<div class="control-group">
<label class="control-label" for="">Name</label>
<div class="controls">
<%= f.text_field :name, :class=>"span4", :placeholder => "Area" %>
</div>
</div>
<div class="control-group">
<label class="control-label" for="">Picture</label>
<div class="controls">
<%= f.file_field :file %>
</div>
</div>
<div class="control-group">
<label class="control-label" for="">Coordinates</label>
<div class="controls">
<%= f.text_field :longitude, :class=>"span2", :placeholder => "Longitude" %>
<%= f.text_field :latitude, :class=>"span2", :placeholder => "Langitude" %>
</div>
</div>
<div class="control-group">
<label class="control-label" for="">Description</label>
<div class="controls">
<%= f.text_area :description, :class=>"span4", :cols=>"30", :row=>"5" %>
</div>
</div>
<div class="control-group">
<div class="controls">
<%= f.submit "Save", :class=>"btn" %>
</div>
</div>

View File

@ -0,0 +1,4 @@
<%= form_for @location, :url=> panel_gprs_back_end_location_path(@location), :html => { :class=>"form-horizontal"} do |f| %>
<%= render :partial => 'form', :locals => {:f => f} %>
<% end %>

View File

@ -1,42 +1,28 @@
<!-- <form class="form-horizontal"> -->
<%= form_for @newlocation, :url=>{:action => "create"}, :remote => true, :class=>"form-horizontal" do |f| %>
<div class="control-group">
<label class="control-label" for="">Name</label>
<div class="controls">
<!-- <input type="text" id="" class="span4" placeholder="Taipei 101"> -->
<%= f.text_field :name, :class=>"span4", :placeholder => "Area" %>
</div>
</div>
<div class="control-group">
<label class="control-label" for="">Picture</label>
<div class="controls">
<!-- <input type="file" id=""> -->
<%= f.file_field :file %>
</div>
</div>
<div class="control-group">
<label class="control-label" for="">Coordinates</label>
<div class="controls">
<!-- <input type="text" id="" class="span2" placeholder="long"> -->
<%= f.text_field :longitude, :class=>"span2", :placeholder => "Longitude" %>
<%= f.text_field :latitude, :class=>"span2", :placeholder => "Langitude" %>
<!-- <input type="text" id="" class="span2" placeholder="lat"> -->
</div>
</div>
<div class="control-group">
<label class="control-label" for="">Description</label>
<div class="controls">
<!-- <textarea name="" id="" class="span4" cols="30" rows="5"></textarea> -->
<%= f.text_area :description, :class=>"span4", :cols=>"30", :row=>"5" %>
</div>
</div>
<div class="control-group">
<div class="controls">
<!-- <textarea name="" id="" class="span4" cols="30" rows="5"></textarea> -->
<%= f.submit "Save", :class=>"btn" %>
</div>
</div>
<table class="table main-list">
<thead>
<tr>
<th class="span1"><%= t('location.picture') %></th>
<th class="span1"><%= t('location.name') %></th>
<th class="span1"><%= t('location.longitude') %></th>
<th class="span1"><%= t('location.latitude') %></th>
<th class="span3"><%= t('location.description') %></th>
<th class="span1"><%= t('location.edit') %></th>
<th class="span1"><%= t('location.delete') %></th>
</tr>
</thead>
<tbody id="tbody_locations" class="sort-holder">
<% @locations.each do |location| %>
<tr class="with_action">
<td><%= image_tag(location.file, alt: location.file, size: "50x50" )%></td>
<td><%= location.name%></td>
<td><%= location.longitude%></td>
<td><%= location.latitude%></td>
<td><%= location.description%></td>
<td><%= link_to 'Edit', edit_panel_gprs_back_end_location_path(location) %></td>
<td><%= link_to 'Destroy', panel_gprs_back_end_location_path(location), method: :delete , :confirm => t(:sure?) %></td>
</tr>
<% end %>
<!-- </form> -->
</tbody>
</table>
<td><%= link_to 'New', new_panel_gprs_back_end_location_path %></td>

View File

@ -0,0 +1,3 @@
<%= form_for @location, :url=> panel_gprs_back_end_locations_path, :html => { :class=>"form-horizontal"} do |f| %>
<%= render :partial => 'form', :locals => {:f => f} %>
<% end %>

View File

@ -6,9 +6,7 @@ Rails.application.routes.draw do
match "locations/get_locations" => "locations#get_locations"
resources :locations
end
end
end
end

View File

@ -0,0 +1,14 @@
require 'test_helper'
class Panel::Gprs::BackEnd::LocationsControllerTest < ActionController::TestCase
test "should get index" do
get :index
assert_response :success
end
test "should get edit" do
get :edit
assert_response :success
end
end

View File

@ -0,0 +1,4 @@
require 'test_helper'
class Panel::Gprs::BackEnd::LocationsHelperTest < ActionView::TestCase
end