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""" |