You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
4.1 KiB
125 lines
4.1 KiB
/*
|
|
| Snicker The first native FlatFile Comment Plugin 4 Bludit
|
|
| @file ./admin/js/admin.snicker.js
|
|
| @author SamBrishes <sam@pytes.net>
|
|
| @version 0.1.2 [0.1.0] - Alpha
|
|
|
|
|
| @website https://github.com/pytesNET/snicker
|
|
| @license X11 / MIT License
|
|
| @copyright Copyright © 2019 SamBrishes, pytesNET <info@pytes.net>
|
|
*/
|
|
;(function(root){
|
|
"use strict";
|
|
var w = root, d = root.document;
|
|
|
|
/*
|
|
| HELPER :: LOOP
|
|
| @since 0.1.0
|
|
*/
|
|
var each = function(elements, callback){
|
|
if(elements instanceof HTMLElement){
|
|
callback.call(elements, elements);
|
|
} else if(elements.length && elements.length > 0){
|
|
for(var l = elements.length, i = 0; i < l; i++){
|
|
callback.call(elements[i], elements[i], i);
|
|
}
|
|
}
|
|
};
|
|
|
|
// Ready?
|
|
d.addEventListener("DOMContentLoaded", function(){
|
|
"use strict";
|
|
|
|
/*
|
|
| BOOTSTRAP POPOVER
|
|
| @since 0.1.0
|
|
*/
|
|
jQuery('[data-toggle="popover"]').popover({
|
|
content: function(){
|
|
var data = d.querySelector(this.getAttribute("data-target"));
|
|
return data.innerHTML;
|
|
},
|
|
html: true
|
|
}).click(function(event){
|
|
event.preventDefault();
|
|
}).on("inserted.bs.popover", function(event){
|
|
d.querySelector("#" + this.getAttribute("aria-describedby")).style.width = "410px";
|
|
d.querySelector("#" + this.getAttribute("aria-describedby")).style.maxWidth = "410px";
|
|
})
|
|
|
|
/*
|
|
| MAIN MENU LINK HANDLER
|
|
| @since 0.1.0
|
|
*/
|
|
var mainMenu = d.querySelector("[data-handle='tabs']");
|
|
if(mainMenu){
|
|
var menuLink = function(link){
|
|
if(typeof(link) === "undefined"){
|
|
if(w.location.hash.length == 0){
|
|
var link = mainMenu.querySelector("li a");
|
|
} else {
|
|
var link = mainMenu.querySelector("[href='#snicker-" + w.location.hash.substr(1) + "']");
|
|
}
|
|
}
|
|
if(!(link instanceof Element)){
|
|
return false;
|
|
}
|
|
|
|
// Handle
|
|
if(link && !link.classList.contains("active")){
|
|
link.click();
|
|
}
|
|
if(link){
|
|
w.location.hash = link.getAttribute("href").replace("snicker-", "");
|
|
}
|
|
};
|
|
|
|
// Current Hash Handler
|
|
if(w.location.hash.length > 0){
|
|
menuLink();
|
|
}
|
|
|
|
// Local Hash Handler
|
|
each(mainMenu.querySelectorAll("li > a"), function(){
|
|
this.addEventListener("click", function(event){
|
|
menuLink(this);
|
|
});
|
|
});
|
|
|
|
// History Hash Handler
|
|
w.onhashchange = function(event){
|
|
if(w.location.hash.length == 0){
|
|
var link = mainMenu.querySelector("li a");
|
|
} else {
|
|
var link = mainMenu.querySelector("[href='#snicker-" + w.location.hash.substr(1) + "']");
|
|
}
|
|
menuLink(link);
|
|
};
|
|
}
|
|
|
|
/*
|
|
| MAIN MENU LINK HANDLER
|
|
| @since 0.1.1
|
|
*/
|
|
var avatar = document.getElementById("sn-avatar"),
|
|
gravatar = document.getElementById("sn-gravatar");
|
|
if(avatar && gravatar){
|
|
var GravatarOption = function(){
|
|
console.log(avatar.value)
|
|
|
|
if(avatar.value == "gravatar"){
|
|
gravatar.disabled = false;
|
|
document.querySelector("label[for='sn-gravatar']").classList.remove("text-muted");
|
|
} else {
|
|
gravatar.disabled = true;
|
|
document.querySelector("label[for='sn-gravatar']").classList.add("text-muted");
|
|
}
|
|
};
|
|
|
|
avatar.addEventListener("change", function(){
|
|
GravatarOption();
|
|
});
|
|
GravatarOption();
|
|
}
|
|
});
|
|
})(window);
|
|
|