lookup value:
lookupValue: function (handsontable, columns, srcColumnName, row, value) {
var source = [];
var real = [];
for (var i = 0; i < columns.length; i++) {
var col = columns[i];
if (col.data == srcColumnName) {
source = col.source;
real = col.real;
}
}
if (real && real.length == source.length && real.length > 0) {
var idx = source.indexOf(value);
return real[idx];
}
},
NewLookupValue: function (dropDownReal, value) {
var real = dropDownReal;
var selected_code;
$.map(real, function(val, index) {
if(val == value) {
selected_code = index;
return false;
}
});
return selected_code;
},
plugin app.js
var App = App || {};
App.Util = {
lookupValue: function (handsontable, columns, srcColumnName, row, value) {
var source = [];
var real = [];
for (var i = 0; i < columns.length; i++) {
var col = columns[i];
if (col.data == srcColumnName) {
source = col.source;
real = col.real;
}
}
if (real && real.length == source.length && real.length > 0) {
var idx = source.indexOf(value);
return real[idx];
}
},
NewLookupValue: function (dropDownReal, value) {
var real = dropDownReal;
var selected_code;
$.map(real, function(val, index) {
if(val == value) {
selected_code = index;
return false;
}
});
return selected_code;
},
plugin app.js
var App = App || {};
App.Util = {
...
}
Spreadsheet js defaultMenuContextItem
'duplicate': {
'name':'duplicate',
callback: function (key, selection) {
var index = selection.start.row;
var source = spreadsheet.core.getSourceDataAtRow(index);
this.alter("insert_row", index);
var source = spreadsheet.core.getSourceDataAtRow(index);
var tmp = spreadsheet.core.getDataAtRow(index);
var next_row = spreadsheet.core.getDataAtRow(index+1);
console.log(next_row);
var data = [];
for(var col in tmp) {
if (col == parseInt(col)){
data.push([index,parseInt(col),null]);
}
}
spreadsheet.core.setDataAtCell(data);
var _params = JSON.stringify({
table: spreadsheet.core.getSettings().spreadsheetName,
position: source.position,
action_name: getCurrentActionName()
});
var successHandler = function(response) {
if(response.table !== undefined){
spreadsheet.core.setDataAtRowProp (index,'position',response.position);
spreadsheet.core.setDataAtRowProp (index,response.key_name,response.id);
spreadsheet.core.setDataAtRowProp (index,response.update_time_name,response.updated_date);
}else{
data = response.data;
spreadsheet.core.loadData(data);
}
}
App.Util.request("duplicate-row", _params, successHandler, function () {});
}
},
....
full menu:
(function ($, window, document, undefined) {
var spreadsheet;
var defaultSettings = {
columnSorting: true,
outsideClickDeselects: false,
copyRowsLimit: Number.MAX_VALUE,
rowHeaders: true,
manualColumnResize: true,
manualRowResize: true,
stretchH: 'all',
colorPalette: false,
autosave: 0,
spreadsheetName: 'project-management-index',//spreadsheetNameValue,
cellColors: (spreadsheetCellColorValue.length > 0) ? JSON.parse(spreadsheetCellColorValue) : {},
filterData: {},
dataConnection: {}
};
var defaultContextMenuItems = {
'row_above': {
'name':'行挿入',
callback: function (key, selection) {
var index = selection.start.row;
var source = spreadsheet.core.getSourceDataAtRow(index);
this.alter("insert_row", index);
var source = spreadsheet.core.getSourceDataAtRow(index);
var tmp = spreadsheet.core.getDataAtRow(index);
var data = [];
for(var col in tmp) {
if (col == parseInt(col)){
data.push([index,parseInt(col),null]);
}
}
spreadsheet.core.setDataAtCell(data);
var _params = JSON.stringify({
table: spreadsheet.core.getSettings().spreadsheetName,
position: source.position,
action_name: getCurrentActionName()
});
var successHandler = function(response) {
if(response.table !== undefined){
spreadsheet.core.setDataAtRowProp (index,'position',response.position);
spreadsheet.core.setDataAtRowProp (index,response.key_name,response.id);
spreadsheet.core.setDataAtRowProp (index,response.update_time_name,response.updated_date);
}else{
data = response.data;
spreadsheet.core.loadData(data);
}
}
App.Util.request("create-spreadsheet-row", _params, successHandler, function () {});
}
},
//'row_below': {
// 'name':'1行を下に挿入',
// callback: function (key, selection) {
// var index = selection.start.row;
//
// var source = spreadsheet.core.getSourceDataAtRow(index);
// var pos= parseInt(source.position) + 1;
//
// this.alter("insert_row", index+1);
//
// var _params = JSON.stringify({
// table: spreadsheet.core.getSettings().spreadsheetName,
// position: pos,
// action_name: getCurrentActionName()
// });
//
// var successHandler = function(response) {
// if(response.table !== undefined){
// spreadsheet.core.setDataAtRowProp (index+1,'position',response.position);
// spreadsheet.core.setDataAtRowProp (index+1,response.key_name,response.id);
// spreadsheet.core.setDataAtRowProp (index+1,response.update_time_name,response.updated_date);
// }else{
// data = response.data;
// spreadsheet.core.loadData(data);
// }
// }
// App.Util.request("create-spreadsheet-row", _params, successHandler, function () {});
// }
//},
//'undo': {},
//'redo': {},
'duplicate': {
'name':'行複製',
callback: function (key, selection) {
var index = selection.start.row;
var source = spreadsheet.core.getSourceDataAtRow(index);
this.alter("insert_row", index);
var source = spreadsheet.core.getSourceDataAtRow(index);
var tmp = spreadsheet.core.getDataAtRow(index);
var next_row = spreadsheet.core.getDataAtRow(index+1);
console.log(next_row);
var data = [];
for(var col in tmp) {
if (col == parseInt(col)){
data.push([index,parseInt(col),next_row[col]]);
}
}
spreadsheet.core.setDataAtCell(data);
var _params = JSON.stringify({
table: spreadsheet.core.getSettings().spreadsheetName,
position: source.position,
action_name: getCurrentActionName()
});
var successHandler = function(response) {
if(response.table !== undefined){
spreadsheet.core.setDataAtRowProp (index,'position',response.position);
spreadsheet.core.setDataAtRowProp (index,response.key_name,response.id);
spreadsheet.core.setDataAtRowProp (index,response.update_time_name,response.updated_date);
}else{
data = response.data;
spreadsheet.core.loadData(data);
}
}
App.Util.request("duplicate-row", _params, successHandler, function () {});
}
},
'remove_row': {
'name': '行削除'
},
};
full menu:
(function ($, window, document, undefined) {
var spreadsheet;
var defaultSettings = {
columnSorting: true,
outsideClickDeselects: false,
copyRowsLimit: Number.MAX_VALUE,
rowHeaders: true,
manualColumnResize: true,
manualRowResize: true,
stretchH: 'all',
colorPalette: false,
autosave: 0,
spreadsheetName: 'project-management-index',//spreadsheetNameValue,
cellColors: (spreadsheetCellColorValue.length > 0) ? JSON.parse(spreadsheetCellColorValue) : {},
filterData: {},
dataConnection: {}
};
var defaultContextMenuItems = {
'row_above': {
'name':'行挿入',
callback: function (key, selection) {
var index = selection.start.row;
var source = spreadsheet.core.getSourceDataAtRow(index);
this.alter("insert_row", index);
var source = spreadsheet.core.getSourceDataAtRow(index);
var tmp = spreadsheet.core.getDataAtRow(index);
var data = [];
for(var col in tmp) {
if (col == parseInt(col)){
data.push([index,parseInt(col),null]);
}
}
spreadsheet.core.setDataAtCell(data);
var _params = JSON.stringify({
table: spreadsheet.core.getSettings().spreadsheetName,
position: source.position,
action_name: getCurrentActionName()
});
var successHandler = function(response) {
if(response.table !== undefined){
spreadsheet.core.setDataAtRowProp (index,'position',response.position);
spreadsheet.core.setDataAtRowProp (index,response.key_name,response.id);
spreadsheet.core.setDataAtRowProp (index,response.update_time_name,response.updated_date);
}else{
data = response.data;
spreadsheet.core.loadData(data);
}
}
App.Util.request("create-spreadsheet-row", _params, successHandler, function () {});
}
},
//'row_below': {
// 'name':'1行を下に挿入',
// callback: function (key, selection) {
// var index = selection.start.row;
//
// var source = spreadsheet.core.getSourceDataAtRow(index);
// var pos= parseInt(source.position) + 1;
//
// this.alter("insert_row", index+1);
//
// var _params = JSON.stringify({
// table: spreadsheet.core.getSettings().spreadsheetName,
// position: pos,
// action_name: getCurrentActionName()
// });
//
// var successHandler = function(response) {
// if(response.table !== undefined){
// spreadsheet.core.setDataAtRowProp (index+1,'position',response.position);
// spreadsheet.core.setDataAtRowProp (index+1,response.key_name,response.id);
// spreadsheet.core.setDataAtRowProp (index+1,response.update_time_name,response.updated_date);
// }else{
// data = response.data;
// spreadsheet.core.loadData(data);
// }
// }
// App.Util.request("create-spreadsheet-row", _params, successHandler, function () {});
// }
//},
//'undo': {},
//'redo': {},
'duplicate': {
'name':'行複製',
callback: function (key, selection) {
var index = selection.start.row;
var source = spreadsheet.core.getSourceDataAtRow(index);
this.alter("insert_row", index);
var source = spreadsheet.core.getSourceDataAtRow(index);
var tmp = spreadsheet.core.getDataAtRow(index);
var next_row = spreadsheet.core.getDataAtRow(index+1);
console.log(next_row);
var data = [];
for(var col in tmp) {
if (col == parseInt(col)){
data.push([index,parseInt(col),next_row[col]]);
}
}
spreadsheet.core.setDataAtCell(data);
var _params = JSON.stringify({
table: spreadsheet.core.getSettings().spreadsheetName,
position: source.position,
action_name: getCurrentActionName()
});
var successHandler = function(response) {
if(response.table !== undefined){
spreadsheet.core.setDataAtRowProp (index,'position',response.position);
spreadsheet.core.setDataAtRowProp (index,response.key_name,response.id);
spreadsheet.core.setDataAtRowProp (index,response.update_time_name,response.updated_date);
}else{
data = response.data;
spreadsheet.core.loadData(data);
}
}
App.Util.request("duplicate-row", _params, successHandler, function () {});
}
},
'remove_row': {
'name': '行削除'
},
};
This article is both interesting and informative for anyone interested in blogging. It is greatly appreciated. For more information, please read my profile about Mouse Button & Scroll Wheel Test. Please click here for more information. You can test your mouse scroll speed test here. Read more here.
ReplyDelete