implement removal
This commit is contained in:
parent
c2617fcfaf
commit
8267aa8d9d
@ -5,7 +5,9 @@ $.fn.wsjtDecodingDepthsInput = function() {
|
|||||||
this.modeInput.val(mode);
|
this.modeInput.val(mode);
|
||||||
this.valueInput = $(inputs.get(1)).clone();
|
this.valueInput = $(inputs.get(1)).clone();
|
||||||
this.valueInput.val(value);
|
this.valueInput.val(value);
|
||||||
this.el.append([this.modeInput, this.valueInput].map(function(i) {
|
this.removeButton = $('<button class="btn btn-sm btn-danger remove">Remove</button>');
|
||||||
|
this.removeButton.data('row', this);
|
||||||
|
this.el.append([this.modeInput, this.valueInput, this.removeButton].map(function(i) {
|
||||||
return $('<td>').append(i);
|
return $('<td>').append(i);
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
@ -14,6 +16,14 @@ $.fn.wsjtDecodingDepthsInput = function() {
|
|||||||
return this.el;
|
return this.el;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WsjtDecodingDepthRow.prototype.getValue = function() {
|
||||||
|
var value = parseInt(this.valueInput.val())
|
||||||
|
if (Number.isNaN(value)) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
return Object.fromEntries([[this.modeInput.val(), value]]);
|
||||||
|
}
|
||||||
|
|
||||||
this.each(function(){
|
this.each(function(){
|
||||||
var $input = $(this);
|
var $input = $(this);
|
||||||
var $el = $input.parent();
|
var $el = $input.parent();
|
||||||
@ -27,6 +37,32 @@ $.fn.wsjtDecodingDepthsInput = function() {
|
|||||||
$table.append(rows.map(function(r) {
|
$table.append(rows.map(function(r) {
|
||||||
return r.getEl();
|
return r.getEl();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
var updateValue = function(){
|
||||||
|
$input.val(JSON.stringify($.extend.apply({}, rows.map(function(r) {
|
||||||
|
return r.getValue();
|
||||||
|
}))));
|
||||||
|
};
|
||||||
|
|
||||||
|
$table.on('change', updateValue);
|
||||||
$el.append($table);
|
$el.append($table);
|
||||||
|
var $addButton = $('<button class="btn btn-sm btn-primary">Add...</button>');
|
||||||
|
|
||||||
|
$addButton.on('click', function() {
|
||||||
|
var row = new WsjtDecodingDepthRow(inputs)
|
||||||
|
rows.push(row);
|
||||||
|
$table.append(row.getEl());
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
$el.on('click', '.btn.remove', function(e){
|
||||||
|
var row = $(e.target).data('row');
|
||||||
|
var index = rows.indexOf(row);
|
||||||
|
if (index < 0) return false;
|
||||||
|
rows.splice(index, 1);
|
||||||
|
row.getEl().remove();
|
||||||
|
updateValue();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
$el.append($addButton);
|
||||||
});
|
});
|
||||||
};
|
};
|
Loading…
Reference in New Issue
Block a user