Wiki source code of ProjectsSheet

Version 1.1 by Zenna Elfen on 2025/11/20 20:47

Show last authors
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}}