src/pyams_scheduler/zmi/ssh.py
changeset 22 b1a1ccc1fa26
parent 0 48483b0b26fa
child 36 42761bc38f66
equal deleted inserted replaced
21:8b3250991530 22:b1a1ccc1fa26
    17 
    17 
    18 # import interfaces
    18 # import interfaces
    19 from pyams_scheduler.interfaces.ssh import ISSHCallerTask, ISSHCallerTaskInfo
    19 from pyams_scheduler.interfaces.ssh import ISSHCallerTask, ISSHCallerTaskInfo
    20 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    20 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    21 from pyams_skin.layer import IPyAMSLayer
    21 from pyams_skin.layer import IPyAMSLayer
       
    22 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION, MANAGE_SYSTEM_PERMISSION
    22 from zope.component.interfaces import ISite
    23 from zope.component.interfaces import ISite
    23 
    24 
    24 # import packages
    25 # import packages
    25 from pyams_form.form import AJAXAddForm, AJAXEditForm
    26 from pyams_form.form import AJAXAddForm, AJAXEditForm
    26 from pyams_pagelet.pagelet import pagelet_config
    27 from pyams_pagelet.pagelet import pagelet_config
    36 from pyams_scheduler import _
    37 from pyams_scheduler import _
    37 
    38 
    38 
    39 
    39 @viewlet_config(name='add-scheduler-ssh-task.menu', context=ISite, layer=IPyAMSLayer,
    40 @viewlet_config(name='add-scheduler-ssh-task.menu', context=ISite, layer=IPyAMSLayer,
    40                 view=SchedulerTasksTable, manager=IToolbarAddingMenu,
    41                 view=SchedulerTasksTable, manager=IToolbarAddingMenu,
    41                 permission='system.manage', weight=5)
    42                 permission=MANAGE_SYSTEM_PERMISSION, weight=5)
    42 class SSHTaskAddMenu(ToolbarMenuItem):
    43 class SSHTaskAddMenu(ToolbarMenuItem):
    43     """SSH caller task add menu"""
    44     """SSH caller task add menu"""
    44 
    45 
    45     label = _("Add SSH command...")
    46     label = _("Add SSH command...")
    46     label_css_class = 'fa fa-fw fa-key'
    47     label_css_class = 'fa fa-fw fa-key'
    47     url = 'add-scheduler-ssh-task.html'
    48     url = 'add-scheduler-ssh-task.html'
    48     modal_target = True
    49     modal_target = True
    49 
    50 
    50 
    51 
    51 @pagelet_config(name='add-scheduler-ssh-task.html', context=ISite, layer=IPyAMSLayer,
    52 @pagelet_config(name='add-scheduler-ssh-task.html', context=ISite, layer=IPyAMSLayer,
    52                 permission='system.manage')
    53                 permission=MANAGE_SYSTEM_PERMISSION)
    53 class SSHTaskAddForm(TaskBaseAddForm):
    54 class SSHTaskAddForm(TaskBaseAddForm):
    54     """SSH command task add form"""
    55     """SSH command task add form"""
    55 
    56 
    56     legend = _("Add SSH command task")
    57     legend = _("Add SSH command task")
    57     icon_css_class = 'fa fa-fw fa-key'
    58     icon_css_class = 'fa fa-fw fa-key'
    59     ajax_handler = 'add-scheduler-ssh-task.json'
    60     ajax_handler = 'add-scheduler-ssh-task.json'
    60     task_factory = SSHCallerTask
    61     task_factory = SSHCallerTask
    61 
    62 
    62 
    63 
    63 @view_config(name='add-scheduler-ssh-task.json', context=ISite, request_type=IPyAMSLayer,
    64 @view_config(name='add-scheduler-ssh-task.json', context=ISite, request_type=IPyAMSLayer,
    64              permission='system.manage', renderer='json', xhr=True)
    65              permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True)
    65 class SSHTaskAJAXAddForm(AJAXAddForm, SSHTaskAddForm):
    66 class SSHTaskAJAXAddForm(AJAXAddForm, SSHTaskAddForm):
    66     """SSH command task add form, AJAX view"""
    67     """SSH command task add form, AJAX view"""
    67 
    68 
    68 
    69 
    69 @pagelet_config(name='settings.html', context=ISSHCallerTask, layer=IPyAMSLayer, permission='system.view')
    70 @pagelet_config(name='settings.html', context=ISSHCallerTask, layer=IPyAMSLayer, permission=VIEW_SYSTEM_PERMISSION)
    70 class SSHTaskEditForm(AdminDialogEditForm):
    71 class SSHTaskEditForm(AdminDialogEditForm):
    71     """SSH command task edit form"""
    72     """SSH command task edit form"""
    72 
    73 
    73     @property
    74     @property
    74     def title(self):
    75     def title(self):
    80     label_css_class = 'control-label col-md-4'
    81     label_css_class = 'control-label col-md-4'
    81     input_css_class = 'col-md-8'
    82     input_css_class = 'col-md-8'
    82 
    83 
    83     fields = field.Fields(ISSHCallerTaskInfo)
    84     fields = field.Fields(ISSHCallerTaskInfo)
    84     ajax_handler = 'settings.json'
    85     ajax_handler = 'settings.json'
    85     edit_permission = 'system.manage'
    86     edit_permission = MANAGE_SYSTEM_PERMISSION
    86 
    87 
    87 
    88 
    88 @view_config(name='settings.json', context=ISSHCallerTask, request_type=IPyAMSLayer,
    89 @view_config(name='settings.json', context=ISSHCallerTask, request_type=IPyAMSLayer,
    89              permission='system.manage', renderer='json', xhr=True)
    90              permission=MANAGE_SYSTEM_PERMISSION, renderer='json', xhr=True)
    90 class SSHTaskAJAXEditForm(AJAXEditForm, SSHTaskEditForm):
    91 class SSHTaskAJAXEditForm(AJAXEditForm, SSHTaskEditForm):
    91     """SSH command task edit form, AJAX view"""
    92     """SSH command task edit form, AJAX view"""