book: layout section, with links to concepts and edit icons

This commit is contained in:
Helmut Merz 2012-08-06 10:43:52 +02:00
parent 96850f110c
commit 8fafa41809
3 changed files with 48 additions and 32 deletions

View file

@ -125,22 +125,18 @@ function setConceptTypeForComboBox(typeId, cbId) {
} }
var dialog; var dialog;
var dialogName;
function objectDialog(dlgName, url) { function objectDialog(dlgName, url) {
dojo.require('dijit.Dialog'); dojo.require('dijit.Dialog');
dojo.require('dojo.parser'); dojo.require('dojo.parser');
dojo.require('dijit.form.FilteringSelect'); dojo.require('dijit.form.FilteringSelect');
dojo.require('dojox.data.QueryReadStore'); dojo.require('dojox.data.QueryReadStore');
if (dialogName == undefined || dialogName != dlgName || dialogName == '') {
if (dialog != undefined) { if (dialog != undefined) {
dialog.destroyRecursive(); dialog.destroyRecursive();
} }
dialogName = dlgName;
dialog = new dijit.Dialog({ dialog = new dijit.Dialog({
href: url href: url
}, dojo.byId('dialog.' + dlgName)); }, dojo.byId('dialog.' + dlgName));
}
dialog.show(); dialog.show();
} }

View file

@ -62,13 +62,25 @@ class SectionView(Base, ConceptView):
if self.editable: if self.editable:
return 'index.html' return 'index.html'
@Lazy
def documentTypeType(self):
return self.conceptManager['documenttype']
@Lazy
def sectionType(self):
return self.conceptManager['section']
def getCssClassForResource(self, r): def getCssClassForResource(self, r):
documentType = self.conceptManager['documenttype']
for c in r.context.getConcepts([self.defaultPredicate]): for c in r.context.getConcepts([self.defaultPredicate]):
if c.conceptType == documentType: if c.conceptType == self.documentTypeType:
return getName(c) return getName(c)
return 'textelement' return 'textelement'
def getParentsForResource(self, r):
for c in r.context.getConcepts([self.defaultPredicate]):
if c.conceptType not in (self.documentTypeType, self.sectionType):
yield c
# layout parts - probably obsolete: # layout parts - probably obsolete:

View file

@ -4,6 +4,12 @@
<metal:section define-macro="section"> <metal:section define-macro="section">
<metal:info use-macro="view/concept_macros/concepttitle" /> <metal:info use-macro="view/concept_macros/concepttitle" />
<div tal:repeat="related item/resources"> <div tal:repeat="related item/resources">
<div class="span-4">
<div tal:attributes="class python:
item.getCssClassForResource(related)"
tal:content="structure related/render" />
</div>
<div class="span-2 last" style="padding-top: 0.4em">
<div class="object-actions" style="padding-top: 0" <div class="object-actions" style="padding-top: 0"
tal:define="url python:view.getUrlForTarget(related.context)" tal:define="url python:view.getUrlForTarget(related.context)"
tal:condition="related/editable"> tal:condition="related/editable">
@ -24,9 +30,11 @@
<img tal:attributes="src <img tal:attributes="src
string:$resourceBase/cybertools.icons/application_edit.png" /></a> string:$resourceBase/cybertools.icons/application_edit.png" /></a>
</div> </div>
<div tal:attributes="class python: <div tal:repeat="parent python:item.getParentsForResource(related)">
item.getCssClassForResource(related)" <a tal:content="parent/title"
tal:content="structure related/render" /> tal:attributes="href python:view.getUrlForTarget(parent)" />
</div>
</div>
</div> </div>
</metal:section> </metal:section>