Skip to content

Commit

Permalink
Code refactoring and method reorganisation
Browse files Browse the repository at this point in the history
  • Loading branch information
ylogx committed May 17, 2019
1 parent 2996ce9 commit 787940d
Showing 1 changed file with 26 additions and 17 deletions.
43 changes: 26 additions & 17 deletions bangdd.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
const ID_SEARCH_FORM = "search_form_input";
const ID_SEARCH_BUTTON = "search_button";
const ID_DUCKBAR = "duckbar_static";

const BANG_TO_ADD = "!g";

Expand All @@ -14,30 +16,23 @@ function haveToClickSearch() {

/** Main Action on button click */
function onTimeToBang(event) {
let search_form_input = document.getElementById("search_form_input");
let search_form_input = document.getElementById(ID_SEARCH_FORM);
let current_search = search_form_input.value;
let bang = bangToAdd();

if (!current_search.includes(bang)) {
search_form_input.value = current_search + " " + bang;
}

if (haveToClickSearch()) {
document.getElementById(ID_SEARCH_BUTTON).click();
}
}

function createElementFromHTML(htmlString) {
let div = document.createElement('div');
div.innerHTML = htmlString.trim();

// Change this to div.childNodes to support multiple top-level nodes
return div.firstChild;
}

function createButton() {
let bang_it = createElementFromHTML(
'<li id="bang_it" class="zcm__item">' +
'<a data-zci-link="news" class="zcm__link js-zci-link js-zci-link--news" href="#">Bang It</a>' +
'<a data-zci-link="bang_it" class="zcm__link js-zci-link js-zci-link--bang_it" href="#">Bang It</a>' +
'</li>'
);

Expand All @@ -47,20 +42,34 @@ function createButton() {
return bang_it;
}

function insertAfter(el, referenceNode) {
referenceNode.parentNode.insertBefore(el, referenceNode.nextSibling);
}

function insertInCorrectPosition(bang_it) {
let existingButton = document.getElementById(bang_it.id);
if (existingButton) {
existingButton.remove();
console.log('Removed existing button')
}

insertAfter(bang_it, document.getElementById("duckbar_static").lastChild);
insertAfter(bang_it, document.getElementById(ID_DUCKBAR).lastChild);
console.log('Inserted bang it element');
}

let bang_it = createButton();
insertInCorrectPosition(bang_it);
/* Helper Methods */
function createElementFromHTML(htmlString) {
let div = document.createElement('div');
div.innerHTML = htmlString.trim();

// Change this to div.childNodes to support multiple top-level nodes
return div.firstChild;
}

function insertAfter(el, referenceNode) {
referenceNode.parentNode.insertBefore(el, referenceNode.nextSibling);
}
/* End of helper methods */

function onExtensionLoading() {
let bang_it = createButton();
insertInCorrectPosition(bang_it);
}

onExtensionLoading();

0 comments on commit 787940d

Please sign in to comment.