General Actions:
Log-in
Register
Wiki:
Main wiki
▼
:
Document Index
»
Space:
AppWithinMinutes
▼
:
Document Index
»
Page:
LiveTableEditSheet
Search
default
Page Actions:
Export
▼
:
Export as PDF
Export as RTF
Export as HTML
More actions
▼
:
Print preview
View Source
Main wiki
»
App Within Minutes
»
LiveTable Class
»
LiveTable Edit Sheet
Wiki source code of
LiveTable Edit Sheet
Last modified by
Administrator
on 2012/03/21 17:41
Content
·
Comments
(0)
·
Annotations
(0)
·
Attachments
(0)
·
History
·
Information
Hide line numbers
1: {{velocity output="false"}} 2: #macro(listAvailableColumns) 3: {{html}} 4: <select id="availableColumns"> 5: #set($className = "$!liveTableObj.getProperty('class').value") 6: #set($classFields = $xwiki.getDocument($className).getxWikiClass().properties) 7: #if($classFields.size() > 0) 8: <optgroup label="$escapetool.xml($msg.get('platform.appwithinminutes.liveTableEditorClassFieldColumnGroupLabel'))" id="classFields"> 9: #foreach($field in $classFields) 10: <option value="$field.name">$escapetool.xml($field.prettyName)</option> 11: #end 12: </optgroup> 13: #end 14: <optgroup label="$escapetool.xml($msg.get('platform.appwithinminutes.liveTableEditorGenericColumnGroupLabel'))"> 15: #foreach($entry in $genericColumns.entrySet()) 16: <option value="$entry.key" title="$escapetool.xml($entry.value.get(1))">$escapetool.xml($entry.value.get(0))</option> 17: #end 18: </optgroup> 19: </select> 20: {{/html}} 21: #end 22: 23: #macro(displayHelpPanel) 24: #set($genericColumns = { 25: 'doc.title': [$msg.get('platform.appwithinminutes.liveTableEditorDocTitleColumnName'), $msg.get('platform.appwithinminutes.liveTableEditorDocTitleColumnDescription')], 26: 'doc.name': [$msg.get('platform.appwithinminutes.liveTableEditorDocNameColumnName'), $msg.get('platform.appwithinminutes.liveTableEditorDocNameColumnDescription')], 27: 'doc.author': [$msg.get('platform.appwithinminutes.liveTableEditorDocAuthorColumnName'), $msg.get('platform.appwithinminutes.liveTableEditorDocAuthorColumnDescription')], 28: 'doc.creator': [$msg.get('platform.appwithinminutes.liveTableEditorDocCreatorColumnName'), $msg.get('platform.appwithinminutes.liveTableEditorDocCreatorColumnDescription')], 29: 'doc.date': [$msg.get('platform.appwithinminutes.liveTableEditorDocDateColumnName'), $msg.get('platform.appwithinminutes.liveTableEditorDocDateColumnDescription')], 30: 'doc.creationDate': [$msg.get('platform.appwithinminutes.liveTableEditorDocCreationDateColumnName'), $msg.get('platform.appwithinminutes.liveTableEditorDocCreationDateColumnDescription')], 31: '_actions': [$msg.get('platform.appwithinminutes.liveTableEditorActionsColumnName'), $msg.get('platform.appwithinminutes.liveTableEditorActionsColumnDescription')], 32: '_attachments': [$msg.get('platform.appwithinminutes.liveTableEditorAttachmentsColumnName'), $msg.get('platform.appwithinminutes.liveTableEditorAttachmentsColumnDescription')], 33: '_images': [$msg.get('platform.appwithinminutes.liveTableEditorImagesColumnName'), $msg.get('platform.appwithinminutes.liveTableEditorImagesColumnDescription')] 34: }) 35: (% class="wizard-help" %) 36: ((( 37: **$msg.get('platform.appwithinminutes.liveTableEditorHelpTitle')** $msg.get('platform.appwithinminutes.liveTableEditorHelpDescription') 38: 39: #foreach($columnId in ['doc.name', 'doc.date', 'doc.author', '_actions']) 40: ; {{{$genericColumns.get($columnId).get(0)}}} 41: : {{{$genericColumns.get($columnId).get(1)}}} 42: #end 43: ))) 44: #end 45: 46: #macro(displayFormFields) 47: {{html wiki="true"}} 48: (% class="hidden" %) 49: ((( 50: ## Make sure that only the sheet content is rendered when the class is saved using AJAX. 51: <input type="hidden" name="xpage" value="plain" /> 52: ## We prevent the class name from being edited directly. The class name can be specified in the URL. 53: $doc.display('class', 'hidden') 54: ## We have to pass the list of available columns to the JavaScript code. 55: #listAvailableColumns() 56: ))) 57: ; <label for="AppWithinMinutes.LiveTableClass_0_description">$doc.displayPrettyName('description', false, false)</label>## 58: (% class="xHint" %)$msg.get('platform.appwithinminutes.liveTableEditorDescriptionHint') 59: : $doc.display('description') 60: ; <label for="AppWithinMinutes.LiveTableClass_0_columns">$doc.displayPrettyName('columns', false, false)</label>## 61: (% class="xHint" %)$msg.get('platform.appwithinminutes.liveTableEditorColumnsHint') 62: : $doc.display('columns') 63: {{/html}} 64: #end 65: 66: #macro(doEdit) 67: #set($liveTableObj = $doc.getObject('AppWithinMinutes.LiveTableClass', true)) 68: #set($discard = $doc.use($liveTableObj)) 69: #set($discard = $xwiki.jsfx.use('js/scriptaculous/dragdrop.js')) 70: #set($discard = $xwiki.ssx.use('AppWithinMinutes.LiveTableEditSheet')) 71: #set($discard = $xwiki.jsx.use('AppWithinMinutes.LiveTableEditSheet')) 72: #if("$!request.wizard" == 'true') 73: #appWizardHeader(3) 74: 75: #end 76: #displayHelpPanel() 77: (% class="form-body" %) 78: ((( 79: #displayFormFields() 80: #if("$!request.wizard" == 'true') 81: 82: #appWizardFooter(3) 83: #end 84: ))) 85: {{html}}<div class="clearfloats"></div>{{/html}} 86: #end 87: 88: #macro(updateAndSaveLiveTable) 89: #set($discard = $doc.updateObjectFromRequest('AppWithinMinutes.LiveTableClass')) 90: #set($liveTableGeneratorDoc = $xwiki.getDocument('AppWithinMinutes.LiveTableGenerator')) 91: #set($discard = $doc.setContent($doc.getRenderedContent($liveTableGeneratorDoc.content, $liveTableGeneratorDoc.syntax.toIdString(), 'plain/1.0'))) 92: #set($minorEdit = "$!request.minorEdit" != '') 93: #set($comment = $request.comment) 94: #if("$!comment" == '') 95: #set($comment = $msg.get('platform.appwithinminutes.liveTableEditorSaveComment')) 96: #end 97: #set($discard = $doc.save($comment, $minorEdit)) 98: #end 99: 100: #macro(doSave) 101: #updateAndSaveLiveTable() 102: #if($action == 'save') 103: #if($errorMessage) 104: {{error}}{{html}}$errorMessage{{/html}}{{/error}} 105: #else 106: ## Redirect to view mode. 107: $response.sendRedirect($doc.getURL()) 108: #end 109: #else 110: #if($errorMessage) 111: $response.sendError(400, $errorMessage) 112: #else 113: $response.setStatus(204) 114: #end 115: #end 116: #end 117: {{/velocity}} 118: 119: {{velocity}} 120: #if("$!request.wizard" == 'true') 121: {{include document="AppWithinMinutes.WizardStep" /}} 122: #end 123: {{/velocity}} 124: 125: {{velocity}} 126: ## Determine the action button that triggered the request 127: #set($action = $context.action) 128: #foreach($paramName in $request.getParameterMap().keySet()) 129: #if($paramName.startsWith('xaction_')) 130: #set($action = $paramName.substring(8)) 131: #break 132: #end 133: #end 134: #if($action == 'edit') 135: #doEdit() 136: #elseif($action == 'save' || $action == 'saveandcontinue') 137: #if($services.csrf.isTokenValid($request.form_token)) 138: #doSave() 139: #else 140: $response.sendRedirect($services.csrf.getResubmissionURL()); 141: #end 142: #end 143: {{/velocity}}