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)
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
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
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()
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()
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('<', '<').replace('>', '>') 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)
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)
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()
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('<', '<').replace('>', '>') 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()
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()
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('<', '<').replace('>', '>') 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()
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)
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()
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()
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()
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))
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()
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()
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()
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()
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()
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()
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()
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()
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
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()
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)
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('<', '<').replace('>', '>') content = force_unicode(content, 'utf') ksscore = self.getCommandSet('core') selector = ksscore.getSelector('parentnodecss', '.Milestone|.edititemwrapper') ksscore.replaceInnerHTML(selector, content) return self.render()
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
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')
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)
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()
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()
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()
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()
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('<', '<').replace('>', '>') 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()
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()
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)
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()
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 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()
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()
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()
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()
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)
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
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')
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)
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()
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)
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)
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()
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()
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()