1
0
mirror of https://github.com/MailHops/mailhops-plugin.git synced 2025-05-19 07:40:08 -07:00

Fixed prefs not loading

Removed client_location
Cleaned up prefs ssl default option
This commit is contained in:
Andrew Van Tassel 2016-08-25 21:31:26 -06:00
parent 82beb032f4
commit e06c19d5b9
4 changed files with 56 additions and 184 deletions

View File

@ -12,15 +12,15 @@ var mailHops =
'version':'MailHops Plugin 2.0.0',
'lan':'en',
'unit':'mi',
'api_url':'https://api.mailhops.com',
'api_http':'https://',
'api_host':'api.mailhops.com',
'debug':false,
'country_tag':false,
'country_filter':[]
},
message: {
secure:[]
},
client_location: null
}
};
mailHops.LOG = function(msg) {
@ -51,6 +51,7 @@ mailHops.init = function() {
mailHops.loadPref = function()
{
mailHops.LOG('load MailHops prefs');
//get preferences
mailHops.options.lan = mailHops.getCharPref('mail.mailHops.lang','en');
mailHops.options.unit = mailHops.getCharPref('mail.mailHops.unit','mi');
@ -74,9 +75,9 @@ mailHops.loadPref = function()
mailHops.options.debug = mailHops.getCharPref('mail.mailHops.debug','false')=='true'?true:false;
mailHops.options.client_location = mailHops.getCharPref('mail.mailHops.client_location','');
mailHops.options.api_host = mailHops.getCharPref('mail.mailHops.api_host','api.mailhops.com');
mailHops.options.api_url = mailHops.getCharPref('mail.mailHops.api_url','https://api.mailhops.com');
mailHops.options.api_http = mailHops.getCharPref('mail.mailHops.api_http','https://');
mailHops.options.api_key = mailHops.getCharPref('mail.mailHops.api_key','');
@ -86,12 +87,6 @@ mailHops.loadPref = function()
mailHops.options.country_filter = mailHops.getCharPref('mail.mailHops.country_filter',[]);
if(mailHops.options.client_location == ''){
mailHops.setClientLocation(function(response){
mailHops.options.client_location=response;
});
}
//init display
mailHopsDisplay.init( mailHops.options );
};
@ -123,12 +118,12 @@ mailHops.StreamListener =
//failed to read input stream
mailHops.LOG('StreamListener Error: '+JSON.stringify(e));
}
} ,
},
onStartRequest: function ( request , context )
{
this.content = "" ;
this.found = false ;
} ,
},
onStopRequest: function ( aRequest , aContext , aStatusCode )
{
mailHops.headers = Components.classes["@mozilla.org/messenger/mimeheaders;1"].createInstance ( Components.interfaces.nsIMimeHeaders ) ;
@ -326,39 +321,6 @@ mailHops.getCharPref = function ( strName , strDefault ){
return ( value ) ;
};
mailHops.setClientLocation = function(cb){
var xmlhttp = new XMLHttpRequest();
if (!pref){
var pref = Components.classes["@mozilla.org/preferences-service;1"].getService( Components.interfaces.nsIPrefBranch ) ;
}
xmlhttp.open("GET", mailHopsUtils.getAPIUrl(mailHops.options)+'/lookup/?'+mailHopsUtils.getAPIUrlParams(mailHops.options)+'&r=&c=1',true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && !!xmlhttp.responseText) {
try {
var data = JSON.parse(xmlhttp.responseText);
if(data && data.meta.code==200){
//display the result
pref.setCharPref("mail.mailHops.client_location", JSON.stringify(data.response)) ;
cb(data.response);
} else {
pref.setCharPref("mail.mailHops.client_location", '') ;
cb('');
}
} catch(e){
pref.setCharPref("mail.mailHops.client_location", '') ;
cb('');
}
} else {
pref.setCharPref("mail.mailHops.client_location", '') ;
cb('');
}
};
xmlhttp.send(null);
};
//mailhops lookup
mailHops.lookupRoute = function(header_route){
@ -370,11 +332,6 @@ mailHops.lookupRoute = function(header_route){
if(mailHops.options.fkey != '')
lookupURL += '&fkey='+mailHops.options.fkey;
if(mailHops.options.client_location != '')
lookupURL+='&c=0';
mailHops.LOG(lookupURL);
//check for cache
var cached_results = mailHops.getResults();
@ -389,6 +346,8 @@ mailHops.lookupRoute = function(header_route){
}
}
mailHops.LOG("Calling MailHops API: "+lookupURL);
//call mailhops api for lookup
var xmlhttp = new XMLHttpRequest();
@ -407,12 +366,12 @@ mailHops.lookupRoute = function(header_route){
//display the result
mailHopsDisplay.route(header_route, mailHops.message, data.response, data.meta, lookupURL);
} else {
mailHops.LOG(JSON.stringify(data));
mailHops.LOG("lookupRoute: "+JSON.stringify(data));
//display the error
mailHopsDisplay.error(data);
}
} catch(e){
mailHops.LOG(JSON.stringify(e));
mailHops.LOG("lookupRoute: Error "+JSON.stringify(e));
mailHopsDisplay.error();
}
}

View File

@ -3,24 +3,22 @@ if (!pref) {
}
var mailHopPreferences = {
api_url: '', //mailhops api url
api_ssl: '', //ssl?
api_host: 'api.mailhops.com', //mailhops api url
api_http: 'https://', //ssl?
api_key: '', //api key
fkey: '', //forecast.io api key
country_filter: [],
loadPreferences: function(){
this.api_url = document.getElementById("mailhop.api_url").value;
this.api_host = document.getElementById("mailhop.api_host").value;
this.api_ssl = document.getElementById("mailhop.api_ssl").value;
this.api_http = document.getElementById("mailhop.api_http");
this.api_key = document.getElementById("mailhop.api_key").value;
this.fkey = document.getElementById("mailhop.fkey").value;
document.getElementById("mailhop.api_ssl").value = "true";
document.getElementById("mailhop.lang").value = pref.getCharPref("mail.mailHops.lang",'en');
document.getElementById("mailhop.map_provider").value = pref.getCharPref("mail.mailHops.map_provider",'OpenStreetMap.Mapnik');
@ -86,14 +84,13 @@ var mailHopPreferences = {
// API info
this.api_key = pref.getCharPref("mail.mailHops.api_key",'');
this.api_url = pref.getCharPref("mail.mailHops.api_url",'https://api.mailhops.com');
if(this.api_url.indexOf('https')===0)
this.api_ssl = "true";
this.api_http.value = pref.getCharPref("mail.mailHops.api_http",'https://');
if(this.api_http.value=='https://')
this.api_http.selectedIndex = 0;
else
this.api_ssl = "false";
this.api_http.selectedIndex = 1;
this.api_url = this.api_url.replace('http://','').replace('https://','');
this.api_host = pref.getCharPref("mail.mailHops.api_host",'api.mailhops.com');
this.fkey = pref.getCharPref("mail.mailHops.fkey",'');
@ -111,8 +108,6 @@ var mailHopPreferences = {
document.getElementById("mailhop.country_tag").checked = true;
saveAPIKey();
ResetLocation(document.getElementById("mailhop.refresh_location"));
},
savePreferences: function() {
pref.setCharPref("mail.mailHops.lang", document.getElementById("mailhop.lang").selectedItem.value);
@ -131,12 +126,8 @@ var mailHopPreferences = {
//API vars
pref.setCharPref("mail.mailHops.api_key", this.api_key);
this.api_url = this.api_url.replace('http://','').replace('https://','');
if(this.api_ssl=="true")
pref.setCharPref("mail.mailHops.api_url", 'https://'+this.api_url);
else
pref.setCharPref("mail.mailHops.api_url", 'http://'+this.api_url);
pref.setCharPref("mail.mailHops.api_http", this.api_http.value);
pref.setCharPref("mail.mailHops.api_host", this.api_host);
pref.setCharPref("mail.mailHops.fkey", String(this.fkey));
@ -164,17 +155,12 @@ function saveAPIKey() {
if(!!mailHopPreferences.api_key && mailHopPreferences.api_key != ''){
var xmlhttp = new XMLHttpRequest();
var nativeJSON = Components.classes["@mozilla.org/dom/json;1"].createInstance(Components.interfaces.nsIJSON);
var apiBase = mailHopPreferences.api_url,
accountURL = '/v2/accounts/?app='+mailHops.options.version+'&api_key='+mailHopPreferences.api_key;
if(mailHopPreferences.api_ssl=="true")
apiBase='https://'+apiBase;
else
apiBase='http://'+apiBase;
var apiBase = mailHopPreferences.api_http.value+mailHopPreferences.api_host,
accountURL = '/v2/accounts/?api_key='+mailHopPreferences.api_key;
xmlhttp.open("GET", apiBase+accountURL,true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && !!xmlhttp.responseText) {
if (xmlhttp.readyState==4) {
try{
var data = JSON.parse(xmlhttp.responseText);
if(!!data && data.meta.code==200){
@ -188,8 +174,6 @@ function saveAPIKey() {
catch (ex){
document.getElementById("key_details").innerHTML = 'Connection Failed to\n '+apiBase+'!';
}
} else {
document.getElementById("key_details").innerHTML = 'Connection Failed to\n '+apiBase+'!';
}
};
xmlhttp.send(null);
@ -198,19 +182,14 @@ function saveAPIKey() {
}
}
function TestConnection(e){
function TestConnection(){
var xmlhttp = new XMLHttpRequest();
var nativeJSON = Components.classes["@mozilla.org/dom/json;1"].createInstance(Components.interfaces.nsIJSON);
var apiBase = mailHopPreferences.api_url || 'https://api.mailhops.com',
lookupURL = '/v1/lookup/?app='+mailHops.options.version+'&healthcheck';
if(mailHopPreferences.api_ssl=="true")
apiBase='https://'+apiBase;
else
apiBase='http://'+apiBase;
var apiBase = mailHopPreferences.api_http.value+mailHopPreferences.api_host,
lookupURL = '/v1/lookup/?healthcheck';
if(mailHopPreferences.api_key != '')
lookupURL = '/v2/lookup/?app='+mailHops.options.version+'&healthcheck&api_key='+mailHopPreferences.api_key;
lookupURL = '/v2/lookup/?healthcheck&api_key='+mailHopPreferences.api_key;
xmlhttp.open("GET", apiBase+lookupURL,true);
xmlhttp.onreadystatechange=function() {
@ -218,71 +197,22 @@ function TestConnection(e){
try{
var data = JSON.parse(xmlhttp.responseText);
if(!!data && data.meta.code==200){
e.style.backgroundImage='';
alert('Connection Succeeded to\n '+apiBase+'!');
} else {
//display the error
e.style.backgroundImage='';
alert('Connection Failed to\n '+apiBase+'!');
}
}
catch (ex){
e.style.backgroundImage='';
alert('Connection Failed to\n '+apiBase+'!');
alert('Connection Failed to\n '+apiBase+'! '+JSON.stringify(ex));
}
}
};
xmlhttp.send(null);
}
function ResetLocation(e){
//clear the location
document.getElementById("mailhop.client_location").value='Getting your location...';
document.getElementById("mailhop.client_location_ip").value = '';
document.getElementById("mailhop.client_location_host").value = '';
document.getElementById("mailhop.client_location_whois").value = '';
var MH_APIURL = mailHopPreferences.api_ssl=="true"?'https://'+mailHopPreferences.api_url:'http://'+mailHopPreferences.api_url;
mailHops.setClientLocation(function(response){
if(response){
var location = '';
if(response.route[0].city)
location+=response.route[0].city;
if(response.route[0].state)
location+=', '+response.route[0].state;
if(response.route[0].countryName)
location+=' ( '+response.route[0].countryName+' )';
else if(response.route[0].countryCode)
location+=' ( '+response.route[0].countryCode+' )';
//set location
document.getElementById("mailhop.client_location").value=location;
//set ip
document.getElementById("mailhop.client_location_ip").value='IP: '+response.route[0].ip;
//set host
if(response.route[0].host)
document.getElementById("mailhop.client_location_host").value='Host: '+response.route[0].host;
document.getElementById("mailhop.client_location_whois").value = 'whois';
document.getElementById("mailhop.client_location_whois").setAttribute('href', 'https://www.mailhops.com/whois/'+response.route[0].ip);
//set country flag
if(response.route[0].countryCode)
document.getElementById("mailhop.client_location").style.backgroundImage='url(chrome://mailhops/content/images/flags/'+response.route[0].countryCode.toLowerCase()+'.png)';
} else {
document.getElementById("mailhop.client_location").value='Failed connecting...';
}
},MH_APIURL);
}
function ResetConnection(){
mailHopPreferences.api_ssl=="true";
mailHopPreferences.api_ssl.selectedIndex = 0;
mailHopPreferences.api_url='api.mailhops.com';
mailHopPreferences.api_http.value=="https://";
mailHopPreferences.api_http.selectedIndex = 0;
mailHopPreferences.api_host='api.mailhops.com';
}

View File

@ -11,7 +11,6 @@
title="MailHops Preferences">
<script type="application/x-javascript" src="chrome://mailhops/content/utils.js"/>
<script type="application/x-javascript" src="chrome://mailhops/content/mailhops.js"/>
<script type="application/x-javascript" src="chrome://mailhops/content/preferences.js"/>
<!-- <image src="chrome://mailhops/content/images/mailhops-logo.png" width="200"/> -->
@ -21,11 +20,10 @@
<tabbox id="mhTabs" selectedIndex="0">
<tabs>
<tab label="Pro"/>
<tab label="Filter"/>
<tab label="Security"/>
<tab label="Defaults"/>
<tab label="Display"/>
<tab label="API &amp; Hosting"/>
<tab label="Current Location"/>
</tabs>
<tabpanels>
<tabpanel>
@ -56,7 +54,7 @@
<tabpanel>
<groupbox flex="1" style="height:400px;overflow: scroll;">
<caption label="Filter"/>
<caption label="Security"/>
<checkbox id="mailhop.country_tag" label="Tag messages with country origin" checked="false"/>
<description>Mark messages as Junk from Countries checked below.
<label class="text-link plain" value="All " onclick="mailHopPreferences.countryListSelectAll(true);"/>
@ -497,18 +495,18 @@
</columns>
<rows>
<row>
<menulist id="mailhop.api_ssl">
<menulist id="mailhop.api_http">
<menupopup>
<menuitem value="true" label="https://" />
<menuitem value="false" label="http://" />
<menuitem value="https://" label="https://" />
<menuitem value="http://" label="http://" />
</menupopup>
</menulist>
<textbox id="mailhop.api_url" value="api.mailhops.com" flex="1"/>
<textbox id="mailhop.api_host" value="api.mailhops.com" flex="1"/>
</row>
<row>
<hbox/>
<hbox flex="1">
<button onclick="TestConnection(this);">Test Connection</button>
<button onclick="TestConnection();">Test Connection</button>
<button onclick="ResetConnection();">Reset Connection</button>
</hbox>
</row>
@ -525,21 +523,6 @@
</groupbox>
</tabpanel>
<tabpanel>
<groupbox flex="1">
<description>
Your Location is cached on startup and clicking refresh below to reduce the number of lookups by one.
</description>
<description>
<button id="mailhop.refresh_location" onclick="ResetLocation(this);">Refresh your location</button>
</description>
<label id="mailhop.client_location" class="act" value="Not Set" />
<label id="mailhop.client_location_ip" class="plain act" value="" />
<label id="mailhop.client_location_host" class="plain act" value="" />
<label id="mailhop.client_location_whois" class="text-link plain act" value="whois" tooltiptext="Click for whois" />
</groupbox>
</tabpanel>
</tabpanels>
</tabbox>
</vbox>

View File

@ -154,8 +154,8 @@ launchMap: function(route,options){
getAPIUrl: function(options){
if(!!options.api_key && options.api_key != '')
return options.api_url+'/v2';
return options.api_url+'/v1';
return options.api_http+options.api_host+'/v2';
return options.api_http+options.api_host+'/v1';
},
getAPIUrlParams: function(options){