Wiki source code of ProjectsSheet
Version 1.1 by Zenna Elfen on 2025/11/20 20:47
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | {{velocity}} | ||
| 2 | #set ($object = $doc.getObject('Projects.Code.ProjectsClass')) | ||
| 3 | #if (!$object) | ||
| 4 | #set ($messageKey = 'projects.sheet.description') | ||
| 5 | #set ($messageType = 'info') | ||
| 6 | #if ($doc.documentReference.name != 'ProjectsSheet') | ||
| 7 | #set ($messageKey = 'projects.sheet.noObject') | ||
| 8 | #set ($messageType = 'warning') | ||
| 9 | #end | ||
| 10 | {{$messageType}} | ||
| 11 | $services.localization.render($messageKey) | ||
| 12 | {{/$messageType}} | ||
| 13 | #stop | ||
| 14 | #end | ||
| 15 | #set ($discard = $xwiki.jsfx.use('uicomponents/edit/editableProperty.js', { | ||
| 16 | 'forceSkinAction': true, | ||
| 17 | 'language': $xcontext.locale | ||
| 18 | })) | ||
| 19 | #set ($discard = $doc.use($object)) | ||
| 20 | #set ($editing = $xcontext.action == 'edit') | ||
| 21 | {{html wiki="true" clean="false"}} | ||
| 22 | <div class="xform"> | ||
| 23 | <dl> | ||
| 24 | <dt #if (!$editing && $hasEdit) | ||
| 25 | class="editableProperty" | ||
| 26 | data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('shortText1')))" | ||
| 27 | data-property-type="object"#end> | ||
| 28 | <label#if ($editing) for="Projects.Code.ProjectsClass_0_shortText1"#end> | ||
| 29 | $escapetool.xml($doc.displayPrettyName('shortText1', false, false)) | ||
| 30 | </label> | ||
| 31 | <span class="xHint"> | ||
| 32 | $escapetool.xml($services.localization.render('What''s the name of the project?')) | ||
| 33 | </span> | ||
| 34 | </dt> | ||
| 35 | <dd>$doc.display('shortText1')</dd> | ||
| 36 | <dt #if (!$editing && $hasEdit) | ||
| 37 | class="editableProperty" | ||
| 38 | data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('shortText2')))" | ||
| 39 | data-property-type="object"#end> | ||
| 40 | <label#if ($editing) for="Projects.Code.ProjectsClass_0_shortText2"#end> | ||
| 41 | $escapetool.xml($doc.displayPrettyName('shortText2', false, false)) | ||
| 42 | </label> | ||
| 43 | <span class="xHint"> | ||
| 44 | $escapetool.xml($services.localization.render('What''s the projects website?')) | ||
| 45 | </span> | ||
| 46 | </dt> | ||
| 47 | <dd>$doc.display('shortText2')</dd> | ||
| 48 | <dt #if (!$editing && $hasEdit) | ||
| 49 | class="editableProperty" | ||
| 50 | data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('application')))" | ||
| 51 | data-property-type="object"#end> | ||
| 52 | <label#if ($editing) for="Projects.Code.ProjectsClass_0_application"#end> | ||
| 53 | $escapetool.xml($doc.displayPrettyName('application', false, false)) | ||
| 54 | </label> | ||
| 55 | </dt> | ||
| 56 | <dd>$doc.display('application')</dd> | ||
| 57 | <dt #if (!$editing && $hasEdit) | ||
| 58 | class="editableProperty" | ||
| 59 | data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('shortText3')))" | ||
| 60 | data-property-type="object"#end> | ||
| 61 | <label#if ($editing) for="Projects.Code.ProjectsClass_0_shortText3"#end> | ||
| 62 | $escapetool.xml($doc.displayPrettyName('shortText3', false, false)) | ||
| 63 | </label> | ||
| 64 | <span class="xHint"> | ||
| 65 | $escapetool.xml($services.localization.render('What''s the name of the application(s)?')) | ||
| 66 | </span> | ||
| 67 | </dt> | ||
| 68 | <dd>$doc.display('shortText3')</dd> | ||
| 69 | <dt #if (!$editing && $hasEdit) | ||
| 70 | class="editableProperty" | ||
| 71 | data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('shortText4')))" | ||
| 72 | data-property-type="object"#end> | ||
| 73 | <label#if ($editing) for="Projects.Code.ProjectsClass_0_shortText4"#end> | ||
| 74 | $escapetool.xml($doc.displayPrettyName('shortText4', false, false)) | ||
| 75 | </label> | ||
| 76 | <span class="xHint"> | ||
| 77 | $escapetool.xml($services.localization.render('What''s the website(s) for the application(s)?')) | ||
| 78 | </span> | ||
| 79 | </dt> | ||
| 80 | <dd>$doc.display('shortText4')</dd> | ||
| 81 | <dt #if (!$editing && $hasEdit) | ||
| 82 | class="editableProperty" | ||
| 83 | data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('data_synchronization')))" | ||
| 84 | data-property-type="object"#end> | ||
| 85 | <label#if ($editing) for="Projects.Code.ProjectsClass_0_data_synchronization"#end> | ||
| 86 | $escapetool.xml($doc.displayPrettyName('data_synchronization', false, false)) | ||
| 87 | </label> | ||
| 88 | <span class="xHint"> | ||
| 89 | $escapetool.xml($services.localization.render('Synchronization answers how updates flow between peers and how they determine what data to exchange. This layer is about diffing, reconciliation, order, causality tracking, and efficient exchange, not persistence or user-facing collaboration semantics. Examples: Range-Based Set Reconciliation, RIBLT, Gossip-based sync, State-based vs op-based sync, Lamport/Vector/HLC clocks, Braid Protocol')) | ||
| 90 | </span> | ||
| 91 | </dt> | ||
| 92 | <dd>$doc.display('data_synchronization')</dd> | ||
| 93 | <dt #if (!$editing && $hasEdit) | ||
| 94 | class="editableProperty" | ||
| 95 | data-property="$escapetool.xml($services.model.serialize($object.getPropertyReference('longText1')))" | ||
| 96 | data-property-type="object"#end> | ||
| 97 | <label#if ($editing) for="Projects.Code.ProjectsClass_0_longText1"#end> | ||
| 98 | $escapetool.xml($doc.displayPrettyName('longText1', false, false)) | ||
| 99 | </label> | ||
| 100 | <span class="xHint"> | ||
| 101 | $escapetool.xml($services.localization.render('How do peers detect differences and synchronize state?')) | ||
| 102 | </span> | ||
| 103 | </dt> | ||
| 104 | <dd>$doc.display('longText1')</dd> | ||
| 105 | </dl> | ||
| 106 | </div> | ||
| 107 | {{/html}} | ||
| 108 | {{/velocity}} |