Merge branch 'new_member' of github.com:Rulingcom/orbit into new_member
Conflicts: app/controllers/admin/users_new_interface_controller.rb app/views/admin/users_new_interface/show.html.erb
This commit is contained in:
commit
b5571dbc43
File diff suppressed because it is too large
Load Diff
|
@ -195,6 +195,7 @@ legend {
|
|||
padding: 0 8px;
|
||||
vertical-align: inherit;
|
||||
position: relative;
|
||||
position/**/: static;
|
||||
}
|
||||
.sort-header th a {
|
||||
display: block;
|
||||
|
|
|
@ -69,6 +69,9 @@
|
|||
#orbit-bar .orbit-logo .dropdown-menu {
|
||||
left: -15px;
|
||||
}
|
||||
#orbit-bar .orbit-logo .dropdown-menu>li>a:hover>i {
|
||||
background-image: url(<%= asset_path 'icons_pack_white.png' %>);
|
||||
}
|
||||
#orbit-bar .nav > li {
|
||||
height: 28px;
|
||||
}
|
||||
|
|
|
@ -280,7 +280,7 @@
|
|||
.filter .accordion-heading {
|
||||
border-bottom: none;
|
||||
border-top: none;
|
||||
border-left: 1px solid rgba(0,0,0,0.07);
|
||||
border-left: 1px solid #E9E9E9;
|
||||
border-right: none;
|
||||
-moz-border-radius: 0;
|
||||
-webkit-border-radius: 0;
|
||||
|
@ -291,7 +291,7 @@
|
|||
top: 0;
|
||||
}
|
||||
.filter li:last-child .accordion-heading {
|
||||
border-right: 1px solid rgba(0,0,0,0.07);
|
||||
border-right: 1px solid #E9E9E9;
|
||||
}
|
||||
.accordion-group .accordion-toggle .caret {
|
||||
border-top-color: #0088CC;
|
||||
|
|
|
@ -4,7 +4,7 @@ class Admin::PluginsController < ApplicationController
|
|||
|
||||
def index
|
||||
|
||||
@module_apps = ModuleApp.excludes(widgets: nil).where(has_plugin: true).order_by(:title, :asc)
|
||||
@plugins = ModuleApp.where(has_plugin: true).order_by(:title, :asc)
|
||||
|
||||
end
|
||||
|
||||
|
|
|
@ -26,6 +26,8 @@ class Admin::UsersNewInterfaceController < ApplicationController
|
|||
|
||||
def show
|
||||
@user = User.find(params[:id])
|
||||
@plugins = OrbitApp::Module::Registration.all
|
||||
|
||||
@profile_data = []
|
||||
@teacher_data = []
|
||||
@student_data = []
|
||||
|
@ -47,6 +49,13 @@ class Admin::UsersNewInterfaceController < ApplicationController
|
|||
@staff_data.push({:name => att_val.attribute_field.title,:value => att_val.get_value_by_locale(I18n.locale) }) if att_val.attribute_field.role.key=="staff_data"rescue false
|
||||
}
|
||||
|
||||
|
||||
if(!params[:show_plugin_profile].nil?)
|
||||
@right_partial = OrbitApp::Plugin::Registration.find_by_key(params[:show_plugin_profile]).profile_partial_path rescue 'plugin_summary'
|
||||
else
|
||||
@right_partial = "plugin_summary"
|
||||
end
|
||||
|
||||
# @user.attribute_values.each{|att_val|
|
||||
# @teacher_data.push({:name => att_val.attribute_field.title,:value =>att_val[I18n.locale]})
|
||||
# }
|
||||
|
|
|
@ -5,7 +5,7 @@ class ApplicationController < ActionController::Base
|
|||
|
||||
layout :layout_by_resource
|
||||
|
||||
helper :all
|
||||
helper :admin
|
||||
before_filter :set_locale, :set_site
|
||||
|
||||
def set_current_user
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
module Admin::AdBannerHelper
|
||||
module Admin::AdBannersHelper
|
||||
def preview_block_ad_images_helper(ad_banner)
|
||||
printable_ad_images = []
|
||||
ad_banner.ad_images.each do |ad_image|
|
|
@ -1,3 +0,0 @@
|
|||
module Admin::AdImagesHelper
|
||||
|
||||
end
|
|
@ -1,4 +1,4 @@
|
|||
module Admin::AppAuthHelper
|
||||
module Admin::AppAuthsHelper
|
||||
def on_off_switch(attribute,attribute_type)
|
||||
link_to t(:enable), eval("admin_#{attribute_type}_path(attribute, :authenticity_token => form_authenticity_token, :#{attribute_type} => {:disabled => true})"), :remote => true, :method => :put, :id => "disable_#{attribute.id}", :style => "display:#{attribute.is_disabled? ? 'none' : ''}", :class => 'switch'
|
||||
link_to t(:disable), eval("admin_#{attribute_type}_path(attribute, :authenticity_token => form_authenticity_token, :#{attribute_type} => {:disabled => false})"), :remote => true, :method => :put, :id => "enable_#{attribute.id}", :style => "display:#{attribute.is_disabled? ? '' : 'none'}", :class => 'switch'
|
|
@ -1,4 +1,4 @@
|
|||
module Admin::AssetHelper
|
||||
module Admin::AssetsHelper
|
||||
|
||||
def show_all_fields(asset, field)
|
||||
a = []
|
|
@ -1,4 +1,4 @@
|
|||
module Admin::DashboardHelper
|
||||
module Admin::DashboardsHelper
|
||||
|
||||
def get_link(title)
|
||||
case title
|
|
@ -1,4 +1,4 @@
|
|||
module Admin::ItemHelper
|
||||
module Admin::ItemsHelper
|
||||
|
||||
def render_node_and_children(node)
|
||||
ret = ''
|
|
@ -1,4 +1,4 @@
|
|||
module Admin::ModuleAppHelper
|
||||
module Admin::ModuleAppsHelper
|
||||
|
||||
def if_permit_to_delete(item)
|
||||
case item.downcase
|
|
@ -1,18 +0,0 @@
|
|||
module Admin::PageContentHelper
|
||||
include ActionView::Helpers::UrlHelper
|
||||
|
||||
|
||||
def show_page_context_edit_auth_link(page_context)
|
||||
type = 'Edit'
|
||||
# debugger
|
||||
# a=1
|
||||
oa = page_context.get_object_auth_by_title(type)
|
||||
if oa.nil?
|
||||
page_context.object_auths.new(title: type ).save rescue
|
||||
oa = page_context.get_object_auth_by_title(type)
|
||||
end
|
||||
# link_to t('announcement.bulletin.cate_auth'), edit_admin_object_auth_path(oa)
|
||||
link_to t('admin.page_context.ob_auth.edit'),admin_object_auth_ob_auth_path(oa)
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,30 @@
|
|||
module Admin::PluginsHelper
|
||||
|
||||
def render_plugin_list
|
||||
ret = ''
|
||||
|
||||
ret << "<div class=\"subnav\">"
|
||||
ret << "<div id=\"module-nav\">"
|
||||
ret << "<div class=\"arrow_next pull-right\"><i class=\"icon-chevron-right\"></i></div>"
|
||||
ret << "<div class=\"arrow_prev pull-left\"><i class=\"icon-chevron-left\"></i></div>"
|
||||
ret << "<div class=\"module-nav-view\">"
|
||||
|
||||
ret << "<ul class=\"nav nav-pills\">"
|
||||
|
||||
@plugins.each do |plugin|
|
||||
ret << "<li>"
|
||||
ret << (link_to eval("#{plugin.title}") , eval("panel_#{plugin.title}_back_end_#{plugin.object}s_path"))
|
||||
ret << "</li>"
|
||||
end
|
||||
|
||||
ret << "</ul>"
|
||||
|
||||
ret << "</div>"
|
||||
ret << "</div>"
|
||||
ret << "</div>"
|
||||
|
||||
ret.html_safe
|
||||
|
||||
end
|
||||
|
||||
end
|
|
@ -1,4 +1,4 @@
|
|||
module Admin::UserHelper
|
||||
module Admin::UsersHelper
|
||||
|
||||
def show_attribute(object, field_id, locale = '')
|
||||
attribute = object.attribute_values.detect {|av| av.attribute_field_id.eql?(field_id) || av[locale.to_s].eql?(locale.to_s) } rescue nil
|
|
@ -1,11 +0,0 @@
|
|||
module Admin::WebLinkHelper
|
||||
def show_web_link_permission_link(web_link)
|
||||
type = 'edit'
|
||||
oa = web_link.get_object_auth_by_title(type)
|
||||
if oa.nil?
|
||||
web_link.object_auths.new(title: type ).save
|
||||
oa = web_link.get_object_auth_by_title(type)
|
||||
end
|
||||
link_to t('web_resource.cate_auth'),admin_object_auth_ob_auth_path(oa)
|
||||
end
|
||||
end
|
|
@ -1,7 +1,7 @@
|
|||
#encoding: utf-8
|
||||
# require ActionView::Helpers::FormTagHelper
|
||||
|
||||
module AttributeFieldHelper
|
||||
module AttributeFieldsHelper
|
||||
include ActionView::Helpers::FormTagHelper
|
||||
include ActionView::Helpers::FormOptionsHelper
|
||||
include ActionView::Helpers::DateHelper
|
|
@ -1,24 +0,0 @@
|
|||
module CalendarHelper
|
||||
def month_link(month_date)
|
||||
link_to(I18n.localize(month_date, :format => "%B"), {:month => month_date.month, :year => month_date.year})
|
||||
end
|
||||
|
||||
# custom options for this calendar
|
||||
def event_calendar_opts
|
||||
{
|
||||
:year => @year,
|
||||
:month => @month,
|
||||
:event_strips => @event_strips,
|
||||
:month_name_text => I18n.localize(@shown_month, :format => "%B %Y"),
|
||||
:previous_month_text => "<< " + month_link(@shown_month.prev_month),
|
||||
:next_month_text => month_link(@shown_month.next_month) + " >>" }
|
||||
end
|
||||
|
||||
def event_calendar
|
||||
# args is an argument hash containing :event, :day, and :options
|
||||
calendar event_calendar_opts do |args|
|
||||
event = args[:event]
|
||||
%(<a href="/events/#{event.id}" title="#{h(event.name)}">#{h(event.name)}</a>)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,4 +0,0 @@
|
|||
module DesignHelper
|
||||
|
||||
|
||||
end
|
|
@ -1,2 +0,0 @@
|
|||
module SitesHelper
|
||||
end
|
|
@ -0,0 +1,61 @@
|
|||
class GprsUploader < CarrierWave::Uploader::Base
|
||||
|
||||
# Include RMagick or ImageScience support:
|
||||
# include CarrierWave::RMagick
|
||||
# include CarrierWave::ImageScience
|
||||
include CarrierWave::MiniMagick
|
||||
|
||||
# Choose what kind of storage to use for this uploader:
|
||||
# storage :file
|
||||
# storage :s3
|
||||
|
||||
# Override the directory where uploaded files will be stored.
|
||||
# This is a sensible default for uploaders that are meant to be mounted:
|
||||
def store_dir
|
||||
"gprs/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
||||
end
|
||||
|
||||
# Provide a default URL as a default if there hasn't been a file uploaded:
|
||||
# def default_url
|
||||
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
|
||||
# end
|
||||
|
||||
# Process files as they are uploaded:
|
||||
# process :scale => [200, 300]
|
||||
#
|
||||
# def scale(width, height)
|
||||
# # do something
|
||||
# end
|
||||
|
||||
# Create different versions of your uploaded files:
|
||||
# version :thumb do
|
||||
# process :scale => [50, 50]
|
||||
# end
|
||||
|
||||
version :thumb do
|
||||
process :resize_to_fill => [150, 120]
|
||||
end
|
||||
|
||||
# Add a white list of extensions which are allowed to be uploaded.
|
||||
# For images you might use something like this:
|
||||
# def extension_white_list
|
||||
# %w(jpg jpeg gif png)
|
||||
# end
|
||||
|
||||
# Override the filename of the uploaded files:
|
||||
# def filename
|
||||
# "something.jpg" if original_filename
|
||||
# end
|
||||
|
||||
# def manipulate!
|
||||
# raise current_path.inspect
|
||||
# image = ::MiniMagick::Image.open(current_path)
|
||||
# image = yield(image)
|
||||
# image.write(current_path)
|
||||
# ::MiniMagick::Image.open(current_path)
|
||||
# rescue ::MiniMagick::Error, ::MiniMagick::Invalid => e
|
||||
# raise CarrierWave::ProcessingError.new("Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: #{e}")
|
||||
# end
|
||||
|
||||
end
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
|
||||
<div id="module-nav">
|
||||
<div class="arrow_next pull-right"><i class="icon-chevron-right"></i></div>
|
||||
<div class="arrow_prev pull-left"><i class="icon-chevron-left"></i></div>
|
||||
<div class="module-nav-view">
|
||||
<ul class="nav nav-pills">
|
||||
<li class="active">
|
||||
<a href="#">All</a>
|
||||
</li>
|
||||
<li><a href="#">學歷</a></li>
|
||||
<li><a href="#">經歷</a></li>
|
||||
<li><a href="#">研究計畫</a></li>
|
||||
<li><a href="#">期刊論文</a></li>
|
||||
<li><a href="#">學歷</a></li>
|
||||
<li><a href="#">經歷</a></li>
|
||||
<li><a href="#">研究計畫</a></li>
|
||||
<li><a href="#">期刊論文</a></li>
|
||||
<li><a href="#">學歷</a></li>
|
||||
<li><a href="#">經歷</a></li>
|
||||
<li><a href="#">研究計畫</a></li>
|
||||
<li><a href="#">期刊論文</a></li>
|
||||
<li><a href="#">學歷</a></li>
|
||||
<li><a href="#">經歷</a></li>
|
||||
<li><a href="#">期刊論文</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
|
@ -1,4 +1,2 @@
|
|||
|
||||
<div class="subnav">
|
||||
<%= render :partial => 'plugin', :collection => @plugins %>
|
||||
</div>
|
||||
<%= render_plugin_list %>
|
|
@ -0,0 +1,6 @@
|
|||
<div class="member-plugin">
|
||||
<% #binding.pry%>
|
||||
<%= render :partial=> 'plugin_summary'%>
|
||||
<%= render :partial=> 'plugin_summary'%>
|
||||
<%= render :partial=> 'plugin_summary'%>
|
||||
</div>
|
|
@ -6,22 +6,20 @@
|
|||
<div class="arrow_prev pull-left"><i class="icon-chevron-left"></i></div>
|
||||
<div class="module-nav-view">
|
||||
<ul class="nav nav-pills">
|
||||
<li class="active">
|
||||
<a href="#"><%= t("admin.new_admin.users.all_plugin_summary")%></a>
|
||||
</li>
|
||||
<li><a href="#">學歷</a></li>
|
||||
<li><a href="#">學歷</a></li>
|
||||
<li><a href="#">學歷</a></li>
|
||||
<li><a href="#">學歷</a></li>
|
||||
<%= content_tag :li,:class=>(params[:show_plugin_profile].nil? ? "active" : nil) do %>
|
||||
<%= link_to t("admin.new_admin.users.all_plugin_summary")%>
|
||||
<%end -%>
|
||||
<% @plugins.each do |plugin|%>
|
||||
<%= content_tag :li,:class=>(params[:show_plugin_profile]==plugin.name ? "active" : nil) do %>
|
||||
<%= link_to plugin.name,:show_plugin_profile=> plugin.name %>
|
||||
<% end -%>
|
||||
<%end -%>
|
||||
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="member-plugin">
|
||||
<%= render :partial=> 'plugin_summary'%>
|
||||
<%= render :partial=> 'plugin_summary'%>
|
||||
<%= render :partial=> 'plugin_summary'%>
|
||||
</div>
|
||||
<%=render :partial=> @right_partial%>
|
||||
</div>
|
||||
<div class="user-info">
|
||||
<div id="brand" class="clear">
|
||||
|
|
|
@ -105,7 +105,7 @@
|
|||
<% end -%>
|
||||
<% end -%>
|
||||
|
||||
<%= content_tag :li, :class => active_for_controllers('cals','calendar_categories') || active_for_app_auth("calendar") do -%>
|
||||
<%= content_tag :li, :class => active_for_controllers('cals') || active_for_app_auth("calendar") do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-calendar') + content_tag(:span, t('admin.calendar')), panel_calendar_back_end_cals_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('cals','calendar_categories') ) do -%>
|
||||
<%#= content_tag :li, link_to(t('admin.ad.all_banners'), admin_ad_banners_path), :class => active_for_action('ad_banners', 'index') %>
|
||||
|
@ -116,6 +116,17 @@
|
|||
<%#= content_tag :li, link_to(t('admin.module.authorization'),admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "gallery"}))), :class => active_for_app_auth('gallery') if (is_admin? rescue nil) %>
|
||||
<% end -%>
|
||||
<% end %>
|
||||
<%= content_tag :li, :class => active_for_controllers('locations') || active_for_app_auth("gprs") do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-link') + content_tag(:span, t('admin.gprs')), panel_gprs_back_end_locations_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('locations') ) do -%>
|
||||
<%#= content_tag :li, link_to(t('admin.ad.all_banners'), admin_ad_banners_path), :class => active_for_action('ad_banners', 'index') %>
|
||||
<%#= content_tag :li, link_to(t('admin.ad.new_banner'), new_admin_ad_banner_path), :class => active_for_action('ad_banners', 'new') %>
|
||||
<%#= content_tag :li, link_to(t('admin.ad.new_image'), new_ad_image_admin_ad_banners_path), :class => active_for_action('ad_images', 'new') %>
|
||||
<%#= content_tag :li, link_to((t('calendar.calendars') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_panel_calendar_back_end_cal_path), :class => active_for_action('cals','new') %>
|
||||
<%#= content_tag :li, link_to(t('gallery.tags'), panel_gallery_back_end_tags_path), :class => active_for_action('/panel/gallery/back_end/tags', 'index') %>
|
||||
<%#= content_tag :li, link_to(t('admin.module.authorization'),admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "gallery"}))), :class => active_for_app_auth('gallery') if (is_admin? rescue nil) %>
|
||||
<% end -%>
|
||||
<% end %>
|
||||
|
||||
<%= content_tag :li, :class => (active_for_controllers('writing_journals', '/panel/personal_journal/back_end/tags', 'writing_journal_categorys', 'approvals') || active_for_app_auth('PersonalJournal') ) do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-personal_journal') + t('admin.personal_journal'), panel_personal_journal_back_end_writing_journals_path %>
|
||||
|
@ -157,6 +168,41 @@
|
|||
|
||||
<% end -%>
|
||||
|
||||
<%= content_tag :li, :class => (active_for_controllers('researchs', '/panel/personal_research/back_end/tags', 'research_categorys', 'approvals') || active_for_app_auth('PersonalJournal') ) do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-personal_research') + t('admin.personal_research'), panel_personal_research_back_end_researchs_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + (visible_for_controllers('researchs', '/panel/personal_research/back_end/tags', 'research_categorys', 'approvals'))) do -%>
|
||||
<%= content_tag :li, link_to(t('personal_research.all_articles'), panel_personal_research_back_end_researchs_path), :class => active_for_action('researchs', 'index') %>
|
||||
<%#= content_tag :li, link_to(t('personal_research.setting'), panel_personal_research_back_end_research_setting_path), :class => active_for_action('research_setting', 'index') %>
|
||||
<%= content_tag :li, link_to(t('personal_research.tags'), panel_personal_research_back_end_tags_path), :class => active_for_action('/panel/personal_research/back_end/tags', 'index') %>
|
||||
|
||||
<% end -%>
|
||||
|
||||
<% end -%>
|
||||
|
||||
<%= content_tag :li, :class => (active_for_controllers('projects', '/panel/personal_project/back_end/tags', 'project_categorys', 'approvals') || active_for_app_auth('PersonalJournal') ) do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-personal_project') + t('admin.personal_project'), panel_personal_project_back_end_projects_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + (visible_for_controllers('projects', '/panel/personal_project/back_end/tags', 'project_categorys', 'approvals'))) do -%>
|
||||
<%= content_tag :li, link_to(t('personal_project.all_articles'), panel_personal_project_back_end_projects_path), :class => active_for_action('projects', 'index') %>
|
||||
<%= content_tag :li, link_to(t('personal_project.setting'), panel_personal_project_back_end_project_setting_path), :class => active_for_action('project_setting', 'index') %>
|
||||
<%= content_tag :li, link_to(t('personal_project.project_category'), panel_personal_project_back_end_project_categorys_path), :class => active_for_action('project_categorys', 'index') %>
|
||||
<%= content_tag :li, link_to(t('personal_project.tags'), panel_personal_project_back_end_tags_path), :class => active_for_action('/panel/personal_project/back_end/tags', 'index') %>
|
||||
|
||||
<% end -%>
|
||||
|
||||
<% end -%>
|
||||
|
||||
<%= content_tag :li, :class => (active_for_controllers('writing_patents', '/panel/personal_patent/back_end/tags', 'writing_patent_categorys', 'approvals') || active_for_app_auth('PersonalJournal') ) do -%>
|
||||
<%= link_to content_tag(:i, nil, :class => 'icons-personal_patent') + t('admin.personal_patent'), panel_personal_patent_back_end_writing_patents_path %>
|
||||
<%= content_tag :ul, :class => ("nav nav-list " + (visible_for_controllers('writing_patents', '/panel/personal_patent/back_end/tags', 'writing_patent_categorys', 'approvals'))) do -%>
|
||||
<%= content_tag :li, link_to(t('personal_patent.all_articles'), panel_personal_patent_back_end_writing_patents_path), :class => active_for_action('writing_patents', 'index') %>
|
||||
<%= content_tag :li, link_to(t('personal_patent.setting'), panel_personal_patent_back_end_writing_patent_setting_path), :class => active_for_action('writing_patent_setting', 'index') %>
|
||||
<%#= content_tag :li, link_to(t('personal_patent.writing_patent_category'), panel_personal_patent_back_end_writing_patent_categorys_path), :class => active_for_action('writing_patent_categorys', 'index') %>
|
||||
<%= content_tag :li, link_to(t('personal_patent.tags'), panel_personal_patent_back_end_tags_path), :class => active_for_action('/panel/personal_patent/back_end/tags', 'index') %>
|
||||
|
||||
<% end -%>
|
||||
|
||||
<% end -%>
|
||||
|
||||
<div class="content">
|
||||
<% flash.each do |key, msg| %>
|
||||
<%= content_tag :span, msg, :class => [key, "notice label label-warning"] %>
|
||||
|
|
|
@ -34,6 +34,9 @@ module Orbit
|
|||
config.autoload_paths += %W(#{config.root}/app/models/purchase)
|
||||
config.autoload_paths += %W(#{config.root}/app/models/user)
|
||||
|
||||
# Include all helpers
|
||||
# 'helper :all' must be removed in ApplicationController
|
||||
config.action_controller.include_all_helpers = false
|
||||
|
||||
# Only load the plugins named here, in the order given (default is alphabetical).
|
||||
# :all can be used as a placeholder for all plugins not explicitly named.
|
||||
|
|
|
@ -130,6 +130,7 @@ en:
|
|||
attributes: Attributes
|
||||
author: Author
|
||||
calendar: Calendar
|
||||
gprs: GPRS
|
||||
cant_delete_self: You can not delete yourself.
|
||||
cant_revoke_self_admin: You can not revoke your admin role yourself.
|
||||
category: Category
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
require "orbit_app/summary"
|
||||
require "orbit_app/dsl"
|
||||
require "orbit_app/module/backend_side_bar"
|
||||
require "orbit_app/plugin/summary"
|
||||
require "orbit_app/plugin/registration"
|
||||
require "orbit_app/module/summary"
|
||||
require "orbit_app/module/registration"
|
||||
|
||||
module OrbitApp
|
||||
extend DSL
|
||||
|
||||
end
|
|
@ -0,0 +1,26 @@
|
|||
module OrbitApp
|
||||
module DSL
|
||||
def registration(name,type ={:type=> "ModuleApp"} ,&block)
|
||||
if type[:type] == "ModuleApp"
|
||||
Module::Registration.new(name,&block)
|
||||
elsif type[:type] == "PersonalPlugin"
|
||||
Plugin::Registration.new(name,&block)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
# def backend_side_bar(name,&block)
|
||||
# Module::BackendSideBar.new(name,&block)
|
||||
# end
|
||||
|
||||
# def plugin_summary(name,&block)
|
||||
# # Plugin::PluginSummary.new(name,&block)
|
||||
# end
|
||||
|
||||
# def module_summary(name,&block)
|
||||
# Module::Summary.new(name,&block)
|
||||
# end
|
||||
|
||||
end
|
||||
end
|
|
@ -0,0 +1,17 @@
|
|||
module OrbitApp
|
||||
module Module
|
||||
class BackendSideBar
|
||||
attr_reader :name
|
||||
|
||||
def initialize(name, &block)
|
||||
@name = name
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
# def personal_plugin(*args)
|
||||
# binding.pry
|
||||
# end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,54 @@
|
|||
module OrbitApp
|
||||
module Module
|
||||
module Registration
|
||||
Version = "0.1"
|
||||
|
||||
module ClassMethods
|
||||
@@registrations = []
|
||||
|
||||
def new( name ,&block)
|
||||
@@registrations << DataSheet.new(name,&block)
|
||||
end
|
||||
|
||||
def find_by_key(key)
|
||||
@@registrations.each{|t|
|
||||
return t if t.name == key
|
||||
}
|
||||
return nil
|
||||
end
|
||||
|
||||
def all
|
||||
return @@registrations
|
||||
end
|
||||
end
|
||||
|
||||
extend ClassMethods
|
||||
def self.included( other )
|
||||
other.extend( ClassMethods )
|
||||
end
|
||||
|
||||
class DataSheet
|
||||
attr_reader :name
|
||||
attr_reader :base_path
|
||||
|
||||
def initialize(name, &block)
|
||||
@name = name
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
def plugin
|
||||
|
||||
end
|
||||
|
||||
def personal_plugin(params)
|
||||
# TODO 這裡要看是一些檔案是不是都有
|
||||
Plugin::Registration.new_from_module_app(@name,@base_path,params)
|
||||
end
|
||||
|
||||
def base_url(var)
|
||||
@base_path = var
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,20 @@
|
|||
#encoding: utf-8
|
||||
require "orbit_app/summary"
|
||||
|
||||
module OrbitApp
|
||||
module Module
|
||||
module Summary
|
||||
include OrbitApp::Summary
|
||||
|
||||
class Item
|
||||
def initialize()
|
||||
@top = {:label => "全部內容有",:value=> "2071"}
|
||||
@items = [{:label => "新聞",:value=> "20"}]
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,58 @@
|
|||
module OrbitApp
|
||||
module Plugin
|
||||
module Registration
|
||||
Version = "0.1"
|
||||
|
||||
module ClassMethods
|
||||
@@registrations = []
|
||||
|
||||
def new( name ,&block)
|
||||
@@registrations << DataSheet.new(name,&block)
|
||||
end
|
||||
|
||||
def new_from_module_app(name,base_path,arg)
|
||||
@@registrations << DataSheet.new(name,arg,:base_path=>base_path)
|
||||
end
|
||||
|
||||
def find_by_key(key)
|
||||
@@registrations.each{|t|
|
||||
return t if t.name == key
|
||||
}
|
||||
return nil
|
||||
end
|
||||
|
||||
def all
|
||||
return @@registrations
|
||||
end
|
||||
end
|
||||
|
||||
extend ClassMethods
|
||||
def self.included( other )
|
||||
other.extend( ClassMethods )
|
||||
end
|
||||
|
||||
class DataSheet
|
||||
attr_reader :name
|
||||
attr_reader :base_path
|
||||
|
||||
|
||||
def initialize(name,partial=nil,*args ,&block)
|
||||
@base_path = args[0][:base_path]
|
||||
@name = name
|
||||
@partial_path = ''
|
||||
|
||||
unless partial.nil?
|
||||
@partial_path = partial[:path]
|
||||
end
|
||||
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
def profile_partial_path
|
||||
return @partial_path
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,11 @@
|
|||
require "orbit_app/summary"
|
||||
|
||||
module OrbitApp
|
||||
module Plugin
|
||||
module Summary
|
||||
# include OrbitApp::Summary
|
||||
include OrbitApp::Summary
|
||||
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,46 @@
|
|||
module OrbitApp
|
||||
module Summary
|
||||
Version = "0.1"
|
||||
|
||||
module ClassMethods
|
||||
@@summaries = []
|
||||
|
||||
def new( name ,&block)
|
||||
@@summaries << Item.new(name,&block)
|
||||
binding.pry
|
||||
end
|
||||
|
||||
def all
|
||||
return @@summaries
|
||||
end
|
||||
end
|
||||
|
||||
extend ClassMethods
|
||||
def self.included( other )
|
||||
other.extend( ClassMethods )
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# def initialize( k )
|
||||
# @@summaries += 1
|
||||
# binding.pry
|
||||
# end
|
||||
|
||||
|
||||
class Item
|
||||
@name =""
|
||||
def initialize(name = "test",&block)
|
||||
@name = name
|
||||
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
||||
end
|
||||
|
||||
def get_name
|
||||
return @name
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
|
@ -1,33 +1,35 @@
|
|||
<div id='filter' class="subnav">
|
||||
<ul class="nav nav-pills filter">
|
||||
<li class="accordion-group">
|
||||
<div class="accordion-heading">
|
||||
<a href="#collapse-status" data-toggle="collapse" data-parent=".filters" class="accordion-toggle"><%= t("announcement.status") %> <b class="web-symbol"></b></a>
|
||||
<div id="accordion">
|
||||
<ul class="nav nav-pills filter">
|
||||
<li>
|
||||
<div class="accordion-heading">
|
||||
<a href="#collapse-status" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle"><%= t("announcement.status") %> <b class="web-symbol"></b></a>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="accordion-heading">
|
||||
<a href="#collapse-category" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle"><%= t("announcement.categories") %> <b class="web-symbol"></b></a>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="accordion-heading">
|
||||
<a href="#collapse-tags" data-toggle="collapse" data-parent="#accordion" class="accordion-toggle"><%= t("announcement.tags") %> <b class="web-symbol"></b></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="accordion-group filters">
|
||||
<div class="accordion-body collapse" id="collapse-status">
|
||||
<%= render 'filter_status' %>
|
||||
</div>
|
||||
</li>
|
||||
<li class="accordion-group">
|
||||
<div class="accordion-heading">
|
||||
<a href="#collapse-category" data-toggle="collapse" data-parent=".filters" class="accordion-toggle"><%= t("announcement.categories") %> <b class="web-symbol"></b></a>
|
||||
<div class="accordion-body collapse" id="collapse-category">
|
||||
<%= render 'filter_categories' %>
|
||||
</div>
|
||||
</li>
|
||||
<li class="accordion-group">
|
||||
<div class="accordion-heading">
|
||||
<a href="#collapse-tags" data-toggle="collapse" data-parent=".filters" class="accordion-toggle"><%= t("announcement.tags") %> <b class="web-symbol"></b></a>
|
||||
<div class="accordion-body collapse" id="collapse-tags">
|
||||
<%= render 'filter_tags' %>
|
||||
</div>
|
||||
<div id="sort_headers" class="table-label">
|
||||
<%= render 'sort_headers' %>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="filters">
|
||||
<div class="accordion-body collapse" id="collapse-status">
|
||||
<%= render 'filter_status' %>
|
||||
</div>
|
||||
<div class="accordion-body collapse" id="collapse-category">
|
||||
<%= render 'filter_categories' %>
|
||||
</div>
|
||||
<div class="accordion-body collapse" id="collapse-tags">
|
||||
<%= render 'filter_tags' %>
|
||||
</div>
|
||||
<div id="sort_headers" class="table-label">
|
||||
<%= render 'sort_headers' %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -106,7 +106,7 @@
|
|||
<ul class="nav nav-tabs">
|
||||
<%# @site_valid_locales.each_with_index do |locale, i| %>
|
||||
<% @site_valid_locales.each_with_index do |locale, i| %>
|
||||
<li <%= ( i == 0 ) ? " class='active'" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li>
|
||||
<li <%= ( i == 0 ) ? " class=active" : '' %>><a data-toggle="tab" href=".<%= locale %>"><%= I18nVariable.from_locale(locale) %></a></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
|
||||
|
|
1
vendor/built_in_modules/announcement/app/views/panel/announcement/plugin/_profile.html.erb
vendored
Normal file
1
vendor/built_in_modules/announcement/app/views/panel/announcement/plugin/_profile.html.erb
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
Hello~ I am your plugin profile
|
|
@ -0,0 +1,25 @@
|
|||
module Announcement
|
||||
OrbitApp.registration "Announcement",:type=> 'ModuleApp' do
|
||||
|
||||
base_url File.expand_path File.dirname(__FILE__)
|
||||
personal_plugin :enable => true,:path=>"panel/announcement/plugin/profile"
|
||||
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
# OrbitApp.backend_side_bar 'News' do
|
||||
|
||||
# block :available_for => [:admin,:guest,:manager,:sub_manager],
|
||||
# :active_for_controllers=> ['news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals'],
|
||||
# :active_for_ob_auths_object => ['NewsBulletinCategory'],
|
||||
# :head_link => panel_news_back_end_news_bulletins_path ,
|
||||
# :head_label=> I18n.t('admin.news')
|
||||
|
||||
# context_link :link=>new_panel_news_back_end_news_bulletin_path ,
|
||||
# :priority=>1,:label=>I18n.t('announcement.add_new'),
|
||||
# :active_for_action=>{:news_bulletins=>:new}
|
||||
|
||||
# end
|
|
@ -1,4 +0,0 @@
|
|||
require "announcement/engine"
|
||||
|
||||
module Announcement
|
||||
end
|
|
@ -1,21 +1,52 @@
|
|||
//created on sep 14 2012
|
||||
Date.prototype.getWeek = function (dowOffset) {
|
||||
/*getWeek() was developed by Nick Baicoianu at MeanFreePath: http://www.epoch-calendar.com */
|
||||
|
||||
dowOffset = typeof(dowOffset) == 'int' ? dowOffset : 0; //default dowOffset to zero
|
||||
var newYear = new Date(this.getFullYear(),0,1);
|
||||
var day = newYear.getDay() - dowOffset; //the day of week the year begins on
|
||||
day = (day >= 0 ? day : day + 7);
|
||||
var daynum = Math.floor((this.getTime() - newYear.getTime() -
|
||||
(this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000) + 1;
|
||||
var weeknum;
|
||||
//if the year starts before the middle of a week
|
||||
if(day < 4) {
|
||||
weeknum = Math.floor((daynum+day-1)/7) + 1;
|
||||
if(weeknum > 52) {
|
||||
nYear = new Date(this.getFullYear() + 1,0,1);
|
||||
nday = nYear.getDay() - dowOffset;
|
||||
nday = nday >= 0 ? nday : nday + 7;
|
||||
/*if the next year starts before the middle of
|
||||
the week, it is week #1 of that year*/
|
||||
weeknum = nday < 4 ? 1 : 53;
|
||||
}
|
||||
}
|
||||
else {
|
||||
weeknum = Math.floor((daynum+day-1)/7);
|
||||
}
|
||||
return weeknum;
|
||||
};
|
||||
|
||||
|
||||
var calendarAPI = function(){
|
||||
c = this;
|
||||
this.event_create_div = $("#event_create");
|
||||
this.event_quick_view_div = $("#event_quick_view");
|
||||
this.cur_month = null;
|
||||
this.cur_year = null;
|
||||
this.today = new Date();
|
||||
this.cur_month = c.today.getMonth()+1;
|
||||
this.cur_year = c.today.getFullYear();
|
||||
this.cur_week = c.today.getWeek();
|
||||
this.view = null;
|
||||
this.monthlist = ["","January","February","March","April","May","June","July","August","September","October","November","December"];
|
||||
this.initialize = function(){
|
||||
$(window).load(function(){
|
||||
c.loadMonthView();
|
||||
// c.loadMonthView(c.cur_month,c.cur_year);
|
||||
c.loadWeekView(c.cur_week,c.cur_year);
|
||||
bindHandlers();
|
||||
})
|
||||
var bindHandlers = function(){
|
||||
$(".event").live("click",function(){
|
||||
c.displayEvent();
|
||||
c.displayEvent($(this));
|
||||
})
|
||||
|
||||
$("#create_event_btn").click(function(){
|
||||
|
@ -39,7 +70,7 @@ var calendarAPI = function(){
|
|||
c.loadMonthView(c.cur_month,c.cur_year);
|
||||
break;
|
||||
case 'week':
|
||||
c.loadWeekView();
|
||||
c.loadWeekView(c.cur_week,c.cur_year);
|
||||
break;
|
||||
case 'day':
|
||||
c.loadDayView();
|
||||
|
@ -50,26 +81,58 @@ var calendarAPI = function(){
|
|||
}
|
||||
})
|
||||
$("button#prev_month_btn").click(function(){
|
||||
var m,y;
|
||||
if(c.cur_month == 1){
|
||||
m = 12;
|
||||
y = c.cur_year-1;
|
||||
}else{
|
||||
m = c.cur_month-1;
|
||||
y = c.cur_year;
|
||||
switch (c.view){
|
||||
case "month":
|
||||
var m,y;
|
||||
if(c.cur_month == 1){
|
||||
m = 12;
|
||||
y = c.cur_year-1;
|
||||
}else{
|
||||
m = c.cur_month-1;
|
||||
y = c.cur_year;
|
||||
}
|
||||
c.loadMonthView(m,y);
|
||||
break;
|
||||
case "week":
|
||||
var w,y;
|
||||
if(c.cur_week == 1){
|
||||
w = 52;
|
||||
y = c.cur_year - 1;
|
||||
}else{
|
||||
w = c.cur_week - 1;
|
||||
y = c.cur_year;
|
||||
}
|
||||
c.loadWeekView(w,y);
|
||||
break;
|
||||
}
|
||||
c.loadMonthView(m,y);
|
||||
|
||||
})
|
||||
$("button#next_month_btn").click(function(){
|
||||
var m,y;
|
||||
if(c.cur_month == 12){
|
||||
m = 1;
|
||||
y = c.cur_year+1;
|
||||
}else{
|
||||
m = c.cur_month+1;
|
||||
y = c.cur_year;
|
||||
switch (c.view){
|
||||
case "month":
|
||||
var m,y;
|
||||
if(c.cur_month == 12){
|
||||
m = 1;
|
||||
y = c.cur_year+1;
|
||||
}else{
|
||||
m = c.cur_month+1;
|
||||
y = c.cur_year;
|
||||
}
|
||||
c.loadMonthView(m,y);
|
||||
break;
|
||||
case "week":
|
||||
var w,y;
|
||||
|
||||
if(c.cur_week == 52){
|
||||
w = 1;
|
||||
y = c.cur_year + 1;
|
||||
}else{
|
||||
w = c.cur_week + 1;
|
||||
y = c.cur_year;
|
||||
}
|
||||
c.loadWeekView(w,y);
|
||||
break;
|
||||
}
|
||||
c.loadMonthView(m,y);
|
||||
})
|
||||
$("button#today_btn").click(function(){
|
||||
c.loadMonthView();
|
||||
|
@ -77,17 +140,18 @@ var calendarAPI = function(){
|
|||
}
|
||||
}
|
||||
this.loadMonthView = function(month,year){
|
||||
c.view = "month";
|
||||
if(!month){
|
||||
var dt = new Date();
|
||||
month = dt.getMonth()+1;
|
||||
year = dt.getFullYear();
|
||||
}
|
||||
// month = 2;
|
||||
// month = 10;
|
||||
// year = 2008;
|
||||
c.cur_month = month;
|
||||
c.cur_year = year;
|
||||
$('#view_holder').load("cals/month_view?month="+month+"&year="+year, function() {
|
||||
getEvents(month,year);
|
||||
c.getEventsForMonth(month,year);
|
||||
$('.current_day_title').text(c.monthlist[c.cur_month]+" "+c.cur_year);
|
||||
if($('#calendar_month').length > 0){
|
||||
var $c_table = $('#calendar_month');
|
||||
|
@ -111,49 +175,129 @@ var calendarAPI = function(){
|
|||
});
|
||||
}
|
||||
})
|
||||
var getEvents = function(month,year){
|
||||
$.getJSON("cals/getEvents",{"type":"monthview","month":month,"year":year},function(events){
|
||||
var $eventrow = $("<tr></tr>");
|
||||
var nos = new Array();
|
||||
nos.push(0);
|
||||
$.each(events,function(i,evnt){
|
||||
var daydom = $("#calendar_month td[date="+evnt.start_date+"]");
|
||||
var curparent = daydom.parent().parent().parent();
|
||||
var thisrow = curparent.attr("row");
|
||||
var pos = daydom.attr("position");
|
||||
var thisno = daydom.attr("no");
|
||||
|
||||
var index = "new";
|
||||
for(x in nos){
|
||||
if(thisno < nos[x]){
|
||||
$eventrow = null;
|
||||
$eventrow = $("<tr></tr>");
|
||||
index = x;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(index!="new"){
|
||||
nos[index] = (thisno + evnt.total_days) - 1;
|
||||
}else{
|
||||
nos.push((thisno + evnt.total_days) - 1);
|
||||
}
|
||||
if(pos == 1){
|
||||
$eventrow.html('<td colspan="'+evnt.total_days+'"><div class="event" style="background-color: '+evnt.color+';">'+evnt.title+'</div></td>');
|
||||
}else{
|
||||
if($eventrow.html()==""){
|
||||
$eventrow.append('<td colspan="'+(pos-1)+'">');
|
||||
}
|
||||
$eventrow.append('<td colspan="'+evnt.total_days+'"><div class="event" style="background-color: '+evnt.color+';">'+evnt.title+'</div></td>');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
this.getEventsForMonth = function(month,year){
|
||||
$.getJSON("cals/getMonthEvents",{"month":month,"year":year},function(events){
|
||||
makerow(events);
|
||||
})
|
||||
var doneEventArray = new Array();
|
||||
var makerow = function(events){
|
||||
var $eventrow =null;
|
||||
var currow = 0;
|
||||
var curdate = 0;
|
||||
var allow = false;
|
||||
var curparent = null;
|
||||
var lastno = 0;
|
||||
var indexcount = events.length;
|
||||
$.each(events,function(i,evnt){
|
||||
indexcount++;
|
||||
if($.inArray(evnt.index,doneEventArray) == -1){
|
||||
|
||||
curparent.append($eventrow);
|
||||
})
|
||||
var daydom = $("#calendar_month td[date="+evnt.start_date+"]");
|
||||
var thisparent = daydom.parent().parent().parent();
|
||||
var thisrow = thisparent.attr("row");
|
||||
var pos = parseInt(daydom.attr("position"));
|
||||
var thisno = daydom.attr("no");
|
||||
if(thisrow != currow){
|
||||
if(curparent){
|
||||
curparent.append($eventrow);
|
||||
}
|
||||
$eventrow = null;
|
||||
$eventrow = $("<tr class='event_row'></tr>");
|
||||
allow = true;
|
||||
}else if(evnt.start_date > curdate){
|
||||
allow = true;
|
||||
|
||||
}
|
||||
var recordcurdate = true;
|
||||
|
||||
if(allow){
|
||||
if(pos == 1){
|
||||
var colspan = 0;
|
||||
if(evnt.total_days>7){
|
||||
colspan = 7;
|
||||
var totaldays = parseInt(evnt.total_days) - colspan;
|
||||
var stardate = parseInt(evnt.start_date) + colspan;
|
||||
var index = i + 1;
|
||||
var tempArray = {"index":indexcount,"id":evnt.id,"start_date":stardate,"total_days":totaldays,"title":evnt.title,"color":evnt.color,"show_link":evnt.show_link};
|
||||
events.splice(index,0,tempArray);
|
||||
//recordcurdate = false;
|
||||
}else{
|
||||
colspan = evnt.total_days;
|
||||
}
|
||||
$eventrow.html('<td colspan="'+colspan+'" class="main_td" pos="'+pos+'"><div class="event" link="'+evnt.show_link+'" style="background-color: '+evnt.color+';">'+evnt.title+'</div></td>');
|
||||
}else{
|
||||
if($eventrow.html()==""){
|
||||
$eventrow.append('<td colspan="'+(pos-1)+'">');
|
||||
}else{
|
||||
if((lastno+1)!=thisno){
|
||||
var inposition = parseInt($eventrow.find("td.main_td:last").attr("pos"));
|
||||
var curcolspan = $eventrow.find("td.main_td:last").attr("colspan");
|
||||
var colspan = pos - (inposition+parseInt(curcolspan));
|
||||
$eventrow.append('<td colspan="'+colspan+'">');
|
||||
}
|
||||
}
|
||||
var colspan = 0;
|
||||
if((pos + parseInt(evnt.total_days))-1 > 7){
|
||||
colspan = 7-(pos-1);
|
||||
var totaldays = parseInt(evnt.total_days) - colspan;
|
||||
var stardate = parseInt(evnt.start_date) + colspan;
|
||||
|
||||
var index = i + 1;
|
||||
var tempArray = {"index":indexcount,"id":evnt.id,"start_date":stardate,"total_days":totaldays,"title":evnt.title,"color":evnt.color,"show_link":evnt.show_link};
|
||||
events.splice(index,0,tempArray);
|
||||
// recordcurdate = false;
|
||||
|
||||
}else{
|
||||
colspan = evnt.total_days;
|
||||
}
|
||||
// if(evnt.title == "Again")
|
||||
// console.log(colspan);
|
||||
$eventrow.append('<td colspan="'+colspan+'" class="main_td" pos="'+pos+'"><div link="'+evnt.show_link+'" class="event" style="background-color: '+evnt.color+';">'+evnt.title+'</div></td>');
|
||||
}
|
||||
lastno = (parseInt(thisno) + parseInt(evnt.total_days)) - 1;
|
||||
currow = thisrow;
|
||||
curdate =(evnt.start_date + evnt.total_days) - 1;
|
||||
allow = false;
|
||||
curparent = thisparent;
|
||||
if(recordcurdate)
|
||||
doneEventArray.push(evnt.index);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
if(curparent){
|
||||
curparent.append($eventrow);
|
||||
}
|
||||
if(events.length != doneEventArray.length){
|
||||
makerow(events);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.loadWeekView = function(){
|
||||
$('#view_holder').load("cals/week_view", function() {
|
||||
$('.current_day_title').text('September 2 - 8, 2012');
|
||||
|
||||
this.loadWeekView = function(week,year){
|
||||
c.view = "week";
|
||||
if(!week){
|
||||
var dt = new Date();
|
||||
week = dt.getWeek();
|
||||
year = dt.getFullYear();
|
||||
}
|
||||
|
||||
c.cur_week = week;
|
||||
c.cur_year = year;
|
||||
|
||||
$('#view_holder').load("cals/week_view?week="+week+"&year="+year, function() {
|
||||
$('.current_day_title').text($("#week_range").text());
|
||||
c.getEventsForWeek(week,year);
|
||||
})
|
||||
}
|
||||
this.getEventsForWeek = function(week,year){
|
||||
$.getJSON("cals/getWeekEvents",{"week":week,"year":year},function(events){
|
||||
|
||||
})
|
||||
}
|
||||
this.loadDayView = function(){
|
||||
|
@ -195,10 +339,16 @@ var calendarAPI = function(){
|
|||
$("tr[for="+domfor+"]").remove();
|
||||
})
|
||||
}
|
||||
this.displayEvent = function(){
|
||||
|
||||
c.event_quick_view_div.show()
|
||||
this.displayEvent = function(dom){
|
||||
var url = dom.attr("link");
|
||||
c.event_quick_view_div.load(url,function(){
|
||||
c.event_quick_view_div.show()
|
||||
c.event_quick_view_div.find(".event-close-btn").click(function(){
|
||||
c.event_quick_view_div.empty().hide();
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
c.initialize();
|
||||
}
|
||||
|
||||
|
|
|
@ -265,7 +265,7 @@
|
|||
|
||||
/* Event Controller */
|
||||
.event_controller {
|
||||
width: 300px;
|
||||
width: 350px;
|
||||
}
|
||||
.event_controller .row-fluid {
|
||||
margin-bottom: 6px;
|
||||
|
|
|
@ -30,6 +30,10 @@ class Panel::Calendar::BackEnd::CalsController < OrbitBackendController
|
|||
end
|
||||
|
||||
def week_view
|
||||
week = params[:week]
|
||||
year = params[:year]
|
||||
@dates = week_dates(week,year)
|
||||
@range = week_range(week,year)
|
||||
render :layout => false
|
||||
end
|
||||
|
||||
|
@ -47,7 +51,6 @@ class Panel::Calendar::BackEnd::CalsController < OrbitBackendController
|
|||
cur_month_days = getMonthDays(year)
|
||||
@post_disabled_days = @pre_disabled_days + cur_month_days[month]
|
||||
@dateset = getDateSet(month,year)
|
||||
|
||||
render :layout => false
|
||||
end
|
||||
|
||||
|
@ -55,22 +58,68 @@ class Panel::Calendar::BackEnd::CalsController < OrbitBackendController
|
|||
render :layout => false
|
||||
end
|
||||
|
||||
def get_events
|
||||
def get_month_events
|
||||
month = params[:month]
|
||||
year = params[:year]
|
||||
events = Event.where(:start_month => month).and(:start_year => year)
|
||||
month = month.to_i
|
||||
year = year.to_i
|
||||
events = Event.where(:start_month.lt => month).and(:start_year => year).and(:end_month.gte => month).asc(:start_date).desc(:total_days)
|
||||
@events = Array.new
|
||||
events.each do |event|
|
||||
no_of_days_in_month = getMonthDays(year)
|
||||
events.each_with_index do |event,i|
|
||||
no_of_days = event.total_days
|
||||
|
||||
if event.end_month > month
|
||||
no_of_days = no_of_days_in_month[month]
|
||||
elsif event.end_month == month
|
||||
no_of_days = event.end_date
|
||||
end
|
||||
|
||||
no_of_days = no_of_days.to_i
|
||||
|
||||
color = Cal.find(event.cal_id).color
|
||||
@events << {"id"=>event.id,"index"=>i,"start_date"=>"1", "total_days" => no_of_days, "title" => event.title,"color"=>color,"show_link"=>panel_calendar_back_end_event_path(event)}
|
||||
end
|
||||
events = Event.where(:start_month => month).and(:start_year => year).asc(:start_date).desc(:total_days)
|
||||
events.each_with_index do |event,i|
|
||||
# @temp = Array.new
|
||||
no_of_days = Date.new(event.end_year,event.end_month,event.end_date) - Date.new(event.start_year,event.start_month,event.start_date)
|
||||
no_of_days = event.total_days
|
||||
if event.end_month > month
|
||||
no_of_days = no_of_days_in_month[month] - event.start_date
|
||||
end
|
||||
no_of_days = no_of_days.to_i
|
||||
no_of_days += 1
|
||||
color = Cal.find(event.cal_id).color
|
||||
@events << {"start_date"=>event.start_date, "total_days" => no_of_days, "title" => event.title,"color"=>color}
|
||||
@events << {"id"=>event.id,"index"=>i,"start_date"=>event.start_date, "total_days" => no_of_days, "title" => event.title,"color"=>color,"show_link"=>panel_calendar_back_end_event_path(event)}
|
||||
end
|
||||
|
||||
render :json => @events.to_json
|
||||
end
|
||||
|
||||
def get_week_events
|
||||
week = params[:week]
|
||||
year = params[:year]
|
||||
events = Event.where(:start_week => week).and(:start_year => year)
|
||||
render :json => events.to_json
|
||||
end
|
||||
|
||||
def week_number_test
|
||||
events = Event.all
|
||||
|
||||
events.each do |event|
|
||||
dt = Date.new(event.start_year,event.start_month,event.start_date)
|
||||
sweeknumber = dt.strftime("%U")
|
||||
dt = Date.new(event.end_year,event.end_month,event.end_date)
|
||||
eweeknumber = dt.strftime("%U")
|
||||
event.start_week = sweeknumber
|
||||
event.end_week = eweeknumber
|
||||
event.save!
|
||||
end
|
||||
|
||||
dt = Date.new(2012,10,4)
|
||||
@week = dt.strftime("%U")
|
||||
render :text => @week.to_s
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class Panel::Calendar::BackEnd::EventsController < OrbitBackendController
|
||||
|
||||
include Panel::Calendar::BackEnd::CalsHelper
|
||||
def new
|
||||
@calendars = Cal.all
|
||||
@event = Event.new
|
||||
|
@ -23,8 +23,9 @@ class Panel::Calendar::BackEnd::EventsController < OrbitBackendController
|
|||
temp = $start.split("/")
|
||||
start_date = temp[0]
|
||||
start_month = temp[1]
|
||||
star_year = temp[2]
|
||||
|
||||
start_year = temp[2]
|
||||
@m = start_month
|
||||
@y = start_year
|
||||
temp = $end.split("/")
|
||||
end_date = temp[0]
|
||||
end_month = temp[1]
|
||||
|
@ -35,10 +36,22 @@ class Panel::Calendar::BackEnd::EventsController < OrbitBackendController
|
|||
|
||||
cal_id = params[:event][:cal_id]
|
||||
|
||||
# if start_am_pm == "PM"
|
||||
# temp_start_time = $starttime + 12
|
||||
# end
|
||||
# if end_am_pm == "PM"
|
||||
# temp_end_time = $endtime + 12
|
||||
# end
|
||||
|
||||
final_start_time = Date.new(start_year.to_i,start_month.to_i,start_date.to_i)
|
||||
final_end_time = Date.new(end_year.to_i,end_month.to_i,end_date.to_i)
|
||||
start_week = final_start_time.strftime("%U")
|
||||
end_week = final_end_time.strftime("%U")
|
||||
total_days = final_end_time - final_start_time
|
||||
@event = Event.new
|
||||
@event.title = title
|
||||
@event.note = note
|
||||
@event.start_year = star_year
|
||||
@event.start_year = start_year
|
||||
@event.end_year = end_year
|
||||
@event.start_month = start_month
|
||||
@event.end_month = end_month
|
||||
|
@ -49,10 +62,25 @@ class Panel::Calendar::BackEnd::EventsController < OrbitBackendController
|
|||
@event.end_time = $endtime
|
||||
@event.end_am_pm = end_am_pm
|
||||
@event.cal_id = cal_id
|
||||
@event.final_start_time = final_start_time
|
||||
@event.final_end_time = final_end_time
|
||||
@event.total_days = total_days
|
||||
@event.start_week = start_week
|
||||
@event.end_week = end_week
|
||||
@event.save!
|
||||
|
||||
respond_to do |h|
|
||||
h.js
|
||||
end
|
||||
end
|
||||
end
|
||||
def show
|
||||
@event = Event.find(params[:id])
|
||||
@start_month_name = Date::ABBR_MONTHNAMES[@event.start_month]
|
||||
@end_month_name = Date::ABBR_MONTHNAMES[@event.end_month]
|
||||
@start_day_name = getDayName(@event.start_date,@event.start_month,@event.start_year)
|
||||
@end_day_name = getDayName(@event.end_date,@event.end_month,@event.end_year)
|
||||
render :layout=>false
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -62,4 +62,78 @@ module Panel::Calendar::BackEnd::CalsHelper
|
|||
return monthsdays
|
||||
end
|
||||
|
||||
end
|
||||
def getDayName(date,month,year)
|
||||
date = date.to_i
|
||||
month = month.to_i
|
||||
year = year.to_i
|
||||
dt = Date.new(year,month,date)
|
||||
name = Date::ABBR_DAYNAMES[dt.wday]
|
||||
return name
|
||||
end
|
||||
|
||||
def week_dates(week_num,year)
|
||||
year = year.to_i
|
||||
week_num = week_num.to_i
|
||||
dates = Array.new
|
||||
|
||||
if week_num == 1
|
||||
weekstartday = monthStartDay(1,year)
|
||||
d = 31
|
||||
x = 0
|
||||
for i in d - (weekstartday - 2)..d
|
||||
dates << Date::ABBR_DAYNAMES[x] + " 12/" + i.to_s
|
||||
x = x + 1
|
||||
end
|
||||
for i in 1..8 - weekstartday
|
||||
dates << Date::ABBR_DAYNAMES[x] + " 1/" + i.to_s
|
||||
x = x + 1
|
||||
end
|
||||
else
|
||||
week_start = Date.commercial(year, week_num-1, 7)
|
||||
month = week_start.strftime("%m")
|
||||
month_days = getMonthDays(year)
|
||||
date = week_start.strftime("%d")
|
||||
x = date.to_i
|
||||
for i in 0..6
|
||||
d = x + i
|
||||
if d > month_days[month.to_i]
|
||||
d = d - month_days[month.to_i]
|
||||
end
|
||||
dates << Date::ABBR_DAYNAMES[i] + " " + month + "/" + d.to_s
|
||||
end
|
||||
end
|
||||
dates
|
||||
end
|
||||
|
||||
def week_range(week_num,year)
|
||||
year = year.to_i
|
||||
week_num = week_num.to_i
|
||||
if week_num == 1
|
||||
weekstartday = monthStartDay(1,year)
|
||||
start_date = 31 - (weekstartday - 2)
|
||||
start_year = year - 1
|
||||
end_date = 8 - weekstartday
|
||||
range = "Dec " + start_date.to_s + ", " + start_year.to_s + " - " + "Jan " + end_date.to_s + ", " + year.to_s
|
||||
else
|
||||
week_start = Date.commercial(year, week_num-1, 7)
|
||||
week_end = Date.commercial(year, week_num, 7)
|
||||
week_end = week_end - 1
|
||||
start_date = week_start.strftime("%d")
|
||||
end_date = week_end.strftime("%d")
|
||||
start_month = week_start.strftime("%m")
|
||||
end_month = week_end.strftime("%m")
|
||||
|
||||
if end_month == start_month
|
||||
range = Date::ABBR_MONTHNAMES[start_month.to_i] + " " + start_date.to_s + " - " + end_date.to_s + ", " + week_start.strftime("%Y").to_s
|
||||
else
|
||||
range = Date::ABBR_MONTHNAMES[start_month.to_i] + " " + start_date.to_s + " - " + Date::ABBR_MONTHNAMES[end_month.to_i] + " " + end_date.to_s + ", " + week_start.strftime("%Y").to_s
|
||||
end
|
||||
end
|
||||
range
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -14,6 +14,11 @@ class Event
|
|||
field :start_am_pm
|
||||
field :end_time, type: Float
|
||||
field :end_am_pm
|
||||
field :start_week, type: Integer
|
||||
field :end_week, type: Integer
|
||||
field :final_start_time, type: Date
|
||||
field :final_end_time, type: Date
|
||||
field :total_days, type: Integer
|
||||
|
||||
belongs_to :cal
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="event_create" class="modal" style="right: 8px; bottom: 50px; left: auto; top: auto; width: 330px; margin: 0;display:none;"></div>
|
||||
<div id="event_create" class="modal" style="right: 8px; bottom: 50px; left: auto; top: auto; width: 380px; margin: 0;display:none;"></div>
|
||||
|
||||
<div id="event_quick_view" class="modal" style="width: 300px; top: 60%;display:none"></div>
|
||||
|
||||
|
|
|
@ -1,35 +1,32 @@
|
|||
<div id="week_range" style="display:none;" ><%= @range %></div>
|
||||
<div id="calendar_week">
|
||||
<table class="table header">
|
||||
<tr>
|
||||
<th style="width: 44px;"></th>
|
||||
<th>Sun 9/11</th>
|
||||
<th>Mon 9/12</th>
|
||||
<th class="today">Tue 9/13</th>
|
||||
<th>Wed 9/14</th>
|
||||
<th>Thu 9/15</th>
|
||||
<th>Fri 9/16</th>
|
||||
<th>Sat 9/17</th>
|
||||
<% @dates.each do |day| %>
|
||||
<th><%= day %></th>
|
||||
<% end %>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border: 0; background: none;"></td>
|
||||
<td class="all_day_event week_day">
|
||||
<div class="event half" style="background-color: #ccffee;">
|
||||
<!-- <div class="event half" style="background-color: #ccffee;">
|
||||
<dl>
|
||||
<dt>10:30am - template</dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div> -->
|
||||
</td>
|
||||
<td class="all_day_event week_day">
|
||||
</td>
|
||||
<td class="all_day_event week_day"></td>
|
||||
<td class="all_day_event week_day">
|
||||
<div class="event half" style="background-color: #ccffee;">
|
||||
<!-- <div class="event half" style="background-color: #ccffee;">
|
||||
<dl>
|
||||
<dt>10:30am - template</dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div> -->
|
||||
</td>
|
||||
<td class="all_day_event week_day"></td>
|
||||
<td class="all_day_event week_day"></td>
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
$("#event_create").empty().hide();
|
||||
$("#create_event_btn").removeClass("active");
|
||||
$("#create_event_btn").removeClass("active");
|
||||
$("#calendar_month tr.event_row").remove();
|
||||
calendar.getEventsForMonth(<%= @m %>,<%= @y %>);
|
|
@ -1,10 +1,15 @@
|
|||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3>Event Name</h3>
|
||||
<button type="button" class="close event-close-btn" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3><%= @event.title %></h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="event_summary">
|
||||
Thu, September 13
|
||||
<!-- Thu, September 13 -->
|
||||
<% if @event.start_date == @event.end_date %>
|
||||
<%= @start_day_name+", "+@event.start_date.to_s+"-"+@start_month_name %>
|
||||
<% else %>
|
||||
<%= @start_day_name+", "+@event.start_date.to_s+"-"+@start_month_name %> to <%= @end_day_name+", "+@event.end_date.to_s + "-" + @end_month_name %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
zh_tw:
|
||||
calendar:
|
||||
calendars: Calendars
|
||||
calendars: Calendars
|
||||
create: Create
|
|
@ -7,7 +7,9 @@ Rails.application.routes.draw do
|
|||
match 'cals/month_view' => 'cals#month_view', :via => :get
|
||||
match 'cals/day_view' => 'cals#day_view', :via => :get
|
||||
match 'cals/week_view' => 'cals#week_view', :via => :get
|
||||
match 'cals/getEvents' => 'cals#get_events', :via => :get
|
||||
match 'cals/getMonthEvents' => 'cals#get_month_events', :via => :get
|
||||
match 'cals/getWeekEvents' => 'cals#get_week_events', :via => :get
|
||||
|
||||
resources :cals
|
||||
resources :events
|
||||
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
.bundle/
|
||||
log/*.log
|
||||
pkg/
|
||||
test/dummy/db/*.sqlite3
|
||||
test/dummy/log/*.log
|
||||
test/dummy/tmp/
|
|
@ -0,0 +1,17 @@
|
|||
source "http://rubygems.org"
|
||||
|
||||
# Declare your gem's dependencies in gprs.gemspec.
|
||||
# Bundler will treat runtime dependencies like base dependencies, and
|
||||
# development dependencies will be added by default to the :development group.
|
||||
gemspec
|
||||
|
||||
# jquery-rails is used by the dummy application
|
||||
gem "jquery-rails"
|
||||
|
||||
# Declare any dependencies that are still in development here instead of in
|
||||
# your gemspec. These might include edge Rails or gems from your path or
|
||||
# Git. Remember to move these dependencies to your gemspec before releasing
|
||||
# your gem to rubygems.org.
|
||||
|
||||
# To use debugger
|
||||
# gem 'ruby-debug19', :require => 'ruby-debug'
|
|
@ -0,0 +1,20 @@
|
|||
Copyright 2012 YOURNAME
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,3 @@
|
|||
= Gprs
|
||||
|
||||
This project rocks and uses MIT-LICENSE.
|
|
@ -0,0 +1,39 @@
|
|||
#!/usr/bin/env rake
|
||||
begin
|
||||
require 'bundler/setup'
|
||||
rescue LoadError
|
||||
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
||||
end
|
||||
begin
|
||||
require 'rdoc/task'
|
||||
rescue LoadError
|
||||
require 'rdoc/rdoc'
|
||||
require 'rake/rdoctask'
|
||||
RDoc::Task = Rake::RDocTask
|
||||
end
|
||||
|
||||
RDoc::Task.new(:rdoc) do |rdoc|
|
||||
rdoc.rdoc_dir = 'rdoc'
|
||||
rdoc.title = 'Gprs'
|
||||
rdoc.options << '--line-numbers'
|
||||
rdoc.rdoc_files.include('README.rdoc')
|
||||
rdoc.rdoc_files.include('lib/**/*.rb')
|
||||
end
|
||||
|
||||
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
|
||||
load 'rails/tasks/engine.rake'
|
||||
|
||||
|
||||
Bundler::GemHelper.install_tasks
|
||||
|
||||
require 'rake/testtask'
|
||||
|
||||
Rake::TestTask.new(:test) do |t|
|
||||
t.libs << 'lib'
|
||||
t.libs << 'test'
|
||||
t.pattern = 'test/**/*_test.rb'
|
||||
t.verbose = false
|
||||
end
|
||||
|
||||
|
||||
task :default => :test
|
29
vendor/built_in_modules/gprs/app/controllers/panel/gprs/back_end/locations_controller.rb
vendored
Normal file
29
vendor/built_in_modules/gprs/app/controllers/panel/gprs/back_end/locations_controller.rb
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
class Panel::Gprs::BackEnd::LocationsController < OrbitBackendController
|
||||
|
||||
def index
|
||||
@newlocation = Location.new
|
||||
end
|
||||
|
||||
def create
|
||||
debugger
|
||||
@newlocation = Location.new(params[:location])
|
||||
@newlocation.save!
|
||||
render :action => "index"
|
||||
end
|
||||
|
||||
def get_locations
|
||||
locations = Location.all
|
||||
@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
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
class Location
|
||||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
|
||||
mount_uploader :file, GprsUploader
|
||||
|
||||
field :name
|
||||
field :description
|
||||
field :longitude, type: Float
|
||||
field :latitude, type: Float
|
||||
|
||||
end
|
41
vendor/built_in_modules/gprs/app/views/panel/gprs/back_end/locations/index.html.erb
vendored
Normal file
41
vendor/built_in_modules/gprs/app/views/panel/gprs/back_end/locations/index.html.erb
vendored
Normal file
|
@ -0,0 +1,41 @@
|
|||
<!-- <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>
|
||||
<% end %>
|
||||
<!-- </form> -->
|
|
@ -0,0 +1,14 @@
|
|||
Rails.application.routes.draw do
|
||||
namespace :panel do
|
||||
namespace :gprs do
|
||||
namespace :back_end do
|
||||
|
||||
match "locations/get_locations" => "locations#get_locations"
|
||||
|
||||
resources :locations
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,23 @@
|
|||
$:.push File.expand_path("../lib", __FILE__)
|
||||
|
||||
# Maintain your gem's version:
|
||||
require "gprs/version"
|
||||
|
||||
# Describe your gem and declare its dependencies:
|
||||
Gem::Specification.new do |s|
|
||||
s.name = "gprs"
|
||||
s.version = Gprs::VERSION
|
||||
s.authors = ["TODO: Your name"]
|
||||
s.email = ["TODO: Your email"]
|
||||
s.homepage = "TODO"
|
||||
s.summary = "TODO: Summary of Gprs."
|
||||
s.description = "TODO: Description of Gprs."
|
||||
|
||||
s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.rdoc"]
|
||||
s.test_files = Dir["test/**/*"]
|
||||
|
||||
s.add_dependency "rails", "~> 3.1.8"
|
||||
# s.add_dependency "jquery-rails"
|
||||
|
||||
s.add_development_dependency "sqlite3"
|
||||
end
|
|
@ -0,0 +1,4 @@
|
|||
require "gprs/engine"
|
||||
|
||||
module Gprs
|
||||
end
|
|
@ -1,4 +1,4 @@
|
|||
module Announcement
|
||||
module Gprs
|
||||
class Engine < Rails::Engine
|
||||
end
|
||||
end
|
|
@ -1,3 +1,3 @@
|
|||
module Announcement
|
||||
module Gprs
|
||||
VERSION = "0.0.1"
|
||||
end
|
|
@ -0,0 +1,4 @@
|
|||
# desc "Explaining what the task does"
|
||||
# task :gprs do
|
||||
# # Task goes here
|
||||
# end
|
|
@ -0,0 +1,6 @@
|
|||
#!/usr/bin/env ruby
|
||||
#!/usr/bin/env ruby
|
||||
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
||||
|
||||
ENGINE_PATH = File.expand_path('../..', __FILE__)
|
||||
load File.expand_path('../../test/dummy/script/rails', __FILE__)
|
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env rake
|
||||
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
||||
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
||||
|
||||
require File.expand_path('../config/application', __FILE__)
|
||||
|
||||
Dummy::Application.load_tasks
|
9
vendor/built_in_modules/gprs/test/dummy/app/assets/javascripts/application.js
vendored
Normal file
9
vendor/built_in_modules/gprs/test/dummy/app/assets/javascripts/application.js
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
// This is a manifest file that'll be compiled into including all the files listed below.
|
||||
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
|
||||
// be included in the compiled file accessible from http://example.com/assets/application.js
|
||||
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
||||
// the compiled file.
|
||||
//
|
||||
//= require jquery
|
||||
//= require jquery_ujs
|
||||
//= require_tree .
|
7
vendor/built_in_modules/gprs/test/dummy/app/assets/stylesheets/application.css
vendored
Normal file
7
vendor/built_in_modules/gprs/test/dummy/app/assets/stylesheets/application.css
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
/*
|
||||
* This is a manifest file that'll automatically include all the stylesheets available in this directory
|
||||
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
||||
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
||||
*= require_self
|
||||
*= require_tree .
|
||||
*/
|
3
vendor/built_in_modules/gprs/test/dummy/app/controllers/application_controller.rb
vendored
Normal file
3
vendor/built_in_modules/gprs/test/dummy/app/controllers/application_controller.rb
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
class ApplicationController < ActionController::Base
|
||||
protect_from_forgery
|
||||
end
|
|
@ -0,0 +1,2 @@
|
|||
module ApplicationHelper
|
||||
end
|
14
vendor/built_in_modules/gprs/test/dummy/app/views/layouts/application.html.erb
vendored
Normal file
14
vendor/built_in_modules/gprs/test/dummy/app/views/layouts/application.html.erb
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Dummy</title>
|
||||
<%= stylesheet_link_tag "application" %>
|
||||
<%= javascript_include_tag "application" %>
|
||||
<%= csrf_meta_tags %>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<%= yield %>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,4 @@
|
|||
# This file is used by Rack-based servers to start the application.
|
||||
|
||||
require ::File.expand_path('../config/environment', __FILE__)
|
||||
run Dummy::Application
|
|
@ -0,0 +1,45 @@
|
|||
require File.expand_path('../boot', __FILE__)
|
||||
|
||||
require 'rails/all'
|
||||
|
||||
Bundler.require
|
||||
require "gprs"
|
||||
|
||||
module Dummy
|
||||
class Application < Rails::Application
|
||||
# Settings in config/environments/* take precedence over those specified here.
|
||||
# Application configuration should go into files in config/initializers
|
||||
# -- all .rb files in that directory are automatically loaded.
|
||||
|
||||
# Custom directories with classes and modules you want to be autoloadable.
|
||||
# config.autoload_paths += %W(#{config.root}/extras)
|
||||
|
||||
# Only load the plugins named here, in the order given (default is alphabetical).
|
||||
# :all can be used as a placeholder for all plugins not explicitly named.
|
||||
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]
|
||||
|
||||
# Activate observers that should always be running.
|
||||
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
|
||||
|
||||
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
||||
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
||||
# config.time_zone = 'Central Time (US & Canada)'
|
||||
|
||||
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
||||
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
||||
# config.i18n.default_locale = :de
|
||||
|
||||
# Configure the default encoding used in templates for Ruby 1.9.
|
||||
config.encoding = "utf-8"
|
||||
|
||||
# Configure sensitive parameters which will be filtered from the log file.
|
||||
config.filter_parameters += [:password]
|
||||
|
||||
# Enable the asset pipeline
|
||||
config.assets.enabled = true
|
||||
|
||||
# Version of your assets, change this if you want to expire all your assets
|
||||
config.assets.version = '1.0'
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
require 'rubygems'
|
||||
gemfile = File.expand_path('../../../../Gemfile', __FILE__)
|
||||
|
||||
if File.exist?(gemfile)
|
||||
ENV['BUNDLE_GEMFILE'] = gemfile
|
||||
require 'bundler'
|
||||
Bundler.setup
|
||||
end
|
||||
|
||||
$:.unshift File.expand_path('../../../../lib', __FILE__)
|
|
@ -0,0 +1,25 @@
|
|||
# SQLite version 3.x
|
||||
# gem install sqlite3
|
||||
#
|
||||
# Ensure the SQLite 3 gem is defined in your Gemfile
|
||||
# gem 'sqlite3'
|
||||
development:
|
||||
adapter: sqlite3
|
||||
database: db/development.sqlite3
|
||||
pool: 5
|
||||
timeout: 5000
|
||||
|
||||
# Warning: The database defined as "test" will be erased and
|
||||
# re-generated from your development database when you run "rake".
|
||||
# Do not set this db to the same as development or production.
|
||||
test:
|
||||
adapter: sqlite3
|
||||
database: db/test.sqlite3
|
||||
pool: 5
|
||||
timeout: 5000
|
||||
|
||||
production:
|
||||
adapter: sqlite3
|
||||
database: db/production.sqlite3
|
||||
pool: 5
|
||||
timeout: 5000
|
|
@ -0,0 +1,5 @@
|
|||
# Load the rails application
|
||||
require File.expand_path('../application', __FILE__)
|
||||
|
||||
# Initialize the rails application
|
||||
Dummy::Application.initialize!
|
|
@ -0,0 +1,30 @@
|
|||
Dummy::Application.configure do
|
||||
# Settings specified here will take precedence over those in config/application.rb
|
||||
|
||||
# In the development environment your application's code is reloaded on
|
||||
# every request. This slows down response time but is perfect for development
|
||||
# since you don't have to restart the web server when you make code changes.
|
||||
config.cache_classes = false
|
||||
|
||||
# Log error messages when you accidentally call methods on nil.
|
||||
config.whiny_nils = true
|
||||
|
||||
# Show full error reports and disable caching
|
||||
config.consider_all_requests_local = true
|
||||
config.action_controller.perform_caching = false
|
||||
|
||||
# Don't care if the mailer can't send
|
||||
config.action_mailer.raise_delivery_errors = false
|
||||
|
||||
# Print deprecation notices to the Rails logger
|
||||
config.active_support.deprecation = :log
|
||||
|
||||
# Only use best-standards-support built into browsers
|
||||
config.action_dispatch.best_standards_support = :builtin
|
||||
|
||||
# Do not compress assets
|
||||
config.assets.compress = false
|
||||
|
||||
# Expands the lines which load the assets
|
||||
config.assets.debug = true
|
||||
end
|
|
@ -0,0 +1,60 @@
|
|||
Dummy::Application.configure do
|
||||
# Settings specified here will take precedence over those in config/application.rb
|
||||
|
||||
# Code is not reloaded between requests
|
||||
config.cache_classes = true
|
||||
|
||||
# Full error reports are disabled and caching is turned on
|
||||
config.consider_all_requests_local = false
|
||||
config.action_controller.perform_caching = true
|
||||
|
||||
# Disable Rails's static asset server (Apache or nginx will already do this)
|
||||
config.serve_static_assets = false
|
||||
|
||||
# Compress JavaScripts and CSS
|
||||
config.assets.compress = true
|
||||
|
||||
# Don't fallback to assets pipeline if a precompiled asset is missed
|
||||
config.assets.compile = false
|
||||
|
||||
# Generate digests for assets URLs
|
||||
config.assets.digest = true
|
||||
|
||||
# Defaults to Rails.root.join("public/assets")
|
||||
# config.assets.manifest = YOUR_PATH
|
||||
|
||||
# Specifies the header that your server uses for sending files
|
||||
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
|
||||
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
|
||||
|
||||
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
||||
# config.force_ssl = true
|
||||
|
||||
# See everything in the log (default is :info)
|
||||
# config.log_level = :debug
|
||||
|
||||
# Use a different logger for distributed setups
|
||||
# config.logger = SyslogLogger.new
|
||||
|
||||
# Use a different cache store in production
|
||||
# config.cache_store = :mem_cache_store
|
||||
|
||||
# Enable serving of images, stylesheets, and JavaScripts from an asset server
|
||||
# config.action_controller.asset_host = "http://assets.example.com"
|
||||
|
||||
# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
|
||||
# config.assets.precompile += %w( search.js )
|
||||
|
||||
# Disable delivery errors, bad email addresses will be ignored
|
||||
# config.action_mailer.raise_delivery_errors = false
|
||||
|
||||
# Enable threaded mode
|
||||
# config.threadsafe!
|
||||
|
||||
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
|
||||
# the I18n.default_locale when a translation can not be found)
|
||||
config.i18n.fallbacks = true
|
||||
|
||||
# Send deprecation notices to registered listeners
|
||||
config.active_support.deprecation = :notify
|
||||
end
|
|
@ -0,0 +1,39 @@
|
|||
Dummy::Application.configure do
|
||||
# Settings specified here will take precedence over those in config/application.rb
|
||||
|
||||
# The test environment is used exclusively to run your application's
|
||||
# test suite. You never need to work with it otherwise. Remember that
|
||||
# your test database is "scratch space" for the test suite and is wiped
|
||||
# and recreated between test runs. Don't rely on the data there!
|
||||
config.cache_classes = true
|
||||
|
||||
# Configure static asset server for tests with Cache-Control for performance
|
||||
config.serve_static_assets = true
|
||||
config.static_cache_control = "public, max-age=3600"
|
||||
|
||||
# Log error messages when you accidentally call methods on nil
|
||||
config.whiny_nils = true
|
||||
|
||||
# Show full error reports and disable caching
|
||||
config.consider_all_requests_local = true
|
||||
config.action_controller.perform_caching = false
|
||||
|
||||
# Raise exceptions instead of rendering exception templates
|
||||
config.action_dispatch.show_exceptions = false
|
||||
|
||||
# Disable request forgery protection in test environment
|
||||
config.action_controller.allow_forgery_protection = false
|
||||
|
||||
# Tell Action Mailer not to deliver emails to the real world.
|
||||
# The :test delivery method accumulates sent emails in the
|
||||
# ActionMailer::Base.deliveries array.
|
||||
config.action_mailer.delivery_method = :test
|
||||
|
||||
# Use SQL instead of Active Record's schema dumper when creating the test database.
|
||||
# This is necessary if your schema can't be completely dumped by the schema dumper,
|
||||
# like if you have constraints or database-specific column types
|
||||
# config.active_record.schema_format = :sql
|
||||
|
||||
# Print deprecation notices to the stderr
|
||||
config.active_support.deprecation = :stderr
|
||||
end
|
7
vendor/built_in_modules/gprs/test/dummy/config/initializers/backtrace_silencers.rb
vendored
Normal file
7
vendor/built_in_modules/gprs/test/dummy/config/initializers/backtrace_silencers.rb
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
|
||||
# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
|
||||
|
||||
# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
|
||||
# Rails.backtrace_cleaner.remove_silencers!
|
|
@ -0,0 +1,10 @@
|
|||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# Add new inflection rules using the following format
|
||||
# (all these examples are active by default):
|
||||
# ActiveSupport::Inflector.inflections do |inflect|
|
||||
# inflect.plural /^(ox)$/i, '\1en'
|
||||
# inflect.singular /^(ox)en/i, '\1'
|
||||
# inflect.irregular 'person', 'people'
|
||||
# inflect.uncountable %w( fish sheep )
|
||||
# end
|
|
@ -0,0 +1,5 @@
|
|||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# Add new mime types for use in respond_to blocks:
|
||||
# Mime::Type.register "text/richtext", :rtf
|
||||
# Mime::Type.register_alias "text/html", :iphone
|
|
@ -0,0 +1,7 @@
|
|||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
# Your secret key for verifying the integrity of signed cookies.
|
||||
# If you change this key, all old signed cookies will become invalid!
|
||||
# Make sure the secret is at least 30 characters and all random,
|
||||
# no regular words or you'll be exposed to dictionary attacks.
|
||||
Dummy::Application.config.secret_token = '181584334acb820e1d0e0e53b71c0985251f4e5bfd188a962d5f9acfeeb0e46dfd6ca68784528cab00d8e6e8da087cce2bf7d060fe2b2c742a814c23689ff6af'
|
|
@ -0,0 +1,8 @@
|
|||
# Be sure to restart your server when you modify this file.
|
||||
|
||||
Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
|
||||
|
||||
# Use the database for sessions instead of the cookie-based default,
|
||||
# which shouldn't be used to store highly confidential information
|
||||
# (create the session table with "rails generate session_migration")
|
||||
# Dummy::Application.config.session_store :active_record_store
|
14
vendor/built_in_modules/gprs/test/dummy/config/initializers/wrap_parameters.rb
vendored
Normal file
14
vendor/built_in_modules/gprs/test/dummy/config/initializers/wrap_parameters.rb
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
# Be sure to restart your server when you modify this file.
|
||||
#
|
||||
# This file contains settings for ActionController::ParamsWrapper which
|
||||
# is enabled by default.
|
||||
|
||||
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
|
||||
ActiveSupport.on_load(:action_controller) do
|
||||
wrap_parameters format: [:json]
|
||||
end
|
||||
|
||||
# Disable root element in JSON by default.
|
||||
ActiveSupport.on_load(:active_record) do
|
||||
self.include_root_in_json = false
|
||||
end
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue