Пример #1
0
    def __call__(self):
        container = CTK.Container()
        container += CTK.RawHTML("<h2>%s</h2>" %
                                 (_('Create a new configuration file:')))

        key = 'regular'
        name = _('Regular')
        label = _(
            'Regular configuration: Apache logs, MIME types, icons, etc.')
        container += Form(key, name, label)

        key = 'static'
        name = _('Static Content')
        label = _('Optimized to send static content.')
        container += Form(key, name, label)

        key = 'development'
        name = _('Server Development')
        label = _('No standard port, No log files, No PID file, etc.')
        container += Form(key, name, label)

        conf_file = CTK.cfg.file
        notice = CTK.Notice('warning')
        notice += CTK.RawHTML("<b>%s</b><br/>" % (_(WARNING_NOT_FOUND_1) %
                                                  (locals())))
        notice += CTK.RawHTML(WARNING_NOT_FOUND_2)

        page = Page.Base(_('New Configuration File'),
                         body_id='new-config',
                         helps=HELPS)
        page += CTK.RawHTML("<h1>%s</h1>" %
                            (_('Configuration File Not Found')))
        page += notice
        page += CTK.Indenter(container)
        return page.Render()
Пример #2
0
    def __call__(self):
        title = _('Status')

        # Content
        left = CTK.Box({'class': 'panel'})
        left += CTK.RawHTML('<h2>%s</h2>' % (title))

        right = CTK.Box({'class': 'status_content'})
        left += CTK.Box({'class': 'filterbox'},
                        CTK.TextField({
                            'class':
                            'filter',
                            'optional_string':
                            _('Virtual Server Filtering'),
                            'optional':
                            True
                        }))
        left += CTK.Box({'id': 'status_panel'}, self.PanelList(right))

        # Build the page
        page = Page.Base(title,
                         body_id='status',
                         helps=HELPS,
                         headers=Submit_HEADER)
        page += left
        page += right

        return page.Render()
Пример #3
0
    def __call__ (self):
        Cherokee.pid.refresh()

        # Top
        top = CTK.Box({'id': 'top-box'})
        top += CTK.RawHTML ("<h1>%s</h1>"% _('Welcome to Cherokee Admin'))
        top += LanguageSelector()

        # Content: Left
        mainarea = CTK.Box({'id': 'main-area'})
        mainarea += ServerInfo()
        mainarea += CPUInfo()
        mainarea += MemoryInfo()
        mainarea += CommunityBar()

        # Content: Right
        sidebar = CTK.Box({'id': 'sidebar'})
        sidebar += SupportBox()
        sidebar += HaltAdmin()

        # Content
        cont = CTK.Box({'id': 'home-container'})
        cont += mainarea
        cont += sidebar

        # Page
        page = Page.Base(_('Welcome to Cherokee Admin'), body_id='index', helps=HELPS)
        page += top
        page += cont
        page += CTK.RawHTML (js=JS_SCROLL)

        return page.Render()
Пример #4
0
    def __call__(self):
        title = _('Information Sources')

        page = Page.Base(title, helps=HELPS)
        page += CTK.RawHTML("<h1>%s</h1>" % (title))
        page += Panel()
        return page.Render()
Пример #5
0
    def __call__ (self):
        title = _('Virtual Servers')

        # Virtual Server List
        left  = CTK.Box({'class': 'panel'})
        left += CTK.RawHTML('<h2>%s</h2>'%(title))

        # Content
        refresh_r = CTK.Refreshable ({'id': 'vservers_panel'})
        refresh_r.register (lambda: self.PanelList(refresh_r, right).Render())

        # Refresh on 'New' or 'Clone'
        buttons = self.PanelButtons()
        buttons.bind ('submit_success',
                      refresh_r.JS_to_refresh (on_success=JS_ACTIVATE_FIRST %(refresh_r.id)))
        left += buttons

        left += CTK.Box({'class': 'filterbox'}, CTK.TextField({'class':'filter', 'optional_string': _('Virtual Server Filtering'), 'optional': True}))
        right = CTK.Box({'class': 'vserver_content'})
        left += refresh_r

        # Refresh the list whenever the content change
        right.bind ('submit_success', refresh_r.JS_to_refresh());

        # Refresh the list when it's been reordered
        left.bind ('reordered', refresh_r.JS_to_refresh())

        # Figure out content panel headers. This step is very tricky.
        # We have no idea what HTML headers the content HTML will
        # have. In fact, the panel content is receiving only the HTML
        # content only (body).
        #
        # The static CHILD_HEADERS class property will hold a copy of
        # the headers generated by the direct render of the PageVServer
        # class. It should cover most of the cases, unless a dynamically
        # loaded module requires an additional header entry.
        #
        if not self.CHILD_HEADERS:
            import PageVServer
            vsrv_num = CTK.cfg.keys('vserver')[0]
            render   = PageVServer.RenderContent(vsrv_num).Render()
            self.CHILD_HEADERS = render.headers

        # Build the page
        page = Page.Base(title, body_id='vservers', helps=HELPS, headers=self.CHILD_HEADERS)
        page += left
        page += right

        return page.Render()
Пример #6
0
    def __call__(self):
        Cherokee.pid.refresh()

        # Top
        top = CTK.Box({'id': 'top-box'})
        top += CTK.RawHTML("<h1>%s</h1>" % _('Welcome to Cherokee Admin'))
        top += LanguageSelector()

        # Content: Left
        mainarea = CTK.Box({'id': 'main-area'})
        mainarea += OWS_Market_Info.Index_Block1()
        mainarea += ServerInfo()
        if int(OWS_ENABLE):
            mainarea += RemoteServices()

        if OWS_Login.is_logged() and \
           int (CTK.cfg.get_val("admin!ows!enabled", OWS_ENABLE)):
            mainarea += BackupService()

        mainarea += CPUInfo()
        mainarea += MemoryInfo()
        mainarea += CommunityBar()

        # Content: Right
        sidebar = CTK.Box({'id': 'sidebar'})
        sidebar += SupportBox()

        if int(CTK.cfg.get_val("admin!ows!enabled", OWS_ENABLE)):
            sidebar += OWS_Cherokee_Info.Latest_Release()

        sidebar += ProudUsers()
        sidebar += OWS_Market_Info.Index_Block2()
        sidebar += HaltAdmin()

        # Content
        cont = CTK.Box({'id': 'home-container'})
        cont += mainarea
        cont += sidebar

        # Page
        page = Page.Base(_('Welcome to Cherokee Admin'),
                         body_id='index',
                         helps=HELPS)
        page += top
        page += cont
        page += CTK.RawHTML(js=JS_SCROLL)

        return page.Render()
Пример #7
0
    def __call__(self):
        title = _('Behavior')
        vsrv_num = re.findall(URL_BASE_R, CTK.request.url)[0]

        # Ensure the VServer exists
        if not CTK.cfg.keys('vserver!%s' % (vsrv_num)):
            return CTK.HTTP_Redir('/vserver')

        # Content
        left = CTK.Box({'class': 'panel'})
        left += CTK.RawHTML('<h2>%s</h2>' % (title))

        # Virtual Server List
        refresh = CTK.Refreshable({'id': 'rules_panel'})
        refresh.register(
            lambda: self.PanelList(refresh, right, vsrv_num).Render())

        # Refresh on 'New' or 'Clone'
        buttons = self.PanelButtons(vsrv_num)
        buttons.bind('submit_success',
                     refresh.JS_to_refresh(on_success=JS_ACTIVATE_LAST))
        left += buttons

        left += CTK.Box({'class': 'filterbox'},
                        CTK.TextField({
                            'class': 'filter',
                            'optional_string': _('Rule Filtering'),
                            'optional': True
                        }))
        right = CTK.Box({'class': 'rules_content'})
        left += refresh

        # Refresh the list whenever the content change
        right.bind('changed', refresh.JS_to_refresh())
        right.bind('update_rule_list', refresh.JS_to_refresh())

        # Refresh the list when it's been reordered
        left.bind('reordered', refresh.JS_to_refresh())

        # Build the page
        headers = Tab_HEADER + Submit_HEADER + TextField_HEADER + SortableList_HEADER
        page = Page.Base(title, body_id='rules', helps=HELPS, headers=headers)
        page += left
        page += right

        return page.Render()
Пример #8
0
    def __call__(self):
        ports = PortsWidget()
        network = NetworkWidget()
        network.bind('submit_success', ports.refresh.JS_to_refresh())

        tabs = CTK.Tab()
        tabs.Add(_('Network'), network)
        tabs.Add(_('Ports to listen'), ports)
        tabs.Add(_('Permissions'), PermsWidget())
        tabs.Add(_('Icons'), Icons.Icons_Widget())
        tabs.Add(_('Mime types'), Mime.MIME_Widget())

        page = Page.Base(_("General"), body_id='general', helps=HELPS)
        page += CTK.RawHTML("<h1>%s</h1>" % (_('General Settings')))
        page += tabs
        page += CTK.RawHTML(js=JS_SCROLL)

        return page.Render()
Пример #9
0
    def __call__ (self):
        tabs = CTK.Tab()
        tabs.Add (_('Connections'),   ConnectionsWidget())
        tabs.Add (_('Resources'),     ResourcesWidget())
        tabs.Add (_('I/O cache'),     IOCacheWidget())
        tabs.Add (_('Special Files'), SpecialFilesWidget())
        tabs.Add (_('TLS'),           TLSWidget())

        notice = CTK.Notice('warning')
        notice += CTK.RawHTML(_(WARNING))

        page = Page.Base(_('Advanced'), body_id='advanced', helps=HELPS)
        page += CTK.RawHTML("<h1>%s</h1>" %(_('Advanced Configuration')))
        page += notice
        page += tabs
        page += CTK.RawHTML (js=JS_SCROLL)

        return page.Render()
Пример #10
0
    def __call__(self):
        # Content
        left = CTK.Box({'class': 'panel'})
        left += CTK.RawHTML('<h2>%s</h2>' % (_('Information Sources')))

        # Sources List
        refresh = CTK.Refreshable({'id': 'source_panel'})
        refresh.register(lambda: self.PanelList(refresh, right).Render())

        # Refresh on 'New' or 'Clone'
        buttons = self.PanelButtons()
        buttons.bind('submit_success',
                     refresh.JS_to_refresh(on_success=JS_ACTIVATE_LAST))
        left += buttons

        left += CTK.Box({'class': 'filterbox'},
                        CTK.TextField({
                            'class': 'filter',
                            'optional_string': _('Sources Filtering'),
                            'optional': True
                        }))
        right = CTK.Box({'class': 'source_content'})
        left += refresh

        # Refresh the list whenever the content change
        right.bind('submit_success', refresh.JS_to_refresh())

        # Build the page
        headers = Submit_HEADER + TextField_HEADER
        page = Page.Base(_("Information Sources"),
                         body_id='source',
                         helps=HELPS,
                         headers=headers)
        page += left
        page += right

        return page.Render()