From 96d3b84593362eecc2e8f1d5b4f13b7779efcbcd Mon Sep 17 00:00:00 2001 From: Sean Fridman Date: Thu, 9 Apr 2015 12:46:44 -0400 Subject: Update app manifest to use one schema --- site/templates/index.liquid | 24 ++++++++++++++++-------- site/templates/project.liquid | 20 ++++++++++---------- 2 files changed, 26 insertions(+), 18 deletions(-) (limited to 'site/templates') diff --git a/site/templates/index.liquid b/site/templates/index.liquid index 8797f25..41de3e2 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -87,26 +87,34 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends.
RETAIL
- {% for project in retail %} - {{ project.shortname }} + {% for project in projects %} + {% if project.category == 'retail' %} + {{ project.shortname }} + {% endif %} {% endfor %}
advertising
- {% for project in advertising %} - {{ project.shortname || project.title }} + {% for project in projects %} + {% if project.category == 'advertising' %} + {{ project.shortname || project.title }} + {% endif %}} {% endfor %}
experiential
- {% for project in experiential %} - {{ project.shortname || project.title }} + {% for project in projects %} + {% if project.category == 'experiential' %} + {{ project.shortname || project.title }} + {% endif %}} {% endfor %}
content
- {% for project in content %} - {{ project.shortname || project.title }} + {% for project in projects %} + {% if project.category == 'content' %} + {{ project.shortname || project.title }} + {% endif %}} {% endfor %}
diff --git a/site/templates/project.liquid b/site/templates/project.liquid index 5e6bc84..583cb09 100644 --- a/site/templates/project.liquid +++ b/site/templates/project.liquid @@ -1,22 +1,22 @@
- {{post.title}} - + {{project.title}} +
- {{ post.description }} + {{ project.description }}
- - + +
-
-
\ No newline at end of file + + -- cgit v1.2.3-70-g09d2 From 89b9693aaa02ee80be0e4efdf9cad8b1d0fe7978 Mon Sep 17 00:00:00 2001 From: Sean Fridman Date: Thu, 9 Apr 2015 12:54:29 -0400 Subject: Remove stray curlies --- site/templates/index.liquid | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'site/templates') diff --git a/site/templates/index.liquid b/site/templates/index.liquid index 41de3e2..3d31f91 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -98,7 +98,7 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends. {% for project in projects %} {% if project.category == 'advertising' %} {{ project.shortname || project.title }} - {% endif %}} + {% endif %} {% endfor %}
experiential
@@ -106,7 +106,7 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends. {% for project in projects %} {% if project.category == 'experiential' %} {{ project.shortname || project.title }} - {% endif %}} + {% endif %} {% endfor %}
content
@@ -114,7 +114,7 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends. {% for project in projects %} {% if project.category == 'content' %} {{ project.shortname || project.title }} - {% endif %}} + {% endif %} {% endfor %} -- cgit v1.2.3-70-g09d2 From 3a28bacfc38cd0244ada6e74655d1e30d81d4d34 Mon Sep 17 00:00:00 2001 From: Julie Lala Date: Thu, 9 Apr 2015 13:32:45 -0400 Subject: video thumbnail and /all page --- site/index.js | 7 +++++++ site/templates/all.liquid | 10 ++++++---- site/templates/project.liquid | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) (limited to 'site/templates') diff --git a/site/index.js b/site/index.js index 55752e5..6e5aed0 100644 --- a/site/index.js +++ b/site/index.js @@ -53,6 +53,13 @@ var app = okcms.createApp({ '/contact': { data: {type: 'page', query: 'contact'} }, + '/all': { + data: { + type: 'project', + query: '*' + }, + template: 'all' + }, '/retail/:id': { data: { type: 'project', diff --git a/site/templates/all.liquid b/site/templates/all.liquid index edb31d2..852137f 100644 --- a/site/templates/all.liquid +++ b/site/templates/all.liquid @@ -1,6 +1,8 @@
-
- - DIESEL SS15 -
+ {% for project in projects %} +
+ + {{ project.shortname }} +
+ {% endfor %}
diff --git a/site/templates/project.liquid b/site/templates/project.liquid index 583cb09..bcaea75 100644 --- a/site/templates/project.liquid +++ b/site/templates/project.liquid @@ -4,7 +4,7 @@ +
-- cgit v1.2.3-70-g09d2 From 185751955605a7f302470094528117ff32077e3f Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 9 Apr 2015 17:05:12 -0400 Subject: fix --- site/templates/index.liquid | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'site/templates') diff --git a/site/templates/index.liquid b/site/templates/index.liquid index e459d7b..954670a 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -89,7 +89,7 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends.
@@ -97,7 +97,7 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends.
{% for project in projects %} {% if project.category == 'advertising' %} - {{ project.shortname || project.title }} + {{ project.shortname }} {% endif %} {% endfor %}
@@ -105,7 +105,7 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends.
{% for project in projects %} {% if project.category == 'experiential' %} - {{ project.shortname || project.title }} + {{ project.shortname }} {% endif %} {% endfor %}
@@ -113,7 +113,7 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends.
{% for project in projects %} {% if project.category == 'content' %} - {{ project.shortname || project.title }} + {{ project.shortname }} {% endif %} {% endfor %}
-- cgit v1.2.3-70-g09d2 From a6e734472853328cca725acbbcad0416763e934e Mon Sep 17 00:00:00 2001 From: Julie Lala Date: Thu, 9 Apr 2015 19:27:40 -0400 Subject: newline_to_br --- site/templates/page.liquid | 2 +- site/templates/project.liquid | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'site/templates') diff --git a/site/templates/page.liquid b/site/templates/page.liquid index f752cb9..52b64dc 100644 --- a/site/templates/page.liquid +++ b/site/templates/page.liquid @@ -3,7 +3,7 @@ {{page.title}}
- {{page.body}} + {{page.body | newline_to_br}}
diff --git a/site/templates/project.liquid b/site/templates/project.liquid index bcaea75..d21fed2 100644 --- a/site/templates/project.liquid +++ b/site/templates/project.liquid @@ -12,7 +12,7 @@
- {{ project.description }} + {{ project.description | newline_to_br }}
-- cgit v1.2.3-70-g09d2 From 34f1ca02bea38e0b7ef185ebf07d3ec6df30f370 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 13 Apr 2015 17:57:17 -0400 Subject: split up the projects by category, add a schema flag so we can use the same singular template --- app/index.js | 6 ++-- app/node_modules/okquery/index.js | 6 ++++ app/node_modules/okview/index.js | 2 +- site/db.json | 8 +++-- site/index.js | 67 +++++++++++++++++++++------------------ site/templates/index.liquid | 31 ++++++++---------- 6 files changed, 65 insertions(+), 55 deletions(-) (limited to 'site/templates') diff --git a/app/index.js b/app/index.js index 419adfc..7860f76 100644 --- a/app/index.js +++ b/app/index.js @@ -87,7 +87,6 @@ function OKCMS(options) { this._createResources(resourceConfig, db, schemas); var errorHandler = createErrorHandlerProducer( templateProvider, adminTemplateProvider, debug); - // Create view instances from config var views = this._views = this._createViews(viewConfig, db, meta, resourceCache, templateProvider, @@ -141,7 +140,7 @@ OKCMS.prototype._createResources = function(resourceConfig, db, schemaCache) { var type = config.type; var schema = schemaCache[type]; if (!schema) - throw new Error('Resource config references nonexistent schema'); + throw new Error('Resource config references nonexistent schema ' + type); var resource = OKResource({ type: type, db: db, @@ -244,7 +243,8 @@ OKCMS.prototype._createQueries = function(queryConfig, resourceCache) { var query = config.query || '*'; return new OKQuery({ resource: resource, - query: query + query: query, + as: config.as, }); }); }; diff --git a/app/node_modules/okquery/index.js b/app/node_modules/okquery/index.js index 9cc8b78..519bc08 100644 --- a/app/node_modules/okquery/index.js +++ b/app/node_modules/okquery/index.js @@ -33,6 +33,12 @@ function OKQuery(options) { enumerable: true }); + Object.defineProperty(this, 'as', { + value: options.as, + writable: false, + enumerable: true + }); + this.get = createQuery(resource, query, { default: options.default }); diff --git a/app/node_modules/okview/index.js b/app/node_modules/okview/index.js index 63f22b5..951261c 100644 --- a/app/node_modules/okview/index.js +++ b/app/node_modules/okview/index.js @@ -139,7 +139,7 @@ function fetchTemplateData(meta, queries, id) { return cache; } var resource = queries[i].resource; - var type = queries[i].type; + var type = queries[i].as || queries[i].type; var manyResult = isarray(result); // Inform template of ID in generic field if (manyResult) { diff --git a/site/db.json b/site/db.json index b6fbf24..22833f1 100644 --- a/site/db.json +++ b/site/db.json @@ -1,9 +1,8 @@ { "meta": [], - "project": [ + "retail": [ { "id": "diesel-ss15", - "category": "advertising", "title": "DIESEL JOGG JEANS SS15 DENIM CAMPAIGN", "shortname": "DIESEL SS15", "description": "Sed posuere consectetur est at lobortis. Donec id elit non mi porta gravida at eget metus. Cras mattis consectetur purus sit amet fermentum. Vestibulum id ligula porta felis euismod semper. Donec sed odio dui. \r\n\r\nVestibulum id ligula porta felis euismod semper. Vestibulum id ligula porta felis euismod semper. Vestibulum id ligula porta felis euismod semper. Aenean lacinia bibendum nulla sed consectetur. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. \r\n\r\nCurabitur blandit tempus porttitor. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec ullamcorper nulla non metus auctor fringilla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur blandit tempus porttitor. Maecenas sed diam eget risus varius blandit sit amet non magna.", @@ -50,5 +49,8 @@ "image": "http://checkingintocollege.com/wp/wp-content/uploads/2014/08/angryphone.jpg", "__index": 0 } - ] + ], + "advertising": [], + "experiential": [], + "content": [] } \ No newline at end of file diff --git a/site/index.js b/site/index.js index dace900..8eec697 100644 --- a/site/index.js +++ b/site/index.js @@ -1,5 +1,14 @@ var okcms = require('..'); +var projectSchema = { + id: {type: 'string', id: true}, + title: {type: 'string'}, + shortname: {type: 'string'}, + description: {type: 'text'}, + video: {type: 'video'}, + images: {type: 'captioned-image-list'}, +} + var app = okcms.createApp({ root: 'public', @@ -11,26 +20,19 @@ var app = okcms.createApp({ body: {type: 'text'}, image: {type: 'string'} }, - project: { - id: {type: 'string', id: true}, - title: {type: 'string'}, - shortname: {type: 'string'}, - category: {type: 'enum', options: [ - 'retail', - 'advertising', - 'experiential', - 'content'] - }, - description: {type: 'text'}, - video: {type: 'video'}, - images: {type: 'captioned-image-list'}, - } + retail: projectSchema, + advertising: projectSchema, + experiential: projectSchema, + content: projectSchema, }, resources: [ { type: 'page', static: {id: 'about'}}, { type: 'page', static: {id: 'contact'}}, - { type: 'project' } + { type: 'retail' }, + { type: 'advertising' }, + { type: 'experiential' }, + { type: 'content' } ], services: { @@ -44,8 +46,11 @@ var app = okcms.createApp({ views: { '/': { data: [ - {type: 'project', query: '*'}, - {type: 'page', query: '*'} + {type: 'page', query: '*'}, + {type: 'retail', query: '*'}, + {type: 'advertising', query: '*'}, + {type: 'experiential', query: '*'}, + {type: 'content', query: '*'}, ] }, '/about': { @@ -55,17 +60,19 @@ var app = okcms.createApp({ data: {type: 'page', query: 'contact'} }, '/all': { - data: { - type: 'project', - query: '*' - }, + data: [ + {type: 'retail', query: '*'}, + {type: 'advertising', query: '*'}, + {type: 'experiential', query: '*'}, + {type: 'content', query: '*'}, + ], template: 'all' }, '/retail/:id': { data: { - type: 'project', + type: 'retail', + as: 'project', query: { - category: 'retail', id: ':id' } }, @@ -73,9 +80,8 @@ var app = okcms.createApp({ }, '/advertising/:id': { data: { - type: 'project', + type: 'advertising', query: { - category: 'advertising', id: ':id' } }, @@ -83,9 +89,9 @@ var app = okcms.createApp({ }, '/experiential/:id': { data: { - type: 'project', + type: 'experiential', + as: 'project', query: { - category: 'experiential', id: ':id' } }, @@ -93,12 +99,13 @@ var app = okcms.createApp({ }, '/content/:id': { data: { - type: 'project', + type: 'content', + as: 'project', query: { - category: 'content', id: ':id' } - } + }, + template: 'project' } } diff --git a/site/templates/index.liquid b/site/templates/index.liquid index 954670a..0bd6b7d 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -85,36 +85,28 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends.
-- cgit v1.2.3-70-g09d2 From 58b62a1d76298a568aa0ded39f986477f889b793 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 13 Apr 2015 18:30:24 -0400 Subject: use type and id for frontend lookups --- site/public/assets/javascripts/_env.js | 36 ++++++++++++++++------------------ site/templates/all.liquid | 22 +++++++++++++++++++-- site/templates/index.liquid | 8 ++++---- themes/okadmin/public/js/app.js | 9 +++++++-- 4 files changed, 48 insertions(+), 27 deletions(-) (limited to 'site/templates') diff --git a/site/public/assets/javascripts/_env.js b/site/public/assets/javascripts/_env.js index 2c183aa..8871602 100644 --- a/site/public/assets/javascripts/_env.js +++ b/site/public/assets/javascripts/_env.js @@ -43,16 +43,14 @@ environment.ready = function(){ $("nav a").click(function(e){ e.preventDefault() - var hash = "#" + $(this).data("hash") + var page = "/" + $(this).data("type") + "/" + $(this).data("id") + var hash = "#" + page if (done_loading && window.location.hash == hash) return window.location.hash = hash $("nav a.active").removeClass("active") $(this).addClass("active") open_entry() - - var page = $(this).attr("href") - if (page.indexOf("#") !== -1) page = "#" $("#entry_container").removeClass("visible") @@ -66,8 +64,8 @@ environment.ready = function(){ $("nav .about").click(function(e){ e.preventDefault() - if (done_loading && window.location.hash == "#about") return - window.location.hash = "#about" + if (done_loading && window.location.hash == "#/about") return + window.location.hash = "#/about" $("nav a.active").removeClass("active") open_entry() @@ -81,8 +79,8 @@ environment.ready = function(){ $("nav .contact").click(function(e){ e.preventDefault() - if (done_loading && window.location.hash == "#contact") return - window.location.hash = "#contact" + if (done_loading && window.location.hash == "#/contact") return + window.location.hash = "#/contact" $("nav a.active").removeClass("active") open_entry() @@ -96,8 +94,8 @@ environment.ready = function(){ $("nav .index").click(function(e){ e.preventDefault() - if (done_loading && window.location.hash == "#index") return - window.location.hash = "#index" + if (done_loading && window.location.hash == "#/index") return + window.location.hash = "#/index" $("nav a.active").removeClass("active") open_entry() @@ -107,13 +105,13 @@ environment.ready = function(){ $loader.load("all .entry", function(){ display_entry($loader.children()[0]) }) - }) + }) $(".toggleRapper").click(toggle_menu) $(".toplogo").click(hide_entry) $(document).on("click", ".project", function(){ - var hash = as_hash( $(this).find("span").text() ) - load_hash(hash) + var page = "/" + $(this).data("type") + "/" + $(this).data("id") + load_hash(page) }) $(window).mousedown(function(e){ @@ -146,13 +144,13 @@ environment.ready = function(){ var current_hash = window.location.hash.replace("#","") $("nav a").each(function(){ - var key = as_hash(this.innerHTML) - hashes[key] = this - $(this).data("hash", key) + var page = "/" + $(this).data("type") + "/" + $(this).data("id") + hashes[page] = this + $(this).data("hash", page) }) - hashes['about'] = $("nav .about") - hashes['contact'] = $("nav .contact") - hashes['index'] = $("nav .index") + hashes['/about'] = $("nav .about") + hashes['/contact'] = $("nav .contact") + hashes['/index'] = $("nav .index") if (current_hash in hashes) { toggle_menu() diff --git a/site/templates/all.liquid b/site/templates/all.liquid index 852137f..01ddc3a 100644 --- a/site/templates/all.liquid +++ b/site/templates/all.liquid @@ -1,6 +1,24 @@
- {% for project in projects %} -
+ {% for project in retails %} +
+ + {{ project.shortname }} +
+ {% endfor %} + {% for project in advertisings %} +
+ + {{ project.shortname }} +
+ {% endfor %} + {% for project in experientials %} +
+ + {{ project.shortname }} +
+ {% endfor %} + {% for project in contents %} +
{{ project.shortname }}
diff --git a/site/templates/index.liquid b/site/templates/index.liquid index 0bd6b7d..19bdf88 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -88,25 +88,25 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends.
retail
{% for project in retails %} - {{ project.shortname }} + {{ project.shortname }} {% endfor %}
advertising
{% for project in advertisings %} - {{ project.shortname }} + {{ project.shortname }} {% endfor %}
experiential
{% for project in experientials %} - {{ project.shortname }} + {{ project.shortname }} {% endfor %}
content
{% for project in contents %} - {{ project.shortname }} + {{ project.shortname }} {% endfor %}
diff --git a/themes/okadmin/public/js/app.js b/themes/okadmin/public/js/app.js index 009fe4c..b53d21f 100644 --- a/themes/okadmin/public/js/app.js +++ b/themes/okadmin/public/js/app.js @@ -51,7 +51,7 @@ var OKAdmin = function(){ // fix post indexing in list-driven inputs $(".main.resource form").submit(function(e){ - var $id = $("[name=id]"), $title = $("[name=title]") + var $id = $("[name=id]"), $title = $("[name=title]"), $shortname = $("[name=shortname]") if ($title.length && ! $title.val()) { alert("Please enter a title") @@ -60,6 +60,11 @@ var OKAdmin = function(){ return } + if ($shortname.length && ! $shortname.val()) { + $shortname.val( $title.val() ) + return + } + var slug = slugify( $title.val() ) $id.val( slug ) @@ -136,4 +141,4 @@ $(function(){ }) -function slugify (s){ return (s || "").toLowerCase().replace(/\s/g,"-").replace(/[^-_a-zA-Z0-9]/g, '-').replace(/-+/g,"-") } +function slugify (s){ return (s || "").toLowerCase().replace(/\s/g,"-").replace(/[^-_a-zA-Z0-9]/g, '-').replace(/-+/g, "-") } -- cgit v1.2.3-70-g09d2 From 455c09226f1bc57021147e889ef1127e982ed67c Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 13 Apr 2015 18:52:06 -0400 Subject: rename shortname -> menu to be clear --- site/db.json | 2 +- site/index.js | 2 +- site/templates/all.liquid | 8 ++++---- site/templates/index.liquid | 8 ++++---- themes/okadmin/public/js/app.js | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) (limited to 'site/templates') diff --git a/site/db.json b/site/db.json index 6c598ab..eb0265d 100644 --- a/site/db.json +++ b/site/db.json @@ -4,7 +4,7 @@ { "id": "diesel-jogg-jeans-ss15-denim-campaign", "title": "DIESEL JOGG JEANS SS15 DENIM CAMPAIGN", - "shortname": "DIESEL SS15", + "menu": "DIESEL SS15", "description": "Sed posuere consectetur est at lobortis. Donec id elit non mi porta gravida at eget metus. Cras mattis consectetur purus sit amet fermentum. Vestibulum id ligula porta felis euismod semper. Donec sed odio dui. \r\n\r\nVestibulum id ligula porta felis euismod semper. Vestibulum id ligula porta felis euismod semper. Vestibulum id ligula porta felis euismod semper. Aenean lacinia bibendum nulla sed consectetur. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. \r\n\r\nCurabitur blandit tempus porttitor. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec ullamcorper nulla non metus auctor fringilla. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur blandit tempus porttitor. Maecenas sed diam eget risus varius blandit sit amet non magna.", "video": { "url": "http://vimeo.com/112498725", diff --git a/site/index.js b/site/index.js index d4f5cb4..189dfc4 100644 --- a/site/index.js +++ b/site/index.js @@ -3,7 +3,7 @@ var okcms = require('..'); var projectSchema = { id: {type: 'string', id: true, hidden: true}, title: {type: 'string'}, - shortname: {type: 'string'}, + menu: {type: 'string'}, description: {type: 'text'}, video: {type: 'video'}, images: {type: 'captioned-image-list'}, diff --git a/site/templates/all.liquid b/site/templates/all.liquid index 01ddc3a..e6f39bf 100644 --- a/site/templates/all.liquid +++ b/site/templates/all.liquid @@ -2,25 +2,25 @@ {% for project in retails %}
- {{ project.shortname }} + {{ project.title }}
{% endfor %} {% for project in advertisings %}
- {{ project.shortname }} + {{ project.title }}
{% endfor %} {% for project in experientials %}
- {{ project.shortname }} + {{ project.title }}
{% endfor %} {% for project in contents %}
- {{ project.shortname }} + {{ project.title }}
{% endfor %}
diff --git a/site/templates/index.liquid b/site/templates/index.liquid index 19bdf88..19a0b6c 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -88,25 +88,25 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends.
retail
{% for project in retails %} - {{ project.shortname }} + {{ project.menu }} {% endfor %}
advertising
{% for project in advertisings %} - {{ project.shortname }} + {{ project.menu }} {% endfor %}
experiential
{% for project in experientials %} - {{ project.shortname }} + {{ project.menu }} {% endfor %}
content
{% for project in contents %} - {{ project.shortname }} + {{ project.menu }} {% endfor %}
diff --git a/themes/okadmin/public/js/app.js b/themes/okadmin/public/js/app.js index ab571f3..aa8d0ad 100644 --- a/themes/okadmin/public/js/app.js +++ b/themes/okadmin/public/js/app.js @@ -51,7 +51,7 @@ var OKAdmin = function(){ // fix post indexing in list-driven inputs $(".main.resource form").submit(function(e){ - var $id = $("[name=id]"), $title = $("[name=title]"), $shortname = $("[name=shortname]"), $section = $(".resource.main") + var $id = $("[name=id]"), $title = $("[name=title]"), $menu = $("[name=menu]"), $section = $(".resource.main") var id = $section.data("id"), type = $section.data("type") if ($title.length && ! $title.val()) { @@ -61,8 +61,8 @@ var OKAdmin = function(){ return } - if ($shortname.length && ! $shortname.val()) { - $shortname.val( $title.val() ) + if ($menu.length && ! $menu.val()) { + $menu.val( $title.val() ) return } -- cgit v1.2.3-70-g09d2 From db3775794623ebbc63efb44e545b66f2accfd728 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 13 Apr 2015 19:28:42 -0400 Subject: testing stuff --- site/db.json | 37 ++++++++++++++++++++++++++++++-- site/index.js | 1 + site/templates/project.liquid | 2 +- themes/okadmin/public/js/app.js | 1 - themes/okadmin/templates/resource.liquid | 4 +++- 5 files changed, 40 insertions(+), 5 deletions(-) (limited to 'site/templates') diff --git a/site/db.json b/site/db.json index eb0265d..7681fd8 100644 --- a/site/db.json +++ b/site/db.json @@ -46,7 +46,40 @@ "__index": "0" } ], - "advertising": [], "experiential": [], - "content": [] + "content": [ + { + "id": "stuff", + "title": "Stuff", + "menu": "Stuff", + "description": "Blablhablhalbhab", + "video": { + "url": "http://vimeo.com/112498725", + "type": "vimeo", + "token": "112498725", + "title": "FW14-2H-VIDEO-V4 2", + "thumb": "http://i.vimeocdn.com/video/497493142_640.jpg" + }, + "images": [ + { + "uri": "https://ltho.s3.amazonaws.com/aa5ab62c-a7f4-433e-8957-c059199de924.png", + "caption": "WHO" + }, + { + "uri": "https://ltho.s3.amazonaws.com/888c06f0-32f4-4f7b-938f-fb9bf178a1dc.png", + "caption": "DARK" + }, + { + "uri": "https://ltho.s3.amazonaws.com/525cd121-a436-472f-b201-7b2baffa804a.png", + "caption": "STUFF" + }, + { + "uri": "https://ltho.s3.amazonaws.com/b2a607e6-1c60-42cd-8449-55737501ff9e.png", + "caption": "BLAH" + } + ], + "__index": "0" + } + ], + "advertising": [] } \ No newline at end of file diff --git a/site/index.js b/site/index.js index 189dfc4..b6dea48 100644 --- a/site/index.js +++ b/site/index.js @@ -81,6 +81,7 @@ var app = okcms.createApp({ '/advertising/:id': { data: { type: 'advertising', + as: 'project', query: { id: ':id' } diff --git a/site/templates/project.liquid b/site/templates/project.liquid index d21fed2..e087049 100644 --- a/site/templates/project.liquid +++ b/site/templates/project.liquid @@ -3,7 +3,7 @@ {{project.title}} \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 0f625b3e6b511f4ee1323da30e6280f4880955fc Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 16 Apr 2015 12:38:31 -0400 Subject: get rid of contact image --- site/db.json | 2 +- site/public/assets/images/2H_LOGOMARK.svg | 12 ++++++------ site/public/assets/style.css | 4 ++++ site/templates/index.liquid | 6 +++--- site/templates/page.liquid | 14 ++++++++++---- 5 files changed, 24 insertions(+), 14 deletions(-) (limited to 'site/templates') diff --git a/site/db.json b/site/db.json index f8431f0..d0624e8 100644 --- a/site/db.json +++ b/site/db.json @@ -42,7 +42,7 @@ "id": "contact", "title": "CONTACT", "body": "TWOHUSTLERS\r\n50 WHITE STREET\r\nNEW YORK, NY 10013\r\nINFO@TWOHUSTLERS.COM\r\n+1 646 370-1180\r\nTWOHUSTLERS ©2014\r\nWEBSITE BY OKFOCUS", - "image": "http://checkingintocollege.com/wp/wp-content/uploads/2014/08/angryphone.jpg", + "image": "", "__index": "0" } ], diff --git a/site/public/assets/images/2H_LOGOMARK.svg b/site/public/assets/images/2H_LOGOMARK.svg index 9af234a..43a9691 100644 --- a/site/public/assets/images/2H_LOGOMARK.svg +++ b/site/public/assets/images/2H_LOGOMARK.svg @@ -7,11 +7,11 @@ - - + - - + - -
+ viewBox="338.1 276.3 660.5 819.7" xml:space="preserve"> - + @@ -176,7 +176,7 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends. c0,1-0.1,1.8-0.3,2.7c-0.1,0.8-0.1,1.7-0.3,2.5c0,0.3,0,0.6-0.1,0.8c-4,29.5-20.9,56.4-58.2,93.1l-81.8,80.1 c-53.5,52.1-85.9,103.9-101.6,162.9c-6.7,25.1-13.7,52.6-14.5,81L712.3,705.6z"/> - + diff --git a/site/templates/page.liquid b/site/templates/page.liquid index 52b64dc..7c295ff 100644 --- a/site/templates/page.liquid +++ b/site/templates/page.liquid @@ -1,9 +1,15 @@
{{page.title}} - -
- {{page.body | newline_to_br}} -
+ {% if page.image %} + +
+ {{page.body | newline_to_br}} +
+ {% else %} +
+ {{page.body | newline_to_br}} +
+ {% endif %}
-- cgit v1.2.3-70-g09d2 From b51455df828fde90edbee3143bd8d49b00cc3f1a Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 16 Apr 2015 14:04:10 -0400 Subject: single image upload field, abstract upload class a bit --- site/db.json | 6 +- site/index.js | 1 + site/public/assets/style.css | 3 +- site/templates/index.liquid | 2 + themes/okadmin/public/css/main.css | 25 +++++-- themes/okadmin/public/js/app.js | 93 +++++++++++++++++-------- themes/okadmin/public/js/upload.js | 91 +++++++++++------------- themes/okadmin/templates/partials/inputs.liquid | 52 +++++++++----- 8 files changed, 171 insertions(+), 102 deletions(-) (limited to 'site/templates') diff --git a/site/db.json b/site/db.json index d0624e8..12ccb38 100644 --- a/site/db.json +++ b/site/db.json @@ -27,7 +27,11 @@ "caption": "CURABITUR BLANDIT TEMPUS PORTTITOR 4" } ], - "__index": "0" + "__index": "0", + "shape": { + "uri": "", + "caption": "" + } } ], "page": [ diff --git a/site/index.js b/site/index.js index 521b7d7..30e4a76 100644 --- a/site/index.js +++ b/site/index.js @@ -7,6 +7,7 @@ var projectSchema = { description: {type: 'text'}, video: {type: 'video'}, images: {type: 'captioned-image-list'}, + shape: {type: 'image'}, } var app = okcms.createApp({ diff --git a/site/public/assets/style.css b/site/public/assets/style.css index 3c2526b..28d0013 100644 --- a/site/public/assets/style.css +++ b/site/public/assets/style.css @@ -285,6 +285,7 @@ nav .middle { } nav .bottom { + height: 20%; width: 100%; background: #bbb; } @@ -489,7 +490,7 @@ nav .sub.active a { } .entry span div.content.noline { border-top: 0; - padding-top: 0px; + padding-top: 0; } .entry span div.content div { width:50%; diff --git a/site/templates/index.liquid b/site/templates/index.liquid index afb5de3..d18098c 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -110,9 +110,11 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends. {% endfor %}
+
ABOUT
CONTACT
diff --git a/themes/okadmin/public/css/main.css b/themes/okadmin/public/css/main.css index ec426f9..685e368 100644 --- a/themes/okadmin/public/css/main.css +++ b/themes/okadmin/public/css/main.css @@ -228,7 +228,9 @@ button, input[type=submit] { border: 0; display: none; } -.main.resource form .group.loaded input:first-child, +.main.resource form .group.image input, +.main.resource form .group.video input:first-child, +.main.resource form .group.loaded.video input[type=text], .main.resource form .group input:first-child { display: block; width: 25em; @@ -238,17 +240,24 @@ button, input[type=submit] { } .main.resource form .group.loaded input { display: block; - width: 20.05em; } -.main.resource form .group input { - display: none; +.main.resource form .group input[type=text] { + width: 20.05em; margin-bottom: 0.1em; } +.main.resource form .group.image .image-element, +.main.resource form .group.video input[type=text], .main.resource form .group.loaded input[hidden], +.main.resource form .group.image.loaded .fields, .main.resource form input[hidden] { display: none; } - +.main.resource form .group.image.loaded .image-element { + display: block; +} +.main.resource form .fields { + height: 3em; +} .main.resource form textarea { padding: 0.5em; height: 15em; @@ -280,6 +289,8 @@ button, input[type=submit] { width: 10em; max-height: 10em; border: 0; +} +.main.resource form .images img { cursor: -webkit-grab; cursor: grab; } @@ -313,10 +324,10 @@ button, input[type=submit] { margin: 0; padding: 0; cursor: pointer; } -li.image-element:hover .remove-image { +.image-element:hover .remove-image { display: block; } -li.image-element .remove-image:hover { +.image-element .remove-image:hover { color: red; } .remove-image { diff --git a/themes/okadmin/public/js/app.js b/themes/okadmin/public/js/app.js index 22317f3..baa4873 100644 --- a/themes/okadmin/public/js/app.js +++ b/themes/okadmin/public/js/app.js @@ -1,38 +1,75 @@ var OKAdmin = function(){ - // initialize our (single) ajax image uploader with an element and a template - OKUpload.bind( document.getElementById("file") ) - OKUpload.add = function(data){ - var url = data[0].extra.Location - add_image(url) - } - - // also handle straight image urls - $("#add-image-url").keydown(pressEnter(function(e){ - var url = $(this).val() - $(this).val("") - add_image(url) - })) + // initialize our multi-image uploader with an element and a template + $(".image-list").each(function(){ + var uploader = new OKUpload () + uploader.bind( $(".add-image-button input", this) ) + uploader.add = function(data){ + var url = data[0].extra.Location + add_image(url) + } + // also handle straight image urls + $(".add-image-url", this).keydown(pressEnter(function(e){ + var url = $(this).val() + $(this).val("") + add_image(url) + })) + + // clone and populate template + function add_image(url){ + var imageTemplate = $("#captioned-image-template").html() + var $el = $(imageTemplate) + $el.find(".uri").val(url) + $el.find("img").attr("src", url) + $(".captioned-image-list ol").append($el) + } + }) + // delete image from gallery + $(document).on("mousedown", ".image-list .remove-image", function(){ + if (confirm("Delete this image?")) { + $(this).parent().remove() + } + }) - // clone and populate template - function add_image(url){ - var imageTemplate = $("#captioned-image-template").html() - var $el = $(imageTemplate) - $el.find(".uri").val(url) - $el.find("img").attr("src", url) - $(".captioned-image-list ol").append($el) - } + // initialize our single image uploader with existing DOM + $(".image").each(function(){ + var $el = $(this) + + var uploader = new OKUpload () + uploader.bind( $(".add-image-button input", this) ) + uploader.add = function(data){ + var url = data[0].extra.Location + add_image(url) + } + // also handle straight image urls + $(".add-image-url", this).keydown(pressEnter(function(e){ + var url = $(this).val() + $(this).val("") + add_image(url) + })) + + // clone and populate template + function add_image(url){ + $el.find(".uri").val(url) + $el.find(".caption").val("") + $el.find("img").attr("src", url) + $el.addClass("loaded") + } + }) + // delete image from single image entry + $(document).on("mousedown", ".image .remove-image", function(){ + if (confirm("Delete this image?")) { + var $el = $(this).closest(".image") + $el.removeClass('loaded') + $el.find(".uri").val("") + $el.find(".caption").val("") + $el.find("img").attr("src", "") + } + }) // make the region sortable with drag-and-drop $(".captioned-image-list ol").sortable() $(".captioned-image-list ol").disableSelection() - - // delete image - $(document).on("mousedown", ".remove-image", function(){ - if (confirm("Delete this image?")) { - $(this).parent().remove() - } - }) // populate a video field with info from our url parser var last_url diff --git a/themes/okadmin/public/js/upload.js b/themes/okadmin/public/js/upload.js index 1c9094c..39f7427 100644 --- a/themes/okadmin/public/js/upload.js +++ b/themes/okadmin/public/js/upload.js @@ -1,55 +1,48 @@ -var OKUpload = { - action: "/_services/image", - - bind: function(el){ - if (! el) return - el.addEventListener("change", OKUpload.handleFileSelect) - }, - - handleFileSelect: function(e) { - e.stopPropagation(); - e.preventDefault(); - - var files = e.dataTransfer ? e.dataTransfer.files : e.target.files; - - for (var i = 0, f; f = files[i]; i++) { - if ( ! f.type.match('image.*')) { - continue; - } - OKUpload.upload(f) - } - }, +var OKUpload = function(){ + this.action = "/_services/image" +} +OKUpload.prototype.bind = function(el){ + if (el.length) el = el[0] + el.addEventListener("change", this.handleFileSelect.bind(this)) +} +OKUpload.prototype.handleFileSelect = function(e) { + e.stopPropagation(); + e.preventDefault(); - upload: function(f){ - var fd = new FormData() - fd.append('image', f) + var files = e.dataTransfer ? e.dataTransfer.files : e.target.files; - var request = $.ajax({ - url: OKUpload.action, - type: "post", - data: fd, - dataType: "json", - processData: false, - contentType: false, - }) - request.done(OKUpload.success) - }, - - success: function(media){ - if (media.error) { - console.log(media.error) - return + for (var i = 0, f; f = files[i]; i++) { + if ( ! f.type.match('image.*')) { + continue; } - OKUpload.add(media) - }, - - add: function(media){ - console.log(media) - }, - - error: function(error){ - throw error - }, + this.upload(f) + } +} +OKUpload.prototype.upload = function(f){ + var fd = new FormData() + fd.append('image', f) + var request = $.ajax({ + url: this.action, + type: "post", + data: fd, + dataType: "json", + processData: false, + contentType: false, + }) + request.done(this.success.bind(this)) +} +OKUpload.prototype.success = function(media){ + if (media.error) { + console.log(media.error) + return + } + this.add(media) +} +OKUpload.prototype.add = function(media){ + console.log(media) +} +OKUpload.prototype.error = function(error){ + throw error } diff --git a/themes/okadmin/templates/partials/inputs.liquid b/themes/okadmin/templates/partials/inputs.liquid index 253b275..c9a4d92 100644 --- a/themes/okadmin/templates/partials/inputs.liquid +++ b/themes/okadmin/templates/partials/inputs.liquid @@ -22,15 +22,48 @@ {% elsif type == 'video' %}
- - + +
+ {% elsif type == 'image' %} +
+
+
+ + +
+ +
+
+ + + {{spec.value.caption}} + +
+
{% elsif type == 'captioned-image-list' %} -
+
+
+
+ + +
+ +
+ + +
    {% for image in spec.value %}
  1. @@ -41,19 +74,6 @@
  2. {% endfor %}
-
- - -
- -
{% elsif type == 'meta' %} -- cgit v1.2.3-70-g09d2 From 3f26845f934e95a5c3f9486f83f715240347bbcd Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 16 Apr 2015 14:22:14 -0400 Subject: dry --- site/templates/index.liquid | 8 ++++---- themes/okadmin/public/js/app.js | 41 ++++---------------------------------- themes/okadmin/public/js/upload.js | 30 +++++++++++++++++++++------- 3 files changed, 31 insertions(+), 48 deletions(-) (limited to 'site/templates') diff --git a/site/templates/index.liquid b/site/templates/index.liquid index d18098c..224803a 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -88,25 +88,25 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends.
retail
{% for project in retails %} - {{ project.menu }} + {{ project.menu }} {% endfor %}
advertising
{% for project in advertisings %} - {{ project.menu }} + {{ project.menu }} {% endfor %}
experiential
{% for project in experientials %} - {{ project.menu }} + {{ project.menu }} {% endfor %}
content
{% for project in contents %} - {{ project.menu }} + {{ project.menu }} {% endfor %}
diff --git a/themes/okadmin/public/js/app.js b/themes/okadmin/public/js/app.js index baa4873..874b7e1 100644 --- a/themes/okadmin/public/js/app.js +++ b/themes/okadmin/public/js/app.js @@ -3,20 +3,8 @@ var OKAdmin = function(){ // initialize our multi-image uploader with an element and a template $(".image-list").each(function(){ var uploader = new OKUpload () - uploader.bind( $(".add-image-button input", this) ) - uploader.add = function(data){ - var url = data[0].extra.Location - add_image(url) - } - // also handle straight image urls - $(".add-image-url", this).keydown(pressEnter(function(e){ - var url = $(this).val() - $(this).val("") - add_image(url) - })) - - // clone and populate template - function add_image(url){ + uploader.bind( this ) + uploader.add = function(url){ var imageTemplate = $("#captioned-image-template").html() var $el = $(imageTemplate) $el.find(".uri").val(url) @@ -36,20 +24,8 @@ var OKAdmin = function(){ var $el = $(this) var uploader = new OKUpload () - uploader.bind( $(".add-image-button input", this) ) - uploader.add = function(data){ - var url = data[0].extra.Location - add_image(url) - } - // also handle straight image urls - $(".add-image-url", this).keydown(pressEnter(function(e){ - var url = $(this).val() - $(this).val("") - add_image(url) - })) - - // clone and populate template - function add_image(url){ + uploader.bind( this ) + uploader.add = function(url){ $el.find(".uri").val(url) $el.find(".caption").val("") $el.find("img").attr("src", url) @@ -173,15 +149,6 @@ var OKAdmin = function(){ $input.val(JSON.stringify(parsed)); }) }); - - function pressEnter(fn){ - return function(e){ - if (e.keyCode && e.keyCode !== 13) return - e.preventDefault() - console.log("hi") - fn.apply(this) - } - } } $(function(){ diff --git a/themes/okadmin/public/js/upload.js b/themes/okadmin/public/js/upload.js index 39f7427..040654b 100644 --- a/themes/okadmin/public/js/upload.js +++ b/themes/okadmin/public/js/upload.js @@ -2,9 +2,14 @@ var OKUpload = function(){ this.action = "/_services/image" } -OKUpload.prototype.bind = function(el){ - if (el.length) el = el[0] - el.addEventListener("change", this.handleFileSelect.bind(this)) +OKUpload.prototype.bind = function(rapper){ + var uploader = this + $(".add-image-button input", rapper).change( uploader.handleFileSelect.bind(uploader) ) + $(".add-image-url", rapper).keydown(pressEnter(function(e){ + var url = $(this).val() + $(this).val("") + uploader.add(url) + })) } OKUpload.prototype.handleFileSelect = function(e) { e.stopPropagation(); @@ -33,12 +38,13 @@ OKUpload.prototype.upload = function(f){ }) request.done(this.success.bind(this)) } -OKUpload.prototype.success = function(media){ - if (media.error) { - console.log(media.error) +OKUpload.prototype.success = function(data){ + if (data.error) { + console.log(data.error) return } - this.add(media) + var url = data[0].extra.Location + this.add(url) } OKUpload.prototype.add = function(media){ console.log(media) @@ -46,3 +52,13 @@ OKUpload.prototype.add = function(media){ OKUpload.prototype.error = function(error){ throw error } + + + +function pressEnter(fn){ + return function(e){ + if (e.keyCode && e.keyCode !== 13) return + e.preventDefault() + fn.apply(this) + } +} \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 48923c16e00892fac916a83c8fdccca63800615f Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 16 Apr 2015 14:41:58 -0400 Subject: load shape images from posts --- site/db.json | 2 +- site/public/assets/javascripts/_env.js | 20 ++++++++++++-------- site/templates/index.liquid | 17 ++++++++--------- themes/okadmin/public/js/app.js | 10 ++++++---- themes/okadmin/public/js/upload.js | 4 ++-- 5 files changed, 29 insertions(+), 24 deletions(-) (limited to 'site/templates') diff --git a/site/db.json b/site/db.json index 12ccb38..f1721a6 100644 --- a/site/db.json +++ b/site/db.json @@ -29,7 +29,7 @@ ], "__index": "0", "shape": { - "uri": "", + "uri": "http://okfocus.s3.amazonaws.com/2h/13.gif", "caption": "" } } diff --git a/site/public/assets/javascripts/_env.js b/site/public/assets/javascripts/_env.js index c4e9ace..b567a3d 100644 --- a/site/public/assets/javascripts/_env.js +++ b/site/public/assets/javascripts/_env.js @@ -7,8 +7,11 @@ environment.init = function(){ $("#scene").addClass("fade") var loader = new Loader(environment.ready, new HustleLoader) var preloadImages = $("#preload-image-list").html().split("\n").filter(function(s){ return !!s }) - boxImages = $("#box-image-list").html().split("\n").filter(function(s){ return !!s }) - loader.preloadImages( preloadImages.concat(boxImages) ) + boxImages = $("#box-image-list").html().split("\n") + var postImages = $(".sub a").toArray().map(function(el){ return $(el).data("image") }) + + var images = preloadImages.concat(postImages).concat(boxImages).filter(function(s){ return !!s }) + loader.preloadImages( images ) loader.ready() } environment.ready = function(){ @@ -191,7 +194,7 @@ function build_scene () { controls.zoom(1000) strips.push( new Strip({ - images: boxImages.slice(0, 5), + images: $(".sub[data-type=advertising] a"), x: -100, y: 100, rotationY: PI/4, @@ -199,7 +202,7 @@ function build_scene () { }) ) strips.push( new Strip({ - images: boxImages.slice(5, 10), + images: $(".sub[data-type=retail] a"), x: 100, y: 100, rotationX: PI/4, @@ -208,7 +211,7 @@ function build_scene () { }) ) strips.push( new Strip({ - images: boxImages.slice(10, 15), + images: $(".sub[data-type=experiential] a"), x: 0, y: 100, z: 100, @@ -217,7 +220,7 @@ function build_scene () { }) ) strips.push( new Strip({ - images: boxImages.slice(15, 20), + images: $(".sub[data-type=content] a"), x: 0, y: 100, z: -50, @@ -455,9 +458,10 @@ var Strip = function( opt ){ root.addTo(scene) var prev = root - this.els = opt.images.map(function(url, i){ + this.els = opt.images.toArray().map(function(el, i){ + var data = $(el).data() var el = new MX.Image({ - src: url, + src: data.image, onload: function(img){ } }) diff --git a/site/templates/index.liquid b/site/templates/index.liquid index 224803a..db6bf20 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -86,27 +86,27 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends.
retail
-
+
{% for project in retails %} - {{ project.menu }} + {{ project.menu }} {% endfor %}
advertising
-
+
{% for project in advertisings %} - {{ project.menu }} + {{ project.menu }} {% endfor %}
experiential
-
+
{% for project in experientials %} - {{ project.menu }} + {{ project.menu }} {% endfor %}
content
-
+
{% for project in contents %} - {{ project.menu }} + {{ project.menu }} {% endfor %}
@@ -238,7 +238,6 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends. + + + +
    + {% for image in spec.value %} + {% if image.token %} +
  1. + {{ JSON.stringify(spec.value) }} +
  2. + {% else %} +
  3. + + + {{image.caption}} + +
  4. + {% endif %} + {% endfor %} +
+
{% elsif type == 'captioned-image-list' %}
@@ -56,10 +105,10 @@
- +
- + -- cgit v1.2.3-70-g09d2 From 4ebff1d371a6ddbf164aa29083ef00a9dfdc7895 Mon Sep 17 00:00:00 2001 From: Sean Fridman Date: Tue, 12 May 2015 18:23:24 -0400 Subject: Load scripts based on production flag --- site/templates/index.liquid | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'site/templates') diff --git a/site/templates/index.liquid b/site/templates/index.liquid index 4af22e4..573cfc0 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -181,22 +181,22 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends. - - - - - - - - - - - - - - - - +{% if meta.production %} + +{% else %} + + + + + + + + + + + + + + +{% endif %} -- cgit v1.2.3-70-g09d2 From 22d12686d920414098394f0305e12a942807c150 Mon Sep 17 00:00:00 2001 From: Julie Lala Date: Sun, 17 May 2015 13:54:46 +0200 Subject: about page --- site/db.json | 104 ++++++++++++++++-------- site/index.js | 3 +- site/public/assets/javascripts/app.js | 6 ++ site/public/assets/style.css | 70 ++++++++++++++-- site/templates/about.liquid | 10 +-- themes/okadmin/public/css/main.css | 3 + themes/okadmin/templates/partials/inputs.liquid | 31 +++++++ 7 files changed, 182 insertions(+), 45 deletions(-) (limited to 'site/templates') diff --git a/site/db.json b/site/db.json index 9f6498a..ab95019 100644 --- a/site/db.json +++ b/site/db.json @@ -1251,9 +1251,11 @@ { "id": "about", "title": "WHO WE ARE", - "body": "TWO HUSTLERS IS A CREATIVE COLLECTIVE OF RADICAL THINKERS, DESIGNERS AND STORYTELLERS.\r\n\r\nWE BUILD TRANSFORMATIVE EXPERIENCES FOR PASSIONATE BRANDS. \r\n\r\nWE ARE PLAYFUL. WE ARE REBELLIOUS. WE ARE OBSESSED. \r\n\r\n\r\n\r\nFOR BRANDS WHO WANT TO PLAY WITH US, SAY HELLO!\r\n\r\nFOR ANYONE WHO WANTS TO JOIN OUR FAMILY, SHOW US WHAT YOU ARE MADE OF!\r\n\r\nWEBSITE BY OKFOCUS", + "body": "TWO HUSTLERS IS A CREATIVE COLLECTIVE OF RADICAL THINKERS, DESIGNERS AND STORYTELLERS.\r\n\r\nWE BUILD TRANSFORMATIVE EXPERIENCES FOR PASSIONATE BRANDS. \r\n\r\nWE ARE PLAYFUL. WE ARE REBELLIOUS. WE ARE OBSESSED. ", "image": "http://www.lansdowneresort.com/meetings/assets/images/masthead/meetings-team-building.jpg", - "__index": "1" + "__index": "1", + "contact": "FOR BRANDS WHO WANT TO PLAY WITH US, SAY HELLO!\r\n\r\nFOR ANYONE WHO WANTS TO JOIN OUR FAMILY, SHOW US WHAT YOU ARE MADE OF!\r\n\r\nWEBSITE BY OKFOCUS", + "dateCreated": "" }, { "id": "contact", @@ -1337,66 +1339,102 @@ "__index": "1", "images": [ { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2Fc9b7ab94-a319-48b4-871b-6d1f0a91c55b.gif", - "caption": "Sara@nicopanda.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F3031754c-9295-4690-bb38-d1b21249f542.gif", + "caption": "", + "label": "Nicola Formichetti" + }, + { + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F06a6a4c3-10ad-4b75-8351-85ffc0e74c98.gif", + "caption": "", + "label": "Kevin Kollenda" + }, + { + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F5bece78f-bf0b-4422-abc6-d306f8fae700.gif", + "caption": "propersavage@gmail.com", + "label": "Devin Savage" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F9303920a-07a1-457f-a33d-8959f0acc240.gif", - "caption": "propersavage@gmail.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F71c71033-d36f-4375-bdd1-271db3b9e75c.gif", + "caption": "", + "label": "Zak Krevitt" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F085bc32f-f3fa-485f-8411-4b0e33c87c34.gif", - "caption": "Tracy@Twohustlers.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F742c60d2-9f3f-44bb-a445-71871ca28439.gif", + "caption": "", + "label": "Tyler Rose" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F3199e264-13d0-4331-9b3a-9f453e723d4e.gif", - "caption": "Kei@twohustlers.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F7eca88a2-94e1-4d41-ae77-af01a947ad44.gif", + "caption": "", + "label": "Tracy le Marquand" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2Fbe142c51-d613-41a9-9432-f96ce4493f01.gif", - "caption": "Steve@twohustlers.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2Fe85e3d1f-6191-496f-acca-f370687c69fe.gif", + "caption": "", + "label": "Max de Castro" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2Fc91b507a-9a1d-41d6-a500-138c14b8bed2.gif", - "caption": "Max@twohustlers.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F2b71ee1e-3de9-4a3d-9b39-a96065ae4ec1.gif", + "caption": "", + "label": "Ian Milan" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2Fb40d3a6d-1348-4861-a0ab-1280480d1c20.gif", - "caption": "tomorrowistheendoftheworld@gmail.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F17b0d9b9-cd22-43ac-9055-f8bc8cb54700.gif", + "caption": "Sara@nicopanda.com", + "label": "Sarah Kim" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F2306f2f9-e41b-46bb-9458-6d0624b8f6ba.gif", - "caption": "Tiffanie@twohustlers.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F343ae47e-8669-4c57-9975-e4c3fc5a02d4.gif", + "caption": "", + "label": "Steve Gershman" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2Fe4ee44a3-0b21-4767-8584-397425abb291.gif", - "caption": "kevin@twohustlers.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F55f0fef9-bc7c-4dbe-baa8-c0d74c9c9ab0.gif", + "caption": "", + "label": "Latif Newab" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2Fff60aa79-d4ad-43d2-915e-d8e253330ca4.gif", - "caption": "Latif@nicopanda.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F724e1ff5-7683-43cb-a637-9dae58214185.gif", + "caption": "", + "label": "Kei Furuichi" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2Fc8e8276c-3b7c-48e1-8e1f-de902ca1054d.gif", - "caption": "Ian@studioformichetti.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F70fffb9c-7fc9-4dd1-af65-e39ebd99e930.gif", + "caption": "dereklmurdock@gmail.com", + "label": "Derrick Murdock" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F4369b27f-095e-4e05-b7b8-3dc88f0a652f.gif", - "caption": "dereklmurdock@gmail.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F7655a0ec-e56c-4383-a22a-7e987949f52e.gif", + "caption": "Juan@nicopanda.com", + "label": "Juan Quiceno" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2Fa0eed5ee-1c19-41f4-be2e-d0655874be71.gif", - "caption": "Tyler@nicopanda.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F04b3e31f-b9ac-48c8-9c0c-7c88abe771b5.gif", + "caption": "", + "label": "Andreas Aresti" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F959c8f09-9562-4d43-8bfb-4f73b9f71dcc.gif", - "caption": "Daniel@studioformichetti.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2Fa547b434-b48d-43ff-986b-ed9c217b9257.gif", + "caption": "", + "label": "Tiffanie Baine" }, { - "uri": "https://ltho.s3.amazonaws.com/twohustlers%2Fe9743a0f-7c5e-411a-b59e-683e6ff9d407.gif", - "caption": "Juan@nicopanda.com" + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F97c09ed8-27d7-4a38-8877-c8712640cbd5.gif", + "caption": "", + "label": "Frankie The Pug" + }, + { + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F4bd5a1e5-38b1-4dba-af04-48ce3f4bc74d.gif", + "caption": "", + "label": "Daniel Cingari" + }, + { + "uri": "https://ltho.s3.amazonaws.com/twohustlers%2F7ee0e3d4-4312-41dc-8fff-943b68ae6171.gif", + "caption": "", + "label": "Angelo Balassone" } - ] + ], + "dateCreated": "" } ] } \ No newline at end of file diff --git a/site/index.js b/site/index.js index 4c5c2ca..04d2455 100644 --- a/site/index.js +++ b/site/index.js @@ -24,6 +24,7 @@ var app = okcms.createApp({ id: {type: 'string', hidden: true}, title: {type: 'string'}, body: {type: 'text'}, + contact: {type: 'text'}, image: {type: 'string'} }, advertising: projectSchema, @@ -33,7 +34,7 @@ var app = okcms.createApp({ shape: { id: {type: 'string', id: true, hidden: true}, title: {type: 'string'}, - images: {type: 'captioned-image-list'}, + images: {type: 'double-captioned-image-list'}, } }, diff --git a/site/public/assets/javascripts/app.js b/site/public/assets/javascripts/app.js index 0d51a3f..4e00f30 100644 --- a/site/public/assets/javascripts/app.js +++ b/site/public/assets/javascripts/app.js @@ -19,6 +19,12 @@ app.init = function () { app.launch = function () { // if ($.browser.msie || ! has3d()) { return app.fallback() } + if ($.browser.msie) { + $("html").addClass("msie") + } + else { + $("html").addClass("notmsie") + } scene = new MX.Scene().addTo('#scene') diff --git a/site/public/assets/style.css b/site/public/assets/style.css index fe08fed..2d0bd5a 100644 --- a/site/public/assets/style.css +++ b/site/public/assets/style.css @@ -713,6 +713,9 @@ nav .sub.active a { opacity: 1.0; cursor:pointer; } +.msie .entry .caption { + display: none; +} .desktop .caption:hover { background:#222; color:#222; @@ -824,16 +827,36 @@ nav .sub.active a { top:0; } +.entry .brady { + width: 72vw; +} .brady { display: block; - max-width: 1001px; } -.brady a, .brady img { - width: 200px; height: 200px; +.brady > a { + width: 18vw; height: 18vw; + background-size: cover; + background-position: center center; + position: relative; + display: block; + float: left; +} +.brady div { + width: 17vw; + height: 16w; position: relative; - display: inline-block; + display: block; + float: left; + padding: 1vw; + font-size: 0.8vw; + line-height: 1.4vw; + border: 1px solid black; + margin: 0.5vw 0.5vw 0 0.5vw; } -.desktop .brady a:hover:after { +.brady > a:nth-child(3) { + margin-right: 1vw; +} +.desktop .brady > a:hover:after { content: 'SAY HELLO!'; position: absolute; top: 40%; @@ -843,6 +866,25 @@ nav .sub.active a { font-size: 22px; width: 100%; } +.brady span { + position: absolute; + bottom: 0; + left: 0; + background: white; + opacity: 0; + color: black; + margin-top: -4px; + font-size: 1vw; + padding: 2px 0 1px 2px; + + transition: 0.1s opacity ease-in; + display: block; + text-overflow: ellipsis; + text-transform: uppercase; +} +.desktop .brady > a:hover span { + opacity: 1; +} .project { float: left; @@ -860,6 +902,9 @@ nav .sub.active a { .desktop .ready .project:hover { opacity: 1.0; } +.msie .project { + opacity: 1.0 !important; +} .entry.hover .project { opacity: 0.5 } .entry.hover .project.hover { opacity: 1.0 } @@ -884,7 +929,8 @@ nav .sub.active a { text-transform: uppercase; } .mobile .project span, -.desktop .project:hover span { +.desktop .project:hover span, +.msie .project span { opacity: 1; } .undone .project:nth-child(1) { transition-delay:0.05s; } @@ -1044,6 +1090,18 @@ nav .sub.active a { font-size: 0.6em; width: 120px; } + nav .bottom { + height: 27%; + } + nav .sub.active a { + padding: 2px 0 4px 20px; + } + nav .cat { + padding: 2px 0 2px 10px; + } + .contact { + margin-top: 6px; + } .menuActive #entry_container .entry.all { width:65%; } diff --git a/site/templates/about.liquid b/site/templates/about.liquid index 6c762b2..c693b61 100644 --- a/site/templates/about.liquid +++ b/site/templates/about.liquid @@ -1,9 +1,9 @@
- {{page.title}} - {% for image in shape.images %}{% endfor %} -
- {{page.body | newline_to_br}} -
+ +
{{page.body | newline_to_br}}
+ {% for image in shape.images %}{{ image.label }}{% endfor %} +
{{page.contact | newline_to_br}}
+
diff --git a/themes/okadmin/public/css/main.css b/themes/okadmin/public/css/main.css index 5dbd910..e5af10c 100644 --- a/themes/okadmin/public/css/main.css +++ b/themes/okadmin/public/css/main.css @@ -335,9 +335,12 @@ button, input[type=submit] { .image-element .remove:hover { color: red; } + +/* .remove { display: none; } + */ #delete_form button:hover { color: red } diff --git a/themes/okadmin/templates/partials/inputs.liquid b/themes/okadmin/templates/partials/inputs.liquid index b29a289..1ddbffd 100644 --- a/themes/okadmin/templates/partials/inputs.liquid +++ b/themes/okadmin/templates/partials/inputs.liquid @@ -139,7 +139,38 @@ {% endfor %}
+ {% elsif type == 'double-captioned-image-list' %} +
+
+
+ + +
+ +
+ + +
    + {% for image in spec.value %} +
  1. + + + + {{image.caption}} + +
  2. + {% endfor %} +
+
{% elsif type == 'meta' %} {% else %} -- cgit v1.2.3-70-g09d2 From 158aaa8ff7a9698b8a9f90739a1fe48ff2a6807b Mon Sep 17 00:00:00 2001 From: Julie Lala Date: Tue, 19 May 2015 01:42:56 +0200 Subject: merge retail section into experiental --- site/db.json | 6 ++---- site/index.js | 26 ++++++++++++-------------- site/templates/all.liquid | 6 ------ site/templates/index.liquid | 6 ------ 4 files changed, 14 insertions(+), 30 deletions(-) (limited to 'site/templates') diff --git a/site/db.json b/site/db.json index 4bb50e4..010ad37 100644 --- a/site/db.json +++ b/site/db.json @@ -1,6 +1,6 @@ { "meta": [], - "retail": [ + "experiential": [ { "id": "nicola-s-new-york", "title": "NICOLA’S NEW YORK", @@ -109,9 +109,7 @@ "caption": "" }, "__index": "2" - } - ], - "experiential": [ + }, { "id": "gaga-s-workshop-barneys-new-york", "title": "GAGA'S WORKSHOP + BARNEYS NEW YORK", diff --git a/site/index.js b/site/index.js index 04d2455..9e1f568 100644 --- a/site/index.js +++ b/site/index.js @@ -30,7 +30,6 @@ var app = okcms.createApp({ advertising: projectSchema, content: projectSchema, experiential: projectSchema, - retail: projectSchema, shape: { id: {type: 'string', id: true, hidden: true}, title: {type: 'string'}, @@ -46,7 +45,6 @@ var app = okcms.createApp({ { type: 'advertising' }, { type: 'content' }, { type: 'experiential' }, - { type: 'retail' }, ], services: { @@ -65,7 +63,7 @@ var app = okcms.createApp({ {type: 'page', query: 'contact'}, // {type: 'shape', query: 'about-images'}, {type: 'shape', query: 'shape-images'}, - {type: 'retail', query: '*'}, +// {type: 'retail', query: '*'}, {type: 'advertising', query: '*'}, {type: 'experiential', query: '*'}, {type: 'content', query: '*'}, @@ -83,23 +81,23 @@ var app = okcms.createApp({ }, '/all': { data: [ - {type: 'retail', query: '*'}, +// {type: 'retail', query: '*'}, {type: 'advertising', query: '*'}, {type: 'experiential', query: '*'}, {type: 'content', query: '*'}, ], template: 'all' }, - '/retail/:id': { - data: { - type: 'retail', - as: 'project', - query: { - id: ':id' - } - }, - template: 'project' - }, +// '/retail/:id': { +// data: { +// type: 'retail', +// as: 'project', +// query: { +// id: ':id' +// } +// }, +// template: 'project' +// }, '/advertising/:id': { data: { type: 'advertising', diff --git a/site/templates/all.liquid b/site/templates/all.liquid index 97528c2..ca4b83f 100644 --- a/site/templates/all.liquid +++ b/site/templates/all.liquid @@ -17,10 +17,4 @@ {{ project.menu }}
{% endfor %} - {% for project in retails %} -
- - {{ project.menu }} -
- {% endfor %}
diff --git a/site/templates/index.liquid b/site/templates/index.liquid index 573cfc0..41d64e6 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -101,12 +101,6 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends.
{% for project in experientials %} {{ project.menu }} - {% endfor %} -
-
retail
-
- {% for project in retails %} - {{ project.menu }} {% endfor %}
-- cgit v1.2.3-70-g09d2 From fb5c451361916593edf39ed5f3614984dc29a36d Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 27 May 2015 13:22:13 -0400 Subject: box --- site/db.json | 3 ++- site/index.js | 1 + site/public/assets/style.css | 4 ++-- site/templates/about.liquid | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) (limited to 'site/templates') diff --git a/site/db.json b/site/db.json index 010ad37..16a689a 100644 --- a/site/db.json +++ b/site/db.json @@ -1139,7 +1139,8 @@ "image": "http://www.lansdowneresort.com/meetings/assets/images/masthead/meetings-team-building.jpg", "__index": "1", "contact": "FOR BRANDS WHO WANT TO PLAY WITH US, SAY HELLO!\r\n\r\nFOR ANYONE WHO WANTS TO JOIN OUR FAMILY, SHOW US WHAT YOU ARE MADE OF!\r\n\r\nWEBSITE BY OKFOCUS", - "dateCreated": "" + "dateCreated": "", + "collabs": "\"NONE OF US IS AS SMART AS ALL OF US\"\r\n\r\nWE MAKE THINGS WITH OUR FRIENDS:\r\n\r\nMERI MEDIA\r\nOKFOCUS\r\nMARK FOSTER GAGE ARCHITECTS\r\nMOVING IMAGE & CONTENT\r\nNR2154\r\nTABLE OF CONTENTS\r\nTAKE OUT MEDIA\r\nSHADES OF GREY" }, { "id": "contact", diff --git a/site/index.js b/site/index.js index 8952c46..aa1f58c 100644 --- a/site/index.js +++ b/site/index.js @@ -25,6 +25,7 @@ var app = okcms.createApp({ id: {type: 'string', hidden: true}, title: {type: 'string'}, body: {type: 'text'}, + collabs: {type: 'text'}, contact: {type: 'text'}, image: {type: 'string'} }, diff --git a/site/public/assets/style.css b/site/public/assets/style.css index 3443642..6fbf74f 100644 --- a/site/public/assets/style.css +++ b/site/public/assets/style.css @@ -842,11 +842,11 @@ nav .sub.active a { float: left; } .brady div { - width: 17vw; + width: 17.1vw; position: relative; display: block; float: left; - padding: 1vw; + padding: 1vw 0.5vw 1vw 0.5vw; font-size: 0.8vw; line-height: 1.4vw; border: 1px solid black; diff --git a/site/templates/about.liquid b/site/templates/about.liquid index c693b61..14c046e 100644 --- a/site/templates/about.liquid +++ b/site/templates/about.liquid @@ -3,6 +3,7 @@
{{page.body | newline_to_br}}
{% for image in shape.images %}{{ image.label }}{% endfor %} +
{{page.collabs | newline_to_br}}
{{page.contact | newline_to_br}}
-- cgit v1.2.3-70-g09d2 From ccafdf24213ffe0d303cf8cc5bf11325a84751cc Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 27 May 2015 16:08:56 -0400 Subject: deviceorientation stuff --- Gruntfile.js | 1 + site/public/assets/javascripts/_env.js | 28 ++- .../mx/extensions/mx.unclampedOrbitCameraMobile.js | 225 +++++++++++++++++++++ site/templates/index.liquid | 1 + 4 files changed, 247 insertions(+), 8 deletions(-) create mode 100644 site/public/assets/javascripts/mx/extensions/mx.unclampedOrbitCameraMobile.js (limited to 'site/templates') diff --git a/Gruntfile.js b/Gruntfile.js index b32e6ad..bb6f1eb 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -12,6 +12,7 @@ module.exports = function(grunt) { "site/public/assets/javascripts/mx/mx.skew.js", "site/public/assets/javascripts/mx/extensions/mx.scene.js", "site/public/assets/javascripts/mx/extensions/mx.unclampedOrbitCamera.js", + "site/public/assets/javascripts/mx/extensions/mx.unclampedOrbitCameraMobile.js", "site/public/assets/javascripts/mx/primitives/mx.image.js", "site/public/assets/javascripts/vendor/jquery.min.js", diff --git a/site/public/assets/javascripts/_env.js b/site/public/assets/javascripts/_env.js index dee524c..6748409 100644 --- a/site/public/assets/javascripts/_env.js +++ b/site/public/assets/javascripts/_env.js @@ -74,14 +74,26 @@ environment.init = function(){ environment.ready = function(){ if (window.innerWidth < 500) document.body.classList.add('mobile') - controls = new MX.OrbitCamera({ - radius: 100000, - radiusRange: [ 10, 2000 ], - rotationX: PI/2, - rotationY: PI, - wheelEase: 20, - ease: 100 - }) + if (is_mobile) { + controls = new MX.OrbitCameraMobile({ + radius: 100000, + radiusRange: [ 10, 2000 ], + rotationX: PI/2, + rotationY: PI, + wheelEase: 20, + ease: 100 + }) + } + else { + controls = new MX.OrbitCamera({ + radius: 100000, + radiusRange: [ 10, 2000 ], + rotationX: PI/2, + rotationY: PI, + wheelEase: 20, + ease: 100 + }) + } controls.init() $('.cat').click( function(){ diff --git a/site/public/assets/javascripts/mx/extensions/mx.unclampedOrbitCameraMobile.js b/site/public/assets/javascripts/mx/extensions/mx.unclampedOrbitCameraMobile.js new file mode 100644 index 0000000..510a002 --- /dev/null +++ b/site/public/assets/javascripts/mx/extensions/mx.unclampedOrbitCameraMobile.js @@ -0,0 +1,225 @@ +MX.OrbitCameraMobile = function(opt){ + var exports = {}, bound = false + exports.opt = opt = defaults(opt, { + el: window, // object to bind events on + camera: scene.camera, // camera object we'll be moving + radius: 100, + radiusRange: [ 10, 1000 ], + rotationX: PI/2, + rotationY: 0, + center: { x: 0, y: 0, z: 0 }, + sensitivity: 10, // moving 1 pixel is like moving N radians + wheelSensitivity: 10, + ease: 10, + wheelEase: 10, + }) + var rx, ry, radius, px, py, epsilon = 1e-10 + var rotationSum = 0 + var rotationMedian = 0 + var orientationMax = 0 + var samples = 0 + var sampleThreshold = 20 + var lastAlpha + + exports.dragging = false + exports.init = function(){ + ry = opt.rotationY + rx = opt.rotationX + radius = opt.radius + exports.wheel = new wheel({ + el: opt.el, + update: function(e, delta){ + opt.radius = clamp( opt.radius + delta * opt.wheelSensitivity, opt.radiusRange[0], opt.radiusRange[1] ) + }, + }) + exports.bind() + + exports.orientationchange() + } + exports.toggle = function(state){ + if (state) exports.bind() + else exports.unbind() + } + exports.bind = function(){ + if (bound) return; + bound = true + opt.el.addEventListener("touchstart", touch(down)) + window.addEventListener("touchmove", touch(move)) + window.addEventListener("touchend", touch(up)) + + window.addEventListener('orientationchange', exports.orientationchange) + window.addEventListener("devicemotion", exports.devicemotion) + window.addEventListener("deviceorientation", exports.deviceorientation) + + exports.wheel.unlock() + } + exports.unbind = function(){ + if (! bound) return; + bound = false + exports.wheel.lock() + } + function cancelable (fn) { + return function(e){ + e.preventDefault() + fn(e) + } + } + function touch (fn){ + return function(e){ + fn(e.touches[0]) + } + } + function down (e) { + px = e.pageX + py = e.pageY + exports.dragging = true + } + function move (e) { + if (! exports.dragging) return + exports.delta(px- e.pageX, py - e.pageY) + px = e.pageX + py = e.pageY + } + function up (e) { + exports.dragging = false + } + + exports.orientationchange = function(e){ + is_portrait = window.innerWidth < window.innerHeight + if (is_portrait) { + lastAlpha = 0 + } + } + exports.devicemotion = function(e) { + if (! is_portrait) return; + var rotationBeta = e.rotationRate.alpha; // weird! + rotationSum += rotationBeta; + samples += 1; + } + exports.deviceorientation = function (e) { + if (! lastAlpha) { lastAlpha = e.alpha } + is_portrait ? exports.portraitorientation(e) : exports.landscapeorientation(e) + } + exports.portraitorientation = function(e) { + // compass gives most accurate orientation in portrait mode + var alpha, dx = 0, dy = 0 + + if (e.webkitCompassHeading) { + alpha = 180 - e.webkitCompassHeading; + } + else { + alpha = 180 - e.alpha; + } + + // android rotates in reverse + if (is_android) { + alpha = 360 - alpha + } + + // use rotationRate to gauge if we've tilted the screen past vertical + // for looking at ceiling + if (e.beta > orientationMax) { + orientationMax = e.beta + rotationMedian = rotationSum + } + + // this number was only going to 83 max.. not 90.. weird + var beta = e.beta + 7; + + // if we've got enough motion data, we should be able to determine + // if we've tilted backwards. otherwise, lock to the horizon. + if (! is_android && samples > sampleThreshold) { + dx = rotationSum > rotationMedian ? e.beta - 90 : 90 - e.beta + } + else { + dx = 0 + } + + // avoid jumping around in a circle + if (Math.abs(alpha - lastAlpha) < 100 || Math.abs(alpha - lastAlpha) > 300) { + dy = alpha - lastAlpha + lastAlpha = alpha + } + + // avoid jumping around in a circle #2 + if (dy > 300) { + dy -= 360 + } else if (dy < -300) { + dy += 360 + } + opt.rotationX = MX.toRad(dx * -5) + opt.rotationY += MX.toRad(dy * 10) + } + exports.landscapeorientation = function (e) { + var dx, dy + + dx = e.gamma > 0 ? 90 - e.gamma : 90 + e.gamma + dy = e.alpha - lastAlpha + lastAlpha = e.alpha + + // avoid the sudden jump from 0 to -360 + if (dy > 300) { + dy -= 360 + } + else if (dy < -300) { + dy += 360 + } + + opt.rotationX = dx > 45 ? 0 : MX.toRad(dx) + opt.rotationY += MX.toRad(dy) + } + + + exports.delta = function(x,y){ + opt.rotationY += x/window.innerWidth * opt.sensitivity + opt.rotationX = opt.rotationX + y/window.innerHeight * opt.sensitivity + } + exports.move = function(y, x){ + opt.rotationY = y + if (typeof x == "number") { opt.rotationX = x } + } + exports.zoom = function(r){ + opt.radius = r + } + exports.setZoom = function(r){ + radius = opt.radius = r + } + exports.zoomPercent = function(n){ + opt.radius = lerp(n, opt.radiusRange[0], opt.radiusRange[1]) + } + exports.zoomDelta = function(r){ + opt.radius += r + } + exports.pause = function(){ + var sy = sign(opt.rotationY-ry) + var sx = sign(opt.rotationX-rx) + opt.rotationY = ry + sy * 0.1 + opt.rotationX = rx + sx * 0.1 + } + exports.update = function(){ + if (abs(ry - opt.rotationY) > epsilon) { + ry = avg(ry, opt.rotationY, opt.ease) + } + else { + ry = opt.rotationY + } + if (abs(rx - opt.rotationX) > epsilon) { + rx = avg(rx, opt.rotationX, opt.ease) + } + else { + rx = opt.rotationX + } + if (abs(radius - opt.radius) > epsilon) { + radius = avg(radius, opt.radius, opt.wheelEase) + } + else { + radius = opt.radius + } + opt.camera.x = opt.center.x + radius * sin(rx) * cos(ry) + opt.camera.z = opt.center.y + radius * sin(rx) * sin(ry) + opt.camera.y = opt.center.z + radius * cos(rx) + opt.camera.rotationX = PI/2 - rx + opt.camera.rotationY = ry + PI/2 + } + return exports +} diff --git a/site/templates/index.liquid b/site/templates/index.liquid index 41d64e6..75fe389 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -181,6 +181,7 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends. + -- cgit v1.2.3-70-g09d2 From c87bb822ddc637cb4dec81c3d779a16f4edc5e26 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 5 Jun 2015 11:40:35 -0400 Subject: meta description --- site/templates/index.liquid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'site/templates') diff --git a/site/templates/index.liquid b/site/templates/index.liquid index 75fe389..0308a79 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -67,7 +67,7 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends. - + -- cgit v1.2.3-70-g09d2 From f8e74cf7e9faddc5d28e6139d95ab25f1605e5ce Mon Sep 17 00:00:00 2001 From: ryderr Date: Mon, 8 Jun 2015 14:40:32 -0400 Subject: facebook tags --- site/templates/index.liquid | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'site/templates') diff --git a/site/templates/index.liquid b/site/templates/index.liquid index 0308a79..8dbac5c 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -67,11 +67,14 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends. - +\ + + + -- cgit v1.2.3-70-g09d2 From 61eba61e64ca2daec8ade071eaf5ef632b819018 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 8 Jun 2015 15:21:51 -0400 Subject: fb share --- site/public/assets/javascripts/_env.js | 4 +++- site/templates/index.liquid | 5 +---- 2 files changed, 4 insertions(+), 5 deletions(-) (limited to 'site/templates') diff --git a/site/public/assets/javascripts/_env.js b/site/public/assets/javascripts/_env.js index 6748409..7ee9255 100644 --- a/site/public/assets/javascripts/_env.js +++ b/site/public/assets/javascripts/_env.js @@ -747,11 +747,13 @@ var Share = { // var msg = $(".postname").html() // var url = "https://www.facebook.com/share.php?u=" + encodeURIComponent(link) + "&t=" + encodeURIComponent(msg) // window.open(url, "_blank") + + var picture = $(".gallery img").first().attr("src") || ($(".gallery .underlay").css('background-image') || "").replace("url(","").replace(")","") || "http://twohustlers.com/assets/images/2H_LOGOMARK.png" FB.ui({ method: 'feed', link: window.location.href, caption: $(".postname").html(), - picture: $(".gallery img").first().attr("src"), + picture: picture, }, function(response){}); }, diff --git a/site/templates/index.liquid b/site/templates/index.liquid index 8dbac5c..a609ceb 100644 --- a/site/templates/index.liquid +++ b/site/templates/index.liquid @@ -67,15 +67,12 @@ WEBSITE BY OKFOCUS, http://okfoc.us, Internet Legends. -\ + - - - -- cgit v1.2.3-70-g09d2 From db9058b54a6f57bf11f67f4634b6c12c7e555f2d Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 17 Jun 2015 19:13:41 -0400 Subject: about header --- site/public/assets/style.css | 16 +++++++++++++++- site/templates/about.liquid | 5 ++++- 2 files changed, 19 insertions(+), 2 deletions(-) (limited to 'site/templates') diff --git a/site/public/assets/style.css b/site/public/assets/style.css index 535bed4..4f28979 100644 --- a/site/public/assets/style.css +++ b/site/public/assets/style.css @@ -853,6 +853,8 @@ nav .sub.active a { margin: 1em 0; font-family: 'BellGothic-Bold'; } +.brady div.aboutcontent { border: 0; } +.aboutcontenttext { display: none } .brady div.collabscontent { border-top: 1px solid black; } @@ -1113,16 +1115,28 @@ nav .sub.active a { .brady { width: 100%; } + .brady span { + font-size: 13px !important; + } .brady div { width: 100%; border: 0; - margin: 1em; + margin: 0.5em; margin-left: 2em; padding: 0; + font-size: 13px !important; } .brady > a:nth-child(3) { margin-right: 0vw; } + .brady span.aboutcontenttext { + position: static; bottom: auto; left: auto; + opacity: 1; + background: transparent; + } + .aboutcontent { display: block } + .aboutcontenttext { display: inline } + .aboutcontent img { display: none } } diff --git a/site/templates/about.liquid b/site/templates/about.liquid index 14c046e..b270879 100644 --- a/site/templates/about.liquid +++ b/site/templates/about.liquid @@ -1,7 +1,10 @@
-
{{page.body | newline_to_br}}
+
+ {{page.body | newline_to_br}} + +
{% for image in shape.images %}{{ image.label }}{% endfor %}
{{page.collabs | newline_to_br}}
{{page.contact | newline_to_br}}
-- cgit v1.2.3-70-g09d2 From 5f002254c523bb9651e627c2fbd7d9cd9b021568 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 17 Jun 2015 19:31:23 -0400 Subject: image on index --- site/public/assets/app.min.js | 14 ++++++------ site/public/assets/javascripts/_env.js | 7 +++--- site/templates/about.liquid | 1 - site/templates/all.liquid | 39 ++++++++++++++++++---------------- 4 files changed, 32 insertions(+), 29 deletions(-) (limited to 'site/templates') diff --git a/site/public/assets/app.min.js b/site/public/assets/app.min.js index 6f831f6..5e30803 100644 --- a/site/public/assets/app.min.js +++ b/site/public/assets/app.min.js @@ -1,8 +1,8 @@ /* okfoc.us 2o15 */ -function FastClick(a,b){"use strict";function c(a,b){return function(){return a.apply(b,arguments)}}var d;if(b=b||{},this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=b.touchBoundary||10,this.layer=a,this.tapDelay=b.tapDelay||200,!FastClick.notNeeded(a)){for(var e=["onMouse","onClick","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel"],f=this,g=0,h=e.length;h>g;g++)f[e[g]]=c(f[e[g]],f);deviceIsAndroid&&(a.addEventListener("mouseover",this.onMouse,!0),a.addEventListener("mousedown",this.onMouse,!0),a.addEventListener("mouseup",this.onMouse,!0)),a.addEventListener("click",this.onClick,!0),a.addEventListener("touchstart",this.onTouchStart,!1),a.addEventListener("touchmove",this.onTouchMove,!1),a.addEventListener("touchend",this.onTouchEnd,!1),a.addEventListener("touchcancel",this.onTouchCancel,!1),Event.prototype.stopImmediatePropagation||(a.removeEventListener=function(b,c,d){var e=Node.prototype.removeEventListener;"click"===b?e.call(a,b,c.hijacked||c,d):e.call(a,b,c,d)},a.addEventListener=function(b,c,d){var e=Node.prototype.addEventListener;"click"===b?e.call(a,b,c.hijacked||(c.hijacked=function(a){a.propagationStopped||c(a)}),d):e.call(a,b,c,d)}),"function"==typeof a.onclick&&(d=a.onclick,a.addEventListener("click",function(a){d(a)},!1),a.onclick=null)}}function wheel(a){function b(b){if(!a.locked){a.propagate||(b.stopPropagation(),b.preventDefault());var c=0,d=0;event.deltaY?(d-=event.deltaY*a.ratio,c-=event.deltaX*a.ratio):event.wheelDeltaY?(d-=event.wheelDeltaY*a.ratio,c-=event.wheelDeltaX*a.ratio):event.wheelDelta?d-=event.wheelDelta*a.ratio:event.detail&&(d+=2*event.detail),!a.reversible&&0>d&&0>c||a.update(b,d,c)}}a=defaults(a,{el:document,update:function(a,b){},propagate:!1,locked:!1,reversible:!0,ratio:.02,val:0});var c=1;return a.el.addEventListener("gesturestart",function(a){c=a.scale},!1),a.el.addEventListener("gesturechange",function(b){var d=(c-b.scale)*window.innerWidth;c=b.scale,a.update(b,d)},!1),a.el.addEventListener("wheel",b,!1),a.el.addEventListener("DOMMouseScroll",b,!1),a.lock=function(){a.locked=!0},a.unlock=function(){a.locked=!1},a}function has3d(){var a,b,c=$("

")[0],d=$("');a.append(c);var d=$f(a.find("iframe")[0]);a.data("player",d),d.addEvent("ready",function(){d.addEvent("play",function(){a.addClass("playing")}),d.addEvent("pause",function(){a.removeClass("playing")})}),videos.push(d)}}function HustleLoader(){function a(){b()}function b(){setTimeout(function(){$("#loader_svg").addClass("slide")},100)}var c=document.getElementById("loader_svg_status");this.update=function(a){var b=lerp(1-a,336,118);c.setAttribute("y",b)},this.finish=function(a){$("#loader_rapper").addClass("hidden"),setTimeout(a,100),setTimeout(function(){$("#loader_rapper").hide()},500)},a()}var MX=MX||function(a){function b(){var a=document.body.style;r.prefix="webkitTransform"in a?"webkit":"mozTransform"in a?"moz":"msTransform"in a?"ms":"",k=r.transformProp=h("transform"),l=r.transitionProp=h("transition"),m=r.transformOriginProp=h("transformOrigin"),n=r.transformStyleProp=h("transformStyle"),o=r.perspectiveProp=h("perspective"),p=r.transitionEndEvent="webkit"===r.prefix?"webkitTransitionEnd":"transitionend";for(var b=["webkit","moz","ms"],d=0;d0?1:-1;return b.y=g*Math.atan2(c*Math.cos(b.x),f*-g),b.z=Math.atan2(Math.cos(b.x),Math.sin(b.x)*Math.sin(b.y))-Math.PI/2,"deg"===r.rotationUnit&&(b.x=e(b.x),b.y=e(b.y),b.z=e(b.z)),b},add:function(){if(this.el){var a=this;return Array.prototype.forEach.call(arguments,function(b){!b instanceof i||(a.el.appendChild(b.el),a.children||(a.children=[]),a.children.push(b),b.parent=a)}),this}},remove:function(){var b=this;return Array.prototype.forEach.call(arguments,function(c){var d=b.children.indexOf(c);-1!==d&&(b.children.splice(d,1),b.el.removeChild(c.el),c.parent=a)}),this},addTo:function(a){return"string"==typeof a&&(a=document.querySelector(a)),a instanceof HTMLElement&&a.appendChild?a.appendChild(this.el):(a instanceof i||a instanceof r.Scene)&&a.add(this),this},removeElement:function(){this.el.parentNode&&this.el.parentNode.removeChild(this.el)},setPosition:function(a){this.x=a.x||0===a.x?a.x:this.x,this.y=a.y||0===a.y?a.y:this.y,this.z=a.z||0===a.z?a.z:this.z},setRotation:function(a){this.rotationX=a.x||0===a.x?a.x:this.rotationX,this.rotationY=a.y||0===a.y?a.y:this.rotationY,this.rotationZ=a.z||0===a.z?a.z:this.rotationZ},setScale:function(a){this.scaleX=a.x||0===a.x?a.x:this.scaleX,this.scaleY=a.y||0===a.y?a.y:this.scaleY,this.scaleZ=a.z||0===a.z?a.z:this.scaleZ},setSkew:function(a){this.skewX=a.x||0===a.x?a.x:this.skewX,this.skewY=a.y||0===a.y?a.y:this.skewY},setCSSTransformOrigin:function(a){return this.el&&(this.el.style[m]=a),this},setCSSTransformStyle:function(a){return this.el&&(this.el.style[n]=a),this},setCSSTransition:function(a){return this.el&&(this.el.style[l]=a),this},setCSSPerspective:function(a){return this.el&&(this.el.style[o]=a),this},move:function(a){var b=this;b.ops=defaults(a,b.ops);for(var c in a)b[c]=a[c];b.dirty=!0,b.update()},onTransitionEnd:function(a){function b(){c.removeEventListener(p,b),a()}this.cancelTransitionEnd();var c=this.el;c.addEventListener(p,b)},cancelTransitionEnd:function(){this.el.removeEventListener(p)},toString:function(a){return a=a||"id width height depth x y z rotationX rotationY rotationZ scale".split(" "),this.__toString(a)},__toString:function(b,c){this.id=this.id||"undef";var d,e,f={},g=this.type||"Object3d",h=g.toLowerCase();for(var i in b)e=b[i],d=this[e],(0!==d||c)&&(f[e]="number"==typeof d?-1!=e.indexOf("rotation")?Number(d.toFixed(3)):~~d:d);return(c||"var "+h+" = new MX."+g)+"("+JSON.stringify(f,a,2)+")\n"+(c?"":"scene.add("+h+")")},contains:function(a,b,c){var d=!1,e=!1,f=!1;return d=null===a?!0:abs(this.x-a)<=this.width/2,e=null===b?!0:abs(this.y-b)<=this.height/2,f=null===c?!0:abs(this.z-c)<=this.depth/2,d&&e&&f}},i.extend=j.bind(i),r.Object3D=i,r.toRad=f,r.toDeg=e,Object.defineProperty(r,"positionAtCenter",{get:function(){return t},set:function(a){"boolean"==typeof a&&(t=a,t?c():d())}}),r}();MX.Camera=MX.Object3D.extend({init:function(){this.el=null,this.type="Camera"},move:function(a){for(var b in a)this[b]=a[b]},toString:function(){var a="x y z rotationX rotationY".split(" ");return this.__toString(a,"scene.camera.move")},getCameraEuler:function(a){var b=a.x-this.x,c=a.y-this.y,d=a.z-this.z;return r={},r.y=Math.atan2(-b,d),r.x=Math.atan2(-c,Math.sqrt(b*b+d*d)),r.z=0,"deg"===MX.rotationUnit&&(r.x=MX.toDeg(r.x),r.y=MX.toDeg(r.y)),r}}),MX.Scene=function(){function a(){this.el=document.createElement("div"),this.el.classList.add("mx-scene");var a=this.el.style;a[MX.transformProp]="preserve-3d",a.webkitPerspectiveOrigin="50% 50%",a.mozPerspectiveOrigin="50% 50%",a.perspectiveOrigin="50% 50%",a.webkitUserSelect="none",a.mozUserSelect="none",a.userSelect="none",a.overflow="hidden",this.inner=(new MX.Object3D).addTo(this.el),this.inner.el.style.width="0",this.inner.el.style.height="0";var b,c,d,e=this;Object.defineProperty(this,"width",{get:function(){return b},set:function(a){b=a,e.el.style.width=a+"px"}}),Object.defineProperty(this,"height",{get:function(){return c},set:function(a){c=a,e.el.style.height=a+"px"}}),Object.defineProperty(this,"perspective",{get:function(){return d},set:function(a){d=a,e.el.style[MX.perspectiveProp]=a+"px",e.inner.z=-a-e.camera.z,e.inner.rotationOrigin.z=-a}});this.camera=new MX.Camera;this.inner.rotationOrigin={x:0,y:0,z:0},this.perspective=0}var b=MX.Object3D.prototype.add,c=MX.Object3D.prototype.remove;return a.prototype={constructor:a,add:function(){return b.apply(this.inner,arguments),this},remove:function(){return c.apply(this.inner,arguments),this},addTo:function(a){return"string"==typeof a&&(a=document.querySelector(a)),a instanceof HTMLElement&&a.appendChild?a.appendChild(this.el):console.warn("You can only add a Scene to an HTML element."),this},update:function(){var a=this.inner,b=this.camera;return b.update(),a.z=-this.perspective-b.z,a.x=-b.x,a.y=-b.y,a.rotationX=-b.rotationX,a.rotationY=-b.rotationY,a.update(),this}},a}(),MX.OrbitCamera=function(a){function b(a){return function(b){a(b.touches[0])}}function c(a){k=a.pageX,l=a.pageY,f.dragging=!0}function d(a){f.dragging&&(f.delta(k-a.pageX,l-a.pageY),k=a.pageX,l=a.pageY)}function e(a){f.dragging=!1}var f={},g=!1;f.opt=a=defaults(a,{el:window,camera:scene.camera,radius:100,radiusRange:[10,1e3],rotationX:PI/2,rotationY:0,center:{x:0,y:0,z:0},sensitivity:10,wheelSensitivity:10,ease:10,wheelEase:10});var h,i,j,k,l,m=1e-10;return f.dragging=!1,f.init=function(){i=a.rotationY,h=a.rotationX,j=a.radius,f.wheel=new wheel({el:a.el,update:function(b,c){a.radius=clamp(a.radius+c*a.wheelSensitivity,a.radiusRange[0],a.radiusRange[1])}}),f.bind()},f.toggle=function(a){a?f.bind():f.unbind()},f.bind=function(){g||(g=!0,a.el.addEventListener("mousedown",c),window.addEventListener("mousemove",d),window.addEventListener("mouseup",e),a.el.addEventListener("touchstart",b(c)),window.addEventListener("touchmove",b(d)),window.addEventListener("touchend",b(e)),f.wheel.unlock())},f.unbind=function(){g&&(g=!1,a.el.removeEventListener("mousedown",c),window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",e),f.wheel.lock())},f.delta=function(b,c){a.rotationY+=b/window.innerWidth*a.sensitivity,a.rotationX=a.rotationX+c/window.innerHeight*a.sensitivity},f.move=function(b,c){a.rotationY=b,"number"==typeof c&&(a.rotationX=c)},f.zoom=function(b){a.radius=b},f.setZoom=function(b){j=a.radius=b},f.zoomPercent=function(b){a.radius=lerp(b,a.radiusRange[0],a.radiusRange[1])},f.zoomDelta=function(b){a.radius+=b},f.pause=function(){var b=sign(a.rotationY-i),c=sign(a.rotationX-h);a.rotationY=i+.1*b,a.rotationX=h+.1*c},f.update=function(){i=abs(i-a.rotationY)>m?avg(i,a.rotationY,a.ease):a.rotationY,h=abs(h-a.rotationX)>m?avg(h,a.rotationX,a.ease):a.rotationX,j=abs(j-a.radius)>m?avg(j,a.radius,a.wheelEase):a.radius,a.camera.x=a.center.x+j*sin(h)*cos(i),a.camera.z=a.center.y+j*sin(h)*sin(i),a.camera.y=a.center.z+j*cos(h),a.camera.rotationX=PI/2-h,a.camera.rotationY=i+PI/2},f},MX.OrbitCameraMobile=function(a){function b(a){return function(b){a(b.touches[0])}}function c(a){k=a.pageX,l=a.pageY,f.dragging=!0}function d(a){f.dragging&&(f.delta(k-a.pageX,l-a.pageY),k=a.pageX,l=a.pageY)}function e(a){f.dragging=!1}var f={},g=!1;f.opt=a=defaults(a,{el:window,camera:scene.camera,radius:100,radiusRange:[10,1e3],rotationX:PI/2,rotationY:0,center:{x:0,y:0,z:0},sensitivity:10,wheelSensitivity:10,ease:10,wheelEase:10});var h,i,j,k,l,m,n=1e-10,o=0,p=0,q=0,r=0,s=20;return f.dragging=!1,f.init=function(){i=a.rotationY,h=a.rotationX,j=a.radius,f.wheel=new wheel({el:a.el,update:function(b,c){a.radius=clamp(a.radius+c*a.wheelSensitivity,a.radiusRange[0],a.radiusRange[1])}}),f.bind(),f.orientationchange()},f.toggle=function(a){a?f.bind():f.unbind()},f.bind=function(){g||(g=!0,a.el.addEventListener("touchstart",b(c)),window.addEventListener("touchmove",b(d)),window.addEventListener("touchend",b(e)),window.addEventListener("orientationchange",f.orientationchange),window.addEventListener("devicemotion",f.devicemotion),window.addEventListener("deviceorientation",f.deviceorientation),f.wheel.unlock())},f.unbind=function(){g&&(g=!1,f.wheel.lock())},f.orientationchange=function(a){is_portrait=window.innerWidthq&&(q=b.beta,p=o);b.beta+7;d=!is_android&&r>s?o>p?b.beta-90:90-b.beta:0,(Math.abs(c-m)<100||Math.abs(c-m)>300)&&(e=c-m,m=c),e>300?e-=360:-300>e&&(e+=360),a.rotationX=MX.toRad(-5*d),a.rotationY+=MX.toRad(10*e)},f.landscapeorientation=function(b){var c,d;c=b.gamma>0?90-b.gamma:90+b.gamma,d=b.alpha-m,m=b.alpha,d>300?d-=360:-300>d&&(d+=360),a.rotationX=c>45?0:MX.toRad(c),a.rotationY+=MX.toRad(d)},f.delta=function(b,c){a.rotationY+=b/window.innerWidth*a.sensitivity,a.rotationX=a.rotationX+c/window.innerHeight*a.sensitivity},f.move=function(b,c){a.rotationY=b,"number"==typeof c&&(a.rotationX=c)},f.zoom=function(b){a.radius=b},f.setZoom=function(b){j=a.radius=b},f.zoomPercent=function(b){a.radius=lerp(b,a.radiusRange[0],a.radiusRange[1])},f.zoomDelta=function(b){a.radius+=b},f.pause=function(){var b=sign(a.rotationY-i),c=sign(a.rotationX-h);a.rotationY=i+.1*b,a.rotationX=h+.1*c},f.update=function(){i=abs(i-a.rotationY)>n?avg(i,a.rotationY,a.ease):a.rotationY,h=abs(h-a.rotationX)>n?avg(h,a.rotationX,a.ease):a.rotationX,j=abs(j-a.radius)>n?avg(j,a.radius,a.wheelEase):a.radius,a.camera.x=a.center.x+j*sin(h)*cos(i),a.camera.z=a.center.y+j*sin(h)*sin(i),a.camera.y=a.center.z+j*cos(h),a.camera.rotationX=PI/2-h,a.camera.rotationY=i+PI/2},f},MX.Image=MX.Object3D.extend({init:function(a){this.type="Image",this.media=a.media,this.width=0,this.height=0,this.x=a.x||0,this.y=a.y||0,this.z=a.z||0,this.scale=a.scale||1,this.backface=a.backface||!1,a.className&&this.el.classList.add(a.className),this.backface&&this.el.classList.add("backface-visible"),this.el.classList.add("image"),this.el.classList.add("mx-scenery"),this.el.style.backgroundRepeat="no-repeat",this.load(a)},load:function(a){var b=this;b.ops=defaults(a,b.ops);var c=new Image;c.onload=function(){b.ops&&(b.scale=b.ops.scale||1,b.width=b.ops.width||c.naturalWidth,b.height=b.ops.height||c.naturalHeight,b.el.style.backgroundImage="url("+c.src+")",b.el.classList.add("image"),b.dirty=!0,b.ops.onload&&b.ops.onload(c),b.update())},c.src=a.src,c.complete&&setTimeout(c.onload)}}),!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b=a.length,c=fa.type(a);return"function"===c||fa.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(fa.isFunction(b))return fa.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return fa.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(na.test(b))return fa.filter(b,a,c);b=fa.filter(b,a)}return fa.grep(a,function(a){return fa.inArray(a,b)>=0!==c})}function e(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}function f(a){var b=va[a]={};return fa.each(a.match(ua)||[],function(a,c){b[c]=!0}),b}function g(){pa.addEventListener?(pa.removeEventListener("DOMContentLoaded",h,!1),a.removeEventListener("load",h,!1)):(pa.detachEvent("onreadystatechange",h),a.detachEvent("onload",h))}function h(){(pa.addEventListener||"load"===event.type||"complete"===pa.readyState)&&(g(),fa.ready())}function i(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(Aa,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:za.test(c)?fa.parseJSON(c):c}catch(e){}fa.data(a,b,c)}else c=void 0}return c}function j(a){var b;for(b in a)if(("data"!==b||!fa.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function k(a,b,c,d){if(fa.acceptData(a)){var e,f,g=fa.expando,h=a.nodeType,i=h?fa.cache:a,j=h?a[g]:a[g]&&g;if(j&&i[j]&&(d||i[j].data)||void 0!==c||"string"!=typeof b)return j||(j=h?a[g]=W.pop()||fa.guid++:g),i[j]||(i[j]=h?{}:{toJSON:fa.noop}),("object"==typeof b||"function"==typeof b)&&(d?i[j]=fa.extend(i[j],b):i[j].data=fa.extend(i[j].data,b)),f=i[j],d||(f.data||(f.data={}),f=f.data),void 0!==c&&(f[fa.camelCase(b)]=c),"string"==typeof b?(e=f[b], -null==e&&(e=f[fa.camelCase(b)])):e=f,e}}function l(a,b,c){if(fa.acceptData(a)){var d,e,f=a.nodeType,g=f?fa.cache:a,h=f?a[fa.expando]:fa.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){fa.isArray(b)?b=b.concat(fa.map(b,fa.camelCase)):b in d?b=[b]:(b=fa.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;for(;e--;)delete d[b[e]];if(c?!j(d):!fa.isEmptyObject(d))return}(c||(delete g[h].data,j(g[h])))&&(f?fa.cleanData([a],!0):da.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}function m(){return!0}function n(){return!1}function o(){try{return pa.activeElement}catch(a){}}function p(a){var b=La.split("|"),c=a.createDocumentFragment();if(c.createElement)for(;b.length;)c.createElement(b.pop());return c}function q(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==ya?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==ya?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||fa.nodeName(d,b)?f.push(d):fa.merge(f,q(d,b));return void 0===b||b&&fa.nodeName(a,b)?fa.merge([a],f):f}function r(a){Fa.test(a.type)&&(a.defaultChecked=a.checked)}function s(a,b){return fa.nodeName(a,"table")&&fa.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function t(a){return a.type=(null!==fa.find.attr(a,"type"))+"/"+a.type,a}function u(a){var b=Wa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function v(a,b){for(var c,d=0;null!=(c=a[d]);d++)fa._data(c,"globalEval",!b||fa._data(b[d],"globalEval"))}function w(a,b){if(1===b.nodeType&&fa.hasData(a)){var c,d,e,f=fa._data(a),g=fa._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)fa.event.add(b,c,h[c][d])}g.data&&(g.data=fa.extend({},g.data))}}function x(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!da.noCloneEvent&&b[fa.expando]){e=fa._data(b);for(d in e.events)fa.removeEvent(b,d,e.handle);b.removeAttribute(fa.expando)}"script"===c&&b.text!==a.text?(t(b).text=a.text,u(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),da.html5Clone&&a.innerHTML&&!fa.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Fa.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}function y(b,c){var d=fa(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:fa.css(d[0],"display");return d.detach(),e}function z(a){var b=pa,c=ab[a];return c||(c=y(a,b),"none"!==c&&c||(_a=(_a||fa("');a.append(c);var d=$f(a.find("iframe")[0]);a.data("player",d),d.addEvent("ready",function(){d.addEvent("play",function(){a.addClass("playing")}),d.addEvent("pause",function(){a.removeClass("playing")})}),videos.push(d)}}function HustleLoader(){function a(){b()}function b(){setTimeout(function(){$("#loader_svg").addClass("slide")},100)}var c=document.getElementById("loader_svg_status");this.update=function(a){var b=lerp(1-a,336,118);c.setAttribute("y",b)},this.finish=function(a){$("#loader_rapper").addClass("hidden"),setTimeout(a,100),setTimeout(function(){$("#loader_rapper").hide()},500)},a()}var MX=MX||function(a){function b(){var a=document.body.style;r.prefix="webkitTransform"in a?"webkit":"mozTransform"in a?"moz":"msTransform"in a?"ms":"",k=r.transformProp=h("transform"),l=r.transitionProp=h("transition"),m=r.transformOriginProp=h("transformOrigin"),n=r.transformStyleProp=h("transformStyle"),o=r.perspectiveProp=h("perspective"),p=r.transitionEndEvent="webkit"===r.prefix?"webkitTransitionEnd":"transitionend";for(var b=["webkit","moz","ms"],d=0;d0?1:-1;return b.y=g*Math.atan2(c*Math.cos(b.x),f*-g),b.z=Math.atan2(Math.cos(b.x),Math.sin(b.x)*Math.sin(b.y))-Math.PI/2,"deg"===r.rotationUnit&&(b.x=e(b.x),b.y=e(b.y),b.z=e(b.z)),b},add:function(){if(this.el){var a=this;return Array.prototype.forEach.call(arguments,function(b){!b instanceof i||(a.el.appendChild(b.el),a.children||(a.children=[]),a.children.push(b),b.parent=a)}),this}},remove:function(){var b=this;return Array.prototype.forEach.call(arguments,function(c){var d=b.children.indexOf(c);-1!==d&&(b.children.splice(d,1),b.el.removeChild(c.el),c.parent=a)}),this},addTo:function(a){return"string"==typeof a&&(a=document.querySelector(a)),a instanceof HTMLElement&&a.appendChild?a.appendChild(this.el):(a instanceof i||a instanceof r.Scene)&&a.add(this),this},removeElement:function(){this.el.parentNode&&this.el.parentNode.removeChild(this.el)},setPosition:function(a){this.x=a.x||0===a.x?a.x:this.x,this.y=a.y||0===a.y?a.y:this.y,this.z=a.z||0===a.z?a.z:this.z},setRotation:function(a){this.rotationX=a.x||0===a.x?a.x:this.rotationX,this.rotationY=a.y||0===a.y?a.y:this.rotationY,this.rotationZ=a.z||0===a.z?a.z:this.rotationZ},setScale:function(a){this.scaleX=a.x||0===a.x?a.x:this.scaleX,this.scaleY=a.y||0===a.y?a.y:this.scaleY,this.scaleZ=a.z||0===a.z?a.z:this.scaleZ},setSkew:function(a){this.skewX=a.x||0===a.x?a.x:this.skewX,this.skewY=a.y||0===a.y?a.y:this.skewY},setCSSTransformOrigin:function(a){return this.el&&(this.el.style[m]=a),this},setCSSTransformStyle:function(a){return this.el&&(this.el.style[n]=a),this},setCSSTransition:function(a){return this.el&&(this.el.style[l]=a),this},setCSSPerspective:function(a){return this.el&&(this.el.style[o]=a),this},move:function(a){var b=this;b.ops=defaults(a,b.ops);for(var c in a)b[c]=a[c];b.dirty=!0,b.update()},onTransitionEnd:function(a){function b(){c.removeEventListener(p,b),a()}this.cancelTransitionEnd();var c=this.el;c.addEventListener(p,b)},cancelTransitionEnd:function(){this.el.removeEventListener(p)},toString:function(a){return a=a||"id width height depth x y z rotationX rotationY rotationZ scale".split(" "),this.__toString(a)},__toString:function(b,c){this.id=this.id||"undef";var d,e,f={},g=this.type||"Object3d",h=g.toLowerCase();for(var i in b)e=b[i],d=this[e],(0!==d||c)&&("number"==typeof d?-1!=e.indexOf("rotation")?f[e]=Number(d.toFixed(3)):f[e]=~~d:f[e]=d);return(c||"var "+h+" = new MX."+g)+"("+JSON.stringify(f,a,2)+")\n"+(c?"":"scene.add("+h+")")},contains:function(a,b,c){var d=!1,e=!1,f=!1;return d=null===a?!0:abs(this.x-a)<=this.width/2,e=null===b?!0:abs(this.y-b)<=this.height/2,f=null===c?!0:abs(this.z-c)<=this.depth/2,d&&e&&f}},i.extend=j.bind(i),r.Object3D=i,r.toRad=f,r.toDeg=e,Object.defineProperty(r,"positionAtCenter",{get:function(){return t},set:function(a){"boolean"==typeof a&&(t=a,t?c():d())}}),r}();MX.Camera=MX.Object3D.extend({init:function(){this.el=null,this.type="Camera"},move:function(a){for(var b in a)this[b]=a[b]},toString:function(){var a="x y z rotationX rotationY".split(" ");return this.__toString(a,"scene.camera.move")},getCameraEuler:function(a){var b=a.x-this.x,c=a.y-this.y,d=a.z-this.z;return r={},r.y=Math.atan2(-b,d),r.x=Math.atan2(-c,Math.sqrt(b*b+d*d)),r.z=0,"deg"===MX.rotationUnit&&(r.x=MX.toDeg(r.x),r.y=MX.toDeg(r.y)),r}}),MX.Scene=function(){function a(){this.el=document.createElement("div"),this.el.classList.add("mx-scene");var a=this.el.style;a[MX.transformProp]="preserve-3d",a.webkitPerspectiveOrigin="50% 50%",a.mozPerspectiveOrigin="50% 50%",a.perspectiveOrigin="50% 50%",a.webkitUserSelect="none",a.mozUserSelect="none",a.userSelect="none",a.overflow="hidden",this.inner=(new MX.Object3D).addTo(this.el),this.inner.el.style.width="0",this.inner.el.style.height="0";var b,c,d,e=this;Object.defineProperty(this,"width",{get:function(){return b},set:function(a){b=a,e.el.style.width=a+"px"}}),Object.defineProperty(this,"height",{get:function(){return c},set:function(a){c=a,e.el.style.height=a+"px"}}),Object.defineProperty(this,"perspective",{get:function(){return d},set:function(a){d=a,e.el.style[MX.perspectiveProp]=a+"px",e.inner.z=-a-e.camera.z,e.inner.rotationOrigin.z=-a}});this.camera=new MX.Camera;this.inner.rotationOrigin={x:0,y:0,z:0},this.perspective=0}var b=MX.Object3D.prototype.add,c=MX.Object3D.prototype.remove;return a.prototype={constructor:a,add:function(){return b.apply(this.inner,arguments),this},remove:function(){return c.apply(this.inner,arguments),this},addTo:function(a){return"string"==typeof a&&(a=document.querySelector(a)),a instanceof HTMLElement&&a.appendChild?a.appendChild(this.el):console.warn("You can only add a Scene to an HTML element."),this},update:function(){var a=this.inner,b=this.camera;return b.update(),a.z=-this.perspective-b.z,a.x=-b.x,a.y=-b.y,a.rotationX=-b.rotationX,a.rotationY=-b.rotationY,a.update(),this}},a}(),MX.OrbitCamera=function(a){function b(a){return function(b){a(b.touches[0])}}function c(a){k=a.pageX,l=a.pageY,f.dragging=!0}function d(a){f.dragging&&(f.delta(k-a.pageX,l-a.pageY),k=a.pageX,l=a.pageY)}function e(a){f.dragging=!1}var f={},g=!1;f.opt=a=defaults(a,{el:window,camera:scene.camera,radius:100,radiusRange:[10,1e3],rotationX:PI/2,rotationY:0,center:{x:0,y:0,z:0},sensitivity:10,wheelSensitivity:10,ease:10,wheelEase:10});var h,i,j,k,l,m=1e-10;return f.dragging=!1,f.init=function(){i=a.rotationY,h=a.rotationX,j=a.radius,f.wheel=new wheel({el:a.el,update:function(b,c){a.radius=clamp(a.radius+c*a.wheelSensitivity,a.radiusRange[0],a.radiusRange[1])}}),f.bind()},f.toggle=function(a){a?f.bind():f.unbind()},f.bind=function(){g||(g=!0,a.el.addEventListener("mousedown",c),window.addEventListener("mousemove",d),window.addEventListener("mouseup",e),a.el.addEventListener("touchstart",b(c)),window.addEventListener("touchmove",b(d)),window.addEventListener("touchend",b(e)),f.wheel.unlock())},f.unbind=function(){g&&(g=!1,a.el.removeEventListener("mousedown",c),window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",e),f.wheel.lock())},f.delta=function(b,c){a.rotationY+=b/window.innerWidth*a.sensitivity,a.rotationX=a.rotationX+c/window.innerHeight*a.sensitivity},f.move=function(b,c){a.rotationY=b,"number"==typeof c&&(a.rotationX=c)},f.zoom=function(b){a.radius=b},f.setZoom=function(b){j=a.radius=b},f.zoomPercent=function(b){a.radius=lerp(b,a.radiusRange[0],a.radiusRange[1])},f.zoomDelta=function(b){a.radius+=b},f.pause=function(){var b=sign(a.rotationY-i),c=sign(a.rotationX-h);a.rotationY=i+.1*b,a.rotationX=h+.1*c},f.update=function(){i=abs(i-a.rotationY)>m?avg(i,a.rotationY,a.ease):a.rotationY,h=abs(h-a.rotationX)>m?avg(h,a.rotationX,a.ease):a.rotationX,j=abs(j-a.radius)>m?avg(j,a.radius,a.wheelEase):a.radius,a.camera.x=a.center.x+j*sin(h)*cos(i),a.camera.z=a.center.y+j*sin(h)*sin(i),a.camera.y=a.center.z+j*cos(h),a.camera.rotationX=PI/2-h,a.camera.rotationY=i+PI/2},f},MX.OrbitCameraMobile=function(a){function b(a){return function(b){a(b.touches[0])}}function c(a){k=a.pageX,l=a.pageY,f.dragging=!0}function d(a){f.dragging&&(f.delta(k-a.pageX,l-a.pageY),k=a.pageX,l=a.pageY)}function e(a){f.dragging=!1}var f={},g=!1;f.opt=a=defaults(a,{el:window,camera:scene.camera,radius:100,radiusRange:[10,1e3],rotationX:PI/2,rotationY:0,center:{x:0,y:0,z:0},sensitivity:10,wheelSensitivity:10,ease:10,wheelEase:10});var h,i,j,k,l,m,n=1e-10,o=0,p=0,q=0,r=0,s=20;return f.dragging=!1,f.init=function(){i=a.rotationY,h=a.rotationX,j=a.radius,f.wheel=new wheel({el:a.el,update:function(b,c){a.radius=clamp(a.radius+c*a.wheelSensitivity,a.radiusRange[0],a.radiusRange[1])}}),f.bind(),f.orientationchange()},f.toggle=function(a){a?f.bind():f.unbind()},f.bind=function(){g||(g=!0,a.el.addEventListener("touchstart",b(c)),window.addEventListener("touchmove",b(d)),window.addEventListener("touchend",b(e)),window.addEventListener("orientationchange",f.orientationchange),window.addEventListener("devicemotion",f.devicemotion),window.addEventListener("deviceorientation",f.deviceorientation),f.wheel.unlock())},f.unbind=function(){g&&(g=!1,f.wheel.lock())},f.orientationchange=function(a){is_portrait=window.innerWidthq&&(q=b.beta,p=o);b.beta+7;d=!is_android&&r>s?o>p?b.beta-90:90-b.beta:0,(Math.abs(c-m)<100||Math.abs(c-m)>300)&&(e=c-m,m=c),e>300?e-=360:-300>e&&(e+=360),a.rotationX=MX.toRad(-5*d),a.rotationY+=MX.toRad(10*e)},f.landscapeorientation=function(b){var c,d;c=b.gamma>0?90-b.gamma:90+b.gamma,d=b.alpha-m,m=b.alpha,d>300?d-=360:-300>d&&(d+=360),a.rotationX=c>45?0:MX.toRad(c),a.rotationY+=MX.toRad(d)},f.delta=function(b,c){a.rotationY+=b/window.innerWidth*a.sensitivity,a.rotationX=a.rotationX+c/window.innerHeight*a.sensitivity},f.move=function(b,c){a.rotationY=b,"number"==typeof c&&(a.rotationX=c)},f.zoom=function(b){a.radius=b},f.setZoom=function(b){j=a.radius=b},f.zoomPercent=function(b){a.radius=lerp(b,a.radiusRange[0],a.radiusRange[1])},f.zoomDelta=function(b){a.radius+=b},f.pause=function(){var b=sign(a.rotationY-i),c=sign(a.rotationX-h);a.rotationY=i+.1*b,a.rotationX=h+.1*c},f.update=function(){i=abs(i-a.rotationY)>n?avg(i,a.rotationY,a.ease):a.rotationY,h=abs(h-a.rotationX)>n?avg(h,a.rotationX,a.ease):a.rotationX,j=abs(j-a.radius)>n?avg(j,a.radius,a.wheelEase):a.radius,a.camera.x=a.center.x+j*sin(h)*cos(i),a.camera.z=a.center.y+j*sin(h)*sin(i),a.camera.y=a.center.z+j*cos(h),a.camera.rotationX=PI/2-h,a.camera.rotationY=i+PI/2},f},MX.Image=MX.Object3D.extend({init:function(a){this.type="Image",this.media=a.media,this.width=0,this.height=0,this.x=a.x||0,this.y=a.y||0,this.z=a.z||0,this.scale=a.scale||1,this.backface=a.backface||!1,a.className&&this.el.classList.add(a.className),this.backface&&this.el.classList.add("backface-visible"),this.el.classList.add("image"),this.el.classList.add("mx-scenery"),this.el.style.backgroundRepeat="no-repeat",this.load(a)},load:function(a){var b=this;b.ops=defaults(a,b.ops);var c=new Image;c.onload=function(){b.ops&&(b.scale=b.ops.scale||1,b.width=b.ops.width||c.naturalWidth,b.height=b.ops.height||c.naturalHeight,b.el.style.backgroundImage="url("+c.src+")",b.el.classList.add("image"),b.dirty=!0,b.ops.onload&&b.ops.onload(c),b.update())},c.src=a.src,c.complete&&setTimeout(c.onload)}}),!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){function c(a){var b=a.length,c=fa.type(a);return"function"===c||fa.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function d(a,b,c){if(fa.isFunction(b))return fa.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return fa.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(na.test(b))return fa.filter(b,a,c);b=fa.filter(b,a)}return fa.grep(a,function(a){return fa.inArray(a,b)>=0!==c})}function e(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}function f(a){var b=va[a]={};return fa.each(a.match(ua)||[],function(a,c){b[c]=!0}),b}function g(){pa.addEventListener?(pa.removeEventListener("DOMContentLoaded",h,!1),a.removeEventListener("load",h,!1)):(pa.detachEvent("onreadystatechange",h),a.detachEvent("onload",h))}function h(){(pa.addEventListener||"load"===event.type||"complete"===pa.readyState)&&(g(),fa.ready())}function i(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(Aa,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:za.test(c)?fa.parseJSON(c):c}catch(e){}fa.data(a,b,c)}else c=void 0}return c}function j(a){var b;for(b in a)if(("data"!==b||!fa.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function k(a,b,c,d){if(fa.acceptData(a)){var e,f,g=fa.expando,h=a.nodeType,i=h?fa.cache:a,j=h?a[g]:a[g]&&g;if(j&&i[j]&&(d||i[j].data)||void 0!==c||"string"!=typeof b)return j||(j=h?a[g]=W.pop()||fa.guid++:g),i[j]||(i[j]=h?{}:{toJSON:fa.noop}),("object"==typeof b||"function"==typeof b)&&(d?i[j]=fa.extend(i[j],b):i[j].data=fa.extend(i[j].data,b)),f=i[j],d||(f.data||(f.data={}),f=f.data),void 0!==c&&(f[fa.camelCase(b)]=c), +"string"==typeof b?(e=f[b],null==e&&(e=f[fa.camelCase(b)])):e=f,e}}function l(a,b,c){if(fa.acceptData(a)){var d,e,f=a.nodeType,g=f?fa.cache:a,h=f?a[fa.expando]:fa.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){fa.isArray(b)?b=b.concat(fa.map(b,fa.camelCase)):b in d?b=[b]:(b=fa.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;for(;e--;)delete d[b[e]];if(c?!j(d):!fa.isEmptyObject(d))return}(c||(delete g[h].data,j(g[h])))&&(f?fa.cleanData([a],!0):da.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}function m(){return!0}function n(){return!1}function o(){try{return pa.activeElement}catch(a){}}function p(a){var b=La.split("|"),c=a.createDocumentFragment();if(c.createElement)for(;b.length;)c.createElement(b.pop());return c}function q(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==ya?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==ya?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||fa.nodeName(d,b)?f.push(d):fa.merge(f,q(d,b));return void 0===b||b&&fa.nodeName(a,b)?fa.merge([a],f):f}function r(a){Fa.test(a.type)&&(a.defaultChecked=a.checked)}function s(a,b){return fa.nodeName(a,"table")&&fa.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function t(a){return a.type=(null!==fa.find.attr(a,"type"))+"/"+a.type,a}function u(a){var b=Wa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function v(a,b){for(var c,d=0;null!=(c=a[d]);d++)fa._data(c,"globalEval",!b||fa._data(b[d],"globalEval"))}function w(a,b){if(1===b.nodeType&&fa.hasData(a)){var c,d,e,f=fa._data(a),g=fa._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)fa.event.add(b,c,h[c][d])}g.data&&(g.data=fa.extend({},g.data))}}function x(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!da.noCloneEvent&&b[fa.expando]){e=fa._data(b);for(d in e.events)fa.removeEvent(b,d,e.handle);b.removeAttribute(fa.expando)}"script"===c&&b.text!==a.text?(t(b).text=a.text,u(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),da.html5Clone&&a.innerHTML&&!fa.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Fa.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}function y(b,c){var d=fa(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:fa.css(d[0],"display");return d.detach(),e}function z(a){var b=pa,c=ab[a];return c||(c=y(a,b),"none"!==c&&c||(_a=(_a||fa("