These shouldn't be here (since they're compiled, and compile differently
[invirt/packages/invirt-web.git] / templates / main.py
index 6ec853d..d7b557f 100755 (executable)
@@ -494,19 +494,13 @@ def parseCreate(user, fields):
 
 def create(user, fields):
     """Handler for create requests."""
-    js = fields.getfirst('js')
     try:
         parsed_fields = parseCreate(user, fields)
         machine = createVm(**parsed_fields)
     except InvalidInput, err:
-        if not js:
-            raise
+        pass
     else:
         err = None
-        if not js:
-            d = dict(user=user,
-                     machine=machine)
-            return Template(file='create.tmpl', searchList=[d])
     g.clear() #Changed global state
     d = getListDict(user)
     d['err'] = err
@@ -515,9 +509,7 @@ def create(user, fields):
             setattr(d['defaults'], field, fields.getfirst(field))
     else:
         d['new_machine'] = parsed_fields['name']
-    t = Template(file='list.tmpl', searchList=[d])
-    return JsonDict(createtable=t.createTable(),
-                    machinelist=t.machineList(d['machines']))
+    return Template(file='list.tmpl', searchList=[d])
 
 
 def getListDict(user):
@@ -556,18 +548,7 @@ def getListDict(user):
 def listVms(user, fields):
     """Handler for list requests."""
     d = getListDict(user)
-    t = Template(file='list.tmpl', searchList=[d])
-    js = fields.getfirst('js')
-    if not js:
-        return t
-    if js == 'machinelist':
-        return t.machineList(d['machines'])
-    elif js.startswith('machinerow-'):
-        request_machine_id = int(js.split('-')[1])
-        m = [x for x in d['machines'] if x.id == request_machine_id]
-        return t.machineRow(m)
-    elif js == 'createtable':
-        return t.createTable()
+    return Template(file='list.tmpl', searchList=[d])
             
 def testMachineId(user, machineId, exists=True):
     """Parse, validate and check authorization for a given machineId.
@@ -757,37 +738,32 @@ def commandResult(user, fields):
 
 def command(user, fields):
     """Handler for running commands like boot and delete on a VM."""
-    js = fields.getfirst('js')
+    back = fields.getfirst('back')
     try:
         d = commandResult(user, fields)
+        if d['command'] == 'Delete VM':
+            back = 'list'
     except InvalidInput, err:
-        if not js:
+        if not back:
             raise
+        print >> sys.stderr, err
         result = None
     else:
-        err = None
         result = 'Success!'
-        if not js:
+        if not back:
             return Template(file='command.tmpl', searchList=[d])
-    if js == 'list':
+    if back == 'list':
         g.clear() #Changed global state
         d = getListDict(user)
-        t = Template(file='list.tmpl', searchList=[d])
-        return JsonDict(createtable=t.createTable(),
-                        machinelist=t.machineList(d['machines']),
-                        result=result,
-                        err=err)
-    elif js == 'info':
+        d['result'] = result
+        return Template(file='list.tmpl', searchList=[d])
+    elif back == 'info':
         machine = testMachineId(user, fields.getfirst('machine_id'))
         d = infoDict(user, machine)
-        t = Template(file='info.tmpl', searchList=[d])
-        return JsonDict(info=t.infoTable(),
-                        commands=t.commands(),
-                        modify=t.modifyForm(),
-                        result=result,
-                        err=err)
+        d['result'] = result
+        return Template(file='info.tmpl', searchList=[d])
     else:
-        raise InvalidInput('js', js, 'Not a known js type.')
+        raise InvalidInput('back', back, 'Not a known back page.')
 
 def testAdmin(user, admin, machine):
     if admin in (None, machine.administrator):
@@ -799,8 +775,9 @@ def testAdmin(user, admin, machine):
     if getafsgroups.checkAfsGroup(user.username, 'system:'+admin,
                                   'athena.mit.edu'):
         return 'system:'+admin
-    raise InvalidInput('administrator', admin, 
-                       'You must control the group you move it to.')
+    return admin
+    #raise InvalidInput('administrator', admin, 
+    #                   'You must control the group you move it to.')
     
 def testOwner(user, owner, machine):
     if owner in (None, machine.owner):
@@ -899,31 +876,22 @@ def modifyDict(user, fields):
     
 def modify(user, fields):
     """Handler for modifying attributes of a machine."""
-    js = fields.getfirst('js')
     try:
         modify_dict = modifyDict(user, fields)
     except InvalidInput, err:
-        if not js:
-            raise
-        result = ''
+        result = None
         machine = testMachineId(user, fields.getfirst('machine_id'))
     else:
         machine = modify_dict['machine']
         result='Success!'
         err = None
-        if not js:
-            return Template(file='command.tmpl', searchList=[modify_dict])
     info_dict = infoDict(user, machine)
     info_dict['err'] = err
     if err:
         for field in fields.keys():
             setattr(info_dict['defaults'], field, fields.getfirst(field))
-    t = Template(file='info.tmpl', searchList=[info_dict])
-    return JsonDict(info=t.infoTable(),
-                    commands=t.commands(),
-                    modify=t.modifyForm(),
-                    result=result,
-                    err=err)
+    info_dict['result'] = result
+    return Template(file='info.tmpl', searchList=[info_dict])
     
 
 def helpHandler(user, fields):