forked from tohe/wmdeit_kaform
				
			
		
			
	
	
		
			226 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			226 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
|  | 
 | ||
|  | var nextRowId=1; | ||
|  | 
 | ||
|  | function renumberTableRows(){ | ||
|  |     var row_no=1; | ||
|  |     var table = document.getElementById("tabbody"); | ||
|  |     for (var i = 0, row; row = table.rows[i]; i++) { | ||
|  | 	row.cells[0].innerHTML=row_no++; | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | function deleteTableRow(rowId){ | ||
|  |     var target = document.getElementById("upload-target"+rowId); | ||
|  |     var children = target.children; | ||
|  | 
 | ||
|  |     // delete all uploaded elements
 | ||
|  |     for (var i = 0; i < children.length; i++) { | ||
|  | 	var tmp = children[i].getAttribute("data-id"); | ||
|  | 	$K.ajax.post({ | ||
|  | 	    url: 'delete.php', | ||
|  | 	    data: 'id='+tmp, | ||
|  | 	    before: function(xhr) {}, | ||
|  | 	    success: function(response) {}, | ||
|  | 	    error: function(response) {} | ||
|  | 	}); | ||
|  |     } | ||
|  |      | ||
|  | 
 | ||
|  |     // delete the row from table
 | ||
|  |     var element = document.getElementById("trow"+rowId); | ||
|  |     element.parentNode.removeChild(element); | ||
|  |     renumberTableRows(); | ||
|  | //    alert(rowId);
 | ||
|  |      | ||
|  | } | ||
|  | 
 | ||
|  | function addTableRow(){ | ||
|  | 
 | ||
|  |     var $node = $K.dom('#tabbody'); | ||
|  |     // create a new table row with id
 | ||
|  |     var element = document.createElement('tr'); | ||
|  |     element.setAttribute("id", "trow"+nextRowId); | ||
|  | 
 | ||
|  |     var e=""; | ||
|  | 
 | ||
|  |     // add column for position no
 | ||
|  |     e += '<td></td>'; | ||
|  | 
 | ||
|  |     // add coluemn for description
 | ||
|  |     e += `<td><textarea name="desc[${nextRowId}]" rows="2"></textarea> </td>`; | ||
|  | 
 | ||
|  |     // add column for date
 | ||
|  |     e += `<td><input name="date[${nextRowId}]" type="date"/></td>`; | ||
|  | 
 | ||
|  |     // add column for num
 | ||
|  |     e += `<td><input name="amount[${nextRowId}]" type="num"/></td>`; | ||
|  | 
 | ||
|  |     // add column for file upload
 | ||
|  |     e+= `
 | ||
|  | 	<td data-kube=""> | ||
|  | 	<form action=""> | ||
|  | 	<div class="form-item"> | ||
|  | 	<div class="upload" | ||
|  |     data-kube="upload" | ||
|  |     data-type="file" data-multiple="true" | ||
|  |     data-target="#upload-target${nextRowId}" | ||
|  |     data-url="upload.php" data-url-remove="delete.php" | ||
|  |     data-progress="true"> | ||
|  | 	</div> | ||
|  | 	<div id="upload-target${nextRowId}" class="upload-target"></div> | ||
|  | 	</div> | ||
|  | 	</form> | ||
|  | 	 | ||
|  |     </td> | ||
|  | 	`;
 | ||
|  |     // add delete bnutton
 | ||
|  |     e += | ||
|  | 	`<td><span
 | ||
|  |     onclick="deleteTableRow(${nextRowId})" | ||
|  |     class="close is-large"> | ||
|  | 	</span></td>`; | ||
|  |      | ||
|  |      | ||
|  |     $node.append(element); | ||
|  |     element.innerHTML=(e); | ||
|  |     renumberTableRows(); | ||
|  |     nextRowId++; | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | function submitTable(){ | ||
|  |     alert("submit"); | ||
|  | 
 | ||
|  |     var obj; | ||
|  |      | ||
|  |     var table = document.getElementById("tabbody"); | ||
|  |     for (var i = 0, row; row = table.rows[i]; i++) { | ||
|  | 	console.log(row.cells[1]); | ||
|  | //	var n = row.cells[1].value;
 | ||
|  | //	alert(n);
 | ||
|  |     } | ||
|  |      | ||
|  | 
 | ||
|  |      | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | $K.add('module','kaform', { | ||
|  |     init: function(app,context){ | ||
|  | 	this.app = app; | ||
|  |        | ||
|  | 	// getting context and the module element
 | ||
|  | 	this.context = context; | ||
|  | 	this.$element = context.getElement(); | ||
|  |     }, | ||
|  | 
 | ||
|  |     hello: function(){ | ||
|  | 	alert ("hello function of kaform"); | ||
|  |     }, | ||
|  |      | ||
|  |     start: function() | ||
|  |     { | ||
|  | 	 | ||
|  | 	/*this.$element.on('keydown.kube.editable', this._hui.bind(this)); | ||
|  |           this.$element.on('paste.kube.editable', this._hui.bind(this)); | ||
|  |           this.$element.on('blur.kube.editable', this._hui.bind(this)); | ||
|  | 	*/			 | ||
|  | 
 | ||
|  | //	alert(this.$element);
 | ||
|  | //	this.$element.on('click', this.addRow.bind(this));
 | ||
|  | 	this._build(); | ||
|  |     },		 | ||
|  | 
 | ||
|  |     addRow: function()  | ||
|  |     { | ||
|  | 	 | ||
|  | 	var $node = $K.dom('#tabbody'); | ||
|  | 	// create a new table row with id
 | ||
|  | 	var element = document.createElement('tr'); | ||
|  | 	element.setAttribute("id", "trow"+nextRowId); | ||
|  | 
 | ||
|  | 	var e=""; | ||
|  | 
 | ||
|  | 	// add column for position no
 | ||
|  | 	e += '<td></td>'; | ||
|  | 
 | ||
|  | 	// add coluemn for description
 | ||
|  | 	e += '<td><textarea rows="2"></textarea> </td>'; | ||
|  | 
 | ||
|  | 	// add column for date
 | ||
|  | 	e += '<td style="overflow:visible;"><input type="date"/></td>'; | ||
|  | 
 | ||
|  | 	// add column for num
 | ||
|  | 	e += '<td style="overflow:visible;"><input type="num"/></td>'; | ||
|  | 
 | ||
|  | 	// add column for file upload
 | ||
|  | 
 | ||
|  | 	e+= `
 | ||
|  | 	    <td data-kube=""> | ||
|  | 	    <form action=""> | ||
|  | 	    <div class="form-item"> | ||
|  | 	    <div class="upload" | ||
|  | 	data-kube="upload" | ||
|  | 	data-type="file" data-multiple="true" | ||
|  | 	data-target="#upload-target${nextRowId}" | ||
|  | 	data-url="upload.php" data-url-remove="delete.php" | ||
|  | 	data-progress="true"> | ||
|  | 	    </div> | ||
|  | 	    <div id="upload-target${nextRowId}" class="upload-target"></div> | ||
|  | 	    </div> | ||
|  | 	    </form> | ||
|  |     | ||
|  | 	    </td> | ||
|  | 	`;
 | ||
|  | 	// add delete bnutton
 | ||
|  | 	e += | ||
|  | 	    `<td><span
 | ||
|  | 
 | ||
|  | 	onclick="deleteTableRow('trow${nextTableRow}'" | ||
|  | 	class="close is-large"> | ||
|  | 	    </span></td>`; | ||
|  | 		 | ||
|  | 	$node.append(element); | ||
|  | 	element.innerHTML=(e); | ||
|  | 	renumberTableRows(); | ||
|  | 	nextRowId++; | ||
|  | 
 | ||
|  | 	 | ||
|  |     }, | ||
|  | 
 | ||
|  |     // private
 | ||
|  |     _build: function() | ||
|  |     { | ||
|  | 
 | ||
|  |     }, | ||
|  |     onmessage: { | ||
|  | 	alert: { | ||
|  | 	    closed: function(sender) | ||
|  | 	    { | ||
|  | 		alert(sender); | ||
|  | 		// caught
 | ||
|  | 	    } | ||
|  |         } | ||
|  |     } | ||
|  | }); | ||
|  | 
 | ||
|  | 
 | ||
|  | // startup is here
 | ||
|  | 
 | ||
|  | $K.init({ | ||
|  |     observer: true | ||
|  | }); | ||
|  | 
 | ||
|  | 
 | ||
|  | // on startup clear session on server
 | ||
|  | $K.ajax.get({ | ||
|  |     url: 'clear.php', | ||
|  |     data: '', // or key=value object
 | ||
|  |     before: function(xhr) {}, | ||
|  |     success: function(response) {}, | ||
|  |     error: function(response) {} | ||
|  | }); | ||
|  | 
 | ||
|  | // add on table row
 | ||
|  | addTableRow(); |