provide simple object info page (as modal dialog)
git-svn-id: svn://svn.cy55.de/Zope3/src/loops/trunk@2571 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									1d375d5a5f
								
							
						
					
					
						commit
						89745445e2
					
				
					 6 changed files with 55 additions and 30 deletions
				
			
		| 
						 | 
				
			
			@ -98,14 +98,16 @@ class DialogAction(Action):
 | 
			
		|||
actions.register('info', 'object', DialogAction,
 | 
			
		||||
        description=_(u'Information about this object.'),
 | 
			
		||||
        viewName='object_info.html',
 | 
			
		||||
        dialogName='object_info',
 | 
			
		||||
        #dialogName='object_info',
 | 
			
		||||
        dialogName='',
 | 
			
		||||
        icon='cybertools.icons/info.png',
 | 
			
		||||
        cssClass='icon-action',
 | 
			
		||||
        addParams=dict(version='this')
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
actions.register('external_edit', 'object', TargetAction,
 | 
			
		||||
        description=_(u'Edit with external editor.'),
 | 
			
		||||
        viewName='external_edit?version=this',
 | 
			
		||||
        viewName='external_edit',
 | 
			
		||||
        icon='edit.gif',
 | 
			
		||||
        cssClass='icon-action',
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -138,7 +138,7 @@
 | 
			
		|||
                  </td>
 | 
			
		||||
                </tal:version>
 | 
			
		||||
                <td style="text-align: right; white-space: nowrap">
 | 
			
		||||
                  <span tal:replace="related/context/sizeForDisplay">Type</span>
 | 
			
		||||
                  <span tal:replace="related/context/sizeForDisplay">2 MB</span>
 | 
			
		||||
                </td>
 | 
			
		||||
                <td><span tal:replace="related/modified">2007-03-30</span></td>
 | 
			
		||||
                <td><span tal:replace="related/creators">John</span></td>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										46
									
								
								browser/info.pt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								browser/info.pt
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,46 @@
 | 
			
		|||
<!-- object information -->
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<metal:info define-macro="object_info"
 | 
			
		||||
            tal:define="item nocall:view/item">
 | 
			
		||||
  <table class="object_info">
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td colspan="2"><h2 i18n:translate="">Object Information</h2><br /></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td><span i18n:translate="">Title</span>:</td>
 | 
			
		||||
      <td tal:content="item/title"></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td><span i18n:translate="">Description</span>:</td>
 | 
			
		||||
      <td tal:content="item/description"></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td><span i18n:translate="">Name</span>:</td>
 | 
			
		||||
      <td tal:content="item/context/__name__"></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td><span i18n:translate="">Type</span>:</td>
 | 
			
		||||
      <td tal:content="item/longTypeTitle"></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td><span i18n:translate="">Size</span>:</td>
 | 
			
		||||
      <td tal:content="item/context/sizeForDisplay"></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td><span i18n:translate="">modified</span>:</td>
 | 
			
		||||
      <td tal:content="item/modified"></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td><span i18n:translate="">Creators</span>:</td>
 | 
			
		||||
      <td tal:content="item/creators"></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
      <td colspan="2"><br />
 | 
			
		||||
        <input type="button" value="Close" onclick="closeDialog()"
 | 
			
		||||
               i18n:attributes="value" />
 | 
			
		||||
      </td>
 | 
			
		||||
    </tr>
 | 
			
		||||
  </table>
 | 
			
		||||
 | 
			
		||||
</metal:info>
 | 
			
		||||
| 
						 | 
				
			
			@ -105,14 +105,14 @@ function setConceptTypeForComboBox(typeId, cbId) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
var dialog;
 | 
			
		||||
var dialogName
 | 
			
		||||
var dialogName;
 | 
			
		||||
 | 
			
		||||
function objectDialog(dlgName, url) {
 | 
			
		||||
    dojo.require('dijit.Dialog');
 | 
			
		||||
    dojo.require('dojo.parser');
 | 
			
		||||
    dojo.require('dijit.form.FilteringSelect');
 | 
			
		||||
    dojo.require('dojox.data.QueryReadStore');
 | 
			
		||||
    if (dialogName == undefined || dialogName != dlgName) {
 | 
			
		||||
    if (dialogName == undefined || dialogName != dlgName || dialogName == '') {
 | 
			
		||||
        if (dialog != undefined) {
 | 
			
		||||
            dialog.destroyRecursive();
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,6 +64,7 @@ from loops.versioning.util import getVersion
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
node_macros = ViewPageTemplateFile('node_macros.pt')
 | 
			
		||||
info_macros = ViewPageTemplateFile('info.pt')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class NodeView(BaseView):
 | 
			
		||||
| 
						 | 
				
			
			@ -375,25 +376,6 @@ class NodeView(BaseView):
 | 
			
		|||
        if target is not None:
 | 
			
		||||
            return BaseView(target, self.request).url
 | 
			
		||||
 | 
			
		||||
    # states information
 | 
			
		||||
 | 
			
		||||
    @Lazy
 | 
			
		||||
    def xxx_states(self):
 | 
			
		||||
        result = []
 | 
			
		||||
        if not checkPermission('loops.ManageSite', self.context):
 | 
			
		||||
            # TODO: replace by more sensible permission
 | 
			
		||||
            return result
 | 
			
		||||
        target = self.virtualTargetObject
 | 
			
		||||
        #statesDefs = ['loops.classification_quality', 'loops.simple_publishing']
 | 
			
		||||
        if IResource.providedBy(target):
 | 
			
		||||
            statesDefs = self.globalOptions('organize.stateful.resource', ())
 | 
			
		||||
        else:
 | 
			
		||||
            statesDefs = ()
 | 
			
		||||
        for std in statesDefs:
 | 
			
		||||
            stf = component.getAdapter(target, IStateful, name=std)
 | 
			
		||||
            result.append(stf)
 | 
			
		||||
        return result
 | 
			
		||||
 | 
			
		||||
    # target viewing and editing support
 | 
			
		||||
 | 
			
		||||
    def getUrlForTarget(self, target):
 | 
			
		||||
| 
						 | 
				
			
			@ -489,7 +471,7 @@ class ObjectInfo(NodeView):
 | 
			
		|||
 | 
			
		||||
    @property
 | 
			
		||||
    def macro(self):
 | 
			
		||||
        return self.template.macros['object_info']
 | 
			
		||||
        return info_macros.macros['object_info']
 | 
			
		||||
 | 
			
		||||
    @Lazy
 | 
			
		||||
    def dialog_name(self):
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -218,11 +218,6 @@
 | 
			
		|||
 | 
			
		||||
<!-- inner HTML macros -->
 | 
			
		||||
 | 
			
		||||
<metal:info define-macro="object_info">
 | 
			
		||||
  <div>Object Information</div>
 | 
			
		||||
</metal:info>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<div metal:define-macro="inline_edit"
 | 
			
		||||
     class="content-1" id="1.body">
 | 
			
		||||
  <form action="." method="post" id="1.form">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue