90 lines
4.1 KiB
Python
90 lines
4.1 KiB
Python
import os
|
|
import sys
|
|
|
|
from asciimatics.exceptions import ResizeScreenError
|
|
from asciimatics.scene import Scene
|
|
from asciimatics.screen import Screen
|
|
|
|
from .ConfirmView import ConfirmView
|
|
from .ErrorView import ErrorView
|
|
from .Model import Model
|
|
from .ResultView import ResultView
|
|
from .TransactionView import TransactionView
|
|
from .WelcomeView import WelcomeView
|
|
from .databases.CreateDatabaseView import CreateDatabaseView
|
|
from .databases.CreateDatabaseResultView import CreateDatabaseResultView
|
|
from .databases.ResetDatabasePasswordView import ResetDatabasePasswordView
|
|
from .databases.ResetDatabasePasswordResultView import ResetDatabasePasswordResultView
|
|
from .groups.AddGroupView import AddGroupView
|
|
from .groups.AddMemberToGroupView import AddMemberToGroupView
|
|
from .groups.GetGroupView import GetGroupView
|
|
from .groups.GetGroupResultView import GetGroupResultView
|
|
from .groups.RemoveMemberFromGroupView import RemoveMemberFromGroupView
|
|
from .members.AddUserTransactionView import AddUserTransactionView
|
|
from .members.AddUserView import AddUserView
|
|
from .members.ChangeLoginShellView import ChangeLoginShellView
|
|
from .members.GetUserView import GetUserView
|
|
from .members.GetUserResultView import GetUserResultView
|
|
from .members.RenewUserView import RenewUserView
|
|
from .members.ResetPasswordView import ResetPasswordView
|
|
from .members.ResetPasswordResultView import ResetPasswordResultView
|
|
from .members.SetForwardingAddressesView import SetForwardingAddressesView
|
|
from .positions import GetPositionsView, SetPositionsView
|
|
|
|
|
|
# tuples of (name, view)
|
|
views = []
|
|
|
|
|
|
def screen_wrapper(screen, last_scene, model):
|
|
global views
|
|
width = min(screen.width, 90)
|
|
height = min(screen.height, 24)
|
|
views = [
|
|
('Welcome', WelcomeView(screen, width, height, model)),
|
|
('Confirm', ConfirmView(screen, width, height, model)),
|
|
('Transaction', TransactionView(screen, width, height, model)),
|
|
('Result', ResultView(screen, width, height, model)),
|
|
('Error', ErrorView(screen, width, height, model)),
|
|
('AddUser', AddUserView(screen, width, height, model)),
|
|
('AddUserTransaction', AddUserTransactionView(screen, width, height, model)),
|
|
('RenewUser', RenewUserView(screen, width, height, model)),
|
|
('GetUser', GetUserView(screen, width, height, model)),
|
|
('GetUserResult', GetUserResultView(screen, width, height, model)),
|
|
('ResetPassword', ResetPasswordView(screen, width, height, model)),
|
|
('ResetPasswordResult', ResetPasswordResultView(screen, width, height, model)),
|
|
('ChangeLoginShell', ChangeLoginShellView(screen, width, height, model)),
|
|
('SetForwardingAddresses', SetForwardingAddressesView(screen, width, height, model)),
|
|
('AddGroup', AddGroupView(screen, width, height, model)),
|
|
('GetGroup', GetGroupView(screen, width, height, model)),
|
|
('GetGroupResult', GetGroupResultView(screen, width, height, model)),
|
|
('AddMemberToGroup', AddMemberToGroupView(screen, width, height, model)),
|
|
('RemoveMemberFromGroup', RemoveMemberFromGroupView(screen, width, height, model)),
|
|
('CreateDatabase', CreateDatabaseView(screen, width, height, model)),
|
|
('CreateDatabaseResult', CreateDatabaseResultView(screen, width, height, model)),
|
|
('ResetDatabasePassword', ResetDatabasePasswordView(screen, width, height, model)),
|
|
('ResetDatabasePasswordResult', ResetDatabasePasswordResultView(screen, width, height, model)),
|
|
('GetPositions', GetPositionsView(screen, width, height, model)),
|
|
('SetPositions', SetPositionsView(screen, width, height, model)),
|
|
]
|
|
scenes = [
|
|
Scene([view], -1, name=name) for name, view in views
|
|
]
|
|
model.screen = screen
|
|
model.views = [view for name, view in views]
|
|
screen.play(
|
|
scenes, stop_on_resize=True, start_scene=last_scene, allow_int=True,
|
|
)
|
|
|
|
|
|
def main():
|
|
last_scene = None
|
|
model = Model()
|
|
try:
|
|
Screen.wrapper(screen_wrapper, arguments=[last_scene, model])
|
|
sys.exit(0)
|
|
except ResizeScreenError:
|
|
os.system('reset')
|
|
print('Unfortunately, ceo does not currently support dynamic resizing.')
|
|
sys.exit(1)
|