Skip to content

Commit

Permalink
fix #2, fix #8 implement popup from browserAction to call number and …
Browse files Browse the repository at this point in the history
…go to settings
  • Loading branch information
Antoine Turmel committed Apr 20, 2018
1 parent 6320180 commit d9ddee1
Show file tree
Hide file tree
Showing 4 changed files with 106 additions and 58 deletions.
85 changes: 38 additions & 47 deletions asterisk.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ function createMenuItem(number){
"32": "icons/asterisk-32.png"
}
}, onCreated);
browser.menus.create({
/* browser.menus.create({
id: "editcallnumber",
type: "normal",
title: "Edit and call: " + number,
Expand All @@ -67,16 +67,22 @@ function createMenuItem(number){
"20": "icons/asterisk-20.png",
"32": "icons/asterisk-32.png"
}
}, onCreated);
}, onCreated); */
}

function handleMessage(request, sender, sendResponse) {
//console.log("Message from the content script: " + request.selectedNumber);
selectedNumber = request.selectedNumber;
//sendResponse({response: "Response from background script"});
browser.menus.remove("callnumber");
browser.menus.remove("editcallnumber");
createMenuItem(request.selectedNumber);
if (request.action === "selectionText") {
browser.menus.remove("callnumber");
//browser.menus.remove("editcallnumber");
createMenuItem(request.selectedNumber);
}
if (request.action === "inputText") {
//console.log("foo is " + selectedNumber);
placingCall(selectedNumber);
}
}

browser.runtime.onMessage.addListener(handleMessage);
Expand All @@ -86,56 +92,41 @@ browser.menus.onClicked.addListener((info, tab) => {
getting.then(getOptions, onError);
switch (info.menuItemId) {
case "callnumber":
//console.log("Calling X number");
let xhr_login = new XMLHttpRequest();
let xhr = new XMLHttpRequest();
xhr_login.open("GET", "http://" + asteriskServer + ":" + asteriskPort + "/asterisk/mxml?action=Login&Username=" + asteriskUsername + "&Secret=" + asteriskPassword);
xhr_login.send("");
xhr_login.onreadystatechange = function() {
if (xhr_login.readyState == 4 && (xhr_login.status == 200 || xhr_login.status == 0)) {
console.log(xhr_login.responseText);
var response = xhr_login.responseXML;
var success = response.getElementsByTagName("generic")[0].getAttribute('response')
//console.log(success);
if (success == "Success") {
xhr.open("GET", "http://" + asteriskServer + ":" + asteriskPort + "/asterisk/mxml?action=originate&channel=" + asteriskProtocol + "/" + asteriskChannel + "&exten=" + selectedNumber + "&context=" + asteriskContext + "&CallerId=" + asteriskChannel + "&priority=1&codecs=alaw&timeout=5000");
xhr.send("");
}
else {
console.log("Bad authentification, check your credentials");
}
}
};
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
console.log(xhr.responseText);
}
};
placingCall(selectedNumber);
break;
case "editcallnumber":
var person = prompt("Please enter your number", "123");
break;
}
});

/* browser.browserAction.onClicked.addListener((handleClick) => {
selection = window.getSelection().toString().trim();
console.log(selection);
function onGot(tabInfo) {
console.log(tabInfo[0].id);
browser.browserAction.onClicked.addListener((handleClick) => {

browser.tabs.sendMessage(tabInfo[0].id, {action:"getSelection"})
.then(response => {
console.log(response.response);
});
});

function placingCall(selectedNumber) {
let xhr_login = new XMLHttpRequest();
let xhr = new XMLHttpRequest();
xhr_login.open("GET", "http://" + asteriskServer + ":" + asteriskPort + "/asterisk/mxml?action=Login&Username=" + asteriskUsername + "&Secret=" + asteriskPassword);
xhr_login.send("");
xhr_login.onreadystatechange = function() {
if (xhr_login.readyState == 4 && (xhr_login.status == 200 || xhr_login.status == 0)) {
console.log(xhr_login.responseText);
var response = xhr_login.responseXML;
var success = response.getElementsByTagName("generic")[0].getAttribute('response')
//console.log(success);
if (success == "Success") {
xhr.open("GET", "http://" + asteriskServer + ":" + asteriskPort + "/asterisk/mxml?action=originate&channel=" + asteriskProtocol + "/" + asteriskChannel + "&exten=" + selectedNumber + "&context=" + asteriskContext + "&CallerId=" + asteriskChannel + "&priority=1&codecs=alaw&timeout=5000");
xhr.send("");
}
else {
console.log("Bad authentification, check your credentials");
}
}
function onError(error) {
console.log(`Error: ${error}`);
};
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
console.log(xhr.responseText);
}
var gettingCurrent = browser.tabs.query({active: true});
gettingCurrent.then(onGot, onError);
}); */
};
}
31 changes: 20 additions & 11 deletions manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,27 @@
"activeTab",
"tabs"
],

"options_ui": {
"page" : "options.html"
},

"background": {
"scripts": ["asterisk.js"]
"browser_action": {
"default_icon": {
"20": "icons/asterisk-20.png",
"32": "icons/asterisk-32.png"
},
"default_title": "Asterisk Click2Dial",
"default_popup": "popup/popupAsterisk.html"
},

"options_ui": {
"page" : "options.html"
},

"background": {
"scripts": ["asterisk.js"]
},

"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["content-script.js"]
}]
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["content-script.js"]
}]

}
}
22 changes: 22 additions & 0 deletions popup/popupAsterisk.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<!DOCTYPE html>

<html>
<head>
<meta charset="utf-8">
<!--<link rel="stylesheet" href="quicknote.css"/>-->
</head>

<body>
<div class="outer-wrapper">
<div class="call">
<input placeholder="Enter a phone number..." type="tel" class="number" type="text">
<button class="call">Call</button>
<button class="settings">Settings</button>
<div class="clearfix"></div>
</div>
</div>

<script src="popupAsterisk.js"></script>
</body>

</html>
26 changes: 26 additions & 0 deletions popup/popupAsterisk.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
var numberInput = document.querySelector('.number');
var callBtn = document.querySelector('.call');
var settingsBtn = document.querySelector('.settings');
callBtn.addEventListener('click', callNumber);
settingsBtn.addEventListener('click', openSettings);

function hasNumbers(string)
{
return /\d/.test(string);
}

function callNumber() {
if (hasNumbers(numberInput.value.toString().trim())) {
var selectedNumber = numberInput.value.trim().replace(/\+/g, "00").replace(/\D/g,'');
console.log(selectedNumber);
var sending = browser.runtime.sendMessage({
selectedNumber: selectedNumber,
action: "inputText"
});
window.close();
}
};

function openSettings() {
browser.runtime.openOptionsPage();
}

0 comments on commit d9ddee1

Please sign in to comment.