merge with november_presentation

This commit is contained in:
chris2tof committed 2011-12-20 16:47:17 +08:00
1 parent afbffe37d5
commit a09f8e4551
101 files changed
+891 -10632

No files matched your search

+15 -1
View File
@@ -4,4 +4,18 @@ $("div.editable").live("mouseenter mouseleave", function (event) {
$("#page_design_id").live('change', function() {
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_themes');
});
});
$("#page_module_app").live('change', function() {
var app_id = $(this).val();
if(app_id!=''){
$.getScript($(this).attr('rel') + '/' + $(this).val() + '/reload_frontend_pages',function(data, textStatus){
if(textStatus == 'success'){
$(this).after(data);
}
});
}
else{
$("#app_page_url").remove();
}
});
@@ -0,0 +1,17 @@
class Admin::AppAuthsController < ApplicationController
layout "admin"
before_filter :authenticate_user!
before_filter :is_admin?
def index
@roles = Role.all.entries
apps = Purchase.where(:type =>"App")
@app_auth_data = apps.entries.map do |app|
app_c = eval(app.app_controller)
obj = app_c.new
obj_auth = obj.send "auth"
[:app_obj => app,:auth_field => obj_auth]
end
end
end
@@ -0,0 +1,9 @@
class Admin::ModuleAppsController < ApplicationController
def reload_frontend_pages
@module_app = ModuleApp.find(params[:id])
respond_to do |format|
format.js {}
end
end
end
@@ -19,6 +19,7 @@ class Admin::PagesController < ApplicationController
def new
@item = Page.new
@apps = ModuleApp.all
@item.is_published = true
@item.parent_id = @parent_item.id rescue nil
@designs = Design.all.entries
@@ -27,6 +28,7 @@ class Admin::PagesController < ApplicationController
def edit
@item = Page.find(params[:id])
@apps = ModuleApp.all
@i18n_variable = @item.i18n_variable
@designs = Design.all.entries
@design = @item.design
+2 -2
View File
@@ -36,9 +36,9 @@ class ApplicationController < ActionController::Base
end
# Render the page
def render_page
def render_page(url = nil)
if @item
render :text => parse_page(@item)
render :text => parse_page(@item,url)
else
render :text => '404 Not Found'
end
+22 -13
View File
@@ -9,19 +9,28 @@ class PagesController < ApplicationController
end
end
def show
begin
item = Item.first(:conditions => {:full_name => params[:page_name]})
case item._type
when 'Page'
@item = item
render_page
when 'Link'
redirect_to "http://#{item[:url]}"
end
rescue
render :file => "#{Rails.root}/public/404.html", :status => :not_found
end
def appfront
pre_uri = URI.split request.env['HTTP_REFERER']
pre_item_fullname = pre_uri[5][1..-1]
@item = Item.first(:conditions => {:full_name => pre_item_fullname})
redirect_to (request.env['HTTP_REFERER'].partition("?")[0]+"?app_url=#{request.fullpath}")
end
def show
begin
item = Item.first(:conditions => {:full_name => params[:page_name]})
case item._type
when 'Page'
@item = item
render_page ((params[:app_url]+'?inner='+"true" if params[:app_url]))
when 'Link'
redirect_to "http://#{item[:url]}"
end
rescue
render :file => "#{Rails.root}/public/404.html", :status => :not_found
end
end
end
+77
View File
@@ -0,0 +1,77 @@
class AppAuth
include Mongoid::Document
include Mongoid::Timestamps
# after_save :update_block_list,:update_privilage_list
field :title
field :token
field :all ,type: Boolean,default: false
belongs_to :module_app
belongs_to :users
# belongs_to :users,as: :block_users, :inverse_of => :privilege_apps
has_and_belongs_to_many :blocked_users, :inverse_of => nil, :class_name => "User"
has_and_belongs_to_many :privilege_users, :inverse_of => nil, :class_name => "User"
has_and_belongs_to_many :roles
def add_user_to_black_list user
unless self.blocked_users.include?(user)
self.blocked_users << user
self.save!
else
false #should put error message for user existed in list already
end
end
def remove_user_from_black_list user
if self.blocked_users.include? user
self.blocked_users.delete user
self.save!
else
false #should put error message for user not existed in list
end
end
def add_user_to_privilege_list user
unless self.privilege_users.include? user
self.privilege_users << user
self.save!
else
false #should put error message for user existed in list already
end
end
def remove_user_from_privilege_list user
if self.privilege_users.include? user
self.privilege_users.delete user
self.save!
else
false #should put error message for user not existed in list
end
end
def auth_users
if self.all?
User.all.entries
else
ary= self.roles.collect do |role|
role.users
end
ary << self.privilege_users
ary.flatten!
end
end
def auth_users_after_block_list
auth_users - self.blocked_users
end
# protected
end
+5 -1
View File
@@ -2,7 +2,7 @@ class ModuleApp
include Mongoid::Document
include Mongoid::Timestamps
field :name_of_app
field :title
field :version
field :organization
field :author
@@ -10,4 +10,8 @@ class ModuleApp
field :update_info
field :create_date
field :app_pages ,type: Array
has_one :app_auth,dependent: :delete
end
+2
View File
@@ -1,10 +1,12 @@
class Page < Item
field :content
field :app_frontend_url
field :theme_id, :type => BSON::ObjectId, :default => nil
belongs_to :design
has_many :page_parts
belongs_to :module_app
embeds_many :custom_images, as: :design_image
+4
View File
@@ -9,4 +9,8 @@ class Purchase
field :downloaded, :type => Boolean
field :download_date, :type => Date
field :type
field :app_controller
has_many :app_auths
end
+7
View File
@@ -11,10 +11,17 @@ class User
field :active_role
has_many :attribute_values, :autosave => true, :dependent => :destroy
has_many :app_auths,as: :privilege_apps,:inverse_of => :privilege_lists
has_many :blocked_apps, :inverse_of => :blocked_users, :class_name => "AppAuth"
has_many :privilege_apps, :inverse_of => :privilege_users, :class_name => "AppAuth"
belongs_to :role
has_and_belongs_to_many :sub_roles
accepts_nested_attributes_for :attribute_values, :allow_destroy => true
def avb_apps
query = AppAuth.any_of({all: true},{privilege_user_ids: self.id},{roles: self.role.id}).excludes(blocked_user_ids: self.id)
end
def name
info = Class::Info.first(:conditions => {:key => 'profile'})
if info
@@ -0,0 +1,3 @@
<div class="auth_unit">
<%= unit%>
<div>
+32
View File
@@ -0,0 +1,32 @@
<% content_for :secondary do %>
<div id='user_list'>
<div class="role_list">
<h1>User Role</h1>
<ul class="list">
<% @roles.each do |role| %>
<li class="set_1"><%= link_to content_tag(:span, "Role") %></li>
<% end -%>
</ul>
</div>
</div>
<% end -%>
<h1><%= t('admin.list_app_auths') %></h1>
<table>
<tr>
<th><%= t('admin.app.name') %></th>
<th><%= t('admin.description') %></th>
</tr>
<% @app_auth_data.each do |app| %>
<tr>
<td><%= app[0][:app_obj].title %></td>
<% app[0][:auth_field].each do |unit| %>
<td>
<%= render :partial => "auth_unit",:locals => {:unit => unit } %>
</td>
<%end%>
</tr>
<% end %>
</table>
@@ -0,0 +1 @@
<%= f.select :module_app, @apps.collect { |t| [t.title.capitalize, t.id] }, {:include_blank => true} ,{:rel => admin_module_apps_path } %>
@@ -0,0 +1 @@
$('#app_page_url').html("<%= escape_javascript(select 'page','app_frontend_url', @module_app.app_pages) %>");
+6 -1
View File
@@ -30,8 +30,13 @@
<%= f.select :theme_id, @default_design.themes.collect { |t| [t.name.capitalize, t.id] }, :include_blank => true %>
<% end %>
</p>
<p>
<%= t('admin.module_app') %>
<%= render :partial => "admin/module_apps/app_selector", :locals => { :f => f } %>
<span id="app_page_url"></span>
</p>
<p>
<%= f.label :is_published, "#{t('admin.is_published')} ?" %>
<%= f.radio_button :is_published, true %>Yes <%= f.radio_button :is_published, false %> No
</p>