Browse Source

Cleanup and merged with StoryJS core library

pull/185/head
Zach Wise 13 years ago
parent
commit
0f3702d654
  1. 26
      source/js/Core/VMM.Library.js
  2. 54
      source/js/Core/VMM.Util.js
  3. 66
      source/js/Embed/Embed.js
  4. 1
      source/js/VMM.Timeline.License.js
  5. 4
      source/js/VMM.Timeline.TimeNav.js
  6. 25
      source/js/VMM.Timeline.js

26
source/js/Core/VMM.Library.js

@ -2,6 +2,32 @@
================================================== */ ================================================== */
if(typeof VMM != 'undefined') { if(typeof VMM != 'undefined') {
VMM.smoothScrollTo = function(elem, duration, ease) {
if( typeof( jQuery ) != 'undefined' ){
var _ease = "easein",
_duration = 1000;
if (duration != null) {
if (duration < 1) {
_duration = 1;
} else {
_duration = Math.round(duration);
}
}
if (ease != null && ease != "") {
_ease = ease;
}
if (jQuery(window).scrollTop() != VMM.Lib.offset(elem).top) {
VMM.Lib.animate('html,body', _duration, _ease, {scrollTop: VMM.Lib.offset(elem).top})
}
}
};
VMM.attachElement = function(element, content) { VMM.attachElement = function(element, content) {
if( typeof( jQuery ) != 'undefined' ){ if( typeof( jQuery ) != 'undefined' ){
jQuery(element).html(content); jQuery(element).html(content);

54
source/js/Core/VMM.Util.js

@ -25,6 +25,18 @@ if(typeof VMM != 'undefined' && typeof VMM.Util == 'undefined') {
}, },
/* * MERGE CONFIG
================================================== */
mergeConfig: function(config_main, config_to_merge) {
var x;
for (x in config_to_merge) {
if (Object.prototype.hasOwnProperty.call(config_to_merge, x)) {
config_main[x] = config_to_merge[x];
}
}
return config_main;
},
/* * GET OBJECT ATTRIBUTE BY INDEX /* * GET OBJECT ATTRIBUTE BY INDEX
================================================== */ ================================================== */
getObjectAttributeByIndex: function(obj, index) { getObjectAttributeByIndex: function(obj, index) {
@ -42,6 +54,13 @@ if(typeof VMM != 'undefined' && typeof VMM.Util == 'undefined') {
} }
}, },
/* * ORDINAL
================================================== */
ordinal: function(n) {
return ["th","st","nd","rd"][(!( ((n%10) >3) || (Math.floor(n%100/10)==1)) ) * (n%10)];
},
/* * RANDOM BETWEEN /* * RANDOM BETWEEN
================================================== */ ================================================== */
//VMM.Util.randomBetween(1, 3) //VMM.Util.randomBetween(1, 3)
@ -363,34 +382,19 @@ if(typeof VMM != 'undefined' && typeof VMM.Util == 'undefined') {
properQuotes: function(str) { properQuotes: function(str) {
return str.replace(/\"([^\"]*)\"/gi,"&#8220;$1&#8221;"); return str.replace(/\"([^\"]*)\"/gi,"&#8220;$1&#8221;");
}, },
/* * Given an int or decimal, return a string with pretty commas in the correct spot. /* * Add Commas to numbers
================================================== */ ================================================== */
niceNumber: function(n){ niceNumber: function(nStr){
nStr += '';
var amount = String( Math.abs(Number(n) ) ); x = nStr.split('.');
x1 = x[0];
var leftOfDecimal = amount.split(/\./g)[0]; x2 = x.length > 1 ? '.' + x[1] : '';
var rightOfDecimal = amount.split(/\./g)[1]; var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
var formatted_text = ''; x1 = x1.replace(rgx, '$1' + ',' + '$2');
var num_a = leftOfDecimal.toArray();
num_a.reverse();
for (var i=1; i <= num_a.length; i++) {
if ( (i%3 == 0) && (i < num_a.length ) ) {
formatted_text = "," + num_a[i-1] + formatted_text;
} else {
formatted_text = num_a[i-1] + formatted_text;
}
}
if (rightOfDecimal != null && rightOfDecimal != '' && rightOfDecimal != undefined) {
return formatted_text + "." + rightOfDecimal;
} else {
return formatted_text;
} }
return x1 + x2;
}, },
/* * Transform text to Title Case /* * Transform text to Title Case
================================================== */ ================================================== */
toTitleCase: function(t){ toTitleCase: function(t){

66
source/js/Embed/Embed.js

@ -1,18 +1,7 @@
/* * VéritéCo Timeline Loader 0.8 /*
* Designed and built by Zach Wise digitalartwork.net VéritéCo Embed Loader 0.8
Designed and built by Zach Wise digitalartwork.net
* This program is free software: you can redistribute it and/or modify Date: June 21, 2012
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* http://www.gnu.org/licenses/
*/ */
/* CodeKit Import /* CodeKit Import
@ -22,9 +11,9 @@
var WebFontConfig; var WebFontConfig;
if(typeof timeline_path == 'undefined' || typeof timeline_path == 'undefined') { if(typeof embed_path == 'undefined' || typeof embed_path == 'undefined') {
// REPLACE WITH YOUR BASEPATH IF YOU WANT OTHERWISE IT WILL TRY AND FIGURE IT OUT // REPLACE WITH YOUR BASEPATH IF YOU WANT OTHERWISE IT WILL TRY AND FIGURE IT OUT
var timeline_path = getScriptPath("timeline-embed.js").split("js/")[0]; var embed_path = getScriptPath("timeline-embed.js").split("js/")[0];
} }
function getScriptPath(scriptname) { function getScriptPath(scriptname) {
var scriptTags = document.getElementsByTagName('script'), var scriptTags = document.getElementsByTagName('script'),
@ -48,8 +37,8 @@ function getScriptPath(scriptname) {
/* VARS /* VARS
================================================== */ ================================================== */
var timelinejs, t, te, x, isCDN = false, var embedjs, t, te, x, isCDN = false,
timeline_js_version = "1.62", js_version = "1.68",
jquery_version_required = "1.7.1", jquery_version_required = "1.7.1",
jquery_version = "", jquery_version = "",
ready = { ready = {
@ -67,19 +56,19 @@ function getScriptPath(scriptname) {
} }
}, },
path = { path = {
base: timeline_path, base: embed_path,
css: timeline_path + "css/", css: embed_path + "css/",
js: timeline_path + "js/", js: embed_path + "js/",
locale: timeline_path + "js/locale/", locale: embed_path + "js/locale/",
jquery: "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js", jquery: "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js",
font: { font: {
google: false, google: false,
css: timeline_path + "css/themes/font/", css: embed_path + "css/themes/font/",
js: "http://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js" js: "http://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js"
} }
}, },
embed_config = { embed_config = {
version: timeline_js_version, version: js_version,
debug: false, debug: false,
embed: true, embed: true,
width: '100%', width: '100%',
@ -87,8 +76,8 @@ function getScriptPath(scriptname) {
source: 'https://docs.google.com/spreadsheet/pub?key=0Agl_Dv6iEbDadFYzRjJPUGktY0NkWXFUWkVIZDNGRHc&output=html', source: 'https://docs.google.com/spreadsheet/pub?key=0Agl_Dv6iEbDadFYzRjJPUGktY0NkWXFUWkVIZDNGRHc&output=html',
lang: 'en', lang: 'en',
font: 'default', font: 'default',
css: path.css + 'timeline.css?'+timeline_js_version, css: path.css + 'timeline.css?'+js_version,
js: path.js + 'timeline-min.js?'+timeline_js_version js: path.js + 'timeline-min.js?'+js_version
}, },
font_presets = [ font_presets = [
{ name: "Merriweather-NewsCycle", google: [ 'News+Cycle:400,700:latin', 'Merriweather:400,700,900:latin' ] }, { name: "Merriweather-NewsCycle", google: [ 'News+Cycle:400,700:latin', 'Merriweather:400,700,900:latin' ] },
@ -148,17 +137,16 @@ function getScriptPath(scriptname) {
if (embed_config.lang.match("/")) { if (embed_config.lang.match("/")) {
path.locale = embed_config.lang; path.locale = embed_config.lang;
} else { } else {
path.locale = path.locale + embed_config.lang + ".js?" + timeline_js_version; path.locale = path.locale + embed_config.lang + ".js?" + js_version;
} }
// Check for old installs still using the old method of language // Check for old installs still using the old method of language
if (embed_config.js.match("locale")) { if (embed_config.js.match("locale")) {
embed_config.lang = embed_config.js.split("locale/")[1].replace(".js", ""); embed_config.lang = embed_config.js.split("locale/")[1].replace(".js", "");
embed_config.js = path.js + 'timeline-min.js?'+timeline_js_version; embed_config.js = path.js + 'timeline-min.js?' + js_version;
} }
/* PREPARE /* PREPARE
================================================== */ ================================================== */
timeline_config = embed_config; createEmbedDiv();
createTimelineDiv();
/* Load CSS /* Load CSS
================================================== */ ================================================== */
@ -178,7 +166,7 @@ function getScriptPath(scriptname) {
path.font.css = embed_config.font; path.font.css = embed_config.font;
} else { } else {
path.font.name = embed_config.font; path.font.name = embed_config.font;
path.font.css = path.font.css + embed_config.font + ".css?" + timeline_js_version; path.font.css = path.font.css + embed_config.font + ".css?" + js_version;
} }
LazyLoad.css(path.font.css, onloaded_font_css); LazyLoad.css(path.font.css, onloaded_font_css);
@ -262,7 +250,7 @@ function getScriptPath(scriptname) {
if (ready.js && ready.css && ready.font.css && ready.font.js && ready.language) { if (ready.js && ready.css && ready.font.css && ready.font.js && ready.language) {
if (!ready.finished) { if (!ready.finished) {
ready.finished = true; ready.finished = true;
buildTimeline(); buildEmbed();
} }
} else { } else {
ready.timeout = setTimeout('onloaded_check_again();', 250); ready.timeout = setTimeout('onloaded_check_again();', 250);
@ -275,11 +263,11 @@ function getScriptPath(scriptname) {
/* Build Timeline /* Build Timeline
================================================== */ ================================================== */
function createTimelineDiv() { function createEmbedDiv() {
t = document.createElement('div'); t = document.createElement('div');
te = document.getElementById("timeline-embed"); te = document.getElementById("timeline-embed");
te.appendChild(t); te.appendChild(t);
t.setAttribute("id", 'timeline'); t.setAttribute("id", 'timelinejs');
if (embed_config.width.toString().match("%") ) { if (embed_config.width.toString().match("%") ) {
te.style.width = embed_config.width; te.style.width = embed_config.width;
@ -302,12 +290,12 @@ function getScriptPath(scriptname) {
t.style.position = 'relative'; t.style.position = 'relative';
} }
function buildTimeline() { function buildEmbed() {
VMM.debug = embed_config.debug; VMM.debug = embed_config.debug;
timelinejs = new VMM.Timeline(); embedjs = new VMM.Timeline();
timelinejs.init(embed_config.source); embedjs.init(embed_config.source);
if (isCDN) { if (isCDN) {
VMM.bindEvent(global, onTimelineHeadline, "TIMELINE_HEADLINE"); VMM.bindEvent(global, onHeadline, "HEADLINE");
} }
}; };

1
source/js/VMM.Timeline.License.js

@ -1,5 +1,6 @@
/*! /*!
TimelineJS TimelineJS
Version 1.65
Designed and built by Zach Wise at VéritéCo Designed and built by Zach Wise at VéritéCo
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify

4
source/js/VMM.Timeline.TimeNav.js

@ -1295,8 +1295,8 @@ if(typeof VMM.Timeline != 'undefined' && typeof VMM.Timeline.TimeNav == 'undefin
$dragslide.createPanel(layout, $timenav, config.nav.constraint, config.touch); $dragslide.createPanel(layout, $timenav, config.nav.constraint, config.touch);
// ZOOM EVENTS // ZOOM EVENTS
VMM.bindEvent(".zoom-in", onZoomIn, "click"); VMM.bindEvent($zoomin, onZoomIn, "click");
VMM.bindEvent(".zoom-out", onZoomOut, "click"); VMM.bindEvent($zoomout, onZoomOut, "click");
if (!config.touch) { if (!config.touch) {

25
source/js/VMM.Timeline.js

@ -62,10 +62,10 @@ if(typeof VMM != 'undefined' && typeof VMM.Timeline == 'undefined') {
if (type.of(_timeline_id) == "string") { if (type.of(_timeline_id) == "string") {
timeline_id = _timeline_id; timeline_id = _timeline_id;
} else { } else {
timeline_id = "#timeline"; timeline_id = "#timelinejs";
} }
version = "1.65"; version = "1.68";
trace("TIMELINE VERSION " + version); trace("TIMELINE VERSION " + version);
@ -76,7 +76,7 @@ if(typeof VMM != 'undefined' && typeof VMM.Timeline == 'undefined') {
events: { events: {
data_ready: "DATAREADY", data_ready: "DATAREADY",
messege: "MESSEGE", messege: "MESSEGE",
headline: "TIMELINE_HEADLINE", headline: "HEADLINE",
slide_change: "SLIDE_CHANGE", slide_change: "SLIDE_CHANGE",
resize: "resize" resize: "resize"
}, },
@ -191,21 +191,14 @@ if(typeof VMM != 'undefined' && typeof VMM.Timeline == 'undefined') {
var createConfig = function(conf) { var createConfig = function(conf) {
// APPLY SUPPLIED CONFIG TO TIMELINE CONFIG // APPLY SUPPLIED CONFIG TO TIMELINE CONFIG
if (typeof embed_config == 'object') {
timeline_config = embed_config;
}
if (typeof timeline_config == 'object') { if (typeof timeline_config == 'object') {
trace("HAS TIMELINE CONFIG"); trace("HAS TIMELINE CONFIG");
var x; config = VMM.Util.mergeConfig(config, timeline_config);
for (x in timeline_config) {
if (Object.prototype.hasOwnProperty.call(timeline_config, x)) {
config[x] = timeline_config[x];
}
}
} else if (typeof conf == 'object') { } else if (typeof conf == 'object') {
var x; config = VMM.Util.mergeConfig(config, conf);
for (x in conf) {
if (Object.prototype.hasOwnProperty.call(conf, x)) {
config[x] = conf[x];
}
}
} }
if (VMM.Browser.device == "mobile" || VMM.Browser.device == "tablet") { if (VMM.Browser.device == "mobile" || VMM.Browser.device == "tablet") {
@ -347,10 +340,12 @@ if(typeof VMM != 'undefined' && typeof VMM.Timeline == 'undefined') {
$feedback = VMM.appendAndGetElement($timeline, "<div>", "feedback", ""); $feedback = VMM.appendAndGetElement($timeline, "<div>", "feedback", "");
// EVENTS
VMM.bindEvent(global, onDataReady, config.events.data_ready); VMM.bindEvent(global, onDataReady, config.events.data_ready);
VMM.bindEvent(global, showMessege, config.events.messege); VMM.bindEvent(global, showMessege, config.events.messege);
VMM.fireEvent(global, config.events.messege, VMM.master_config.language.messages.loading_timeline); VMM.fireEvent(global, config.events.messege, VMM.master_config.language.messages.loading_timeline);
/* GET DATA /* GET DATA
================================================== */ ================================================== */
if (VMM.Browser.browser == "Explorer" || VMM.Browser.browser == "MSIE") { if (VMM.Browser.browser == "Explorer" || VMM.Browser.browser == "MSIE") {

Loading…
Cancel
Save