├── .gitignore ├── README.md ├── jsconfig.json ├── package.json ├── gulpfile.js ├── sample └── index.html ├── dist ├── in-line-grid-editing-min.js └── in-line-grid-editing-debug.js └── src └── in-line-grid-editing.js /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | /demo -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # In-Line-Grid-Editing 2 | A flexible plug-in data editing in table 3 | 4 | The In line grid edinting supports data editing operations (create, update, remove) via a simple configuration. 5 | All you have to do to enable table to editing; 6 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=759670 3 | // for the documentation about the jsconfig.json format 4 | "compilerOptions": { 5 | "target": "es6", 6 | "module": "commonjs", 7 | "allowSyntheticDefaultImports": true 8 | }, 9 | "exclude": [ 10 | "node_modules", 11 | "bower_components", 12 | "jspm_packages", 13 | "tmp", 14 | "temp" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "inlinegridediting", 3 | "version": "1.0.0", 4 | "description": "A flexible plug-in data editing in table", 5 | "main": "in-line-grid-editing.js", 6 | "scripts": { 7 | "test": "setup" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/chasoliveira/In-Line-Grid-Editing.git" 12 | }, 13 | "keywords": [ 14 | "grid", 15 | "edit", 16 | "inline", 17 | "in line grid editing" 18 | ], 19 | "author": "Charles Oliveira", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/chasoliveira/In-Line-Grid-Editing/issues" 23 | }, 24 | "homepage": "https://github.com/chasoliveira/In-Line-Grid-Editing#readme", 25 | "devDependencies": { 26 | "dell": "^1.0.0", 27 | "gulp-concat": "^2.6.0", 28 | "gulp-minify": "0.0.14", 29 | "gulp-uglify": "^2.0.0", 30 | "gulp-useref": "^3.1.2" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | var gulp = require('gulp'); 2 | var minify = require('gulp-minify'); 3 | var useref = require('gulp-useref'); 4 | var concat = require('gulp-concat') 5 | gulp.task('build', function () { 6 | return gulp.src('src/*.*') // Get source files with gulp.src 7 | .pipe(useref()) 8 | .pipe(concat('in-line-grid-editing.js')) 9 | .pipe(minify({ext:{ 10 | src:'-debug.js', 11 | min:'-min.js' 12 | }})) 13 | .pipe(gulp.dest('dist')) // Outputs the file in the destination folder 14 | }); 15 | gulp.task('copyToDemo', function () { 16 | return gulp.src('src/*.*') // Get source files with gulp.src 17 | .pipe(useref()) 18 | .pipe(concat('in-line-grid-editing.js')) 19 | .pipe(minify({ext:{ 20 | src:'-debug.js', 21 | min:'-min.js' 22 | }})) 23 | .pipe(gulp.dest('demo/InLineGridEditing/Scripts')) // Outputs the file in the destination folder 24 | }); 25 | -------------------------------------------------------------------------------- /sample/index.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dist/in-line-grid-editing-min.js: -------------------------------------------------------------------------------- 1 | !function(e){"use strict";var n="ilgeEditDelete",t="ilgeApplyCancel",i="ilgeCustom",a=function(a,c){c=c||{},a=e(a);var l=function(n){function t(n,t,i){n.append(e("",{type:"hidden",name:t+"-hidden",id:t+"-hidden",value:i}))}function i(e,n){void 0!=e.actionFormatter&&"function"==typeof e.actionFormatter&&e.actionFormatter(n)}function a(e){return n.find("td:nth-child("+e.column+")")}function c(n){return"select"===n.type?e("",{type:n.type,name:n.name,id:n.name,class:n.class})}this.textField=function(e){var n=c(e),l=a(e),o=l.html();n.val(o),l.html(n),i(e,n),t(l,e.name,o)},this.numericField=function(e){var n=c(e),l=a(e),o=l.html();n.val(o),i(e,n),l.html(n),t(l,e.name,o)},this.decimalField=function(e){var n=c(e),l=a(e),o=l.html();n.val(o),i(e,n),l.html(n),t(l,e.name,o)},this.boolField=function(e){var n=c(e),i=a(e),l="true"===i.html().toLowerCase();n.val(l),n.attr("checked",l),i.html(n),t(i,e.name,l)},this.dateField=function(e){var n=c(e),l=a(e),o=l.html();n.val(o),i(e,n),l.html(n),t(l,e.name,o)},this.dateTimeField=function(e){var n=c(e),l=a(e),o=l.html();n.val(o),i(e,n),l.html(n),t(l,e.name,o)},this.selectField=function(e){var n=c(e),i=a(e),l=i.html();i.html(n),t(i,e.name,l)}},o=function(e){this.textField=function(n,t){var i=e.find("td:nth-child("+n.column+")"),a=t?i.find("input[name='"+n.name+"-hidden']").val():i.find("input[name="+n.name+"]").val();i.html(a)},this.numericField=function(n,t){var i=e.find("td:nth-child("+n.column+")"),a=t?i.find("input[name='"+n.name+"-hidden']").val():i.find("input[name="+n.name+"]").val();i.html(a)},this.decimalField=function(n,t){var i=e.find("td:nth-child("+n.column+")"),a=t?i.find("input[name='"+n.name+"-hidden']").val():i.find("input[name="+n.name+"]").val();i.html(a)},this.boolField=function(n,t){var i=e.find("td:nth-child("+n.column+")"),a=t?i.find("input[name='"+n.name+"-hidden']").val():i.find("input[name="+n.name+"]").val();i.html(a.toString())},this.dateField=function(n,t){var i=e.find("td:nth-child("+n.column+")"),a=t?i.find("input[name='"+n.name+"-hidden']").val():i.find("input[name="+n.name+"]").val();i.html(a)},this.dateTimeField=function(n,t){var i=e.find("td:nth-child("+n.column+")"),a=t?i.find("input[name='"+n.name+"-hidden']").val():i.find("input[name="+n.name+"]").val();i.html(a)},this.selectField=function(n,t){var i=e.find("td:nth-child("+n.column+")"),a=t?i.find("input[name='"+n.name+"-hidden']").val():i.find("select[name='"+n.name+"'] option:selected").html();i.html(a)}},d=function(n,t){var i={text:"text",numeric:"numeric",decimal:"decimal",bool:"bool",date:"date",datetime:"datetime",select:"select"},a=new l(t),c=new o(t),d=function(n,i){var a=[];n.parameter.loadBy.keys.forEach(function(e){t.find("[name='"+e.from+"']option:selected");e.isInRow?a.push(e.key+"="+t.find("[name='"+e.from+"']").val()):a.push(e.key+"="+t.closest("body").find("[name='"+e.from+"']").val())});var c=r(n.parameter.uri,a.join("&"));e.getJSON(c,function(e){var t=s(e,n);i(t)})},u=function(n,t){e.getJSON(n.parameter.uri,function(e){var i=s(e,n);t(i)})},s=function(e,n){var t=[];return e.forEach(function(e){t.push({value:e[n.parameter.valueField],html:e[n.parameter.textField]})}),t},m=function(e,n){void 0!=e.parameter.loadBy?d(e,n):u(e,n)},f=0,h=function(n){n.forEach(function(n){var i=t.find("td:nth-child("+n.column+")"),a=i.find("input[name='"+n.name+"-hidden']").val(),c=t.find("select[name='"+n.name+"']");console.log("currentField: "+n.name),m(n,function(t){console.log("currentField: "+n.name+" items: "+t.length),t.forEach(function(n){var t=n.html==a;c.append(e("