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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
# IVLE Configuration File
# conf/apps.py
# Configuration of plugin applications for IVLE
# These should not need to be modified by admins unless new applications are
# plugged in.
enable_debuginfo = False
# Allow App objects
# Note: icon is a string of a file basename. The icon files are found in
# app_icon_dir, defined below.
class App:
def __init__(self, dir, name, icon = None, requireauth = True,
hashelp = False):
self.dir = dir
self.name = name
self.icon = icon
self.requireauth = requireauth
self.hashelp = hashelp
def __repr__(self):
return ("App(dir=" + repr(self.dir) + ", name=" + repr(self.name) +
", icon=" + repr(self.icon) +
", requireauth=" + repr(self.requireauth) + ", hashelp="
+ repr(self.hashelp) + ")")
# Directory where app icons are stored, relative to the IVLE root.
app_icon_dir = "media/images/apps"
# Small version of icons (16x16, for favicon)
app_icon_dir_small = "media/images/apps/small"
# Which application to load by default (if the user navigates to the top level
# of the site). This is the app's URL name.
# Note that if this app requires authentication, the user will first be
# presented with the login screen.
default_app = "files"
# Which application to use for "public host" URLs.
# (See conf.py)
public_app = "serve"
# Application definitions
app_browser = App(dir = "browser",
name = "File Browser",
icon = "browser.png",
requireauth = True,
hashelp = True)
app_editor = App(dir = "editor",
name = "Text Editor",
icon = "editor.png",
requireauth = True,
hashelp = True)
app_fileservice = App(dir = "fileservice",
name = "File Service (AJAX server)",
requireauth = True,
hashelp = False)
app_console = App(dir = "console",
name = "Console",
icon = "console.png",
requireauth = True,
hashelp = True)
app_consoleservice = App(dir = "consoleservice",
name = "Console Service",
requireauth = True,
hashelp = False)
app_tutorial = App(dir = "tutorial",
name = "Tutorial",
icon = "tutorial.png",
requireauth = True,
hashelp = True)
app_tutorialservice = App(dir = "tutorialservice",
name = "Tutorial Service",
requireauth = True,
hashelp = False)
app_server = App(dir = "server",
name = "Server",
requireauth = True,
hashelp = False)
app_download = App(dir = "download",
name = "Download",
requireauth = True,
hashelp = False)
app_help = App(dir = "help",
name = "Help",
icon = "help.png",
requireauth = True,
hashelp = False)
app_debuginfo = App(dir = "debuginfo",
name = "Debug Information",
requireauth = False,
hashelp = False)
# Mapping URL names to apps
app_url = {
"files" : app_browser,
"edit" : app_editor,
"fileservice" : app_fileservice,
"console" : app_console,
"consoleservice" : app_consoleservice,
"tutorial" : app_tutorial,
"tutorialservice" : app_tutorialservice,
"serve" : app_server,
"download" : app_download,
"help" : app_help,
}
if enable_debuginfo:
app_url["debuginfo"] = app_debuginfo
# List of apps that go in the tabs at the top
# (The others are hidden unless they are linked to)
# Note: The values in this list are the URL names as seen in app_url.
apps_in_tabs = ["files", "edit", "console", "tutorial", "help"]
|