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();
 |