r1264 - xwiki-sandbox/formeditor

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


Author: mileticn
Date: 2006-09-04 04:27:21 +0200 (Mon, 04 Sep 2006)
New Revision: 1264

Added:
   xwiki-sandbox/formeditor/editBoxFunctions.js
Log:
Added a file remotely

Added: xwiki-sandbox/formeditor/editBoxFunctions.js
===================================================================
--- xwiki-sandbox/formeditor/editBoxFunctions.js	2006-09-04 02:27:01 UTC (rev 1263)
+++ xwiki-sandbox/formeditor/editBoxFunctions.js	2006-09-04 02:27:21 UTC (rev 1264)
@@ -0,0 +1,203 @@
+// EDIT BOX FUNCTIONS (bez setera)
+function selectCell() {
+	selectGivenCell(this);
+}
+
+function selectGivenCell(cell) {
+	if (selectedCell != null) {
+		selectedCell.style.border = "solid 1px gray";
+	}
+	selectedCell = cell;
+	$('selectCellNote').style.display = 'none';
+	$('editingFields').style.display = 'block';
+	cell.style.border = "dashed 1px orange";
+
+	updateEditingFields(selectedCell);
+	updateFieldSettings(selectedCell);
+}
+
+function updateFieldSettings(cell) {
+	if (cell.firstChild == null || cell.firstChild.fieldModel == null)
+		return;
+	var fieldSettings = $('fieldSettings');
+	var tbdFieldSettings = $('tbdFieldSettings');
+	tbdFieldSettings.innerHTML = '';
+	var fieldModel = cell.firstChild.fieldModel;
+	for (var prop in fieldModel) {
+		if (prop == 'type')
+			continue;
+		var trw = document.createElement('tr');
+		var td = document.createElement('td');
+		td.innerHTML = prop;
+		trw.appendChild(td);
+		var td = document.createElement('td');
+		td.innerHTML = fieldModel[prop];
+		td.firstChild.className = 'settingsFields';
+		td.firstChild.disabled = 'disabled';
+		trw.appendChild(td);
+		tbdFieldSettings.appendChild(trw);
+	}
+	var button = document.createElement('input');
+	button.type = 'submit';
+	button.value = 'Change settings';
+	var trw = document.createElement('tr');
+	var td = document.createElement('td');
+	td.setAttribute('colspan', 2);
+	td.appendChild(button);
+	trw.appendChild(td);
+	tbdFieldSettings.appendChild(trw);
+		
+}
+
+function updateEditingFields(cell) {
+	var group = getGroupFromCell(cell);
+	var titleObj = getTitleObjectFromGroup(group);
+	var titleText = getTitleTextFromTitleObject(titleObj);
+	$('editGroupTitleInput').value = titleText;
+	
+	var presText = getPresentationTextFromGroup(group);
+	$('editPresentationTextInput').value = presText;
+
+	var row = getRowFromCell(cell);
+	var rowHeight = getRowHeight(row);
+	$("editRowHeightInput").value = rowHeight;
+	
+	if (getSeparatorBelowRow(row) != null) {
+		$('editAddSeparator').style.display = 'none';
+		$('editRemoveSeparator').style.display = '';
+	}
+	else {
+		$('editAddSeparator').style.display = '';
+		$('editRemoveSeparator').style.display = 'none';
+	}
+	
+	if (getFieldFromCell(cell) == null) {
+		$('editDeleteField').style.display = 'none';
+		$('editCellText').style.display = '';
+		$('editCellTextInput').value = getTextFromCell(selectedCell);
+	}
+	else {
+		$('editDeleteField').style.display = '';
+		$('editCellText').style.display = 'none';
+	}
+	
+	if (selectedCell.nextSibling == null)
+		$('editSpanCell').style.display = 'none';
+	else
+		$('editSpanCell').style.display = '';
+	
+	if (selectedCell.isSpanned) {
+//		$('editSpanCell').style.display = 'none';
+		$('editSplitCell').style.display = '';
+	}
+	else {
+//		$('editSpanCell').style.display = '';
+		$('editSplitCell').style.display = 'none';
+	}
+}
+
+function emptyCell(cell) {
+	if (cell == null)
+		cell = selectedCell;
+	var el = cell.firstChild;
+	cell.innerHTML = "";
+	cell.isOccupied = false;
+	// uzmi polje iz celije i stavi ga na prvo prazno mesto u fields box
+	putFieldInFieldsBox(el);
+
+	updateEditingFields(cell);
+}
+
+function addSeparator() {
+	if (selectedCell == null)
+		return;
+		
+	var row = selectedCell.parentNode;
+	var hr = document.createElement("hr");
+	hr.style.cssFloat = "left";
+	hr.style.width = "100%";
+	if (row.nextSibling != null) {
+		row.parentNode.insertBefore(hr, row.nextSibling);
+	}
+	else {
+		row.parentNode.appendChild(hr);
+	}
+
+	updateEditingFields(selectedCell);
+}
+
+function removeSeparator() {
+	if (selectedCell == null)
+		return;
+	var row = getRowFromCell(selectedCell);
+	row.parentNode.removeChild(row.nextSibling);
+
+	updateEditingFields(selectedCell);
+}
+
+// CELL METHODS
+
+function spanCell() {
+	if (selectedCell == null)
+		return;
+	spanGivenCell(selectedCell);
+}
+
+function spanGivenCell(cell) {
+	var c1 = cell;
+	var c2 = c1.nextSibling;
+	if (c2 == null)
+		return;
+	var par = c1.parentNode;
+	par.removeChild(c2);
+	c1.style.width = parseFloat(c1.style.width) + parseFloat(c2.style.width) + "%";
+	c1.isSpanned = true;
+
+	updateEditingFields(cell);
+}
+
+function splitCell() {
+	if (selectedCell == null)
+		return;
+	var par = selectedCell.parentNode;
+	var group = getGroupFromCell(selectedCell);
+	var table = getTableFromGroup(group);
+	var row = getRowFromCell(selectedCell);
+
+	var newWidth1 = 100 / table.colsCount * 0.98;
+	var newWidth2 = parseFloat(selectedCell.style.width) - newWidth1;
+	selectedCell.style.width = newWidth2 + "%";
+		
+	var d = document.createElement("div");
+	d.id = ++cellCounter;
+	d.className = "divCell";
+	d.style.height = "95%"
+	d.style.width = newWidth1 + "%";
+	d.style.margin = "0px";
+	Droppables.add(d, {accept: 'fieldContainer', onDrop: onFieldDrop, hoverclass: "divCellHover"})
+	d.onclick = selectCell;
+	
+	// ako je celija na kraju reda, mora da se doda nova, ako nije, onda mora da se umetne
+	if (selectedCell.nextSibling == null) 
+		par.appendChild(d);				
+	else 
+		par.insertBefore(d, selectedCell.nextSibling)		
+
+	// ako ima jednak broj celija kao na pocetku, onda nije spanovana
+	if (table.colsCount != getColsCountFromRow(row))
+		selectedCell.isSpanned = true;
+	else
+		selectedCell.isSpanned = false;
+
+	updateEditingFields(selectedCell);
+}
+
+function deleteGroup() {
+	if (selectedCell == null)
+		return;
+	var group = getGroupFromCell(selectedCell);
+	group.parentNode.removeChild(group);
+
+	updateEditingFields(selectedCell);
+}
+





More information about the Xwiki-notifications mailing list