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
59define([
'app',
'core/extensions',
'./views/main',
'./views/example',
'./views/pageone',
'./views/pagetwo'
], function (app, Extension, MainView, ExampleView, PageOneView, PageTwoView) {
var ext = {
id: 'example_extension',
icon: 'icon-folder',
title: 'Example Extension'
};
ext.Router = Extension.Router.extend({
routes: {
"(/)": "index",
"/pageone": "pageOne",
"/pagetwo": "pageTwo"
},
getMainView: function () {
if (!this.mainView) {
this.mainView = new MainView();
}
// Update the #content view with the extensions view. This will be refactored in 7.0 so that extensions don't need
// to manage updating the app's #content view.
app.router.v.main.setView('#content', this.mainView);
return this.mainView;
},
setPage: function (view) {
this.getMainView().getPage().setView('#example-extension-view', view);
},
index: function () {
this.setPage(new ExampleView());
app.router.v.main.render();
},
pageOne: function () {
this.setPage(new PageOneView());
app.router.v.main.render();
},
pageTwo: function () {
this.setPage(new PageTwoView());
app.router.v.main.render();
},
initialize: function () {
//
}
});
return ext;
});