Ejemplo n.º 1
0
    def get_ui_flags(self):
        v = self.tcp_flags

        return UI.HContainer(
            UI.SelectInput(UI.SelectOption(text='Ign.',
                                           value='ign',
                                           selected=v[1] is None),
                           UI.SelectOption(text='Are',
                                           value='nrm',
                                           selected=not v[0]
                                           and v[1] is not None),
                           UI.SelectOption(text='Are not',
                                           value='inv',
                                           selected=v[0] and v[1] is not None),
                           design='mini',
                           name='tcpflags-mode'),
            UI.LT(
                UI.LTR(
                    UI.Label(text='Check:'), *[
                        UI.Checkbox(text=x,
                                    name='tcpflags-vals[]',
                                    value=x,
                                    checked=x in v[2] if v[2] else False)
                        for x in self.flags
                    ]),
                UI.LTR(
                    UI.Label(text='Mask:'), *[
                        UI.Checkbox(text=x,
                                    name='tcpflags-mask[]',
                                    value=x,
                                    checked=x in v[1] if v[1] else False)
                        for x in self.flags
                    ])),
        )
Ejemplo n.º 2
0
    def get_ui_flags(self, desc):
        v = self.tcp_flags

        return UI.LayoutTableRow(
            UI.Label(text=desc),
            UI.Select(UI.SelectOption(text='Ignore',
                                      value='ign',
                                      selected=v[1] is None),
                      UI.SelectOption(text='Are',
                                      value='nrm',
                                      selected=not v[0] and v[1] is not None),
                      UI.SelectOption(text='Are not',
                                      value='inv',
                                      selected=v[0] and v[1] is not None),
                      name='tcpflags-mode'),
            UI.LayoutTableCell(UI.LayoutTable(
                UI.LayoutTableRow(
                    UI.Label(text='Check:'), *[
                        UI.Checkbox(text=x,
                                    name='tcpflags-vals[]',
                                    value=x,
                                    checked=x in v[2] if v[2] else False)
                        for x in self.flags
                    ]),
                UI.LayoutTableRow(
                    UI.Label(text='Mask:'), *[
                        UI.Checkbox(text=x,
                                    name='tcpflags-mask[]',
                                    value=x,
                                    checked=x in v[1] if v[1] else False)
                        for x in self.flags
                    ])),
                               colspan=2))
Ejemplo n.º 3
0
 def get_ui_bool(self, param):
     v = getattr(self, param)
     return UI.HContainer(UI.SelectInput(
         UI.SelectOption(text='Ign.', value='ign', selected=v[1] is None),
         UI.SelectOption(text='Yes', value='nrm', selected=v[1] == True),
         UI.SelectOption(text='No', value='inv', selected=v[1] == False),
         design='mini',
         name='%s-mode' % param),
                          spacing=5)
Ejemplo n.º 4
0
 def get_ui_bool(self, param, desc):
     v = getattr(self, param)
     return UI.LayoutTableRow(
         UI.Label(text=desc),
         UI.Select(UI.SelectOption(text='Ignore',
                                   value='ign',
                                   selected=v[1] is None),
                   UI.SelectOption(text='Yes',
                                   value='nrm',
                                   selected=v[1] == True),
                   UI.SelectOption(text='No',
                                   value='inv',
                                   selected=v[1] == False),
                   name='%s-mode' % param))
Ejemplo n.º 5
0
 def get_ui_text(self, param, desc, help=''):
     v = getattr(self, param)
     return UI.LayoutTableRow(
         UI.Label(text=desc),
         UI.Select(UI.SelectOption(text='Ignore',
                                   value='ign',
                                   selected=v[1] is None),
                   UI.SelectOption(text='Is',
                                   value='nrm',
                                   selected=not v[0] and v[1] is not None),
                   UI.SelectOption(text='Isn\'t',
                                   value='inv',
                                   selected=v[0] and v[1] is not None),
                   name='%s-mode' % param),
         UI.TextInput(name=param, value=v[1] or '', help=help))
Ejemplo n.º 6
0
 def get_ui_text(self, param, help=''):
     v = getattr(self, param)
     return UI.HContainer(UI.SelectInput(
         UI.SelectOption(text='Ign.', value='ign', selected=v[1] is None),
         UI.SelectOption(text='Is',
                         value='nrm',
                         selected=not v[0] and v[1] is not None),
         UI.SelectOption(text='Isn\'t',
                         value='inv',
                         selected=v[0] and v[1] is not None),
         design='mini',
         name='%s-mode' % param),
                          UI.TextInput(name=param,
                                       value=v[1] or '',
                                       help=help),
                          spacing=5)
Ejemplo n.º 7
0
 def get_ui_states(self):
     v = self.state
     return UI.HContainer(
         UI.SelectInput(
             UI.SelectOption(text='Ign.',
                             value='ign',
                             selected=v[1] is None),
             UI.SelectOption(text='Is',
                             value='nrm',
                             selected=not v[0] and v[1] is not None),
             UI.SelectOption(text='Isn\'t',
                             value='inv',
                             selected=v[0] and v[1] is not None),
             design='mini',
             name='state-mode',
         ),
         UI.HContainer(*[
             UI.Checkbox(text=x,
                         name='state[]',
                         value=x,
                         checked=v[1] and x in v[1]) for x in self.states
         ]))
Ejemplo n.º 8
0
 def get_ui_states(self, desc):
     v = self.state
     return UI.LayoutTableRow(
         UI.Label(text=desc),
         UI.Select(UI.SelectOption(text='Ignore',
                                   value='ign',
                                   selected=v[1] is None),
                   UI.SelectOption(text='Is',
                                   value='nrm',
                                   selected=not v[0] and v[1] is not None),
                   UI.SelectOption(text='Isn\'t',
                                   value='inv',
                                   selected=v[0] and v[1] is not None),
                   name='state-mode'),
         UI.LayoutTableCell(UI.LayoutTable(
             UI.LayoutTableRow(*[
                 UI.Checkbox(text=x,
                             name='state[]',
                             value=x,
                             checked=v[1] and x in v[1])
                 for x in self.states
             ])),
                            colspan=2))
Ejemplo n.º 9
0
    def get_ui_select(self, param, desc, opts, size=10):
        # opts == [['Desc', 'value'], ['Desc #2', 'value2']]
        v = getattr(self, param)

        return UI.LayoutTableRow(
            UI.Label(text=desc),
            UI.Select(UI.SelectOption(text='Ignore',
                                      value='ign',
                                      selected=v[1] is None),
                      UI.SelectOption(text='Is',
                                      value='nrm',
                                      selected=not v[0] and v[1] is not None),
                      UI.SelectOption(text='Isn\'t',
                                      value='inv',
                                      selected=v[0] and v[1] is not None),
                      name='%s-mode' % param),
            UI.SelectTextInput(*[
                UI.SelectOption(text=x[0], value=x[1], selected=v[1] == x[1])
                for x in opts
            ],
                               name=param,
                               value=v[1] or '',
                               size=size))
Ejemplo n.º 10
0
    def get_ui_select(self, param, opts):
        # opts == [['Desc', 'value'], ['Desc #2', 'value2']]
        v = getattr(self, param)

        return UI.HContainer(UI.SelectInput(
            UI.SelectOption(text='Ign.', value='ign', selected=v[1] is None),
            UI.SelectOption(text='Is',
                            value='nrm',
                            selected=not v[0] and v[1] is not None),
            UI.SelectOption(text='Isn\'t',
                            value='inv',
                            selected=v[0] and v[1] is not None),
            design='mini',
            name='%s-mode' % param),
                             UI.SelectTextInput(*[
                                 UI.SelectOption(text=x[0],
                                                 value=x[1],
                                                 selected=v[1] == x[1])
                                 for x in opts
                             ],
                                                name=param,
                                                value=v[1] or '',
                                                design='mini'),
                             spacing=5)
Ejemplo n.º 11
0
    def get_ui(self):
        ui = self.app.inflate('cron:main')
        ui.find('tabs').set('active', self._tab)
        ui.find('title').set('text', 'Scheduled tasks for %s' % self._user)
        user_sel = [
            UI.SelectOption(text=x,
                            value=x,
                            selected=True if x == self._user else False)
            for x in backend.get_all_users()
        ]
        ui.appendAll('users_select', *user_sel)

        table_other = ui.find("table_other")
        table_task = ui.find("table_task")
        #Fill non-task strings table
        for i, oth_str in enumerate(self._others):
            table_other.append(
                UI.DTR(
                    UI.Label(text=oth_str),
                    UI.DTD(UI.HContainer(
                        UI.TipIcon(icon='/dl/core/ui/stock/edit.png',
                                   id='edit_oth/' + str(i),
                                   text='Edit'),
                        UI.TipIcon(icon='/dl/core/ui/stock/delete.png',
                                   id='del_oth/' + str(i),
                                   text='Delete',
                                   warning='Delete a string')),
                           hidden=True)))
        #Fill tasks table
        for i, t in enumerate(self._tasks):
            table_task.append(
                UI.DTR(
                    UI.Label(text=t.special if t.special else t.m),
                    UI.Label(text=t.h if not t.special else ''),
                    UI.Label(text=t.dom if not t.special else ''),
                    UI.Label(text=t.mon if not t.special else ''),
                    UI.Label(text=t.dow if not t.special else ''),
                    UI.Label(text=t.command),
                    UI.DTD(
                        UI.HContainer(
                            UI.TipIcon(icon='/dl/core/ui/stock/edit.png',
                                       id='edit_task/' + str(i),
                                       text='Edit'),
                            UI.TipIcon(icon='/dl/core/ui/stock/delete.png',
                                       id='del_task/' + str(i),
                                       text='Delete',
                                       warning='Delete a task')), )))
        #if crontab return error
        part = self._error.partition(':')[2]
        self._error = 'Error:' + part if part else self._error
        if self._error:
            self.put_message('err', self._error)

        #For tabs name
        REGULARTAB = 11
        ADVANCEDTAB = 12
        SPECIALTAB = 13
        #special values
        avaible_values = ('@reboot', '@hourly', '@daily', '@weekly',
                          '@monthly', '@yearly')
        #edit or new task
        if self._editing_task != -1:
            try:
                task = self._tasks[self._editing_task]
            except IndexError:
                task = backend.Task()
            #edit task
            if not self._newtask:
                ui.remove(str(REGULARTAB))
                if task.special:
                    ui.remove(str(ADVANCEDTAB))
                    ui.find('tabsEdit').set('active', SPECIALTAB)
                    #select special values
                    if task.special and task.special in avaible_values:
                        ui.find('r' + task.special[1:]).\
                            set('checked', 'True')
                    else:
                        ui.find('rreboot').set('checked', 'True')
                    ui.find('s_command').set("value", task.command)
                else:
                    #fill advanced view task
                    ui.find('tabsEdit').set('active', ADVANCEDTAB)
                    ui.remove(str(SPECIALTAB))
                    ui.find('m').set("value", task.m)
                    ui.find('h').set("value", task.h)
                    ui.find('dom').set("value", task.dom)
                    ui.find('mon').set("value", task.mon)
                    ui.find('dow').set("value", task.dow)
                    ui.find('a_command').set("value", task.command)
            #new task
            else:
                ui.find('tabsEdit').set('active', REGULARTAB)
                ui.find('rreboot').set('checked', 'True')
                ui.find('m').set("value", task.m)
                ui.find('h').set("value", task.h)
                ui.find('dom').set("value", task.dom)
                ui.find('mon').set("value", task.mon)
                ui.find('dow').set("value", task.dow)
                #For templates
                ui.find('tabsRegular').set('active', 15)
                SelectOptionNumbs = lambda r: [
                    UI.SelectOption(text=str(m), value=str(m))
                    for m in xrange(r)
                ]
                #generate similar selectOptions lists for xml.
                minute_select_h = SelectOptionNumbs(60)
                minute_select_d = SelectOptionNumbs(60)
                minute_select_w = SelectOptionNumbs(60)
                minute_select_m = SelectOptionNumbs(60)
                hour_select_d = SelectOptionNumbs(24)
                hour_select_w = SelectOptionNumbs(24)
                hour_select_m = SelectOptionNumbs(24)

                weekday = ('Monday', 'Tuesday', 'Wednesday', 'Thursday',
                           'Friday', 'Saturday', 'Sunday')
                weekday_select = [
                    UI.SelectOption(text=str(w), value=str(v + 1))
                    for v, w in enumerate(weekday)
                ]
                day_select = [
                    UI.SelectOption(text=str(d), value=str(d))
                    for d in range(1, 32)
                ]
                #Fill selects
                ui.appendAll("minute_select_h", *minute_select_h)
                ui.appendAll("minute_select_d", *minute_select_d)
                ui.appendAll("minute_select_w", *minute_select_w)
                ui.appendAll("minute_select_m", *minute_select_m)
                ui.appendAll("hour_select_d", *hour_select_d)
                ui.appendAll("hour_select_w", *hour_select_w)
                ui.appendAll("hour_select_m", *hour_select_m)
                ui.appendAll("weekday_select", *weekday_select)
                ui.appendAll("day_select", *day_select)
        #Nothing happens with task
        else:
            ui.remove('dlgEditTask')
        #edit non-task string
        if self._editing_other != -1 and self._show_dialog:
            other_value = self._others[self._editing_other]\
                if self._editing_other < len(self._others) else ''
            ui.find("other_str").set("value", other_value)
        #Nothing happens with non-task string
        else:
            ui.remove('dlgEditOther')
        return ui