53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
|
|
import os
|
|
from orun.extjs import *
|
|
from orun.servers import cp
|
|
import cherrypy
|
|
|
|
THEME = 'gray'
|
|
|
|
@cherrypy.expose
|
|
class ExtJS:
|
|
_cp_config = {
|
|
'tools.staticdir.on': True,
|
|
'tools.staticdir.dir': os.path.join(os.path.dirname(__file__), 'static','ext-4.2.1'),
|
|
}
|
|
|
|
class ExtApplication(cp.Application):
|
|
def __init__(self, title=''):
|
|
super(ExtApplication, self).__init__(title)
|
|
self.ext_421 = ExtJS()
|
|
|
|
@cherrypy.expose
|
|
def index(self, *args, **kwargs):
|
|
f = open(os.path.join(os.path.dirname(__file__), 'app.html')).read()
|
|
self.main()
|
|
return f % (self.title, THEME, THEME, str(js.js_manager))
|
|
|
|
@cherrypy.expose
|
|
def ajax_callback(self, *args, **kwargs):
|
|
fn = kwargs.pop('fn')
|
|
if fn:
|
|
fn = js.live_methods[int(fn)].func
|
|
fn(*args, **kwargs)
|
|
return str(js.js_manager)
|
|
|
|
@cherrypy.expose
|
|
@cp.cherrypy.tools.json_out()
|
|
def ajax_func_callback(self, *args, **kwargs):
|
|
fn = kwargs.pop('fn')
|
|
if fn:
|
|
fn = js.live_methods[int(fn)].func
|
|
res = fn(*args, **kwargs)
|
|
return {
|
|
'data': res
|
|
}
|
|
else:
|
|
return {
|
|
'data': None
|
|
}
|
|
|
|
if __name__ == '__main__':
|
|
app = ExtApplication('Orun (ExtJS Application)')
|
|
app.run()
|