Пример #1
0
    def changeFileState(self, transition):
        wtool = getToolByName(self.context, "portal_workflow")
        fileObj = self.context.aq_inner
        wtool.doActionFor(fileObj, transition)
        ksscore = self.getCommandSet("core")

        change_sh_state_macro = self.file_view_pt.macros["change_sh_state"]
        review_state = wtool.getInfoFor(fileObj, "review_state", "")
        content = self.header_macros(
            the_macro=change_sh_state_macro, shaction=self.getActions(True), review_state=review_state
        )
        content = force_unicode(content, "utf-8")
        ksscore.replaceHTML(ksscore.getSelector("css", ".change_sh_state"), content)

        change_other_state_macro = self.file_view_pt.macros["change_other_state"]
        review_state = wtool.getInfoFor(fileObj, "review_state", "")
        content = self.header_macros(
            the_macro=change_other_state_macro, otherActions=self.getActions(), review_state=review_state
        )
        content = force_unicode(content, "utf-8")
        ksscore.replaceHTML(ksscore.getSelector("css", ".change_other_state"), content)

        file_operate_macro = self.file_view_pt.macros["file_operate"]
        content = self.header_macros(the_macro=file_operate_macro, obj=fileObj)
        content = force_unicode(content, "utf-8")
        ksscore.replaceHTML(ksscore.getSelector("css", ".file_operate"), content)

        upload_version_macro = self.file_view_pt.macros["history_version"]
        content = self.header_macros(the_macro=upload_version_macro, obj=fileObj)
        content = force_unicode(content, "utf-8")
        ksscore.replaceHTML(ksscore.getSelector("css", ".history_version"), content)
Пример #2
0
    def _createTeam(self, title, description=''):
        title = title.strip()

        title = force_unicode(title, 'utf-8')
        description = force_unicode(description, 'utf-8')
        id = self.context.plone_utils.normalizeString(title)
        if id in self.context.objectIds():
            return None

        tm = ITeamManager(self.context)
        tm.addTeam(id, title, description)
        return id, title, description
Пример #3
0
    def _createTeam(self, title, description=''):
        title = title.strip()

        title = force_unicode(title, 'utf-8')
        description = force_unicode(description , 'utf-8')
        id = self.context.plone_utils.normalizeString(title)
        if id in self.context.objectIds():
            return None

        tm = ITeamManager(self.context)
        tm.addTeam(id, title, description)
        return id, title, description
Пример #4
0
    def viewMilestones(self, getResponsibleParty):
        ctool = getToolByName(self.context, 'portal_catalog')

        if self.context.getPortalTypeName()=='Plone Site':
            active_projects = ctool(portal_type='Project', review_state='active')
            paths = [p.getPath() for p in active_projects]
        else:
            paths = '/'.join(self.context.getPhysicalPath())

        if getResponsibleParty=='ALL':
            results = ctool.searchResults( path = paths, portal_type = 'Milestone', review_state = 'active',)
        else:
            results = ctool.searchResults(
               path = paths,
               portal_type = 'Milestone',
               review_state = 'active',
               getResponsibleParty=[getResponsibleParty],
               sort_on = 'end',
               sort_order = 'reverse')

 
        macro = macros_todo.macros['milestones']

        content = self.header_macros(the_macro=macro, milestones=results)
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        ksscore.replaceInnerHTML('.milestone_table_here', content)

        return self.render()
Пример #5
0
    def response1(self, value='default value', imagefield=None, textimagefield=None):
        
        # build HTML
        value = force_unicode(value, 'utf')
        #value = fieldname
        #value = value + 'and templadeId is ' + str(templateId) + ' and macro is ' + str(macro) + ' and uid is ' + str(uid) + ' and target is: ' + str(target) + ' and edit is ' + str(edit) + ' and value is ' + value
        date = str(datetime.now())
        
        
        val = 'Value is:' + str(value) + ' imagefield is ' + str(imagefield) + ' textimagefield is ' + str(textimagefield)
        txt = '<span>value=<b>"%s"</b>' % (val, )
        #content = content % (mymessage, date)

        # KSS specific calls
        ksscore = self.getCommandSet('core')
        zopecommands = self.getCommandSet('zope')
        plonecommands = self.getCommandSet('plone')
        ksscore.replaceInnerHTML('#portal-siteactions', txt)
               
        instance = aq_inner(self.context)
        if (value == 'no value'):
            value = 'none'
        if (value == 'image'):
            ksscore.setStyle(ksscore.getHtmlIdSelector(textimagefield), 'display', 'none')
            ksscore.setStyle(ksscore.getHtmlIdSelector(imagefield), 'display', 'block')
        elif (value == 'none'):
            ksscore.setStyle(ksscore.getHtmlIdSelector(textimagefield), 'display', 'none')
            ksscore.setStyle(ksscore.getHtmlIdSelector(imagefield), 'display', 'none')    
        else:
            ksscore.setStyle(ksscore.getHtmlIdSelector(textimagefield), 'display', 'block')
            ksscore.setStyle(ksscore.getHtmlIdSelector(imagefield), 'display', 'none')
           
        return self.render()
Пример #6
0
    def editItem(self, is_template=False):
        macro = macros_todo.macros['edititem']
        content = self.header_macros(the_macro=macro,
                                     item=self.context.aq_inner,
                                     is_template=is_template == 'True')
        #if self.request.get('HTTP_USER_AGENT', '').find('MSIE') != -1:
        #    content = content.strip().replace('<', '&lt;').replace('>', '&gt;')
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        # hide
        itemtext = ksscore.getSelector('parentnodecss',
                                       'div.kssDeletionRegion|.itemtext')
        ksscore.addClass(itemtext, 'hideme')

        wrapper = ksscore.getSelector('parentnodecss',
                                      'div.kssDeletionRegion|.TGcomplete')
        ksscore.toggleClass(wrapper, 'hideme')

        formwrapper = ksscore.getSelector(
            'parentnodecss', 'div.kssDeletionRegion|div.edititemwrapper')
        ksscore.replaceInnerHTML(formwrapper, content)

        ksscore.focus(
            ksscore.getSelector('parentnodecss',
                                'div.kssDeletionRegion|.edit_item_title'))
        return self.render()
    def deletePrivilege(self, value, role, subpath=''):
        obj = self.getOriginalObject(subpath)
        delroles = [role]
        existsroles = obj.get_local_roles_for_userid(value)
        roles = self.getRoles()
        newroles = [r for r in existsroles if r != role]
        if len(newroles) == 0:
            obj.manage_delLocalRoles([value])
        else:
            obj.manage_setLocalRoles(value, newroles)

        obj.reindexObjectSecurity()

        the_macro = privilege_template.macros['privilegeItem']
        item = self.listPrivilege(subpath)[1][roles.index(role)]

        content = self.header_macros(the_macro=the_macro, \
                                    item=item,
                                    roles=roles,
                                    role=role,
                                    obj_url=subpath,
                                    canCustomPermission=self.canCustomPermission())
        content = force_unicode(content, 'utf-8')
        ksscore = self.getCommandSet('core')
        selector = ksscore.getSelector('parentnode', '.privilegeItem')
        ksscore.replaceHTML(selector, content)
Пример #8
0
    def selectCategory(self):
        fileObj = self.context.aq_inner
        ## 文件是否正在编辑,被锁定
        if fileObj.getPortalTypeName() == "Document":
            lockable = getattr(fileObj.aq_explicit, "wl_isLocked", None) is not None
            locked = lockable and fileObj.wl_isLocked()
            if locked:
                warning = translate(
                    _(u"warning_locked", default="This document was locked, you cann't move it."), context=self.request
                )
                warning = warning.decode("utf-8", "replace")
                self.getCommandSet("plone").issuePortalMessage(warning, translate(_(u"warning"), context=self.request))

                ksscore = self.getCommandSet("core")
                selector = ksscore.getSelector("css", ".EVselCat")
                ksscore.toggleClass(selector, classname="hideme")
                return self.render()

        category_id = fileObj.aq_parent.getId()

        the_macro = self.edit_file.macros["edit_category"]
        content = self.header_macros(the_macro=the_macro, category=category_id)

        content = force_unicode(content, "utf-8")

        ksscore = self.getCommandSet("core")
        selector = ksscore.getSelector("samenode", "")

        ksscore.insertHTMLBefore(selector, content)
        selectarea = ksscore.getSelector("css", ".categorySelect")
        ksscore.focus(selectarea)
Пример #9
0
    def renameCategory(self, id, new_title, is_template_setting=False):
        context = self.context.aq_inner
        new_title = new_title.strip()
        cm = ICategoryManager(self.context)
        cm.renameCategory(id, new_title)
        content_url = cm.getContentInfo()[1]

        core = self.getCommandSet("core")
        selector = core.getParentNodeSelector(".kssDeletionRegion")

        the_macro = list_template.macros["categoryitem"]
        content = self.header_macros(
            the_macro=the_macro,
            here_url=content_url,
            cat_del=cm.categoryDeletable(id),
            cat_cur=0,
            cat_title=new_title,
            cat_id=id,
            is_template_setting=is_template_setting == "True",
        )
        content = force_unicode(content, "utf")
        core.replaceInnerHTML(selector, content)

        # XXX refresh category selection
        # cp = CategorySelectionProvider(context.aq_parent, self.request, None)
        # cp.update()
        # content = cp.render()
        # content = force_unicode(content, 'utf')
        # core.replaceHTML('.categorySelect', content)
        self.getCommandSet("plone").issuePortalMessage(
            translate(_(u"modified success."), default="Modified success", context=self.request),
            translate(_(u"Info"), default="Info", context=self.request),
        )

        return self.render()
Пример #10
0
    def editList(self, is_template=False):
        macro = macros_todo.macros['editlist']
        context = self.context.aq_inner

        wrapperid = "editlist-%s" % context.getId()
        wftool = getToolByName(self.context, 'portal_workflow')
        review_state = wftool.getInfoFor(context, 'review_state')

        content = self.header_macros(the_macro=macro,
                                     todolist=context,
                                     review_state=review_state,
                                     is_template=is_template == 'True')
        #if self.request.get('HTTP_USER_AGENT', '').find('MSIE') != -1:
        #    content = content.strip().replace('<', '&lt;').replace('>', '&gt;')
        content = force_unicode(content, 'utf')
        ksscore = self.getCommandSet('core')

        # show
        ksscore.toggleClass(
            ksscore.getSelector('parentnodecss', '.todolist|.TGeditlist'),
            'hideme')

        # hide
        itemtext = ksscore.getSelector('parentnode', 'div.todolist')
        ksscore.toggleClass(itemtext, 'hideme')

        wrapper = """<div id="%s" class="editlistformwrapper"></div>""" % wrapperid

        ksscore.insertHTMLBefore(itemtext, wrapper)
        ksscore.replaceInnerHTML('#' + wrapperid, content)
        ksscore.focus('#editlist_%s .list_title' % context.getId())
        return self.render()
Пример #11
0
    def viewMilestones(self, getResponsibleParty):
        ctool = getToolByName(self.context, 'portal_catalog')

        if self.context.getPortalTypeName() == 'Plone Site':
            active_projects = ctool(portal_type='Project',
                                    review_state='active')
            paths = [p.getPath() for p in active_projects]
        else:
            paths = '/'.join(self.context.getPhysicalPath())

        if getResponsibleParty == 'ALL':
            results = ctool.searchResults(
                path=paths,
                portal_type='Milestone',
                review_state='active',
            )
        else:
            results = ctool.searchResults(
                path=paths,
                portal_type='Milestone',
                review_state='active',
                getResponsibleParty=[getResponsibleParty],
                sort_on='end',
                sort_order='reverse')

        macro = macros_todo.macros['milestones']

        content = self.header_macros(the_macro=macro, milestones=results)
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        ksscore.replaceInnerHTML('.milestone_table_here', content)

        return self.render()
Пример #12
0
    def editList(self, is_template=False):
        macro = macros_todo.macros['editlist']
        context = self.context.aq_inner

        wrapperid = "editlist-%s" % context.getId()
        wftool = getToolByName(self.context, 'portal_workflow')
        review_state = wftool.getInfoFor(context, 'review_state')

        content= self.header_macros(the_macro=macro,
                                    todolist = context,
                                    review_state=review_state,
                                    is_template = is_template=='True')
        #if self.request.get('HTTP_USER_AGENT', '').find('MSIE') != -1:
        #    content = content.strip().replace('<', '&lt;').replace('>', '&gt;')
        content = force_unicode(content, 'utf')
        ksscore = self.getCommandSet('core')
        
        # show
        ksscore.toggleClass(ksscore.getSelector('parentnodecss','.todolist|.TGeditlist'),
                'hideme')

        # hide
        itemtext = ksscore.getSelector('parentnode','div.todolist')
        ksscore.toggleClass(itemtext, 'hideme')

        wrapper = """<div id="%s" class="editlistformwrapper"></div>""" % wrapperid

        ksscore.insertHTMLBefore(itemtext, wrapper)
        ksscore.replaceInnerHTML('#' + wrapperid, content)
        ksscore.focus('#editlist_%s .list_title' % context.getId() )
        return self.render()
Пример #13
0
    def deletePrivilege(self, value, role, subpath=''):
        obj = self.getOriginalObject(subpath)
        delroles = [role]
        existsroles = obj.get_local_roles_for_userid(value)
        roles = self.getRoles()
        newroles = [r for r in existsroles if r != role]
        if len(newroles) == 0:
            obj.manage_delLocalRoles([value])
        else:
            obj.manage_setLocalRoles(value, newroles)

        obj.reindexObjectSecurity()

        the_macro = privilege_template.macros['privilegeItem']
        item = self.listPrivilege(subpath)[1][roles.index(role)]

        content = self.header_macros(the_macro=the_macro, \
                                    item=item,
                                    roles=roles,
                                    role=role,
                                    obj_url=subpath,
                                    canCustomPermission=self.canCustomPermission())
        content = force_unicode(content, 'utf-8')
        ksscore = self.getCommandSet('core')
        selector = ksscore.getSelector('parentnode', '.privilegeItem')
        ksscore.replaceHTML(selector, content)
Пример #14
0
    def selectCategory(self):
        fileObj = self.context.aq_inner
        ## 文件是否正在编辑,被锁定
        if fileObj.getPortalTypeName() == 'Document':
            lockable = getattr(fileObj.aq_explicit, 'wl_isLocked',
                               None) is not None
            locked = lockable and fileObj.wl_isLocked()
            if locked:
                warning = translate(_(
                    u'warning_locked',
                    default="This document was locked, you cann't move it."),
                                    context=self.request)
                warning = warning.decode('utf-8', 'replace')
                self.getCommandSet('plone').issuePortalMessage(
                    warning, translate(_(u'warning'), context=self.request))

                ksscore = self.getCommandSet('core')
                selector = ksscore.getSelector('css', '.EVselCat')
                ksscore.toggleClass(selector, classname="hideme")
                return self.render()

        category_id = fileObj.aq_parent.getId()

        the_macro = self.edit_file.macros['edit_category']
        content = self.header_macros(the_macro=the_macro, category=category_id)

        content = force_unicode(content, 'utf-8')

        ksscore = self.getCommandSet('core')
        selector = ksscore.getSelector('samenode', '')

        ksscore.insertHTMLBefore(selector, content)
        selectarea = ksscore.getSelector('css', '.categorySelect')
        ksscore.focus(selectarea)
Пример #15
0
    def tagForProjects(self, tag):

        portal_url = getToolByName(self.context, 'portal_url')
        path = portal_url.getPortalPath()
        portal_catalog = getToolByName(self.context, 'portal_catalog') 

        projects = portal_catalog(Subject=[tag], path=path, portal_type='Project')

        content_tag_html = ''
        project_name = translate(_(u'Project', default="Project"), context=self.request)
            
        # <span class="event_type"><span>项目</span><a href="project_url">项目标题</a></span>
        if len(projects)==1:
            content = translate(_(u'contain_tag_project_no', default="<div class=\"tag_for_projects\"><p><a href=\"#\" style=\"float:right\" class=\"admin close_tag_for\">Close</a>No project by this tag.</p></div>", mapping={u'tag': tag}),context=self.request) 
        else:
            for p in projects:
                if p.getId != self.context.getId():
                    content_tag_html += "<span class=\"event_type\"><span>%s</span><a target=\"_blank\" href=\"%s\">%s</a></span> "%(project_name, p.getURL(), p.pretty_title_or_id())

                    content_top = translate(_(u'contain_tag_project', default="<a href=\"#\" style=\"float:right\" class=\"admin close_tag_for\">Close</a>Contain \"${tag}\" of the projects: ", mapping={u'tag': tag}),context=self.request) 
                    content = '<div class="tag_for_projects"><p>%s</p>%s</div>'%(content_top, content_tag_html)

        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        selector = ksscore.getSelector('css', '#tag_for_projects') 
        ksscore.replaceInnerHTML(selector, content)

        return self.render()
Пример #16
0
    def completeTodoItemMore(self):
        wftool = getToolByName(self.context, 'portal_workflow')

        state = wftool.getInfoFor(self.context, 'review_state', '')

        if state == 'active': 
            wftool.doActionFor(self.context, 'complete')

        elif state == 'completed':
            wftool.doActionFor(self.context, 'activate')

        # 这里仅仅用于调整修改时间
        self.context.setModificationDate()
        self.context.reindexObject(['modified'])

        ksscore = self.getCommandSet('core')

        macro =macros_todo_more.macros['todo_more_completed']
        content = self.header_macros(the_macro=macro,
                obj = self.context)
        content = force_unicode(content, 'utf')

        ksscore.replaceHTML('#todo_is_completed', content)

        return self.render()
Пример #17
0
    def renameCategory(self, id, new_title, is_template_setting=False):
        context = self.context.aq_inner
        new_title = new_title.strip()
        cm = ICategoryManager(self.context)
        cm.renameCategory(id, new_title)
        content_url = cm.getContentInfo()[1]

        core = self.getCommandSet('core')
        selector = core.getParentNodeSelector('.kssDeletionRegion')

        the_macro = list_template.macros['categoryitem']
        content = self.header_macros(the_macro=the_macro,
                here_url = content_url,
                cat_del = cm.categoryDeletable(id),
                cat_cur = 0,
                cat_title = new_title,
                cat_id   = id,
                is_template_setting=is_template_setting=='True')
        content = force_unicode(content, 'utf')
        core.replaceInnerHTML(selector, content)

        # XXX refresh category selection
        #cp = CategorySelectionProvider(context.aq_parent, self.request, None)
        #cp.update()
        #content = cp.render()
        #content = force_unicode(content, 'utf')
        #core.replaceHTML('.categorySelect', content)
        self.getCommandSet('plone').issuePortalMessage(
                translate(_(u'modified success.'), default="Modified success", context=self.request),
                translate(_(u'Info'), default='Info', context=self.request))

        return self.render()
Пример #18
0
    def saveItemMore(self, title='', responsibleParty='', notify=False,\
           subject='', endDate='', year='', month='', day='', createmilestone=False, is_template=False):
        
        ksscore = self.getCommandSet('core')
        endDate = self.getDate(endDate, year, month, day)

        if endDate == 'Error':
            error = translate(_(u'deadline_error',default='Deadline is invalid, please correct.'), context=self.request)
            error = error.decode('utf', 'replace')
            ksscore.replaceInnerHTML(ksscore.getSelector('parentnodecss', '.edititem|.errmsg'), error)
            ksscore.addClass(ksscore.getSelector('parentnodecss', '.edititem|.errmsg'), 'error')
            ksscore.toggleClass(ksscore.getSelector('parentnodecss', '.edititem|.submit'), 'hideme')
            return self.render()
        else:
            ksscore.replaceInnerHTML(ksscore.getSelector('parentnodecss', '.edititem|.errmsg'), '')
            ksscore.removeClass(ksscore.getSelector('parentnodecss', '.edititem|.errmsg'), 'error')

        context = self._saveItem(title, responsibleParty, notify,\
                subject, endDate, year, month, day, createmilestone, is_template) 

         
        macro = macros_todo_more.macros['todo_more']
        content = self.header_macros(the_macro=macro,
                item = context)
       
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        ksscore.replaceHTML('#todo_more', content)

        return self.render()
 def refreshMyAreaBlock(self,messageuid,count):
     portal_state = getMultiAdapter((self.context, self.request), name=u"plone_portal_state")
     
     if portal_state.anonymous():
         return
     user_token = portal_state.member().getId()
     if user_token is None:
         return
     
     status_messages = self.context.portal_catalog.searchResults(Creator = user_token,portal_type=('StatuslogItem',),sort_on = 'created',sort_order='reverse',sort_limit=1);
     
     if len(status_messages) > 0:
         pdt = getToolByName(self.context, 'portal_discussion', None)
         newuid = status_messages[0].UID
         full_message = status_messages[0].getObject()
         newcount = 0
         message = status_messages[0].Title
         
         if full_message.isDiscussable():
             newcount = pdt.getDiscussionFor(full_message).replyCount(full_message)
         
         if newuid != messageuid or int(count) != newcount:                
             zopecommands = self.getCommandSet('zope')
             ksscore = self.getCommandSet('core')
             
             message = force_unicode(message,'utf')
             commenttext = ''
             
             if newcount < 1 or newcount > 1:
                 commenttext = _(u'text_comments',u"comments")
             elif newcount == 1:
                 commenttext = _(u'text_1_comment',u"comment")
             
             commenttext = self.context.translate(commenttext)
             commenttext = force_unicode(commenttext,'utf')
             
             selector = ksscore.getHtmlIdSelector('currentmessagediv')
             ksscore.replaceInnerHTML(selector,message)
             
             countselector = ksscore.getHtmlIdSelector('comcynapsecyninstatuscomments')
             ksscore.replaceInnerHTML(countselector,'<a href="%s">%s %s</a>' % (full_message.absolute_url(),newcount,commenttext,))
             
             kssattrselector = ksscore.getHtmlIdSelector('comcynapsecyninmyareablock')
             ksscore.setKssAttribute(kssattrselector,'messageid',str(newuid))
             ksscore.setKssAttribute(kssattrselector,'count',str(newcount))
Пример #20
0
 def getInputField(self, value):
     'Inserts the value as entered into an input field'
     # We need to make unicode. But on Z2 we receive utf-8, on Z3 unicode
     value = force_unicode(value, 'utf')
     self.getCommandSet('core').replaceInnerHTML('div#text',
                         '<div><input type="text" name="value" value="'+value+'" /></div>' \
                         '<input type="button" value="save" id="save" />'
                        )
     return self.render()
Пример #21
0
 def formSubmitSave(self):
     result = ['<p>Async saved:</p><table><th>Name:</th><th>Value:</th>']
     for key, value in self.request.form.items():
         result.append('<tr><td>%s</td><td>%s</td></tr>' % (key, value))
     result.append('</table>')
     # We need to make unicode. But on Z2 we receive utf-8, on Z3 unicode
     retval = force_unicode(''.join(result), 'utf')
     self.getCommandSet('core').replaceInnerHTML('div#async', retval)
     return self.render()
Пример #22
0
    def addTrack(self,year,month,day,responsibleParty,hours,title):
        core = self.getCommandSet('core')
        context = self.context.aq_inner
         
        error_hour, error_date = '',''
        try:
            deadline = DateTime(year, month, day)
            core.replaceInnerHTML(core.getSelector('parentnodecss', '.trackitem|.errmsgDate'), '')
            core.removeClass(core.getSelector('parentnodecss', '.trackitem|.errmsgDate'), 'error')
        except:
            error_date = translate(_(u'va_date_error', default='Date is invalid, please currect.'), context=self.request)


        if hours == '':
            error_date = translate(_(u'va_need_hour', default='Need hour!'), context=self.request)
        else:
            try:
                parseHour(hours)
                core.replaceInnerHTML(core.getSelector('parentnodecss', '.trackitem|.errmsgHour'), '')
                core.removeClass(core.getSelector('parentnodecss', '.trackitem|.errmsgHour'), 'error')
            except:
                error_date = translate(_(u'va_hour_error', default='Hour is invalid, please currect.'), context=self.request)

        if error_date:
            error_date = error_date.decode('utf', 'replace')
            core.replaceInnerHTML(core.getSelector('parentnodecss', '.trackitem|.errmsgDate'), error_date)
            core.addClass(core.getSelector('parentnodecss', '.trackitem|.errmsgDate'), 'error')
            core.toggleClass(core.getSelector('parentnodecss','.trackitem|.submit'),'hideme')
            return self.render()

        if error_hour:
            error_hour = error_hour.decode('utf', 'replace')
            core.replaceInnerHTML(core.getSelector('parentnodecss', '.trackitem|.errmsgHour'), error_hour)
            core.addClass(core.getSelector('parentnodecss', '.trackitem|.errmsgHour'), 'error')
            core.toggleClass(core.getSelector('parentnodecss','.trackitem|.submit'),'hideme')
            return self.render()


        o = self._addTrack(year,month,day,responsibleParty,hours,title)

        timelogs = context.getRawRelatedItems()
        timelogs.append(o.UID())
        context.setRelatedItems(timelogs)

        wftool = getToolByName(self.context, 'portal_workflow')
        state = wftool.getInfoFor(self.context, 'review_state')
        macro = macros_todo.macros[state]

        content = self.header_macros(the_macro=macro,
                item = context)
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        ksscore.replaceHTML('#item_' + context.getId(), content)

        return self.render()
Пример #23
0
    def renameTeam(self,
                   id,
                   new_title,
                   new_description='',
                   is_template_setting=False):
        context = self.context.aq_inner
        new_title = new_title.strip()
        new_description = new_description.strip()
        tm = ITeamManager(self.context)
        tm.renameTeam(id, new_title, new_description)
        content_url = tm.getContentInfo()[1]

        core = self.getCommandSet('core')
        selector = core.getParentNodeSelector('.kssDeletionRegion')

        the_macro = list_template.macros['teamitem']
        content = self.header_macros(
            the_macro=the_macro,
            here_url=content_url,
            team_del=tm.teamDeletable(id),
            team_cur=0,
            team_title=new_title,
            team_id=id,
            team_description=new_description,
            is_template_setting=is_template_setting == 'True')
        content = force_unicode(content, 'utf-8')
        core.replaceInnerHTML(selector, content)
        teamidstr = "teamitem-" + id + "-" + context.aq_parent.getId()
        teamselector = core.getSelector("css", "." + teamidstr)
        teamcontent = "<span class=\"" + teamidstr + \
                      "\">" + new_title  + "</span>"

        teamcontent = force_unicode(teamcontent, 'utf-8')
        core.replaceHTML(teamselector, teamcontent)

        self.getCommandSet('plone').issuePortalMessage(
            translate(_(u'modified success.'),
                      default="Modified success",
                      context=self.request),
            translate(_(u'Info'), default='Info', context=self.request))

        return self.render()
Пример #24
0
    def add_progress(self):
        obj = self.context.aq_inner
        macros = self.edit_template.macros

        content = self.header_macros(the_macro=macros['progressitem'] , item=obj)
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        selector = ksscore.getSelector('parentnodecss', '.Milestone|.edititemwrapper')
        ksscore.replaceInnerHTML(selector, content)
        return self.render()
Пример #25
0
    def addTag(self):
        form = self.request.form
        project = self.context.aq_inner

        portal_url = getToolByName(self.context, 'portal_url')
        path = portal_url.getPortalPath()
        portal_catalog = getToolByName(self.context, 'portal_catalog')

        projectSubject = form.get('projectSubject', '')
        if projectSubject:
            subject = self.context.Subject()
            subject_new = list(subject) + [projectSubject]
            self.context.setSubject(tuple(subject_new))

        project.reindexObject()

        ## <a class="tag_for">Subject</a>[2]

        tag_html_1 = ''
        tag_html_2 = ''
        for i in self.context.Subject():
            tag_html_1 += "<a href=\"#\" class=\"tag_for\">%s</a> " % (i)
            tag_html_2 += "<span class=\"kssDeleteTag kssattr-tag-%s\" style=\"padding-right: 10px;\"><span>%s</span> <img alt=\"Delete\" src=\"/++resource++trash.gif\" class=\"delimage\"/></span>" % (
                i, i)

        content_1 = "<span id=\"current_project_tags\" class=\"hideme EVtags TGtags\">%s</span>" % (
            tag_html_1)
        content_1 = force_unicode(content_1, 'utf')
        content_2 = force_unicode(tag_html_2, 'utf')

        ksscore = self.getCommandSet('core')
        selector1 = ksscore.getSelector('css', '#current_project_tags')
        selector2 = ksscore.getSelector('css', '.edit_tags')
        ksscore.replaceHTML(selector1, content_1)
        ksscore.replaceInnerHTML(selector2, content_2)

        ksscore.toggleClass(ksscore.getSelector('css', '.submit'), 'hideme')
        ksszopen = self.getCommandSet('zopen')
        ksszopen.clear('#add_tags')
        ksscore.focus('#add_tags')
        return self.render()
Пример #26
0
    def listCreateTeam(self, title, description='', is_template_setting=False):
        tm = ITeamManager(self.context)
        content_url = tm.getContentInfo()[1]
        content_id = tm.getContentInfo()[0]
        if title == '':
            self.getCommandSet('plone').issuePortalMessage(
                translate(_(u'please_enter_team_title.'),
                          default="Please enter team title.",
                          context=self.request),
                translate(_(u'Error'), default="Error", context=self.request))
            return self.render()
        result = self._createTeam(title, description)
        if result == None:
            msg = _(u'team_${title}_was_existed.',
                    default='Team ${title} was existed.',
                    mapping={u'title': title})
            self.getCommandSet('plone').issuePortalMessage(
                translate(msg, context=self.request),
                translate(_(u'Error'), default="Error", context=self.request))
            return self.render()
        else:
            id, title, description = result
        the_macro = list_template.macros['teamitem']
        content = self.header_macros(
            the_macro=the_macro,
            here_url=content_url,
            team_del=1,
            team_cur=0,
            team_title=title,
            team_id=id,
            team_description=description,
            is_template_setting=is_template_setting == 'True')
        # Always encoded as utf-8
        content = force_unicode(content, 'utf')

        core = self.getCommandSet('core')
        core.insertHTMLBefore('#add_new_team-' + content_id, content)

        msg = _(u'team_${title}_was_added.',
                default="Team ${title} was added.",
                mapping={u'title': title})
        self.getCommandSet('plone').issuePortalMessage(
            translate(msg, context=self.request),
            translate(_(u'Info'), default="Info", context=self.request))

        ksszopen = self.getCommandSet('zopen')
        ksszopen.clear(core.getSelector('css',
                                        '#new_team_input-' + content_id))
        ksszopen.clear(core.getSelector('css', '#textarea-' + content_id))
        core.addClass(core.getSelector('css', '.submit_add'), 'hideme')

        return self.render()
Пример #27
0
    def addTodoItem(self, title='', notify=False, responsibleParty='',\
            subject='', endDate='', year='', month='', day='',
            createmilestone=False, is_template=False):

        ksscore = self.getCommandSet('core')
        if not title:
            ksscore.toggleClass(ksscore.getSelector('parentnodecss', '.TGadditem|.submit'), 'hideme')
            return self.render()

        endDate = self.getDate(endDate, year, month, day)

        if endDate == 'Error':
            error = translate(_(u'va_deadline_error',default='Deadline is invalid, please correct.'), context=self.request)
            error = error.decode('utf', 'replace')
            ksscore.replaceInnerHTML(ksscore.getSelector('parentnodecss', '.TGadditem|.errmsg'), error)
            ksscore.addClass(ksscore.getSelector('parentnodecss', '.TGadditem|.errmsg'), 'error')
            ksscore.toggleClass(ksscore.getSelector('parentnodecss', '.TGadditem|.submit'), 'hideme')
            return self.render()
        else:
            ksscore.replaceInnerHTML(ksscore.getSelector('parentnodecss', '.TGadditem|.errmsg'), '')
            ksscore.removeClass(ksscore.getSelector('parentnodecss', '.TGadditem|.errmsg'), 'error')

        folder = self.context.aq_inner.aq_parent
        folder_path = '/'.join(folder.getPhysicalPath())
        ctool = getToolByName(self.context, 'portal_catalog')
        all_items = ctool.searchResults( path=folder_path, portal_type = 'TodoItem')
        all_ids = [b.getId for b in all_items]

        id = str(random.randrange(100000, 999999))
        while id in all_ids:
            id = str(random.randrange(100000, 999999))

        self._addTodoItem(self.context, id, title, notify, responsibleParty, subject, endDate, year, month, day, createmilestone)

        o = getattr(self.context, id)

        macro = macros_todo.macros['active']
        content = self.header_macros(the_macro=macro,
                item = o,
                is_template = is_template=='True')
        content = force_unicode(content, 'utf')
        listid = self.context.getId()
        ksscore = self.getCommandSet('core')
        ksscore.insertHTMLAsLastChild('#active_' + listid, content)

        ksszopen=self.getCommandSet('zopen')
        self.getCommandSet('todo').sortTodoItems()

        ksscore.toggleClass(ksscore.getSelector('parentnodecss', '.TGadditem|.submit'), 'hideme')
        ksszopen.clear(ksscore.getSelector('parentnodecss', '.TGadditem|.new_item_title'))
        # ksscore.focus(ksscore.getSelector('parentnodecss','.TGadditem|.new_item_title'))
        return self.render()
Пример #28
0
    def _createCategory(self, title):
        # build HTML
        title = title.strip()

        # force_unicode 是从 kss.core 导入
        title = force_unicode(title, "utf")
        id = self.context.plone_utils.normalizeString(title)
        if id in self.context.objectIds():
            return None

        cm = ICategoryManager(self.context)
        cm.addCategory(id, title)
        return id, title
Пример #29
0
    def addTag(self):
        form = self.request.form
        project = self.context.aq_inner

        portal_url = getToolByName(self.context, 'portal_url')
        path = portal_url.getPortalPath()
        portal_catalog = getToolByName(self.context, 'portal_catalog') 

        projectSubject = form.get('projectSubject', '')
        if projectSubject:
            subject = self.context.Subject()
            subject_new = list(subject) + [projectSubject]
            self.context.setSubject(tuple(subject_new))

        project.reindexObject()

        ## <a class="tag_for">Subject</a>[2]

        tag_html_1 = ''
        tag_html_2 = ''
        for i in self.context.Subject():
            tag_html_1 += "<a href=\"#\" class=\"tag_for\">%s</a> " % (i)
            tag_html_2 += "<span class=\"kssDeleteTag kssattr-tag-%s\" style=\"padding-right: 10px;\"><span>%s</span> <img alt=\"Delete\" src=\"/++resource++trash.gif\" class=\"delimage\"/></span>" % (i, i)

        content_1 = "<span id=\"current_project_tags\" class=\"hideme EVtags TGtags\">%s</span>"%(tag_html_1) 
        content_1 = force_unicode(content_1, 'utf')
        content_2 = force_unicode(tag_html_2, 'utf')

        ksscore = self.getCommandSet('core')
        selector1 = ksscore.getSelector('css', '#current_project_tags') 
        selector2 = ksscore.getSelector('css', '.edit_tags') 
        ksscore.replaceHTML(selector1, content_1)
        ksscore.replaceInnerHTML(selector2, content_2)

        ksscore.toggleClass(ksscore.getSelector('css','.submit'),'hideme')
        ksszopen=self.getCommandSet('zopen')
        ksszopen.clear('#add_tags')
        ksscore.focus('#add_tags')
        return self.render()
Пример #30
0
    def displayVersion(self, version_id):
        # info("%r" % version_id)

        # here get the historical content of a version_id
        instance = self.context.aq_inner
        rep_tool = getToolByName(instance, 'portal_repository')
        vdata = rep_tool.retrieve(instance, version_id)
        content = vdata.object.getText()
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        ksscore.replaceInnerHTML(
                ksscore.getHtmlIdSelector('body-wrapper'), content) 
Пример #31
0
    def edit_milestone(self):
        obj = self.context.aq_inner
        macros = self.edit_template.macros

        content = self.header_macros(the_macro=macros['milestoneitem'] , item=obj)
        #if self.request.get('HTTP_USER_AGENT', '').find('MSIE') != -1:
        #    content = content.strip().replace('<', '&lt;').replace('>', '&gt;')
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        selector = ksscore.getSelector('parentnodecss', '.Milestone|.edititemwrapper')
        ksscore.replaceInnerHTML(selector, content)
        return self.render()
Пример #32
0
    def _createCategory(self, title):
        # build HTML
        title = title.strip()

        # force_unicode 是从 kss.core 导入
        title = force_unicode(title, 'utf')
        id = self.context.plone_utils.normalizeString(title)
        if id in self.context.objectIds():
            return None

        cm = ICategoryManager(self.context)
        cm.addCategory(id, title)
        return id, title
Пример #33
0
    def issuePortalMessage(self, message, msgtype='info', position='portal'):
        """ position: portal, contentbar """
        if not message:
            return

        ksscore = self.getCommandSet('core')

        selector = ksscore.getHtmlIdSelector('%s-message' % position)
        msgtype_str = {'info':'信息', 'error':'错误', 'warning':'注意'}.get(msgtype, msgtype)
        html = '<dl class="portalMessage %s"><dt>%s</dt><dd>%s</dd></dl>' % (msgtype, msgtype_str, message)
        html = force_unicode(html, 'utf')
        ksscore.replaceInnerHTML(selector, html)

        ksscore.addClass(ksscore.getSelector('htmlid','kss-spinner'), 'hidden')
Пример #34
0
    def changeFileState(self, transition):
        wtool = getToolByName(self.context, 'portal_workflow')
        fileObj = self.context.aq_inner
        wtool.doActionFor(fileObj, transition)
        ksscore = self.getCommandSet('core')

        change_sh_state_macro = self.file_view_pt.macros['change_sh_state']
        review_state = wtool.getInfoFor(fileObj, 'review_state', '')
        content = self.header_macros(the_macro=change_sh_state_macro,
                                     shaction=self.getActions(True),
                                     review_state=review_state)
        content = force_unicode(content, 'utf-8')
        ksscore.replaceHTML(ksscore.getSelector('css', '.change_sh_state'),
                            content)

        change_other_state_macro = self.file_view_pt.macros[
            'change_other_state']
        review_state = wtool.getInfoFor(fileObj, 'review_state', '')
        content = self.header_macros(the_macro=change_other_state_macro,
                                     otherActions=self.getActions(),
                                     review_state=review_state)
        content = force_unicode(content, 'utf-8')
        ksscore.replaceHTML(ksscore.getSelector('css', '.change_other_state'),
                            content)

        file_operate_macro = self.file_view_pt.macros['file_operate']
        content = self.header_macros(the_macro=file_operate_macro, obj=fileObj)
        content = force_unicode(content, 'utf-8')
        ksscore.replaceHTML(ksscore.getSelector('css', '.file_operate'),
                            content)

        upload_version_macro = self.file_view_pt.macros['history_version']
        content = self.header_macros(the_macro=upload_version_macro,
                                     obj=fileObj)
        content = force_unicode(content, 'utf-8')
        ksscore.replaceHTML(ksscore.getSelector('css', '.history_version'),
                            content)
Пример #35
0
    def renameTeam(self, id, new_title, new_description='', is_template_setting=False):
        context = self.context.aq_inner
        new_title = new_title.strip()
        new_description = new_description.strip()
        tm = ITeamManager(self.context)
        tm.renameTeam(id, new_title, new_description)
        content_url = tm.getContentInfo()[1]

        core = self.getCommandSet('core')
        selector = core.getParentNodeSelector('.kssDeletionRegion')

        the_macro = list_template.macros['teamitem']
        content = self.header_macros(the_macro=the_macro,
                here_url = content_url,
                team_del = tm.teamDeletable(id),
                team_cur = 0,
                team_title = new_title,
                team_id   = id,
                team_description = new_description,
                is_template_setting=is_template_setting=='True')
        content = force_unicode(content, 'utf-8')
        core.replaceInnerHTML(selector, content)
        teamidstr = "teamitem-" + id + "-" + context.aq_parent.getId()
        teamselector = core.getSelector("css", "." + teamidstr)
        teamcontent = "<span class=\"" + teamidstr + \
                      "\">" + new_title  + "</span>"

        teamcontent = force_unicode(teamcontent, 'utf-8')
        core.replaceHTML(teamselector, teamcontent)


        self.getCommandSet('plone').issuePortalMessage(
                translate(_(u'modified success.'), default="Modified success", context=self.request),
                translate(_(u'Info'), default='Info', context=self.request))

        return self.render()
Пример #36
0
    def settingTags(self):

        tags = self.context.Subject()
        edit_tags_page = ZopeTwoPageTemplateFile('edit_tags.pt')
        macros = edit_tags_page.macros

        content = self.header_macros(the_macro=macros['edit_tags'], tags=tags)
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        selector = ksscore.getSelector('css', '#tag_for_projects')
        ksscore.replaceInnerHTML(selector, content)
        ksscore.focus('#add_tags')

        return self.render()
Пример #37
0
    def settingTags(self):

        tags = self.context.Subject()
        edit_tags_page = ZopeTwoPageTemplateFile('edit_tags.pt')
        macros = edit_tags_page.macros

        content = self.header_macros(the_macro=macros['edit_tags'] , tags=tags)
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        selector = ksscore.getSelector('css', '#tag_for_projects') 
        ksscore.replaceInnerHTML(selector, content)
        ksscore.focus('#add_tags')

        return self.render()
Пример #38
0
    def listCreateCategory(self, title, is_template_setting=False):
        cm = ICategoryManager(self.context)
        content_url = cm.getContentInfo()[1]
        content_id = cm.getContentInfo()[0]
        if title == "":
            self.getCommandSet("plone").issuePortalMessage(
                translate(
                    _(u"please enter category title."), default="Please enter category title.", context=self.request
                ),
                translate(_(u"Error"), default="Error", context=self.request),
            )
            return self.render()
        result = self._createCategory(title)
        if result == None:
            msg = _(
                u"category ${title} was existed.", default="Category ${title} was existed.", mapping={u"title": title}
            )
            self.getCommandSet("plone").issuePortalMessage(
                translate(msg, context=self.request), translate(_(u"Error"), default="Error", context=self.request)
            )
            return self.render()
        else:
            id, title = result
        the_macro = list_template.macros["categoryitem"]
        content = self.header_macros(
            the_macro=the_macro,
            here_url=content_url,
            cat_del=1,
            cat_cur=0,
            cat_title=title,
            cat_id=id,
            is_template_setting=is_template_setting == "True",
        )
        # Always encoded as utf-8
        content = force_unicode(content, "utf")

        core = self.getCommandSet("core")
        core.insertHTMLBefore("#add_new_category_" + content_id, content)

        msg = _(u"category ${title} was added.", default="Category ${title} was added.", mapping={u"title": title})
        self.getCommandSet("plone").issuePortalMessage(
            translate(msg, context=self.request), translate(_(u"Info"), default="Info", context=self.request)
        )

        ksszopen = self.getCommandSet("zopen")
        ksszopen.clear(core.getSelector("css", "#new_category_input_" + content_id))

        return self.render()
Пример #39
0
    def trackItem(self, is_todolist=True):
        context = self.context.aq_inner
        hours = 0
        timelogs = [
            t for t in context.getRelatedItems() if t.portal_type == 'TimeLog'
        ]
        for timelog in timelogs:
            hours += timelog.getHours()

        if is_todolist == True:
            macro = macros_todo.macros['trackitem']
        else:
            macro = macros_todo.macros['trackitemmore']
        content = self.header_macros(the_macro=macro,
                                     item=context,
                                     hours=hours)
        #if self.request.get('HTTP_USER_AGENT', '').find('MSIE') != -1:
        #    content = content.strip().replace('<', '&lt;').replace('>', '&gt;')
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        # hide
        itemtext = ksscore.getSelector('parentnodecss',
                                       'div.kssDeletionRegion|.itemtext')
        ksscore.toggleClass(itemtext, 'hideme')

        wrapper = ksscore.getSelector('parentnodecss',
                                      'div.kssDeletionRegion|.TGcomplete')
        ksscore.toggleClass(wrapper, 'hideme')

        wrapper = ksscore.getSelector('parentnodecss',
                                      'div.kssDeletionRegion|.TGactivate')
        ksscore.toggleClass(wrapper, 'hideme')

        if is_todolist == True:
            formwrapper = ksscore.getSelector(
                'parentnodecss', 'div.kssDeletionRegion|div.edititemwrapper')
        else:
            formwrapper = ksscore.getSelector(
                'parentnodecss',
                'div.kssDeletionRegion|div.edititemwrappertracker')
        ksscore.replaceInnerHTML(formwrapper, content)

        ksscore.focus(
            ksscore.getSelector('parentnodecss',
                                'div.kssDeletionRegion|.hourInput'))
        return self.render()
Пример #40
0
    def TimeToSave(self, fieldname):

        instance = self.context.aq_inner
        field = instance.getField(fieldname)
        form = self.request.form
        value, kwargs = field.widget.process_form(instance, field, form)
        error = field.validate(value, instance, {})
        if not error and field.writeable(instance):
            setField = field.getMutator(instance)
            setField(value, **kwargs)

            ksscore = self.getCommandSet('core')
            content = translate(_(u'auto_save', default='Auto Save success.'), context=self.request)
            content = force_unicode(content, 'utf')
            ksscore.replaceInnerHTML('.SectionHeader .TimeToView', content)

        return self.render()
Пример #41
0
    def changeCategory(self, value):
        fileObj = self.context.aq_inner
        category = fileObj.aq_parent
        filerepos = category.aq_parent
        if category.getId() != value:
            cat_m = ICategoryManager(filerepos)
            fileObj = cat_m.setContentCategory(fileObj, value)

            the_macro = self.filerepos_listing.macros["fileitem"]
            wtool = getToolByName(self.context, "portal_workflow")
            review_state = wtool.getInfoFor(fileObj, "review_state", "")
            content = self.header_macros(the_macro=the_macro, obj=fileObj, review_state=review_state, canEdit=1)
            content = force_unicode(content, "utf")

            ksscore = self.getCommandSet("core")
            file_id = "#file_%s" % fileObj.UID()
            ksscore.replaceHTML(file_id, content)
Пример #42
0
    def listCreateTeam(self, title, description='', is_template_setting=False):
        tm = ITeamManager(self.context)
        content_url = tm.getContentInfo()[1]
        content_id = tm.getContentInfo()[0]
        if title=='': 
            self.getCommandSet('plone').issuePortalMessage(
                    translate(_(u'please_enter_team_title.'),
                                default="Please enter team title.", context=self.request),
                    translate(_(u'Error'), default="Error", context=self.request))
            return self.render()
        result = self._createTeam(title, description)
        if result == None:
            msg = _(u'team_${title}_was_existed.', 
                      default='Team ${title} was existed.', mapping={u'title' : title})
            self.getCommandSet('plone').issuePortalMessage(
                    translate(msg, context=self.request),
                    translate(_(u'Error'), default="Error", context=self.request))
            return self.render()
        else:
            id,title, description = result 
        the_macro = list_template.macros['teamitem']
        content = self.header_macros(the_macro=the_macro,
                        here_url = content_url,
                        team_del = 1,
                        team_cur = 0,
                        team_title = title,
                        team_id  = id,
                        team_description = description,
                        is_template_setting = is_template_setting=='True')
        # Always encoded as utf-8
        content = force_unicode(content, 'utf')

        core = self.getCommandSet('core')
        core.insertHTMLBefore('#add_new_team-'+content_id, content)

        msg = _(u'team_${title}_was_added.', default="Team ${title} was added.", mapping={u'title' : title})
        self.getCommandSet('plone').issuePortalMessage(
                translate(msg, context=self.request),
                translate(_(u'Info'), default="Info", context=self.request))
        
        ksszopen=self.getCommandSet('zopen')
        ksszopen.clear(core.getSelector('css', '#new_team_input-'+content_id))
        ksszopen.clear(core.getSelector('css', '#textarea-'+content_id))
        core.addClass(core.getSelector('css', '.submit_add'), 'hideme')

        return self.render()
Пример #43
0
 def addPrivilege(self, value, role, subpath=""):
     obj = self.getOriginalObject(subpath)
     addroles = [role]
     roles = self.getRoles()
     obj.manage_addLocalRoles(value, addroles)
     obj.reindexObjectSecurity()
     the_macro = privilege_template.macros['privilegeItem']
     item = self.listPrivilege(subpath)[1][roles.index(role)]
     content = self.header_macros(the_macro=the_macro, \
                                 item=item,
                                 roles=roles,
                                 role=role,
                                 obj_url=subpath,
                                 canCustomPermission=self.canCustomPermission())
     content = force_unicode(content, 'utf-8')
     ksscore = self.getCommandSet('core')
     selector = ksscore.getSelector('parentnode', '.privilegeItem')
     ksscore.replaceHTML(selector, content)
 def addPrivilege(self, value, role, subpath=""):
     obj = self.getOriginalObject(subpath)
     addroles = [role]
     roles = self.getRoles()
     obj.manage_addLocalRoles(value, addroles)
     obj.reindexObjectSecurity()
     the_macro = privilege_template.macros['privilegeItem']
     item = self.listPrivilege(subpath)[1][roles.index(role)]
     content = self.header_macros(the_macro=the_macro, \
                                 item=item,
                                 roles=roles,
                                 role=role,
                                 obj_url=subpath,
                                 canCustomPermission=self.canCustomPermission())
     content = force_unicode(content, 'utf-8')
     ksscore = self.getCommandSet('core')
     selector = ksscore.getSelector('parentnode', '.privilegeItem')
     ksscore.replaceHTML(selector, content)
Пример #45
0
    def tagForProjects(self, tag):

        portal_url = getToolByName(self.context, 'portal_url')
        path = portal_url.getPortalPath()
        portal_catalog = getToolByName(self.context, 'portal_catalog')

        projects = portal_catalog(Subject=[tag],
                                  path=path,
                                  portal_type='Project')

        content_tag_html = ''
        project_name = translate(_(u'Project', default="Project"),
                                 context=self.request)

        # <span class="event_type"><span>项目</span><a href="project_url">项目标题</a></span>
        if len(projects) == 1:
            content = translate(_(
                u'contain_tag_project_no',
                default=
                "<div class=\"tag_for_projects\"><p><a href=\"#\" style=\"float:right\" class=\"admin close_tag_for\">Close</a>No project by this tag.</p></div>",
                mapping={u'tag': tag}),
                                context=self.request)
        else:
            for p in projects:
                if p.getId != self.context.getId():
                    content_tag_html += "<span class=\"event_type\"><span>%s</span><a target=\"_blank\" href=\"%s\">%s</a></span> " % (
                        project_name, p.getURL(), p.pretty_title_or_id())

                    content_top = translate(_(
                        u'contain_tag_project',
                        default=
                        "<a href=\"#\" style=\"float:right\" class=\"admin close_tag_for\">Close</a>Contain \"${tag}\" of the projects: ",
                        mapping={u'tag': tag}),
                                            context=self.request)
                    content = '<div class="tag_for_projects"><p>%s</p>%s</div>' % (
                        content_top, content_tag_html)

        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        selector = ksscore.getSelector('css', '#tag_for_projects')
        ksscore.replaceInnerHTML(selector, content)

        return self.render()
Пример #46
0
    def saveItem(self, title='', responsibleParty='', notify=False,\
           subject='', endDate='', year='', month='', day='', createmilestone=False, is_template=False):

        ksscore = self.getCommandSet('core')
        endDate = self.getDate(endDate, year, month, day)

        if endDate == 'Error':
            error = translate(_(
                u'deadline_error',
                default='Deadline is invalid, please correct.'),
                              context=self.request)
            error = error.decode('utf', 'replace')
            ksscore.replaceInnerHTML(
                ksscore.getSelector('parentnodecss', '.edititem|.errmsg'),
                error)
            ksscore.addClass(
                ksscore.getSelector('parentnodecss', '.edititem|.errmsg'),
                'error')
            ksscore.toggleClass(
                ksscore.getSelector('parentnodecss', '.edititem|.submit'),
                'hideme')
            return self.render()
        else:
            ksscore.replaceInnerHTML(
                ksscore.getSelector('parentnodecss', '.edititem|.errmsg'), '')
            ksscore.removeClass(
                ksscore.getSelector('parentnodecss', '.edititem|.errmsg'),
                'error')


        context = self._saveItem(title, responsibleParty, notify,\
                subject, endDate, year, month, day, createmilestone, is_template)

        macro = macros_todo.macros['active']
        content = self.header_macros(the_macro=macro,
                                     item=context,
                                     is_template=is_template == 'True')
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        ksscore.replaceHTML('#item_' + context.getId(), content)

        self.getCommandSet('todo').sortTodoItems()
        return self.render()
Пример #47
0
    def listCreateCategory(self, title, is_template_setting=False):
        cm = ICategoryManager(self.context)
        content_url = cm.getContentInfo()[1]
        content_id = cm.getContentInfo()[0]
        if title=='': 
            self.getCommandSet('plone').issuePortalMessage(
                    translate(_(u'please enter category title.'),
                                default="Please enter category title.", context=self.request),
                    translate(_(u'Error'), default="Error", context=self.request))
            return self.render()
        result = self._createCategory(title)
        if result == None:
            msg = _(u'category ${title} was existed.', 
                      default='Category ${title} was existed.', mapping={u'title' : title})
            self.getCommandSet('plone').issuePortalMessage(
                    translate(msg, context=self.request),
                    translate(_(u'Error'), default="Error", context=self.request))
            return self.render()
        else:
            id,title = result 
        the_macro = list_template.macros['categoryitem']
        content = self.header_macros(the_macro=the_macro,
                        here_url = content_url,
                        cat_del = 1,
                        cat_cur = 0,
                        cat_title = title,
                        cat_id   = id,
                        is_template_setting = is_template_setting=='True')
        # Always encoded as utf-8
        content = force_unicode(content, 'utf')

        core = self.getCommandSet('core')
        core.insertHTMLBefore('#add_new_category_'+content_id, content)

        msg = _(u'category ${title} was added.', default="Category ${title} was added.", mapping={u'title' : title})
        self.getCommandSet('plone').issuePortalMessage(
                translate(msg, context=self.request),
                translate(_(u'Info'), default="Info", context=self.request))
        
        ksszopen=self.getCommandSet('zopen')
        ksszopen.clear(core.getSelector('css', '#new_category_input_'+content_id))

        return self.render()
Пример #48
0
    def response1(self,
                  value='default value',
                  imagefield=None,
                  textimagefield=None):

        # build HTML
        value = force_unicode(value, 'utf')
        #value = fieldname
        #value = value + 'and templadeId is ' + str(templateId) + ' and macro is ' + str(macro) + ' and uid is ' + str(uid) + ' and target is: ' + str(target) + ' and edit is ' + str(edit) + ' and value is ' + value
        date = str(datetime.now())

        val = 'Value is:' + str(value) + ' imagefield is ' + str(
            imagefield) + ' textimagefield is ' + str(textimagefield)
        txt = '<span>value=<b>"%s"</b>' % (val, )
        #content = content % (mymessage, date)

        # KSS specific calls
        ksscore = self.getCommandSet('core')
        zopecommands = self.getCommandSet('zope')
        plonecommands = self.getCommandSet('plone')
        ksscore.replaceInnerHTML('#portal-siteactions', txt)

        instance = aq_inner(self.context)
        if (value == 'no value'):
            value = 'none'
        if (value == 'image'):
            ksscore.setStyle(ksscore.getHtmlIdSelector(textimagefield),
                             'display', 'none')
            ksscore.setStyle(ksscore.getHtmlIdSelector(imagefield), 'display',
                             'block')
        elif (value == 'none'):
            ksscore.setStyle(ksscore.getHtmlIdSelector(textimagefield),
                             'display', 'none')
            ksscore.setStyle(ksscore.getHtmlIdSelector(imagefield), 'display',
                             'none')
        else:
            ksscore.setStyle(ksscore.getHtmlIdSelector(textimagefield),
                             'display', 'block')
            ksscore.setStyle(ksscore.getHtmlIdSelector(imagefield), 'display',
                             'none')

        return self.render()
Пример #49
0
    def add_new_company(self, company_name):
        portal = getToolByName(self.context, 'portal_url').getPortalObject()
        basecamp_org = IOrgInstance(portal)
        c = basecamp_org.createCompany(company_name)

        core = self.getCommandSet('core')
        ksszopen = self.getCommandSet('zopen')
        ksszopen.clear(core.getSelector('css', '.add-new-company-name'))
        self._insert_company(c.getId())

        selector = core.getSelector('css', '.selectCompanyArea')
        content = "<select name=\"select-add-company-name\" class=\"selectCompanyArea\">"
        for c in self.get_available_companies():
            content += "<option value='" + c.getId() +"'>" + \
                        c.pretty_title_or_id() + "</option>"

        content += "</select>"
        content = force_unicode(content, 'utf-8')

        core.replaceHTML(selector, content)
Пример #50
0
class TeamKssView(PloneKSSView, TeamView):
    def macroContent(self, macropath, **kw):
        'Renders a macro and returns its text'
        path = macropath.split('/')
        if len(path) < 2 or path[-2] != 'macros':
            raise RuntimeError, 'Path must end with macros/name_of_macro (%s)' % (
                repr(macropath), )
        # needs string, do not tolerate unicode (causes but at traverse)
        try:
            the_macro = self.context.unrestrictedTraverse(macropath)
        except AttributeError, IndexError:
            raise RuntimeError, 'Macro not found'
        #
        # put parameters on the request, by saving the original context
        self.request.form, orig_form = kw, self.request.form
        content = self.header_macros(the_macro=the_macro, **kw)
        self.request.form = orig_form
        # Always encoded as utf-8
        content = force_unicode(content, 'utf-8')
        return content
Пример #51
0
    def issuePortalMessage(self, message, msgtype='info', position='portal'):
        """ position: portal, contentbar """
        if not message:
            return

        ksscore = self.getCommandSet('core')

        selector = ksscore.getHtmlIdSelector('%s-message' % position)
        msgtype_str = {
            'info': '信息',
            'error': '错误',
            'warning': '注意'
        }.get(msgtype, msgtype)
        html = '<dl class="portalMessage %s"><dt>%s</dt><dd>%s</dd></dl>' % (
            msgtype, msgtype_str, message)
        html = force_unicode(html, 'utf')
        ksscore.replaceInnerHTML(selector, html)

        ksscore.addClass(ksscore.getSelector('htmlid', 'kss-spinner'),
                         'hidden')
Пример #52
0
    def changeCategory(self, value):
        fileObj = self.context.aq_inner
        category = fileObj.aq_parent
        filerepos = category.aq_parent
        if category.getId() != value:
            cat_m = ICategoryManager(filerepos)
            fileObj = cat_m.setContentCategory(fileObj, value)

            the_macro = self.filerepos_listing.macros['fileitem']
            wtool = getToolByName(self.context, 'portal_workflow')
            review_state = wtool.getInfoFor(fileObj, 'review_state', '')
            content = self.header_macros(the_macro=the_macro,
                                         obj=fileObj,
                                         review_state=review_state,
                                         canEdit=1)
            content = force_unicode(content, 'utf')

            ksscore = self.getCommandSet('core')
            file_id = '#file_%s' % fileObj.UID()
            ksscore.replaceHTML(file_id, content)
Пример #53
0
    def delTag(self, tag): 

        tags = self.context.Subject()
        tags = list(tags)
        if tag:
            tags.remove(tag)
            self.context.setSubject(tuple(tags))

        tag_html = ''
        for i in self.context.Subject():
            tag_html += "<a href=\"#\" class=\"tag_for\">%s</a> " % (i)

        content = "<span id=\"current_project_tags\" class=\"hideme TGtags EVtags\">%s</span>"%(tag_html) 
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        selector = ksscore.getSelector('css', '#current_project_tags') 
        ksscore.replaceHTML(selector, content)

        return self.render()
Пример #54
0
    def getTeamSelect(self, team_id):
        teams = self.getAvailableTeams()
        teamsids = [team.getId() for team in teams]
        ksscore = self.getCommandSet('core')
        selector = ksscore.getSelector('samenode', '')
        content = "<select class=\"selectarea\" style=\"display: inline;\">"
        for team in teams:
            if team.getId() == team_id:
                content += "<option value=\"" + team.getId() + \
                           "\"  selected=\"selected\">" + team.pretty_title_or_id() + \
                            "</option>"
            else:
                content += "<option value=\"" + team.getId() + \
                           "\">" + team.pretty_title_or_id() + \
                            "</option>"

        content += "</select>"
        content = force_unicode(content, 'utf-8')
        ksscore.insertHTMLAfter(selector, content)
        selectarea = ksscore.getSelector('css', '.selectarea')
        ksscore.focus(selectarea)
Пример #55
0
    def select_add_company(self, company_name):
        self._insert_company(company_name)

        core = self.getCommandSet('core')
        if len(self.get_available_companies()) == 1:
            selector = core.getSelector('css', '.ChooseCompany')
            core.toggleClass(selector, classname="hideme")
        else:
            selector = core.getSelector('css', '.selectCompanyArea')
            content = "<select name=\"select-add-company-name\"  \
                             class=\"selectCompanyArea\""

            for c in self.get_available_companies():
                if c.getId() == company_name:
                    continue
                content += "<option value='" + c.getId() +"'>" + \
                            c.pretty_title_or_id() + "</option>"

            content += "</select>"
            content = force_unicode(content, 'utf-8')
            core.replaceHTML(selector, content)
Пример #56
0
    def activeTodoItem(self):
        listid = self.context.aq_inner.aq_parent.getId()
        ksscore = self.getCommandSet('core')

        wftool = getToolByName(self.context, 'portal_workflow')
        # self.context.setDescription(self.context.aq_inner.aq_parent.Title())
        wftool.doActionFor(self.context, 'activate')

        ksscore.deleteNode(ksscore.getParentNodeSelector(".kssDeletionRegion"))

        macro = macros_todo.macros['active']
        content = self.header_macros(the_macro=macro, item=self.context)
        content = force_unicode(content, 'utf')
        ksscore.insertHTMLAsLastChild('#active_' + listid, content)

        self.getCommandSet('todo').sortTodoItems()

        effects = self.getCommandSet('effects')
        selector = '#item_%s' % self.context.getId()
        #effects.effect(selector, 'highlight')
        return self.render()
Пример #57
0
    def addComment(self, text):
        core = self.getCommandSet('core')
        core.toggleClass('.waitIndicator', 'hideme')
        if not text.strip():
            return self.render()

        comment = self._addComment(text)
        the_macro = comments_template.macros['post']
        content = self.header_macros(the_macro=the_macro, comment=comment)
        # Always encoded as utf-8
        content = force_unicode(content, 'utf')

        core.insertHTMLBefore("#your_comment", content)
        ksszopen=self.getCommandSet('zopen')
        ksszopen.clear('#commentBody')

        cm = ICommentsManager(self.context)
        count = str(len(cm.getComments()))
        core.replaceInnerHTML('#comments_count span', count)

        return self.render()
Пример #58
0
    def delTag(self, tag):

        tags = self.context.Subject()
        tags = list(tags)
        if tag:
            tags.remove(tag)
            self.context.setSubject(tuple(tags))

        tag_html = ''
        for i in self.context.Subject():
            tag_html += "<a href=\"#\" class=\"tag_for\">%s</a> " % (i)

        content = "<span id=\"current_project_tags\" class=\"hideme TGtags EVtags\">%s</span>" % (
            tag_html)
        content = force_unicode(content, 'utf')

        ksscore = self.getCommandSet('core')
        selector = ksscore.getSelector('css', '#current_project_tags')
        ksscore.replaceHTML(selector, content)

        return self.render()