Skip to content

Commit

Permalink
v0.13
Browse files Browse the repository at this point in the history
  • Loading branch information
DB committed Apr 4, 2018
1 parent 87114b0 commit 3728866
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 26 deletions.
2 changes: 1 addition & 1 deletion addon/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"manifest_version": 2,
"name": "RunWith",
"description": "Run external commands on contextual elements",
"version": "0.12",
"version": "0.13",
"applications": {
"gecko": {
"id": "[email protected]",
Expand Down
62 changes: 37 additions & 25 deletions addon/settings/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ function createTableRow(data){
return tr;
}

async function populateDOM(config) {
async function populateDOM(config, overwrite) {

if (! config) {
let backgroundPage = browser.extension.getBackgroundPage();
Expand All @@ -108,7 +108,10 @@ async function populateDOM(config) {
mainTable.style.border = '2px solid black';

mainTableHead.innerHTML = '';
mainTableBody.innerHTML = '';

if (overwrite) {
mainTableBody.innerHTML = '';
}

mainTableHead.style.backgroundColor = 'LightGreen';

Expand Down Expand Up @@ -252,7 +255,7 @@ function collectConfig(){
elem.contexts = contexts;

// command
elem.action = mainTableBody.rows[row].cells[3].childNodes[0].value.split(",");
elem.action = mainTableBody.rows[row].cells[3].childNodes[0].value.split(/ *, */);

// shell
elem.shell = mainTableBody.rows[row].cells[4].childNodes[0].checked;
Expand Down Expand Up @@ -283,30 +286,35 @@ function exportConfig(config){
document.body.removeChild(dl);
}

function importConfig(){
function importConfig(evt){

var overwrite = true;
if (evt.target.id === 'importAddButton'){
overwrite = false;
}

var input = document.createElement('input');
input.type = 'file';
input.addEventListener("change", importFile);
input.addEventListener("change", function(evt){

var file = this.files[0];

var reader = new FileReader();
reader.onload = async function(e) {
try {
var config = JSON.parse(reader.result);
console.log("Will overwrite shown configuration: " + overwrite);
await populateDOM(config, overwrite);
notify('Configuration imported (not saved)');
} catch(e) {
console.log('error loading file: ' + e);
}
};
reader.readAsText(file);
});
input.click();
}

function importFile(evt){
var file = this.files[0];

var reader = new FileReader();
reader.onload = async function(e) {
try {
var config = JSON.parse(reader.result);
await populateDOM(config);
notify('Configuration imported (not saved)');
} catch(e) {
console.log('error loading file: ' + e);
}
};
reader.readAsText(file);
}

function createButton(text, id, callback, submit){

var span = document.createElement('span');
Expand All @@ -333,7 +341,7 @@ function createButton(text, id, callback, submit){


function init(){
populateDOM(null);
populateDOM(null, true);

var form = document.getElementById('mainForm');

Expand All @@ -345,14 +353,18 @@ function init(){
var exportButton = createButton("Export", "exportButton", function(){}, true);
exportButton.style.marginRight = '10px';

var importButton = createButton("Import", "importButton", importConfig, false);
importButton.style.marginRight = '10px';
var importReplaceButton = createButton("Import (replace)", "importReplaceButton", importConfig, false);
importReplaceButton.style.marginRight = '10px';

var importAddButton = createButton("Import (add)", "importAddButton", importConfig, false);
importAddButton.style.marginRight = '10px';

var saveButton = createButton("Save", "saveButton", function(){}, true);

p.appendChild(newItemButton);
p.appendChild(exportButton);
p.appendChild(importButton);
p.appendChild(importReplaceButton);
p.appendChild(importAddButton);
p.appendChild(saveButton);

form.appendChild(p);
Expand Down

0 comments on commit 3728866

Please sign in to comment.