Ejemplo n.º 1
0
 def view(self, doc=None, renderer=None, tabScript=None):
     "Inline draw view"
     if doc is None:
         doc = self.getCompoundDoc()
     renderer = renderer or self.getConfig('renderer')
     if self.getTabActive():
         editname = self.getDisplayName()
         menu = []
         url = doc.absolute_url_path()
         for name, clickableName, cssClass, queryDict, query in self.getTabOrder(
                 doc=doc, tabScript=tabScript):
             selected = 0
             if self.getTabMapping(
                     name) == editname and utility.dictInQuery(
                         queryDict, query):
                 selected = 1
             query = query.copy()
             query.update(queryDict)
             menu.append(('%s/manage_workspace/%s' % (url, name),
                          clickableName, selected, cssClass, query, ''))
         cssClass = ' class="tabControl"' if renderer != 'Themeroller Tabs' else ''
         return '<div%s>%s</div>' % (cssClass,
                                     NestedListURL.listRenderer(
                                         renderer, menu, self.columns))
     return ""
Ejemplo n.º 2
0
    def view(self, doc=None, tabScript=None, columns=None):
        "Inline draw view"
        if columns is None:
            columns = self.columns

        displayName = self.getDisplayName()
        menu = []
        doc = doc or self.getCompoundDoc()
        url = doc.absolute_url_path()

        tabOrder = self.getTabOrder(doc=doc, tabScript=tabScript)
        tabMapping = self.getConfig("tabMapping")
        if tabMapping is not None:
            tabOrder = [
                (tabMapping[name], clickableName, cssClass, queryDict, query)
                for name, clickableName, cssClass, queryDict, query in tabOrder
            ]

        for name, clickableName, cssClass, queryDict, query in tabOrder:
            selected = 0
            if name == displayName and utility.dictInQuery(queryDict, query):
                selected = 1
            query = query.copy()
            query.update(queryDict)
            menu.append((os.path.join(url, name), clickableName, selected, cssClass, query, ""))
        return NestedListURL.listRenderer(self.getConfig("renderer"), menu, columns)
Ejemplo n.º 3
0
    def view(self, doc=None, tabScript=None, columns=None):
        "Inline draw view"
        if columns is None:
            columns = self.columns

        displayName = self.getDisplayName()
        menu = []
        doc = doc or self.getCompoundDoc()
        url = doc.absolute_url_path()

        tabOrder = self.getTabOrder(doc=doc, tabScript=tabScript)
        tabMapping = self.getConfig('tabMapping')
        if tabMapping is not None:
            tabOrder = [
                (tabMapping[name], clickableName, cssClass, queryDict, query)
                for name, clickableName, cssClass, queryDict, query in tabOrder
            ]

        for name, clickableName, cssClass, queryDict, query in tabOrder:
            selected = 0
            if name == displayName and utility.dictInQuery(queryDict, query):
                selected = 1
            query = query.copy()
            query.update(queryDict)
            menu.append((os.path.join(url, name), clickableName, selected,
                         cssClass, query, ''))
        return NestedListURL.listRenderer(self.getConfig('renderer'), menu,
                                          columns)
Ejemplo n.º 4
0
    def view(self,
             cssClassVar=None,
             menuFunc=None,
             openContainers=None,
             baseContainer=None,
             depth=None,
             docBase=None,
             sortFunc=None,
             renderer=None,
             openAll=False,
             columns=None):
        "Inline draw view"
        openContainers = openContainers or []
        container = baseContainer or self.getContainer()

        if depth is None:
            depth = self.depth

        if columns is None:
            columns = self.columns

        docBase = docBase or self
        renderer = renderer or self.renderer

        if openAll:
            nodes = None
            leafs = ()
            path = None
        else:
            nodes = []
            for node in itertools.chain(self.REQUEST.PARENTS, docBase.aq_chain,
                                        [container], openContainers):
                try:
                    if node.meta_type in self.folderTypes:
                        nodes.append(node)
                except AttributeError:
                    pass

            leafs = set(self.getCurrentLeafNodes(nodes))
            path = set([aq_base(node) for node in nodes])
        temp = self.traverseContainer(level=depth,
                                      container=container,
                                      path=path,
                                      leafs=leafs,
                                      sortFunc=sortFunc,
                                      openAll=openAll)

        if self.renderScriptPath:
            self.log(self.absolute_url_path())

        temp = self.resolveObjects(temp, menuFunc)
        return NestedListURL.listRenderer(renderer, temp, columns)
Ejemplo n.º 5
0
 def manage_absolute_urls(self, REQUEST={}):
     "create an absolute url sequence for management"
     url = self.absolute_url_path()
     manageTab = self.REQUEST.URLPATH0.replace('%s/' % url, '').split('/')[0]
     
     cssClasses = ''
     otherAttributes = ''
     queryDict = utility.getQueryDict(self.REQUEST.environ.get('QUERY_STRING', ''))
     menu = []
     for i in self.filtered_manage_options():
         selected = i['action'] == manageTab
         menu.append((os.path.join(url, i['action']),i['label'],selected,cssClasses,queryDict,otherAttributes))
     
     return NestedListUrl.listRenderer('Themeroller Tabs',menu, None)
Ejemplo n.º 6
0
    def edit(self, *args, **kw):
        """This draws the inline forms for the objects present."""
        origin = self.getOrigin()
        path = self.getFixedUpPath()
        if path or (not path and self.drawBlankPath) and origin is not None:
            obj = origin.unrestrictedTraverse(path, None)
        else:
            obj = None
        if obj is not None:
            queryString = self.REQUEST.environ.get('QUERY_STRING', '')
            draw_mode = self.getModeFromREQUEST(obj.drawDict)
            modes = sorted(obj.drawDict.keys())

            path = obj.absolute_url_path()

            temp = ['<div class="%s">' % self.cssClass]

            menu = []
            otherAttributes = ''
            cssClasses = ''
            queryDict = utility.getQueryDict(queryString)
            for mode in modes:
                selected = draw_mode == mode
                queryDict['renderType'] = mode
                menu.append((self.REQUEST.URL, mode, selected, cssClasses,
                             queryDict.copy(), otherAttributes))

            temp.append(
                NestedListUrl.listRenderer('Themeroller Tabs', menu, None))

            tab_format = '<div id="%s">%s<div>%s</div></div>'
            config_object = obj.getConfigObject()
            if config_object is not None and config_object is not self:
                mode_url = obj.drawDict[draw_mode]
                tabs = ((obj.absolute_url_path() + '/' + mode_url, 'Local'),
                        (config_object.absolute_url_path() + '/' + mode_url,
                         'Config'))
                temp.append('<div>%s</div>' % self.submitChanges())
                temp.append(com.javascript.tabs_html('control_tabs', tabs))
            else:
                temp.append(obj.draw(draw_mode))
                temp.append('<div>%s</div>' % self.submitChanges())
            return ''.join(temp)
        return ""
Ejemplo n.º 7
0
 def view(self, doc=None, renderer=None, tabScript=None):
     "Inline draw view"
     if doc is None:
         doc = self.getCompoundDoc()
     renderer = renderer or self.getConfig('renderer')
     if self.getTabActive():
         editname = self.getDisplayName()
         menu = []
         url = doc.absolute_url_path()
         for name,clickableName,cssClass,queryDict, query in self.getTabOrder(doc=doc, tabScript=tabScript):
             selected = 0
             if self.getTabMapping(name) == editname and utility.dictInQuery(queryDict, query):
                 selected = 1
             query = query.copy()
             query.update(queryDict)
             menu.append(('%s/manage_workspace/%s' % (url,name),clickableName,selected, cssClass, query, ''))
         cssClass = ' class="tabControl"' if renderer != 'Themeroller Tabs' else ''
         return '<div%s>%s</div>' % (cssClass, NestedListURL.listRenderer(renderer,menu, self.columns))
     return ""
Ejemplo n.º 8
0
    def edit(self, *args, **kw):
        """This draws the inline forms for the objects present."""
        origin = self.getOrigin()
        path = self.getFixedUpPath()
        if path or (not path and self.drawBlankPath) and origin is not None:
            obj = origin.unrestrictedTraverse(path, None)
        else:
            obj = None
        if obj is not None:
            queryString = self.REQUEST.environ.get('QUERY_STRING', '')
            draw_mode = self.getModeFromREQUEST(obj.drawDict)
            modes = sorted(obj.drawDict.keys())
            
            path = obj.absolute_url_path()

            temp = ['<div class="%s">' % self.cssClass]
                     
            menu = []
            otherAttributes = ''
            cssClasses = ''
            queryDict = utility.getQueryDict(queryString)
            for mode in modes:
                selected = draw_mode == mode                
                queryDict['renderType'] = mode
                menu.append((self.REQUEST.URL,mode,selected,cssClasses,queryDict.copy(),otherAttributes))
            
            temp.append(NestedListUrl.listRenderer('Themeroller Tabs',menu, None))
            
            tab_format = '<div id="%s">%s<div>%s</div></div>'
            config_object = obj.getConfigObject()
            if config_object is not None and config_object is not self:
                mode_url = obj.drawDict[draw_mode]
                tabs = ((obj.absolute_url_path() + '/' + mode_url,'Local'), 
                    (config_object.absolute_url_path() + '/' + mode_url,'Config'))
                temp.append('<div>%s</div>' % self.submitChanges())
                temp.append(com.javascript.tabs_html('control_tabs', tabs))
            else:
                temp.append(obj.draw(draw_mode))
                temp.append('<div>%s</div>' % self.submitChanges())
            return ''.join(temp)
        return ""
Ejemplo n.º 9
0
    def view(self, cssClassVar=None, menuFunc=None, openContainers=None, baseContainer=None, depth=None, docBase=None, sortFunc=None, renderer=None, openAll=False, columns=None):
        "Inline draw view"
        openContainers = openContainers or []
        container = baseContainer or self.getContainer()
        
        if depth is None:
            depth = self.depth
        
        if columns is None:
            columns = self.columns
        
        docBase = docBase or self
        renderer = renderer or self.renderer

        if openAll:
            nodes = None
            leafs = ()
            path = None
        else:
            nodes = []
            for node in itertools.chain(self.REQUEST.PARENTS, docBase.aq_chain, [container], openContainers):
                try:
                    if node.meta_type in self.folderTypes:
                        nodes.append(node)
                except AttributeError:
                    pass
 
            leafs = set(self.getCurrentLeafNodes(nodes))
            path = set([aq_base(node) for node in nodes])
        temp = self.traverseContainer(level=depth, container=container, path=path, leafs=leafs, sortFunc=sortFunc, openAll=openAll)

        if self.renderScriptPath:
            self.log(self.absolute_url_path())

        temp = self.resolveObjects(temp, menuFunc)
        return NestedListURL.listRenderer(renderer,temp, columns)