From 647c59f8209e3a82adb3e54f4c211fc67f1e1fd6 Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 6 Apr 2014 21:27:41 +0200 Subject: move webm js into a better place --- js/webm-settings.js | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 js/webm-settings.js (limited to 'js/webm-settings.js') diff --git a/js/webm-settings.js b/js/webm-settings.js new file mode 100644 index 00000000..f67e42d6 --- /dev/null +++ b/js/webm-settings.js @@ -0,0 +1,81 @@ +/* This file is dedicated to the public domain; you may do as you wish with it. */ + +// Default settings +var defaultSettings = { + "videoexpand": true, + "videohover": false, + "videovolume": 1.0 +}; + +// Non-persistent settings for when localStorage is absent/disabled +var tempSettings = {}; + +// Scripts obtain settings by calling this function +function setting(name) { + if (localStorage) { + if (localStorage[name] === undefined) return defaultSettings[name]; + return JSON.parse(localStorage[name]); + } else { + if (tempSettings[name] === undefined) return defaultSettings[name]; + return tempSettings[name]; + } +} + +// Settings should be changed with this function +function changeSetting(name, value) { + if (localStorage) { + localStorage[name] = JSON.stringify(value); + } else { + tempSettings[name] = value; + } +} + +// Create settings menu +var settingsMenu = document.createElement("span"); +settingsMenu.className = "settings"; +settingsMenu.innerHTML = '[WebM Settings]' + + '
' + + '
' + + '
' + + '
' + + '
'; + +function refreshSettings() { + var settingsItems = settingsMenu.getElementsByTagName("input"); + for (var i = 0; i < settingsItems.length; i++) { + var control = settingsItems[i]; + if (control.type == "checkbox") { + control.checked = setting(control.name); + } else if (control.type == "range") { + control.value = setting(control.name); + } + } +} + +function setupControl(control) { + if (control.addEventListener) control.addEventListener("change", function(e) { + if (control.type == "checkbox") { + changeSetting(control.name, control.checked); + } else if (control.type == "range") { + changeSetting(control.name, control.value); + } + }, false); +} + +refreshSettings(); +var settingsItems = settingsMenu.getElementsByTagName("input"); +for (var i = 0; i < settingsItems.length; i++) { + setupControl(settingsItems[i]); +} + +if (settingsMenu.addEventListener) { + settingsMenu.addEventListener("mouseover", function(e) { + refreshSettings(); + settingsMenu.getElementsByTagName("span")[0].style.fontWeight = "bold"; + settingsMenu.getElementsByTagName("div")[0].style.display = "block"; + }, false); + settingsMenu.addEventListener("mouseout", function(e) { + settingsMenu.getElementsByTagName("span")[0].style.fontWeight = "normal"; + settingsMenu.getElementsByTagName("div")[0].style.display = "none"; + }, false); +} -- cgit v1.3 From 5c38368e600d04f4d2055a97c0b57a6dea520bd5 Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 6 Apr 2014 22:28:26 +0200 Subject: webm: more integration --- js/expand-video.js | 6 +++--- js/webm-settings.js | 10 ++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'js/webm-settings.js') diff --git a/js/expand-video.js b/js/expand-video.js index 96427667..530b8cac 100644 --- a/js/expand-video.js +++ b/js/expand-video.js @@ -208,9 +208,9 @@ function setupVideosIn(element) { } } -if (window.addEventListener) window.addEventListener("load", function(e) { +onready(function(){ // Insert menu from settings.js - if (typeof settingsMenu != "undefined") document.body.insertBefore(settingsMenu, document.body.firstChild); + if (typeof settingsMenu != "undefined") document.body.insertBefore(settingsMenu, document.getElementsByTagName("hr")[0]); // Setup Javascript events for videos in document now setupVideosIn(document); @@ -231,5 +231,5 @@ if (window.addEventListener) window.addEventListener("load", function(e) { }); observer.observe(document.body, {childList: true, subtree: true}); } -}, false); +}); diff --git a/js/webm-settings.js b/js/webm-settings.js index f67e42d6..6b1ed45c 100644 --- a/js/webm-settings.js +++ b/js/webm-settings.js @@ -31,10 +31,12 @@ function changeSetting(name, value) { } // Create settings menu -var settingsMenu = document.createElement("span"); -settingsMenu.className = "settings"; -settingsMenu.innerHTML = '[WebM Settings]' - + '
' +var settingsMenu = document.createElement("div"); +settingsMenu.style.textAlign = "right"; +settingsMenu.style.background = "inherit"; + +settingsMenu.innerHTML = 'WebM Settings' + + '
' + '
' + '
' + '
' -- cgit v1.3 From 28033fe6f35558b017b52f2564e3a2149cdd0c51 Mon Sep 17 00:00:00 2001 From: czaks Date: Sun, 6 Apr 2014 22:32:48 +0200 Subject: webm i18n --- js/expand-video.js | 10 +++++++--- js/webm-settings.js | 12 ++++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) (limited to 'js/webm-settings.js') diff --git a/js/expand-video.js b/js/expand-video.js index 530b8cac..d2e35249 100644 --- a/js/expand-video.js +++ b/js/expand-video.js @@ -1,6 +1,10 @@ /* This file is dedicated to the public domain; you may do as you wish with it. */ /* Note: This code expects the global variable configRoot to be set. */ +if (typeof _ == 'undefined') { + var _ = function(a) { return a; }; +} + function setupVideo(thumb, url) { var video = null; var videoContainer, videoHide; @@ -38,7 +42,7 @@ function setupVideo(thumb, url) { video = document.createElement("video"); video.src = url; video.loop = loop; - video.innerText = "Your browser does not support HTML5 video."; + video.innerText = _("Your browser does not support HTML5 video."); videoHide = document.createElement("img"); videoHide.src = configRoot + "static/collapse.gif"; @@ -182,8 +186,8 @@ function setupVideo(thumb, url) { }, false); } - loopControls[0].textContent = "[play once]"; - loopControls[1].textContent = "[loop]"; + loopControls[0].textContent = _("[play once]"); + loopControls[1].textContent = _("[loop]"); loopControls[1].style.fontWeight = "bold"; for (var i = 0; i < 2; i++) { setupLoopControl(i); diff --git a/js/webm-settings.js b/js/webm-settings.js index 6b1ed45c..cecf36d0 100644 --- a/js/webm-settings.js +++ b/js/webm-settings.js @@ -1,5 +1,9 @@ /* This file is dedicated to the public domain; you may do as you wish with it. */ +if (typeof _ == 'undefined') { + var _ = function(a) { return a; }; +} + // Default settings var defaultSettings = { "videoexpand": true, @@ -35,11 +39,11 @@ var settingsMenu = document.createElement("div"); settingsMenu.style.textAlign = "right"; settingsMenu.style.background = "inherit"; -settingsMenu.innerHTML = 'WebM Settings' +settingsMenu.innerHTML = ''+_('WebM Settings')+'' + '
' - + '
' - + '
' - + '
' + + '
' + + '
' + + '
' + '
'; function refreshSettings() { -- cgit v1.3