r1272 - xwiki-sandbox/formeditor

Nebojsa Miletic mileticn at users.forge.objectweb.org
Mon Sep 4 04:31:31 CEST 2006


Author: mileticn
Date: 2006-09-04 04:31:28 +0200 (Mon, 04 Sep 2006)
New Revision: 1272

Added:
   xwiki-sandbox/formeditor/formEditor.vm
Log:
Added a file remotely

Added: xwiki-sandbox/formeditor/formEditor.vm
===================================================================
--- xwiki-sandbox/formeditor/formEditor.vm	2006-09-04 02:30:31 UTC (rev 1271)
+++ xwiki-sandbox/formeditor/formEditor.vm	2006-09-04 02:31:28 UTC (rev 1272)
@@ -0,0 +1,240 @@
+{pre}
+
+<script language="javascript" type="text/javascript" src="/xwiki/bin/download/Main/WebHome/prototype.js"></script>
+<script language="javascript" type="text/javascript" src="/xwiki/bin/download/Main/WebHome/scriptaculous.js"></script>
+<script language="javascript" type="text/javascript" src="/xwiki/bin/download/Main/WebHome/main.js"></script>
+<script language="javascript" type="text/javascript" src="/xwiki/bin/download/Main/WebHome/editBoxFunctions.js"></script>
+<script language="javascript" type="text/javascript" src="/xwiki/bin/download/Main/WebHome/getters.js"></script>
+
+#macro (selectclassform)
+<form id="frmSelectClass">
+<select name="xWikiClassName">
+#foreach ($classname in $xwiki.classList)
+#if ($xwiki.hasAccessLevel("edit", $classname))
+#set($classdoc = $xwiki.getDocument($classname))
+<option value='$classname'>$classname</option>
+#end
+#end
+</select>
+<input type='submit' value='use class' onclick='location = this.form.xWikiClassName.value'>
+</form>
+#end
+
+
+#macro (editclass)
+<script>
+var input = [
+#set($classname = $request.xWikiClassName)
+#set($classdoc = $xwiki.getDocument($classname))
+#set($class = $classdoc.getxWikiClass())
+#foreach ($prop in $class.properties)
+#if ($prop.xWikiClass.name == "com.xpn.xwiki.objects.classes.NumberClass")
+#set($propType = "Number")
+#elseif ($prop.xWikiClass.name == "com.xpn.xwiki.objects.classes.StringClass")
+#set($propType = "String")
+#elseif ($prop.xWikiClass.name == "com.xpn.xwiki.objects.classes.DateClass")
+#set($propType = "Date")
+#elseif ($prop.xWikiClass.name == "com.xpn.xwiki.objects.classes.PasswordClass")
+#set($propType = "Password")
+#elseif ($prop.xWikiClass.name == "com.xpn.xwiki.objects.classes.BooleanClass")
+#set($propType = "Boolean")
+#elseif ($prop.xWikiClass.name == "com.xpn.xwiki.objects.classes.StaticListClass")
+#set($propType = "StaticList")
+#elseif ($prop.xWikiClass.name == "com.xpn.xwiki.objects.classes.DBListClass")
+#set($propType = "DBList")
+#elseif ($prop.xWikiClass.name == "com.xpn.xwiki.objects.classes.TextAreaClass")
+#set($propType = "TextArea")
+#end
+{
+ name: "${prop.name}",
+ prettyName: "${prop.prettyName}",
+ fieldModel: {
+ #foreach ($setting in $prop.xWikiClass.propertyNames)
+   ## IMA NEKI BAG SA TEXT EDITOROM ZA SQL POLJE (prenosi se u novi red i ne prihvata ga kao jedinstveni string)
+   #if ($setting != 'sql')
+   $prop.xWikiClass.get("$setting").name: "$doc.displayEdit($prop.xWikiClass.get("$setting"), '$prop.name', $prop)",
+   #end
+ #end
+ },
+ type: "${propType}"
+},
+#end
+];
+var xWikiClassName = '$class.getName()'
+</script>
+
+
+
+<style>
+  @import url("/xwiki/bin/download/Main/WebHome/styles.css");
+</style>
+<script type="text/javascript">
+var currentform;
+function executeCommand(url, callback) {
+    // we use a javascript feature here called "inner functions"
+    // using these means the local variables retain their values after the outer function
+    // has returned. this is useful for thread safety, so
+    // reassigning the onreadystatechange function doesn't stomp over earlier requests.
+    function ajaxBindCallback() {
+        if (ajaxRequest.readyState == 4) {
+            if (ajaxRequest.status == 200) {
+                if (ajaxCallback) {
+                    ajaxCallback(ajaxRequest.responseText);
+                } else {
+                    alert('no callback defined');
+                }
+            } else {
+                alert("There was a problem retrieving the xml data:\n" + ajaxRequest.status + ":\t" + ajaxRequest.statusText + "\n" + ajaxRequest.responseText);
+            }
+        }
+    }
+
+    // addMessage(url);
+    // use a local variable to hold our request and callback until the inner function is called...
+    var ajaxRequest = null;
+    var ajaxCallback = callback;
+
+    // bind our callback then hit the server...
+    if (window.XMLHttpRequest) {
+        // moz et al
+        ajaxRequest = new XMLHttpRequest();
+        ajaxRequest.onreadystatechange = ajaxBindCallback;
+        ajaxRequest.open("GET", url, true);
+        ajaxRequest.send(null);
+    } else if (window.ActiveXObject) {
+        // ie
+        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
+        if (ajaxRequest) {
+            ajaxRequest.onreadystatechange = ajaxBindCallback;
+            ajaxRequest.open("GET", url, true);
+            ajaxRequest.send();
+        }
+        else{
+            alert("your browser does not support xmlhttprequest" )
+        }
+
+    }
+    else{
+        alert("your browser does not support xmlhttprequest" )
+    }
+}
+function saveResult(html) {
+ if(html=="SUCCESS") {
+  alert("Form saved as ${classname}Sheet")
+  //location = "SaveSheet";
+ }
+ else {
+  alert("Error saving.")
+  alert(html);
+ }
+}
+function save(form) {
+ generateVelocity();
+ var code = $('velocityCode').value;
+ var url = "SaveSheet?xpage=plain&classname=" + escape(form.classname.value) + "Sheet" + "&content=" + escape(code);
+ alert(url)
+ executeCommand(url, saveResult);
+ return false;
+}
+</script>
+<form method='post' action="">
+<input type="button" value="Edit mode" onclick="viewMode()" >
+<input type="button" value="Preview mode" onclick="generateFormPreview()" >
+<input type="button" value="Velocity mode" onclick="generateVelocity()" >
+
+<input type="hidden" name="xpage" value="plain" />
+<input type="hidden" name="classname" value="$!classname" />
+<input type='hidden' name="content">
+<input type='button' value='Save form' onclick="save(this.form); return false;">
+
+</form>
+
+
+
+<div id='rightBoxes' class='rightBoxes' style="width: 230px;">
+	<fieldset style="width: 100%; ">
+		<legend>Add group</legend>
+		<table  style="font-size: 12px;"><tbody>
+		<tr>
+		<td>Table cols:</td><td><input id="colsCount" class='editingInput' size="10"></td>
+		<td rowspan="2"><button width=70 onclick="createTable()">Add</button></td>
+		</tr>
+		<tr>
+		<td>Table rows: </td><td><input id="rowsCount" class='editingInput' size="10"></td>
+		</tr>
+		</tbody></table>
+	</fieldset>
+	
+	
+	<fieldset id="fields" style="width: 100%; ">
+		<div>
+			<span><a href="#" class="editingText" onclick='switchFieldsSource("classFields")'>Class fields</a></span>
+			<span><a href="#" class="editingText" onclick='switchFieldsSource("newFields")'>New fields</a></span>
+		</div>
+		<legend>Class fields</legend>
+		<table>
+		<tbody id='tbdFields'>
+		</tbody>
+		</table>
+	</fieldset>
+	<fieldset id="newFields" style="width: 100%; display: none;">
+		<div>
+			<span><a href="#" class="editingText" onclick='switchFieldsSource("classFields")'>Class fields</a></span>
+			<span><a href="#" class="editingText" onclick='switchFieldsSource("newFields")'>New fields</a></span>
+		</div>
+		<legend>New fields</legend>
+		<table>
+		<tbody id='tbdNewFields'>
+		
+		</tbody>
+		</table>
+	</fieldset>
+	
+	<div id="paramsEditor" class="paramsEditor" >
+		<fieldset class='editingFields' style="width: 100%; height: 200px; ">
+		<div style="font-size: 12px;" id='selectCellNote'>
+			Form parameters can be changed only if some cell is selected. 
+		</div>
+		<legend>Edit box</legend>
+		<table  id='editingFields' style="font-size: 12px; display: none;"><tbody>
+		<tr><td>Title text:</td><td><input id="editGroupTitleInput" class="editingInput" onchange='setGroupTitleText()'></td></tr>
+		<tr><td>Presentation text:</td><td><input id="editPresentationTextInput" class="editingInput" onchange='setGroupPresentationText()'></td></tr>
+		<tr><td>Row height:</td><td><input id="editRowHeightInput" class="editingInput" onchange="setRowHeight()"></td></tr>
+		<tr id='editCellText'><td>Cell text:</td><td><input id="editCellTextInput" class="editingInput" onchange="setCellText()"></td></tr>
+		<tr id='editDeleteField'><td colspan=2><a href="#" class='editingText' onclick='emptyCell()'>Delete field from cell</a></td></tr>
+		<tr id='editAddSeparator'><td colspan=2><a href="#" class='editingText' onclick='addSeparator()'>Add separator below the row</a></td></tr>
+		<tr id='editRemoveSeparator'><td colspan=2><a href="#" class='editingText' onclick='removeSeparator()'>Remove separator below the row</a></td></tr>
+		<tr id='editSpanCell'><td colspan=2><a href="#" class='editingText' onclick='spanCell()'>Span to adjacent cell</a></td></tr>
+		<tr id='editSplitCell'><td colspan=2><a href="#" class='editingText' onclick='splitCell()'>Split cell</a></td></tr>
+		<tr><td colspan=2><a href="#" class='editingText' onclick='deleteGroup()'>Delete group</a></td></tr>
+		</tbody></table>	
+		</fieldset>
+	</div>
+	<div id="fieldSettings" class="fieldSettings">
+		<fieldset id="editingFieldSettings" style="width: 100%;">
+                        <div><i>Read-only for this version</i></div>
+			<legend>Field settings</legend>
+			<table style="font-size: 12px;"><tbody id='tbdFieldSettings'></tbody></table>
+		</fieldset>
+	</div>
+</div>
+
+<div id='divForm' style="float:right; display: none; margin-right: -100px; background-color: white; width: 870px;"></div>
+<div id='previewForm' style="float:right; display: none; margin-right: -100px; background-color: white; width: 870px;"></div>
+<div id='velocityZone' style="float:right; display: none; margin-right:- 100px; background-color: white; ">
+	<textarea cols = 80 rows = 30 id='velocityCode'></textarea>
+</div>
+
+<script language="javascript" type="text/javascript" >
+init(input, '$classname');
+</script>
+#end
+## end za veliki makro
+
+#if ($request.xWikiClassName)
+#editclass()
+#else
+#selectclassform()
+#end
+
+{/pre}
\ No newline at end of file





More information about the Xwiki-notifications mailing list