fastui 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/MIT-LICENSE +20 -0
- data/README.md +53 -0
- data/Rakefile +40 -0
- data/app/assets/images/fastui/application/application.png +0 -0
- data/app/assets/images/fastui/application/application_add.png +0 -0
- data/app/assets/images/fastui/application/application_cascade.png +0 -0
- data/app/assets/images/fastui/application/application_delete.png +0 -0
- data/app/assets/images/fastui/application/application_double.png +0 -0
- data/app/assets/images/fastui/application/application_edit.png +0 -0
- data/app/assets/images/fastui/application/application_error.png +0 -0
- data/app/assets/images/fastui/application/application_form.png +0 -0
- data/app/assets/images/fastui/application/application_form_add.png +0 -0
- data/app/assets/images/fastui/application/application_form_delete.png +0 -0
- data/app/assets/images/fastui/application/application_form_edit.png +0 -0
- data/app/assets/images/fastui/application/application_form_magnify.png +0 -0
- data/app/assets/images/fastui/application/application_get.png +0 -0
- data/app/assets/images/fastui/application/application_go.png +0 -0
- data/app/assets/images/fastui/application/application_home.png +0 -0
- data/app/assets/images/fastui/application/application_key.png +0 -0
- data/app/assets/images/fastui/application/application_lightning.png +0 -0
- data/app/assets/images/fastui/application/application_link.png +0 -0
- data/app/assets/images/fastui/application/application_osx.png +0 -0
- data/app/assets/images/fastui/application/application_osx_terminal.png +0 -0
- data/app/assets/images/fastui/application/application_put.png +0 -0
- data/app/assets/images/fastui/application/application_side_boxes.png +0 -0
- data/app/assets/images/fastui/application/application_side_contract.png +0 -0
- data/app/assets/images/fastui/application/application_side_expand.png +0 -0
- data/app/assets/images/fastui/application/application_side_list.png +0 -0
- data/app/assets/images/fastui/application/application_side_tree.png +0 -0
- data/app/assets/images/fastui/application/application_split.png +0 -0
- data/app/assets/images/fastui/application/application_tile_horizontal.png +0 -0
- data/app/assets/images/fastui/application/application_tile_vertical.png +0 -0
- data/app/assets/images/fastui/application/application_view_columns.png +0 -0
- data/app/assets/images/fastui/application/application_view_detail.png +0 -0
- data/app/assets/images/fastui/application/application_view_gallery.png +0 -0
- data/app/assets/images/fastui/application/application_view_icons.png +0 -0
- data/app/assets/images/fastui/application/application_view_list.png +0 -0
- data/app/assets/images/fastui/application/application_view_tile.png +0 -0
- data/app/assets/images/fastui/application/application_xp.png +0 -0
- data/app/assets/images/fastui/application/application_xp_terminal.png +0 -0
- data/app/assets/images/fastui/arrow/accept.png +0 -0
- data/app/assets/images/fastui/arrow/add.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_branch.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_divide.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_down.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_in.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_inout.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_join.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_left.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_merge.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_out.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_redo.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_refresh.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_refresh_small.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_rotate_anticlockwise.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_rotate_clockwise.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_switch.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_turn_left.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_turn_right.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_undo.png +0 -0
- data/app/assets/images/fastui/arrow/arrow_up.png +0 -0
- data/app/assets/images/fastui/arrow/cross.png +0 -0
- data/app/assets/images/fastui/cross.png +0 -0
- data/app/assets/images/fastui/key_go.png +0 -0
- data/app/assets/images/fastui/list1211.png +0 -0
- data/app/assets/images/fastui/loading.gif +0 -0
- data/app/assets/images/fastui/lock.png +0 -0
- data/app/assets/images/fastui/locked.png +0 -0
- data/app/assets/images/fastui/table/help.png +0 -0
- data/app/assets/images/fastui/table/table.png +0 -0
- data/app/assets/images/fastui/table/table_add.png +0 -0
- data/app/assets/images/fastui/table/table_delete.png +0 -0
- data/app/assets/images/fastui/table/table_edit.png +0 -0
- data/app/assets/images/fastui/table/table_save.png +0 -0
- data/app/assets/images/fastui/upload.png +0 -0
- data/app/assets/javascripts/fastui/app/Ctx.js +33 -0
- data/app/assets/javascripts/fastui/app/Env.js +38 -0
- data/app/assets/javascripts/fastui/app/Evaluator.js +6 -0
- data/app/assets/javascripts/fastui/app/inflection.js +656 -0
- data/app/assets/javascripts/fastui/app/store/MListMgr.js +34 -0
- data/app/assets/javascripts/fastui/app/store/MWindowMgr.js +27 -0
- data/app/assets/javascripts/fastui/app/view/FormFactory.js +11 -0
- data/app/assets/javascripts/fastui/app/view/Rest.js +40 -0
- data/app/assets/javascripts/fastui/app/view/VCommentForm.js +53 -0
- data/app/assets/javascripts/fastui/app/view/VCriteria.js +25 -0
- data/app/assets/javascripts/fastui/app/view/VCustomForm.js +34 -0
- data/app/assets/javascripts/fastui/app/view/VCustomTab.js +266 -0
- data/app/assets/javascripts/fastui/app/view/VForm.js +117 -0
- data/app/assets/javascripts/fastui/app/view/VGrid.js +172 -0
- data/app/assets/javascripts/fastui/app/view/VHelpWindow.js +21 -0
- data/app/assets/javascripts/fastui/app/view/VLoginForm.js +101 -0
- data/app/assets/javascripts/fastui/app/view/VLoginWindow.js +73 -0
- data/app/assets/javascripts/fastui/app/view/VMenu.js +75 -0
- data/app/assets/javascripts/fastui/app/view/VSearchWindow.js +102 -0
- data/app/assets/javascripts/fastui/app/view/VTab.js +293 -0
- data/app/assets/javascripts/fastui/app/view/VToolbar.js +23 -0
- data/app/assets/javascripts/fastui/app/view/VTreeGrid.js +158 -0
- data/app/assets/javascripts/fastui/app/view/VVWindow.js +72 -0
- data/app/assets/javascripts/fastui/app/view/VWindow.js +52 -0
- data/app/assets/javascripts/fastui/app/view/Viewport.js +54 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VCheckBox.js +19 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VCheckboxGroup.js +19 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VDate.js +19 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VFieldFactory.js +77 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VFile.js +22 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VHtmlEditor.js +19 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VLongComboBox.js +19 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VLookup.js +45 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VMultipleChoice.js +46 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VNumber.js +18 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VSexSelect.js +30 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VSingleChoice.js +35 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VText.js +17 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VTextArea.js +19 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VTree.js +17 -0
- data/app/assets/javascripts/fastui/app/view/vfield/VYesOrNo.js +30 -0
- data/app/assets/javascripts/fastui/application.js +18 -0
- data/app/assets/javascripts/fastui/data/mwindows.json +7 -0
- data/app/assets/javascripts/fastui/data/updateMWindows.json +4 -0
- data/app/assets/javascripts/fastui/extjs4/locale/ext-lang-zh_CN.js +304 -0
- data/app/assets/javascripts/fastui/fastui.js +23 -0
- data/app/assets/stylesheets/fastui/admin.css +95 -0
- data/app/assets/stylesheets/fastui/application.css +14 -0
- data/app/controllers/fastui/admin_controller.rb +9 -0
- data/app/controllers/fastui/application_controller.rb +19 -0
- data/app/controllers/fastui/m_list_items_controller.rb +64 -0
- data/app/controllers/fastui/m_lists_controller.rb +58 -0
- data/app/controllers/fastui/m_menu_items_controller.rb +69 -0
- data/app/controllers/fastui/m_menus_controller.rb +58 -0
- data/app/controllers/fastui/m_orgs_controller.rb +62 -0
- data/app/controllers/fastui/m_people_controller.rb +89 -0
- data/app/controllers/fastui/m_roles_controller.rb +61 -0
- data/app/controllers/fastui/m_views_controller.rb +18 -0
- data/app/controllers/fastui/sessions_controller.rb +42 -0
- data/app/helpers/fastui/admin_helper.rb +4 -0
- data/app/helpers/fastui/application_helper.rb +4 -0
- data/app/models/fastui/acl.rb +21 -0
- data/app/models/fastui/ctx.rb +15 -0
- data/app/models/fastui/env.rb +16 -0
- data/app/models/fastui/m_acl_entry.rb +5 -0
- data/app/models/fastui/m_list.rb +6 -0
- data/app/models/fastui/m_list_item.rb +8 -0
- data/app/models/fastui/m_menu.rb +10 -0
- data/app/models/fastui/m_menu_item.rb +11 -0
- data/app/models/fastui/m_object.rb +41 -0
- data/app/models/fastui/m_org.rb +16 -0
- data/app/models/fastui/m_person.rb +21 -0
- data/app/models/fastui/m_relationship.rb +9 -0
- data/app/models/fastui/m_role.rb +11 -0
- data/app/models/fastui/user_authenticator.rb +18 -0
- data/app/views/fastui/admin/index.html.erb +2 -0
- data/app/views/layouts/fastui/application.html.erb +22 -0
- data/config/routes.rb +19 -0
- data/db/migrate/20121017013727_create_fastui_m_menu_items.rb +28 -0
- data/db/migrate/20121017014112_create_fastui_m_menus.rb +20 -0
- data/db/migrate/20121017024943_create_fastui_m_orgs.rb +26 -0
- data/db/migrate/20121017025014_create_fastui_m_people.rb +24 -0
- data/db/migrate/20121204021053_create_fastui_m_roles.rb +22 -0
- data/db/migrate/20121204061207_create_fastui_m_relationships.rb +25 -0
- data/db/migrate/20121211062955_create_fastui_m_lists.rb +23 -0
- data/db/migrate/20121211074436_create_fastui_m_list_items.rb +21 -0
- data/db/migrate/20121217020606_create_fastui_m_acl_entries.rb +22 -0
- data/lib/fastui/engine.rb +8 -0
- data/lib/fastui/m_model.rb +26 -0
- data/lib/fastui/tab.rb +26 -0
- data/lib/fastui/version.rb +3 -0
- data/lib/fastui/view.rb +32 -0
- data/lib/fastui/window.rb +43 -0
- data/lib/fastui.rb +8 -0
- data/lib/generators/fastui/USAGE +21 -0
- data/lib/generators/fastui/install_generator.rb +31 -0
- data/lib/generators/fastui/templates/fastui_config.erb +77 -0
- data/lib/tasks/create_sys_data.rake +11 -0
- data/lib/tasks/fastui_tasks.rake +707 -0
- data/lib/tasks/loading_data.rake +28 -0
- metadata +276 -0
@@ -0,0 +1,58 @@
|
|
1
|
+
require_dependency "fastui/application_controller"
|
2
|
+
|
3
|
+
module Fastui
|
4
|
+
class MMenusController < ApplicationController
|
5
|
+
respond_to :html, :xml, :json
|
6
|
+
def index
|
7
|
+
@m_menus = MMenu.scoped
|
8
|
+
data = paginate(@m_menus)
|
9
|
+
respond_with(data.to_json(:include => [:m_menu_items,:createdbyorg, :createdby, :updatedby]))
|
10
|
+
end
|
11
|
+
|
12
|
+
def show
|
13
|
+
@m_menu = MMenu.find(params[:id])
|
14
|
+
respond_with(@m_menu)
|
15
|
+
end
|
16
|
+
|
17
|
+
def edit
|
18
|
+
@m_menu = MMenu.find(params[:id])
|
19
|
+
respond_with(@m_menu.to_json(:include => [:createdbyorg, :createdby, :updatedby]))
|
20
|
+
end
|
21
|
+
|
22
|
+
def new
|
23
|
+
@m_menu = MMenu.new
|
24
|
+
respond_with(@m_menu)
|
25
|
+
end
|
26
|
+
|
27
|
+
def create
|
28
|
+
@m_menu = MMenu.new(params[:m_menu])
|
29
|
+
respond_with(@m_menu) do |format|
|
30
|
+
if @m_menu.save
|
31
|
+
format.json { render :json => {:success => true, :msg => 'ok'} }
|
32
|
+
else
|
33
|
+
format.json { render :json => {:success => false, :msg => 'failure'} }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
def update
|
40
|
+
@m_menu = MMenu.find(params[:id])
|
41
|
+
|
42
|
+
respond_with(@m_menu) do |format|
|
43
|
+
if @m_menu.update_attributes(params[:m_menu])
|
44
|
+
format.json { render :json => {:success => true, :msg => 'ok'} }
|
45
|
+
else
|
46
|
+
format.json { render :json => {:success => false, :msg => 'false'} }
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def destroy
|
52
|
+
@m_menu = MMenu.find(params[:id])
|
53
|
+
@m_menu.destroy
|
54
|
+
respond_with(@m_menu)
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require_dependency "fastui/application_controller"
|
2
|
+
|
3
|
+
module Fastui
|
4
|
+
class MOrgsController < ApplicationController
|
5
|
+
respond_to :html, :xml, :json
|
6
|
+
|
7
|
+
def index
|
8
|
+
#@m_orgs = MOrg.scoped
|
9
|
+
@m_orgs = params[:node] == 'root' ? MOrg.roots : MOrg.where({
|
10
|
+
:parent_id => params[:node]
|
11
|
+
}.delete_if { |k, v| v.blank? })
|
12
|
+
|
13
|
+
respond_with(@m_orgs.to_json(:include => [:parent], :methods => [:leaf?, :child?]))
|
14
|
+
end
|
15
|
+
|
16
|
+
def show
|
17
|
+
@m_org = MOrg.find(params[:id])
|
18
|
+
respond_with(@m_org)
|
19
|
+
end
|
20
|
+
|
21
|
+
def edit
|
22
|
+
@m_org = MOrg.find(params[:id])
|
23
|
+
respond_with(@m_org.to_json(:include => [:parent]))
|
24
|
+
end
|
25
|
+
|
26
|
+
def new
|
27
|
+
@m_org = MOrg.new
|
28
|
+
respond_with(@m_org)
|
29
|
+
end
|
30
|
+
|
31
|
+
def create
|
32
|
+
@m_org = MOrg.new(params[:m_org])
|
33
|
+
respond_with(@m_org) do |format|
|
34
|
+
if @m_org.save
|
35
|
+
format.json { render :json => {:success => true, :msg => 'ok'} }
|
36
|
+
else
|
37
|
+
format.json { render :json => {:success => false, :msg => 'failure'} }
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
def update
|
44
|
+
@m_org = MOrg.find(params[:id])
|
45
|
+
|
46
|
+
respond_with(@m_org) do |format|
|
47
|
+
if @m_org.update_attributes(params[:m_org])
|
48
|
+
format.json { render :json => {:success => true, :msg => 'ok'} }
|
49
|
+
else
|
50
|
+
format.json { render :json => {:success => false, :msg => 'false'} }
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def destroy
|
56
|
+
@m_org = MOrg.find(params[:id])
|
57
|
+
@m_org.destroy
|
58
|
+
respond_with(@m_org)
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require_dependency "fastui/application_controller"
|
2
|
+
|
3
|
+
module Fastui
|
4
|
+
class MPeopleController < ApplicationController
|
5
|
+
respond_to :html, :xml, :json
|
6
|
+
|
7
|
+
def index
|
8
|
+
#limit = params[:limit].to_i
|
9
|
+
#start = params[:start].to_i
|
10
|
+
#search = params[:search]
|
11
|
+
#if search.blank?
|
12
|
+
# @m_people = MPerson.all
|
13
|
+
# @records = MPerson.limit(limit).offset(start)
|
14
|
+
#else
|
15
|
+
# @m_people = MPerson.where("title LIKE :input", {:input => "%#{search}%"})
|
16
|
+
# @records = @m_people.limit(limit).offset(start)
|
17
|
+
#end
|
18
|
+
#data ={
|
19
|
+
# :totalCount => @m_people.length,
|
20
|
+
# :rows => @records
|
21
|
+
#}
|
22
|
+
@m_people = MPerson.scoped
|
23
|
+
data = paginate(@m_people)
|
24
|
+
respond_with(data.to_json)
|
25
|
+
end
|
26
|
+
|
27
|
+
def show
|
28
|
+
@m_person = MPerson.find(params[:id])
|
29
|
+
respond_with(@m_person)
|
30
|
+
end
|
31
|
+
|
32
|
+
def edit
|
33
|
+
@m_person = MPerson.find(params[:id])
|
34
|
+
respond_with(@m_person)
|
35
|
+
end
|
36
|
+
|
37
|
+
def new
|
38
|
+
@m_person = MPerson.new
|
39
|
+
respond_with(@m_person)
|
40
|
+
end
|
41
|
+
|
42
|
+
def create
|
43
|
+
@m_person = MPerson.new(params[:m_person])
|
44
|
+
respond_with(@m_person) do |format|
|
45
|
+
if @m_person.save
|
46
|
+
format.json { render :json => {:success => true, :msg => 'ok'} }
|
47
|
+
else
|
48
|
+
format.json { render :json => {:success => false, :msg => 'failure'} }
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
def update
|
55
|
+
@m_person = MPerson.find(params[:id])
|
56
|
+
|
57
|
+
respond_with(@m_person) do |format|
|
58
|
+
if @m_person.update_attributes(params[:m_person])
|
59
|
+
format.json { render :json => {:success => true, :msg => 'ok'} }
|
60
|
+
else
|
61
|
+
format.json { render :json => {:success => false, :msg => 'false'} }
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def destroy
|
67
|
+
@m_person = MPerson.find(params[:id])
|
68
|
+
@m_person.destroy
|
69
|
+
respond_with(@m_person)
|
70
|
+
end
|
71
|
+
|
72
|
+
def login
|
73
|
+
@m_person = MPerson.where(:name => params[:UserName]).first_or_initialize
|
74
|
+
respond_with(@m_person) do |format|
|
75
|
+
if @m_person
|
76
|
+
format.json { render :json => {:success => true, :msg => 'ok'} }
|
77
|
+
else
|
78
|
+
format.json { render :json => {:success => false, :msg => 'false'} }
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
83
|
+
|
84
|
+
def logout
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require_dependency "fastui/application_controller"
|
2
|
+
|
3
|
+
module Fastui
|
4
|
+
class MRolesController < ApplicationController
|
5
|
+
respond_to :html, :xml, :json
|
6
|
+
|
7
|
+
def index
|
8
|
+
@m_roles = MRole.scoped
|
9
|
+
data = paginate(@m_roles)
|
10
|
+
respond_with(data.to_json({:include => :people,:methods => :person_ids}))
|
11
|
+
end
|
12
|
+
|
13
|
+
def show
|
14
|
+
@m_role = MRole.find(params[:id])
|
15
|
+
respond_with(@m_role)
|
16
|
+
end
|
17
|
+
|
18
|
+
def edit
|
19
|
+
@m_role = MRole.find(params[:id])
|
20
|
+
respond_with(@m_role.to_json({:include => :people,:methods => :person_ids}))
|
21
|
+
end
|
22
|
+
|
23
|
+
def new
|
24
|
+
@m_role = MRole.new
|
25
|
+
respond_with(@m_role)
|
26
|
+
end
|
27
|
+
|
28
|
+
def create
|
29
|
+
@m_role = MRole.new(params[:m_role])
|
30
|
+
respond_with(@m_role) do |format|
|
31
|
+
if @m_role.save
|
32
|
+
format.json { render :json => {:success => true, :msg => 'ok'} }
|
33
|
+
else
|
34
|
+
format.json { render :json => {:success => false, :msg => 'failure'} }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
def update
|
41
|
+
@m_role = MRole.find(params[:id])
|
42
|
+
|
43
|
+
respond_with(@m_role) do |format|
|
44
|
+
if @m_role.update_attributes(params[:m_role])
|
45
|
+
format.json { render :json => {:success => true, :msg => 'ok'} }
|
46
|
+
else
|
47
|
+
format.json { render :json => {:success => false, :msg => 'false'} }
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def destroy
|
53
|
+
@m_role = MRole.find(params[:id])
|
54
|
+
@m_role.destroy
|
55
|
+
respond_with(@m_role)
|
56
|
+
end
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_dependency "fastui/application_controller"
|
2
|
+
|
3
|
+
module Fastui
|
4
|
+
class MViewsController < ApplicationController
|
5
|
+
respond_to :html, :xml, :json
|
6
|
+
def index
|
7
|
+
|
8
|
+
@window = Fastui::Window.find(params[:name])
|
9
|
+
#respond_with(@window.to_json(root: false,:include => { :tabs => {root:false}}))
|
10
|
+
respond_with(@window.to_json())
|
11
|
+
end
|
12
|
+
|
13
|
+
def show
|
14
|
+
@window = Fastui::Window.find(params[:id])
|
15
|
+
respond_with(@window.to_json())
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require_dependency "fastui/application_controller"
|
2
|
+
|
3
|
+
module Fastui
|
4
|
+
class SessionsController < ApplicationController
|
5
|
+
respond_to :html, :xml, :json
|
6
|
+
def login
|
7
|
+
klass = params[:type] || 'Fastui::MPerson'
|
8
|
+
user = klass.constantize.where(username: params[:username]).first
|
9
|
+
|
10
|
+
respond_with(user) do |format|
|
11
|
+
if UserAuthenticator.new(user).authenticate(params[:password])
|
12
|
+
format.json { render :json => {:success => true, :msg => 'ok'} }
|
13
|
+
else
|
14
|
+
format.json { render :json => {:success => false, :msg => 'false'} }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
#if UserAuthenticator.new(user).authenticate(params[:password])
|
19
|
+
# #self.current_user = user
|
20
|
+
# redirect_to '/fastui'
|
21
|
+
##else
|
22
|
+
# flash[:alert] = "Login failed."
|
23
|
+
# render "new"
|
24
|
+
#end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
def logout
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
# assign them a random one and mail it to them, asking them to change it
|
33
|
+
def forgot_password
|
34
|
+
klass = params[:type] || 'Fastui::MPerson'
|
35
|
+
@user = klass.constantize.where(username:params[:username])
|
36
|
+
random_password = Array.new(10).map { (65 + rand(58)).chr }.join
|
37
|
+
@user.password = random_password
|
38
|
+
@user.save!
|
39
|
+
#Mailer.create_and_deliver_password_change(@user, random_password)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Fastui
|
2
|
+
class Acl
|
3
|
+
include Singleton
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@entries = MAclEntry.all
|
7
|
+
end
|
8
|
+
|
9
|
+
def allow(aros = "*", acos = "*", permit = "*")
|
10
|
+
aros = [aros] unless aros.is_a?(Array)
|
11
|
+
acos = [acos] unless acos.is_a?(Array)
|
12
|
+
aros.each do |aro|
|
13
|
+
acos.each do |aco|
|
14
|
+
entry = MAclEntry.first_or_initialize(:aro_type =>aro.class.to_s, :aro_id => aro.id, :aco_type =>aco.class.to_s, :aco_id => aco.id)
|
15
|
+
entry.permit = permit
|
16
|
+
entry.save
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Fastui
|
3
|
+
class MObject < ActiveRecord::Base
|
4
|
+
self.abstract_class = true
|
5
|
+
|
6
|
+
attr_accessible :id, :name, :title, :print_text, :note, :entity_kind, :is_active, :seq, :help
|
7
|
+
attr_accessible :createdbyorg_id,:createdbyorg, :createdby_id,:createdby,:updatedby_id,:updatedby
|
8
|
+
|
9
|
+
belongs_to :createdbyorg, :class_name => 'Fastui::MOrg'
|
10
|
+
belongs_to :createdby, :class_name => 'Fastui::MPerson'
|
11
|
+
belongs_to :updatedby, :class_name => 'Fastui::MPerson'
|
12
|
+
|
13
|
+
#before_create do |mo|
|
14
|
+
# mo.org_id = Env.ctx.get(:g_org_id) || mo.org_id
|
15
|
+
# mo.createdby_id = Env.ctx.get(:g_person_id) || mo.createdby_id
|
16
|
+
# mo.updatedby_id = Env.ctx.get(:g_person_id) || mo.updatedby_id
|
17
|
+
#end
|
18
|
+
#
|
19
|
+
#before_update do |mo|
|
20
|
+
# mo.updatedby_id = Env.ctx.get(:g_person_id) || mo.updatedby_id
|
21
|
+
#end
|
22
|
+
|
23
|
+
#opts={name:'',members:'',extends:''}
|
24
|
+
|
25
|
+
|
26
|
+
class << self
|
27
|
+
#def window(opts)
|
28
|
+
# Fastui::View.instance.window(opts)
|
29
|
+
#end
|
30
|
+
#
|
31
|
+
#def tab(opts)
|
32
|
+
# Fastui::View.instance.tab(opts)
|
33
|
+
#end
|
34
|
+
|
35
|
+
def ui(&block)
|
36
|
+
Fastui::View.instance.config(&block) if block_given?
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require_dependency "awesome_nested_set"
|
3
|
+
module Fastui
|
4
|
+
class MOrg < MObject
|
5
|
+
attr_accessible :parent_id, :parent
|
6
|
+
acts_as_nested_set
|
7
|
+
|
8
|
+
has_many :m_relationships, :foreign_key => 'm_org_id', :class_name => 'Fastui::MRelationship'
|
9
|
+
has_many :act_roles, :through => :m_relationships, :source => :m_role
|
10
|
+
has_many :actors, :through => :m_relationships, :source => :m_person
|
11
|
+
|
12
|
+
belongs_to :parent, :class_name => 'Fastui::MOrg'
|
13
|
+
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'bcrypt'
|
3
|
+
module Fastui
|
4
|
+
class MPerson < MObject
|
5
|
+
attr_accessible :username, :password, :access_level
|
6
|
+
has_many :m_relationships, :foreign_key => 'm_person_id', :class_name => 'Fastui::MRelationship'
|
7
|
+
has_many :act_roles, :through => :m_relationships, :source => :m_role
|
8
|
+
has_many :join_orgs, :through => :m_relationships, :source => :m_org
|
9
|
+
|
10
|
+
# users.password_digest in the database is a :string
|
11
|
+
include BCrypt
|
12
|
+
|
13
|
+
def password
|
14
|
+
@password ||= Password.new(self.password_digest)
|
15
|
+
end
|
16
|
+
|
17
|
+
def password=(new_password)
|
18
|
+
self.password_digest = Password.create(new_password)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
module Fastui
|
2
|
+
class MRelationship < MObject
|
3
|
+
attr_accessible :m_person_id,:m_org_id,:m_role_id
|
4
|
+
|
5
|
+
belongs_to :m_person, :class_name => 'Fastui::MPerson'
|
6
|
+
belongs_to :m_org, :class_name => 'Fastui::MOrg'
|
7
|
+
belongs_to :m_role, :class_name => 'Fastui::MRole'
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Fastui
|
2
|
+
class MRole < MObject
|
3
|
+
# attr_accessible :title, :body
|
4
|
+
attr_accessible :person_ids
|
5
|
+
has_many :m_relationships, :foreign_key => 'm_role_id', :class_name => 'Fastui::MRelationship'
|
6
|
+
has_many :people, :through => :m_relationships, :source => :m_person
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Fastui
|
3
|
+
class UserAuthenticator
|
4
|
+
def initialize(user)
|
5
|
+
@user = user
|
6
|
+
end
|
7
|
+
|
8
|
+
def authenticate(unencrypted_password)
|
9
|
+
return false unless @user
|
10
|
+
if @user.password == unencrypted_password
|
11
|
+
@user
|
12
|
+
else
|
13
|
+
false
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="UTF-8" />
|
5
|
+
<title><%= Fastui::View.instance.project %></title>
|
6
|
+
<link href="http://cdn.sencha.com/ext/gpl/4.2.0/resources/css/ext-all.css" rel="stylesheet" />
|
7
|
+
<script type="text/javascript" charset="utf-8" src="http://cdn.sencha.io/ext-4.2.0-gpl/ext-all.js"></script>
|
8
|
+
<%= stylesheet_link_tag "fastui/application", :media => "all" %>
|
9
|
+
<%= javascript_include_tag "fastui/application" %>
|
10
|
+
<script type='text/javascript'>
|
11
|
+
var app_project = '<%= Fastui::View.instance.project %>';
|
12
|
+
var app_version = '<%= Fastui::View.instance.version %>';
|
13
|
+
var app_copyright = '<%= Fastui::View.instance.copyright %>';
|
14
|
+
</script>
|
15
|
+
<%= csrf_meta_tags %>
|
16
|
+
</head>
|
17
|
+
<body>
|
18
|
+
|
19
|
+
<%= yield %>
|
20
|
+
|
21
|
+
</body>
|
22
|
+
</html>
|
data/config/routes.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
Fastui::Engine.routes.draw do
|
2
|
+
resources :m_views
|
3
|
+
resources :m_lists do
|
4
|
+
resources :m_list_items
|
5
|
+
end
|
6
|
+
resources :m_lists
|
7
|
+
resources :m_list_items
|
8
|
+
resources :m_orgs
|
9
|
+
resources :m_people
|
10
|
+
resources :m_roles
|
11
|
+
resources :m_menus
|
12
|
+
resources :m_menu_items
|
13
|
+
resources :sessions do
|
14
|
+
collection do
|
15
|
+
post 'login'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
root :to => "admin#index"
|
19
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class CreateFastuiMMenuItems < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :fastui_m_menu_items do |t|
|
4
|
+
t.references :m_menu
|
5
|
+
t.string :title, :limit => 60, :null => false
|
6
|
+
t.string :print_text,:default => '',:limit => 60
|
7
|
+
t.string :name,:default => '', :limit => 60
|
8
|
+
t.string :window,:default => '', :limit => 60
|
9
|
+
|
10
|
+
t.integer :parent_id
|
11
|
+
t.integer :lft
|
12
|
+
t.integer :rgt
|
13
|
+
t.integer :depth # this is optional.
|
14
|
+
|
15
|
+
t.string :entity_kind, :default => '' #:sys,:app
|
16
|
+
t.integer :seq, :default => 0
|
17
|
+
t.boolean :is_active, :default => true
|
18
|
+
t.string :note, :default => ''
|
19
|
+
t.string :help, :default => ''
|
20
|
+
t.integer :createdbyorg_id, :default => 0
|
21
|
+
t.integer :createdby_id, :default => 0
|
22
|
+
t.integer :updatedby_id, :default => 0
|
23
|
+
|
24
|
+
t.timestamps
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class CreateFastuiMMenus < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :fastui_m_menus do |t|
|
4
|
+
t.string :title, :limit => 60, :null => false
|
5
|
+
t.string :print_text,:default => '',:limit => 60
|
6
|
+
t.string :name,:default => '', :limit => 60
|
7
|
+
|
8
|
+
t.string :entity_kind, :default => 'app' #:sys,:app
|
9
|
+
t.integer :seq, :default => 0
|
10
|
+
t.boolean :is_active, :default => true
|
11
|
+
t.string :note, :default => ''
|
12
|
+
t.string :help, :default => ''
|
13
|
+
t.integer :createdbyorg_id, :default => 0
|
14
|
+
t.integer :createdby_id, :default => 0
|
15
|
+
t.integer :updatedby_id, :default => 0
|
16
|
+
|
17
|
+
t.timestamps
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|