Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion ChromeExtension/customDomain.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@

<body id="body">
<div style="padding: 20px; width: 300px">
<span data-bind="text: 'Selected domain: ' + selectedDomain().name"></span>
<center>
<p class="newlink-group">Select custom domain</p>

<select class="form-control" data-bind="options: domainArray,optionsText: 'name', value: selectedDomain">
<select class="form-control" data-bind="options: domainArray, optionsText: 'name', value: selectedDomain">

</select>
<br>
Expand Down
42 changes: 40 additions & 2 deletions ChromeExtension/js/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@ chrome.runtime.onInstalled.addListener(function (details) {
if (details.reason == "install") {
localStorage.setItem("createdLinks", "0");
localStorage.setItem("doneReview", "false");
localStorage.setItem("selectedDomainName", "geni.us");
localStorage.setItem("selectedDomain", JSON.stringify({
name: 'geni.us',
ssl: true
}));
var dateobj = new Date();

function pad(n) {
Expand Down Expand Up @@ -49,7 +52,42 @@ document.addEventListener('DOMContentLoaded', function () {

}

var client = new GeniusLinkServiceClient('https://api.geni.us/v1', localStorage['apiKey'], localStorage['apiSecret']);

client.getFromService('custom-domains/domains', {
format: 'jsv'
}, function (resp) {
var ak = localStorage["selectedDomain"];
var selectedDomainExists = false;
var domains = [];

var result = resp['Domains'];
for (var i = 0; i < result.length; i++) {
var newItem = {
name: result[i]['Name'],
ssl: result[i]['HasValidSslCert'],
id: i
};
domains.push(newItem);

if (typeof ak !== 'undefined' && JSON.parse(ak)['name'] === result[i]['Name']) {
localStorage.setItem("selectedDomain", JSON.stringify(newItem));
selectedDomainExists = true;
}
}

// If geni.us domain (which is what we set as default) doesn't exist, add it
// This shouldn't happen ever, but just in case..
if (typeof ak !== 'undefined' && !selectedDomainExists){
var selected = JSON.parse(ak);
selected.id = domains.length;
domains.push(selected);
}

localStorage.setItem("customDomains", JSON.stringify(domains));
}, function (error) {
alert(error)
});

});

Expand Down Expand Up @@ -116,7 +154,7 @@ function createGeniusLink(url) {
var client = new GeniusLinkServiceClient('https://api.geni.us/v3', localStorage['apiKey'], localStorage['apiSecret']);
client.postToService('shorturls', {
GroupId: localStorage['defaultGroupId'],
Domain: localStorage['selectedDomainName'],
Domain: JSON.parse(localStorage['selectedDomain'])['name'],
Url: url
},
function (data) {
Expand Down
49 changes: 14 additions & 35 deletions ChromeExtension/js/customDomainViewModel.js
Original file line number Diff line number Diff line change
@@ -1,52 +1,31 @@
function customDomainViewModel() {

var self = this;
self.selectedDomain = ko.observable();
self.domainArray = ko.observableArray();

self.selectedDomain.subscribe(function (newValue) {
localStorage.setItem("selectedDomainName", newValue.name);

});



var client = new GeniusLinkServiceClient('https://api.geni.us/v1', localStorage['apiKey'], localStorage['apiSecret']);

client.getFromService('custom-domains/domains', {
format: 'jsv'
}, function (resp) {
var ak = localStorage["selectedDomainName"];

var result = resp['Domains'];
for (var i = 0; i < result.length; i++) {
var newItem = {
name: result[i]['Name'],
id: i
};
self.domainArray.push(newItem);
self.domainArray = ko.observableArray(JSON.parse(localStorage["customDomains"]));

if (typeof ak !== 'undefined' && ak === result[i]['Name']) {
self.selectedDomain(newItem);
if (localStorage["selectedDomain"] != undefined){
self.selectedDomain(JSON.parse(localStorage["selectedDomain"]));
} else {
self.selectedDomain(self.domainArray[0]);
}

self.selectedDomain.subscribe(function (newValue) {
var old = localStorage["selectedDomain"];
if (old == undefined){
localStorage.setItem("selectedDomain", JSON.stringify(newValue));
}
else {
if (JSON.parse(old)["name"] != newValue["name"]){
localStorage.setItem("selectedDomain", JSON.stringify(newValue));
}
}

}, function (error) {
alert(error)
});




}

$('#back').on('click', 'a', function () {
window.location.href = window.history.back(1);
});



var customDomainModel = new customDomainViewModel();

if (typeof testModel === 'undefined') {
Expand Down
16 changes: 14 additions & 2 deletions ChromeExtension/js/lastLinksViewModel.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,21 @@ function lastLinksViewModel() {
{
urlToShow = current.Aliases[0].Code;
baseUrl = current.Aliases[0].BaseCode;
}
}

var ssl = false
var domainsString = localStorage["customDomains"];
if (domainsString == undefined){
domainsString = '[]';
}
var domains = JSON.parse(domainsString);
var currentInfo = domains.filter(x => x.name == current['Domain'])[0];
if (current['Domain'] == 'geni.us' || (domains != undefined && domains.length > 0 && currentInfo != undefined)){
ssl = true;
}

self.resultsArray.push({
url: 'http://' + current['Domain'] + '/' + urlToShow,
url: (ssl? 'https://' : 'http://') + current['Domain'] + '/' + urlToShow,
totalClicks: current['TotalClicks'],
editUrl: 'https://my.geni.us/links#!editlink=' + baseUrl
});
Expand Down