This repository was archived by the owner on Jun 5, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbootstrap.js
More file actions
102 lines (71 loc) · 2.18 KB
/
Copy pathbootstrap.js
File metadata and controls
102 lines (71 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
// Define the default options
var options = {
// The name of the base layout
baselayout: 'admin_base',
// The name of the body layout
bodylayout: 'admin_body',
// The name of the body block
bodyblock: 'admin-body',
// The name of the main block
mainblock: 'admin-main',
// The name of the content block
contentblock: 'admin-content',
// The name to use in the routing
routename: 'chimera',
// The title to show in the top left corner
title: 'Alchemy Admin'
};
// Inject the user-overridden options
alchemy.plugins.chimera = Object.assign(options, alchemy.plugins.chimera);
if (!alchemy.plugins.acl) {
alchemy.plugins.acl = {placeholders: {}}
log.todo('Acl settings for Chimera');
}
// Set the acl placeholder variable
//alchemy.plugins.acl.placeholders.chimeraRouteName = alchemy.plugins.chimera.routename;
// Get the view settings
var viewSettings = {
baselayout: alchemy.layoutify(options.baselayout),
bodylayout: alchemy.layoutify(options.bodylayout),
bodyblock: options.bodyblock,
mainblock: options.mainblock,
contentblock: options.contentblock,
title: options.title
};
var ChimeraController = Function.inherits('Controller', function ChimeraController(conduit, options) {
Controller.call(this, conduit, options);
this.name = this.constructor.name.beforeLast('ChimeraController');
this.actions = {};
});
ChimeraController.setMethod(function addAction(type, fncname, options) {
var obj;
if (options == null) {
options = {};
}
obj = this.getActions(type);
options.type = type;
if (options.title == null) {
options.title = fncname.humanize();
}
if (options.controller == null) {
options.controller = this.name.underscore();
}
options.name = fncname;
obj.set(fncname, options);
});
ChimeraController.setMethod(function getActions(type) {
if (this.actions == null) {
this.actions = {};
}
if (type == null) {
return this.actions;
}
if (this.actions[type] == null) {
this.actions[type] = new Deck();
}
return this.actions[type];
});
// Send the ACL layout options to the client
alchemy.hawkejs.on({type: 'viewrender', status: 'begin', client: false}, function onBegin(viewRender) {
viewRender.expose('chimera-view-setting', viewSettings);
});