prevent contact form spam

This commit is contained in:
Lee Lawlor committed 2014-09-30 21:09:01 -04:00
1 parent 1f892a89c0
commit 4f05d39cfb
10 files changed
+14 -6

No files matched your search

+3
View File
@@ -28,5 +28,8 @@ $(document).on('page:load ready', function() {
// activate any tablesorters // activate any tablesorters
$('.tablesorter').tablesorter(); $('.tablesorter').tablesorter();
// set value for userlogin_js, which is used to determine if a form was submitted with javascript enabled
$('#userlogin_js').val('6H2W6QYUAJT1Q8EB');
}); });
+2 -2
View File
@@ -28,8 +28,8 @@ class PagesController < ApplicationController
# if no message # if no message
elsif params[:message].blank? elsif params[:message].blank?
flash[:alert] = t(:contact_us_no_message) flash[:alert] = t(:contact_us_no_message)
# else send email if not a spambot # else send email if not a spambot (user must have javascript enabled)
elsif params[:userlogin].blank? elsif params[:userlogin_js] == '6H2W6QYUAJT1Q8EB'
Mailer.contact_us(params[:email], params[:message]).deliver Mailer.contact_us(params[:email], params[:message]).deliver
flash[:notice] = t(:contact_us_success) flash[:notice] = t(:contact_us_success)
end end
+1 -1
View File
@@ -1,5 +1,5 @@
<%= form_tag({:controller => 'pages', :action => 'contact_us', :method => :post}, :class => 'form-horizontal') do %> <%= form_tag({:controller => 'pages', :action => 'contact_us', :method => :post}, :class => 'form-horizontal') do %>
<input name='userlogin' class='userlogin' /> <input type='text' id='userlogin_js' name='userlogin_js' class='userlogin' />
<div class="form-group"> <div class="form-group">
<label class="col-sm-4 col-xs-3 control-label"><%= t(:email_address).titleize %></label> <label class="col-sm-4 col-xs-3 control-label"><%= t(:email_address).titleize %></label>
+2
View File
@@ -163,6 +163,7 @@ en:
message_field: "Message Field" message_field: "Message Field"
metadata: 'metadata' metadata: 'metadata'
minute: 'minute' minute: 'minute'
minutes: 'minutes'
myaccount: "My Account" myaccount: "My Account"
name: 'name' name: 'name'
new: "New" new: "New"
@@ -358,6 +359,7 @@ en:
timecontrol_delete: "Delete TimeControl" timecontrol_delete: "Delete TimeControl"
timecontrol_delete_message: "Want to delete this TimeControl?" timecontrol_delete_message: "Want to delete this TimeControl?"
timecontrol_error: "There were some problems creating your TimeControl:" timecontrol_error: "There were some problems creating your TimeControl:"
timecontrol_fuzzy_time: 'fuzzy time'
timecontrol_max_message: "You have reached the maximum number of TimeControls available per user. Please delete an existing TimeControl before adding a new one." timecontrol_max_message: "You have reached the maximum number of TimeControls available per user. Please delete an existing TimeControl before adding a new one."
timecontrol_new: "New TimeControl" timecontrol_new: "New TimeControl"
timecontrol_run_at: 'run at' timecontrol_run_at: 'run at'
+2 -1
View File
@@ -11,7 +11,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20140923230924) do ActiveRecord::Schema.define(version: 20140930202952) do
create_table "active_admin_comments", force: true do |t| create_table "active_admin_comments", force: true do |t|
t.string "namespace" t.string "namespace"
@@ -336,6 +336,7 @@ ActiveRecord::Schema.define(version: 20140923230924) do
t.datetime "updated_at" t.datetime "updated_at"
t.string "name" t.string "name"
t.datetime "run_at" t.datetime "run_at"
t.integer "fuzzy_seconds", default: 0
end end
add_index "timecontrols", ["frequency", "minute", "hour", "day"], name: "index_timecontrols_on_frequency_and_minute_and_hour_and_day", using: :btree add_index "timecontrols", ["frequency", "minute", "hour", "day"], name: "index_timecontrols_on_frequency_and_minute_and_hour_and_day", using: :btree
@@ -0,0 +1,2 @@
function reloadCharts(){return-1===navigator.userAgent.toLowerCase().indexOf("firefox")?!1:($('.ui-widget-content [aria-expanded="false"]').find("iframe").each(function(){var t=$(this).attr("src");-1!==t.indexOf("charts")&&($(this).hide(),$(this).attr("src",t),$(this).show())}),void 0)}function openDialogCenter(t){t.dialog("open");var e=getDimensions(t.parent());t.dialog({position:[e[0],e[1]]})}function getDimensions(t){var e=new Array(2);return e[0]=$(window).width()/2-t.width()/2,e[1]=$(window).height()/2-t.height()/2,e}function updateChart(t,e,n,r,a,i){var n=n,r=r,o=$("#iframe"+t).attr("default_src");o||(o=$("#iframe"+t).attr("src")),src=o.split("?")[0],("bar"===$("#type_"+t).val()||"column"===$("#type_"+t).val())&&0==$("#timescale_"+t).val().length&&0==$("#average_"+t).val().length&&0==$("#median_"+t).val().length&&0==$("#sum_"+t).val().length&&$("#timescale_"+t).val(30);var s=[];$(".chart_options"+t).each(function(){var t=$(this).val(),e=$(this).attr("id"),n=e.split("_")[0];t.length>0&&s.push([n,t])});for(var l="";s.length>0;){var u=s.pop();"width"==u[0]&&(n=parseInt(u[1])),"height"==u[0]&&(r=parseInt(u[1])),("type"!=u[0]||"line"!=u[1])&&(l+="&"+u[0]+"="+encodeURIComponent(u[1]))}l.length>0&&(src+="?"+l.substring(1)),e&&t>0&&i?$.update("/channels/"+a+"/charts/"+t,{newOptions:{options:l}}):e&&t>0&&$.update("/channels/"+a+"/charts/"+t,{options:l}),$("#embed"+t).val('<iframe width="'+n+'" height="'+r+'" style="border: 1px solid #cccccc;" src="'+src+'"></iframe>'),$("#iframe"+t).attr("src",src),$("#iframe"+t).attr("width",n),$("#iframe"+t).attr("height",r)}function updateSelectValues(){selectedValue=$(this).val(),$(".mutuallyexclusive"+index).each(function(){$(this).val("")}),$(this).val(selectedValue)}function setupChartForm(t){return function(e,n){n.length>0&&$("#"+n.split("=")[0]+"_"+t).val(decodeURIComponent(n.split("=")[1]))}}function setupColumns(t,e){$(sortColumnSetup(t,e)),$(".column").disableSelection()}function createWindowsWithData(t,e,n,r){for(var a in t){var i=t[a].window,o=i.window_type;colId=i.col,title=i.title;var s=i.html;"chart"===i.window_type&&$("body").append("<div id='chartConfig"+i.id+"'></div>");var l=addWindow(r,colId,i.id,o,title,s);l.each(decoratePortlet(e)),l.find(".ui-toggle").click(uiToggleClick),l.find(".ui-view").click(uiViewClick(n)),l.find(".ui-edit").click(uiEditClick(n)),l.find(".ui-close").click(uiCloseClick(n))}}function addWindow(t,e,n,r,a,i){if($("#"+t+"_dialog"+e).append('<div class="portlet ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" id="portlet_'+n+'"><div class="portlet-header window_type window_type-'+r+' ui-widget-header ui-corner-all">'+a+'</div><div class="portlet-content">'+i+"</div>"),$("#portlet_"+n).length>1)throw"Portlet count doesn't match what's expected";return $("#portlet_"+n)}function sortColumnSetup(t,e){$(".column").sortable({opacity:.6,helper:function(){return $("<div class='ui-widget-header'>Drop to re-position</div>")},connectWith:".column",update:updatePortletPositions(t,e)})}function getPortletArray(t){var e=new Array,n=t.split("&");for(i in n)val=n[i].split("=")[1],e.push(val);return e}function uiToggleClick(){$(this).toggleClass("ui-icon-minusthick").toggleClass("ui-icon-plusthick"),$(this).parents(".portlet:first").find(".portlet-content").toggle()}!function(t,e){t.rails!==e&&t.error("jquery-ujs has already been loaded!");var n,r=t(document);t.rails=n={linkClickSelector:"a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]",buttonClickSelector:"button[data-remote]",inputChangeSelector:"select[data-remote], input[data-remote], textarea[data-remote]",formSubmitSelector:"form",formInputClickSelector:"form input[type=submit], form input[type=image], form button[type=submit], form button:not([type])",disableSelector:"input[data-disable-with], button[data-disable-with], textarea[data-disable-with]",enableSelector:"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled",requiredInputSelector:"input[name][required]:not([disabled]),textarea[name][required]:not([disabled])",fileInputSelector:"input[type=file]",linkDisableSelector:"a[data-disable-with]",CSRFProtection:function(e){var n=t('meta[name="csrf-token"]').attr("content");n&&e.setRequestHeader("X-CSRF-Token",n)},fire:function(e,n,r){var a=t.Event(n);return e.trigger(a,r),a.result!==!1},confirm:function(t){return confirm(t)},ajax:function(e){return t.ajax(e)},href:function(t){return t.attr("href")},handleRemote:function(r){var a,i,o,s,l,u,c,d;if(n.fire(r,"ajax:before")){if(s=r.data("cross-domain"),l=s===e?null:s,u=r.data("with-credentials")||null,c=r.data("type")||t.ajaxSettings&&t.ajaxSettings.dataType,r.is("form")){a=r.attr("method"),i=r.attr("action"),o=r.serializeArray();var h=r.data("ujs:submit-button");h&&(o.push(h),r.data("ujs:submit-button",null))}else r.is(n.inputChangeSelector)?(a=r.data("method"),i=r.data("url"),o=r.serialize(),r.data("params")&&(o=o+"&"+r.data("params"))):r.is(n.buttonClickSelLine truncated
fixColumnWidth(this),n.click(function(t){var o=e[0].tBodies[0]&&e[0].tBodies[0].rows.length||0;if(!this.sortDisabled&&o>0){e.trigger("sortStart");var s=($(this),this.column);if(this.order=this.count++%2,this.lockedOrder&&(this.order=this.lockedOrder),t[a.sortMultiSortKey])if(isValueInArray(s,a.sortList))for(var l=0;l<a.sortList.length;l++){var u=a.sortList[l],c=a.headerList[u[0]];u[0]==s&&(c.count=u[1],c.count++,u[1]=c.count%2)}else a.sortList.push([s,this.order]);else{if(a.sortList=[],null!=a.sortForce)for(var d=a.sortForce,l=0;l<d.length;l++)d[l][0]!=s&&a.sortList.push(d[l]);a.sortList.push([s,this.order])}return setTimeout(function(){setHeadersCss(e[0],n,a.sortList,i),appendToTable(e[0],multisort(e[0],a.sortList,r))},1),!1}}).mousedown(function(){return a.cancelSelection?(this.onselectstart=function(){return!1},!1):void 0}),e.bind("update",function(){var t=this;setTimeout(function(){t.config.parsers=buildParserCache(t,n),r=buildCache(t)},1)}).bind("updateCell",function(t,e){var n=this.config,a=[e.parentNode.rowIndex-1,e.cellIndex];r.normalized[a[0]][a[1]]=n.parsers[a[1]].format(getElementText(n,e),e)}).bind("sorton",function(t,e){$(this).trigger("sortStart"),a.sortList=e;var o=a.sortList;updateHeaderSortCount(this,o),setHeadersCss(this,n,o,i),appendToTable(this,multisort(this,o,r))}).bind("appendCache",function(){appendToTable(this,r)}).bind("applyWidgetId",function(t,e){getWidgetById(e).format(this)}).bind("applyWidgets",function(){applyWidget(this)}),$.metadata&&$(this).metadata()&&$(this).metadata().sortlist&&(a.sortList=$(this).metadata().sortlist),a.sortList.length>0&&e.trigger("sorton",[a.sortList]),applyWidget(this)}})},this.addParser=function(t){for(var e=parsers.length,n=!0,r=0;e>r;r++)parsers[r].id.toLowerCase()==t.id.toLowerCase()&&(n=!1);n&&parsers.push(t)},this.addWidget=function(t){widgets.push(t)},this.formatFloat=function(t){var e=parseFloat(t);return isNaN(e)?0:e},this.formatInt=function(t){var e=parseInt(t);return isNaN(e)?0:e},this.isDigit=function(t){return/^[-+]?\d*$/.test($.trim(t.replace(/[,.']/g,"")))},this.clearTableBody=function(t){function e(){for(;this.firstChild;)this.removeChild(this.firstChild)}$.browser.msie?e.apply(t.tBodies[0]):t.tBodies[0].innerHTML=""}}}),$.fn.extend({tablesorter:$.tablesorter.construct});var ts=$.tablesorter;ts.addParser({id:"text",is:function(){return!0},format:function(t){return $.trim(t.toLocaleLowerCase())},type:"text"}),ts.addParser({id:"digit",is:function(t,e){var n=e.config;return $.tablesorter.isDigit(t,n)},format:function(t){return $.tablesorter.formatFloat(t)},type:"numeric"}),ts.addParser({id:"currency",is:function(t){return/^[£$€?.]/.test(t)},format:function(t){return $.tablesorter.formatFloat(t.replace(new RegExp(/[£$€]/g),""))},type:"numeric"}),ts.addParser({id:"ipAddress",is:function(t){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(t)},format:function(t){for(var e=t.split("."),n="",r=e.length,a=0;r>a;a++){var i=e[a];n+=2==i.length?"0"+i:i}return $.tablesorter.formatFloat(n)},type:"numeric"}),ts.addParser({id:"url",is:function(t){return/^(https?|ftp|file):\/\/$/.test(t)},format:function(t){return jQuery.trim(t.replace(new RegExp(/(https?|ftp|file):\/\//),""))},type:"text"}),ts.addParser({id:"isoDate",is:function(t){return/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(t)},format:function(t){return $.tablesorter.formatFloat(""!=t?new Date(t.replace(new RegExp(/-/g),"/")).getTime():"0")},type:"numeric"}),ts.addParser({id:"percent",is:function(t){return/\%$/.test($.trim(t))},format:function(t){return $.tablesorter.formatFloat(t.replace(new RegExp(/%/g),""))},type:"numeric"}),ts.addParser({id:"usLongDate",is:function(t){return t.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/))},format:function(t){return $.tablesorter.formatFloat(new Date(t).getTime())},type:"numeric"}),ts.addParser({id:"shortDate",is:function(t){return/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(t)},format:function(t,e){var n=e.config;return t=t.replace(/\-/g,"/"),"us"==n.dateFormat?t=t.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$1/$2"):"uk"==n.dateFormat?t=t.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$2/$1"):("dd/mm/yy"==n.dateFormat||"dd-mm-yy"==n.dateFormat)&&(t=t.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/,"$1/$2/$3")),$.tablesorter.formatFloat(new Date(t).getTime())},type:"numeric"}),ts.addParser({id:"time",is:function(t){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(t)},format:function(t){return $.tablesorter.formatFloat(new Date("2000/01/01 "+t).getTime())},type:"numeric"}),ts.addParser({id:"metadata",is:function(){return!1},format:function(t,e,n){var r=e.config,a=r.parserMetadataName?r.parserMetadataName:"sortValue";return $(n).metadata()[a]},type:"numeric"}),ts.addWidget({id:"zebra",format:function(t){if(t.config.debug)var e=new Date;var n,r,a=-1;$("tr:visible",t.tBodies[0]).each(function(){n=$(this),n.hasClass(t.Line truncated
+1 -1
View File
@@ -1,2 +1,2 @@
function reloadCharts(){return-1===navigator.userAgent.toLowerCase().indexOf("firefox")?!1:($('.ui-widget-content [aria-expanded="false"]').find("iframe").each(function(){var t=$(this).attr("src");-1!==t.indexOf("charts")&&($(this).hide(),$(this).attr("src",t),$(this).show())}),void 0)}function openDialogCenter(t){t.dialog("open");var e=getDimensions(t.parent());t.dialog({position:[e[0],e[1]]})}function getDimensions(t){var e=new Array(2);return e[0]=$(window).width()/2-t.width()/2,e[1]=$(window).height()/2-t.height()/2,e}function updateChart(t,e,n,r,a,i){var n=n,r=r,o=$("#iframe"+t).attr("default_src");o||(o=$("#iframe"+t).attr("src")),src=o.split("?")[0],("bar"===$("#type_"+t).val()||"column"===$("#type_"+t).val())&&0==$("#timescale_"+t).val().length&&0==$("#average_"+t).val().length&&0==$("#median_"+t).val().length&&0==$("#sum_"+t).val().length&&$("#timescale_"+t).val(30);var s=[];$(".chart_options"+t).each(function(){var t=$(this).val(),e=$(this).attr("id"),n=e.split("_")[0];t.length>0&&s.push([n,t])});for(var l="";s.length>0;){var u=s.pop();"width"==u[0]&&(n=parseInt(u[1])),"height"==u[0]&&(r=parseInt(u[1])),("type"!=u[0]||"line"!=u[1])&&(l+="&"+u[0]+"="+encodeURIComponent(u[1]))}l.length>0&&(src+="?"+l.substring(1)),e&&t>0&&i?$.update("/channels/"+a+"/charts/"+t,{newOptions:{options:l}}):e&&t>0&&$.update("/channels/"+a+"/charts/"+t,{options:l}),$("#embed"+t).val('<iframe width="'+n+'" height="'+r+'" style="border: 1px solid #cccccc;" src="'+src+'"></iframe>'),$("#iframe"+t).attr("src",src),$("#iframe"+t).attr("width",n),$("#iframe"+t).attr("height",r)}function updateSelectValues(){selectedValue=$(this).val(),$(".mutuallyexclusive"+index).each(function(){$(this).val("")}),$(this).val(selectedValue)}function setupChartForm(t){return function(e,n){n.length>0&&$("#"+n.split("=")[0]+"_"+t).val(decodeURIComponent(n.split("=")[1]))}}function setupColumns(t,e){$(sortColumnSetup(t,e)),$(".column").disableSelection()}function createWindowsWithData(t,e,n,r){for(var a in t){var i=t[a].window,o=i.window_type;colId=i.col,title=i.title;var s=i.html;"chart"===i.window_type&&$("body").append("<div id='chartConfig"+i.id+"'></div>");var l=addWindow(r,colId,i.id,o,title,s);l.each(decoratePortlet(e)),l.find(".ui-toggle").click(uiToggleClick),l.find(".ui-view").click(uiViewClick(n)),l.find(".ui-edit").click(uiEditClick(n)),l.find(".ui-close").click(uiCloseClick(n))}}function addWindow(t,e,n,r,a,i){if($("#"+t+"_dialog"+e).append('<div class="portlet ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" id="portlet_'+n+'"><div class="portlet-header window_type window_type-'+r+' ui-widget-header ui-corner-all">'+a+'</div><div class="portlet-content">'+i+"</div>"),$("#portlet_"+n).length>1)throw"Portlet count doesn't match what's expected";return $("#portlet_"+n)}function sortColumnSetup(t,e){$(".column").sortable({opacity:.6,helper:function(){return $("<div class='ui-widget-header'>Drop to re-position</div>")},connectWith:".column",update:updatePortletPositions(t,e)})}function getPortletArray(t){var e=new Array,n=t.split("&");for(i in n)val=n[i].split("=")[1],e.push(val);return e}function uiToggleClick(){$(this).toggleClass("ui-icon-minusthick").toggleClass("ui-icon-plusthick"),$(this).parents(".portlet:first").find(".portlet-content").toggle()}!function(t,e){t.rails!==e&&t.error("jquery-ujs has already been loaded!");var n,r=t(document);t.rails=n={linkClickSelector:"a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]",buttonClickSelector:"button[data-remote]",inputChangeSelector:"select[data-remote], input[data-remote], textarea[data-remote]",formSubmitSelector:"form",formInputClickSelector:"form input[type=submit], form input[type=image], form button[type=submit], form button:not([type])",disableSelector:"input[data-disable-with], button[data-disable-with], textarea[data-disable-with]",enableSelector:"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled",requiredInputSelector:"input[name][required]:not([disabled]),textarea[name][required]:not([disabled])",fileInputSelector:"input[type=file]",linkDisableSelector:"a[data-disable-with]",CSRFProtection:function(e){var n=t('meta[name="csrf-token"]').attr("content");n&&e.setRequestHeader("X-CSRF-Token",n)},fire:function(e,n,r){var a=t.Event(n);return e.trigger(a,r),a.result!==!1},confirm:function(t){return confirm(t)},ajax:function(e){return t.ajax(e)},href:function(t){return t.attr("href")},handleRemote:function(r){var a,i,o,s,l,u,c,d;if(n.fire(r,"ajax:before")){if(s=r.data("cross-domain"),l=s===e?null:s,u=r.data("with-credentials")||null,c=r.data("type")||t.ajaxSettings&&t.ajaxSettings.dataType,r.is("form")){a=r.attr("method"),i=r.attr("action"),o=r.serializeArray();var h=r.data("ujs:submit-button");h&&(o.push(h),r.data("ujs:submit-button",null))}else r.is(n.inputChangeSelector)?(a=r.data("method"),i=r.data("url"),o=r.serialize(),r.data("params")&&(o=o+"&"+r.data("params"))):r.is(n.buttonClickSelLine truncated function reloadCharts(){return-1===navigator.userAgent.toLowerCase().indexOf("firefox")?!1:($('.ui-widget-content [aria-expanded="false"]').find("iframe").each(function(){var t=$(this).attr("src");-1!==t.indexOf("charts")&&($(this).hide(),$(this).attr("src",t),$(this).show())}),void 0)}function openDialogCenter(t){t.dialog("open");var e=getDimensions(t.parent());t.dialog({position:[e[0],e[1]]})}function getDimensions(t){var e=new Array(2);return e[0]=$(window).width()/2-t.width()/2,e[1]=$(window).height()/2-t.height()/2,e}function updateChart(t,e,n,r,a,i){var n=n,r=r,o=$("#iframe"+t).attr("default_src");o||(o=$("#iframe"+t).attr("src")),src=o.split("?")[0],("bar"===$("#type_"+t).val()||"column"===$("#type_"+t).val())&&0==$("#timescale_"+t).val().length&&0==$("#average_"+t).val().length&&0==$("#median_"+t).val().length&&0==$("#sum_"+t).val().length&&$("#timescale_"+t).val(30);var s=[];$(".chart_options"+t).each(function(){var t=$(this).val(),e=$(this).attr("id"),n=e.split("_")[0];t.length>0&&s.push([n,t])});for(var l="";s.length>0;){var u=s.pop();"width"==u[0]&&(n=parseInt(u[1])),"height"==u[0]&&(r=parseInt(u[1])),("type"!=u[0]||"line"!=u[1])&&(l+="&"+u[0]+"="+encodeURIComponent(u[1]))}l.length>0&&(src+="?"+l.substring(1)),e&&t>0&&i?$.update("/channels/"+a+"/charts/"+t,{newOptions:{options:l}}):e&&t>0&&$.update("/channels/"+a+"/charts/"+t,{options:l}),$("#embed"+t).val('<iframe width="'+n+'" height="'+r+'" style="border: 1px solid #cccccc;" src="'+src+'"></iframe>'),$("#iframe"+t).attr("src",src),$("#iframe"+t).attr("width",n),$("#iframe"+t).attr("height",r)}function updateSelectValues(){selectedValue=$(this).val(),$(".mutuallyexclusive"+index).each(function(){$(this).val("")}),$(this).val(selectedValue)}function setupChartForm(t){return function(e,n){n.length>0&&$("#"+n.split("=")[0]+"_"+t).val(decodeURIComponent(n.split("=")[1]))}}function setupColumns(t,e){$(sortColumnSetup(t,e)),$(".column").disableSelection()}function createWindowsWithData(t,e,n,r){for(var a in t){var i=t[a].window,o=i.window_type;colId=i.col,title=i.title;var s=i.html;"chart"===i.window_type&&$("body").append("<div id='chartConfig"+i.id+"'></div>");var l=addWindow(r,colId,i.id,o,title,s);l.each(decoratePortlet(e)),l.find(".ui-toggle").click(uiToggleClick),l.find(".ui-view").click(uiViewClick(n)),l.find(".ui-edit").click(uiEditClick(n)),l.find(".ui-close").click(uiCloseClick(n))}}function addWindow(t,e,n,r,a,i){if($("#"+t+"_dialog"+e).append('<div class="portlet ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" id="portlet_'+n+'"><div class="portlet-header window_type window_type-'+r+' ui-widget-header ui-corner-all">'+a+'</div><div class="portlet-content">'+i+"</div>"),$("#portlet_"+n).length>1)throw"Portlet count doesn't match what's expected";return $("#portlet_"+n)}function sortColumnSetup(t,e){$(".column").sortable({opacity:.6,helper:function(){return $("<div class='ui-widget-header'>Drop to re-position</div>")},connectWith:".column",update:updatePortletPositions(t,e)})}function getPortletArray(t){var e=new Array,n=t.split("&");for(i in n)val=n[i].split("=")[1],e.push(val);return e}function uiToggleClick(){$(this).toggleClass("ui-icon-minusthick").toggleClass("ui-icon-plusthick"),$(this).parents(".portlet:first").find(".portlet-content").toggle()}!function(t,e){t.rails!==e&&t.error("jquery-ujs has already been loaded!");var n,r=t(document);t.rails=n={linkClickSelector:"a[data-confirm], a[data-method], a[data-remote], a[data-disable-with]",buttonClickSelector:"button[data-remote]",inputChangeSelector:"select[data-remote], input[data-remote], textarea[data-remote]",formSubmitSelector:"form",formInputClickSelector:"form input[type=submit], form input[type=image], form button[type=submit], form button:not([type])",disableSelector:"input[data-disable-with], button[data-disable-with], textarea[data-disable-with]",enableSelector:"input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled",requiredInputSelector:"input[name][required]:not([disabled]),textarea[name][required]:not([disabled])",fileInputSelector:"input[type=file]",linkDisableSelector:"a[data-disable-with]",CSRFProtection:function(e){var n=t('meta[name="csrf-token"]').attr("content");n&&e.setRequestHeader("X-CSRF-Token",n)},fire:function(e,n,r){var a=t.Event(n);return e.trigger(a,r),a.result!==!1},confirm:function(t){return confirm(t)},ajax:function(e){return t.ajax(e)},href:function(t){return t.attr("href")},handleRemote:function(r){var a,i,o,s,l,u,c,d;if(n.fire(r,"ajax:before")){if(s=r.data("cross-domain"),l=s===e?null:s,u=r.data("with-credentials")||null,c=r.data("type")||t.ajaxSettings&&t.ajaxSettings.dataType,r.is("form")){a=r.attr("method"),i=r.attr("action"),o=r.serializeArray();var h=r.data("ujs:submit-button");h&&(o.push(h),r.data("ujs:submit-button",null))}else r.is(n.inputChangeSelector)?(a=r.data("method"),i=r.data("url"),o=r.serialize(),r.data("params")&&(o=o+"&"+r.data("params"))):r.is(n.buttonClickSelLine truncated
fixColumnWidth(this),n.click(function(t){var o=e[0].tBodies[0]&&e[0].tBodies[0].rows.length||0;if(!this.sortDisabled&&o>0){e.trigger("sortStart");var s=($(this),this.column);if(this.order=this.count++%2,this.lockedOrder&&(this.order=this.lockedOrder),t[a.sortMultiSortKey])if(isValueInArray(s,a.sortList))for(var l=0;l<a.sortList.length;l++){var u=a.sortList[l],c=a.headerList[u[0]];u[0]==s&&(c.count=u[1],c.count++,u[1]=c.count%2)}else a.sortList.push([s,this.order]);else{if(a.sortList=[],null!=a.sortForce)for(var d=a.sortForce,l=0;l<d.length;l++)d[l][0]!=s&&a.sortList.push(d[l]);a.sortList.push([s,this.order])}return setTimeout(function(){setHeadersCss(e[0],n,a.sortList,i),appendToTable(e[0],multisort(e[0],a.sortList,r))},1),!1}}).mousedown(function(){return a.cancelSelection?(this.onselectstart=function(){return!1},!1):void 0}),e.bind("update",function(){var t=this;setTimeout(function(){t.config.parsers=buildParserCache(t,n),r=buildCache(t)},1)}).bind("updateCell",function(t,e){var n=this.config,a=[e.parentNode.rowIndex-1,e.cellIndex];r.normalized[a[0]][a[1]]=n.parsers[a[1]].format(getElementText(n,e),e)}).bind("sorton",function(t,e){$(this).trigger("sortStart"),a.sortList=e;var o=a.sortList;updateHeaderSortCount(this,o),setHeadersCss(this,n,o,i),appendToTable(this,multisort(this,o,r))}).bind("appendCache",function(){appendToTable(this,r)}).bind("applyWidgetId",function(t,e){getWidgetById(e).format(this)}).bind("applyWidgets",function(){applyWidget(this)}),$.metadata&&$(this).metadata()&&$(this).metadata().sortlist&&(a.sortList=$(this).metadata().sortlist),a.sortList.length>0&&e.trigger("sorton",[a.sortList]),applyWidget(this)}})},this.addParser=function(t){for(var e=parsers.length,n=!0,r=0;e>r;r++)parsers[r].id.toLowerCase()==t.id.toLowerCase()&&(n=!1);n&&parsers.push(t)},this.addWidget=function(t){widgets.push(t)},this.formatFloat=function(t){var e=parseFloat(t);return isNaN(e)?0:e},this.formatInt=function(t){var e=parseInt(t);return isNaN(e)?0:e},this.isDigit=function(t){return/^[-+]?\d*$/.test($.trim(t.replace(/[,.']/g,"")))},this.clearTableBody=function(t){function e(){for(;this.firstChild;)this.removeChild(this.firstChild)}$.browser.msie?e.apply(t.tBodies[0]):t.tBodies[0].innerHTML=""}}}),$.fn.extend({tablesorter:$.tablesorter.construct});var ts=$.tablesorter;ts.addParser({id:"text",is:function(){return!0},format:function(t){return $.trim(t.toLocaleLowerCase())},type:"text"}),ts.addParser({id:"digit",is:function(t,e){var n=e.config;return $.tablesorter.isDigit(t,n)},format:function(t){return $.tablesorter.formatFloat(t)},type:"numeric"}),ts.addParser({id:"currency",is:function(t){return/^[£$€?.]/.test(t)},format:function(t){return $.tablesorter.formatFloat(t.replace(new RegExp(/[£$€]/g),""))},type:"numeric"}),ts.addParser({id:"ipAddress",is:function(t){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(t)},format:function(t){for(var e=t.split("."),n="",r=e.length,a=0;r>a;a++){var i=e[a];n+=2==i.length?"0"+i:i}return $.tablesorter.formatFloat(n)},type:"numeric"}),ts.addParser({id:"url",is:function(t){return/^(https?|ftp|file):\/\/$/.test(t)},format:function(t){return jQuery.trim(t.replace(new RegExp(/(https?|ftp|file):\/\//),""))},type:"text"}),ts.addParser({id:"isoDate",is:function(t){return/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(t)},format:function(t){return $.tablesorter.formatFloat(""!=t?new Date(t.replace(new RegExp(/-/g),"/")).getTime():"0")},type:"numeric"}),ts.addParser({id:"percent",is:function(t){return/\%$/.test($.trim(t))},format:function(t){return $.tablesorter.formatFloat(t.replace(new RegExp(/%/g),""))},type:"numeric"}),ts.addParser({id:"usLongDate",is:function(t){return t.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/))},format:function(t){return $.tablesorter.formatFloat(new Date(t).getTime())},type:"numeric"}),ts.addParser({id:"shortDate",is:function(t){return/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(t)},format:function(t,e){var n=e.config;return t=t.replace(/\-/g,"/"),"us"==n.dateFormat?t=t.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$1/$2"):"uk"==n.dateFormat?t=t.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$2/$1"):("dd/mm/yy"==n.dateFormat||"dd-mm-yy"==n.dateFormat)&&(t=t.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/,"$1/$2/$3")),$.tablesorter.formatFloat(new Date(t).getTime())},type:"numeric"}),ts.addParser({id:"time",is:function(t){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(t)},format:function(t){return $.tablesorter.formatFloat(new Date("2000/01/01 "+t).getTime())},type:"numeric"}),ts.addParser({id:"metadata",is:function(){return!1},format:function(t,e,n){var r=e.config,a=r.parserMetadataName?r.parserMetadataName:"sortValue";return $(n).metadata()[a]},type:"numeric"}),ts.addWidget({id:"zebra",format:function(t){if(t.config.debug)var e=new Date;var n,r,a=-1;$("tr:visible",t.tBodies[0]).each(function(){n=$(this),n.hasClass(t.Line truncated fixColumnWidth(this),n.click(function(t){var o=e[0].tBodies[0]&&e[0].tBodies[0].rows.length||0;if(!this.sortDisabled&&o>0){e.trigger("sortStart");var s=($(this),this.column);if(this.order=this.count++%2,this.lockedOrder&&(this.order=this.lockedOrder),t[a.sortMultiSortKey])if(isValueInArray(s,a.sortList))for(var l=0;l<a.sortList.length;l++){var u=a.sortList[l],c=a.headerList[u[0]];u[0]==s&&(c.count=u[1],c.count++,u[1]=c.count%2)}else a.sortList.push([s,this.order]);else{if(a.sortList=[],null!=a.sortForce)for(var d=a.sortForce,l=0;l<d.length;l++)d[l][0]!=s&&a.sortList.push(d[l]);a.sortList.push([s,this.order])}return setTimeout(function(){setHeadersCss(e[0],n,a.sortList,i),appendToTable(e[0],multisort(e[0],a.sortList,r))},1),!1}}).mousedown(function(){return a.cancelSelection?(this.onselectstart=function(){return!1},!1):void 0}),e.bind("update",function(){var t=this;setTimeout(function(){t.config.parsers=buildParserCache(t,n),r=buildCache(t)},1)}).bind("updateCell",function(t,e){var n=this.config,a=[e.parentNode.rowIndex-1,e.cellIndex];r.normalized[a[0]][a[1]]=n.parsers[a[1]].format(getElementText(n,e),e)}).bind("sorton",function(t,e){$(this).trigger("sortStart"),a.sortList=e;var o=a.sortList;updateHeaderSortCount(this,o),setHeadersCss(this,n,o,i),appendToTable(this,multisort(this,o,r))}).bind("appendCache",function(){appendToTable(this,r)}).bind("applyWidgetId",function(t,e){getWidgetById(e).format(this)}).bind("applyWidgets",function(){applyWidget(this)}),$.metadata&&$(this).metadata()&&$(this).metadata().sortlist&&(a.sortList=$(this).metadata().sortlist),a.sortList.length>0&&e.trigger("sorton",[a.sortList]),applyWidget(this)}})},this.addParser=function(t){for(var e=parsers.length,n=!0,r=0;e>r;r++)parsers[r].id.toLowerCase()==t.id.toLowerCase()&&(n=!1);n&&parsers.push(t)},this.addWidget=function(t){widgets.push(t)},this.formatFloat=function(t){var e=parseFloat(t);return isNaN(e)?0:e},this.formatInt=function(t){var e=parseInt(t);return isNaN(e)?0:e},this.isDigit=function(t){return/^[-+]?\d*$/.test($.trim(t.replace(/[,.']/g,"")))},this.clearTableBody=function(t){function e(){for(;this.firstChild;)this.removeChild(this.firstChild)}$.browser.msie?e.apply(t.tBodies[0]):t.tBodies[0].innerHTML=""}}}),$.fn.extend({tablesorter:$.tablesorter.construct});var ts=$.tablesorter;ts.addParser({id:"text",is:function(){return!0},format:function(t){return $.trim(t.toLocaleLowerCase())},type:"text"}),ts.addParser({id:"digit",is:function(t,e){var n=e.config;return $.tablesorter.isDigit(t,n)},format:function(t){return $.tablesorter.formatFloat(t)},type:"numeric"}),ts.addParser({id:"currency",is:function(t){return/^[£$€?.]/.test(t)},format:function(t){return $.tablesorter.formatFloat(t.replace(new RegExp(/[£$€]/g),""))},type:"numeric"}),ts.addParser({id:"ipAddress",is:function(t){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(t)},format:function(t){for(var e=t.split("."),n="",r=e.length,a=0;r>a;a++){var i=e[a];n+=2==i.length?"0"+i:i}return $.tablesorter.formatFloat(n)},type:"numeric"}),ts.addParser({id:"url",is:function(t){return/^(https?|ftp|file):\/\/$/.test(t)},format:function(t){return jQuery.trim(t.replace(new RegExp(/(https?|ftp|file):\/\//),""))},type:"text"}),ts.addParser({id:"isoDate",is:function(t){return/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(t)},format:function(t){return $.tablesorter.formatFloat(""!=t?new Date(t.replace(new RegExp(/-/g),"/")).getTime():"0")},type:"numeric"}),ts.addParser({id:"percent",is:function(t){return/\%$/.test($.trim(t))},format:function(t){return $.tablesorter.formatFloat(t.replace(new RegExp(/%/g),""))},type:"numeric"}),ts.addParser({id:"usLongDate",is:function(t){return t.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/))},format:function(t){return $.tablesorter.formatFloat(new Date(t).getTime())},type:"numeric"}),ts.addParser({id:"shortDate",is:function(t){return/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(t)},format:function(t,e){var n=e.config;return t=t.replace(/\-/g,"/"),"us"==n.dateFormat?t=t.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$1/$2"):"uk"==n.dateFormat?t=t.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$2/$1"):("dd/mm/yy"==n.dateFormat||"dd-mm-yy"==n.dateFormat)&&(t=t.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/,"$1/$2/$3")),$.tablesorter.formatFloat(new Date(t).getTime())},type:"numeric"}),ts.addParser({id:"time",is:function(t){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(t)},format:function(t){return $.tablesorter.formatFloat(new Date("2000/01/01 "+t).getTime())},type:"numeric"}),ts.addParser({id:"metadata",is:function(){return!1},format:function(t,e,n){var r=e.config,a=r.parserMetadataName?r.parserMetadataName:"sortValue";return $(n).metadata()[a]},type:"numeric"}),ts.addWidget({id:"zebra",format:function(t){if(t.config.debug)var e=new Date;var n,r,a=-1;$("tr:visible",t.tBodies[0]).each(function(){n=$(this),n.hasClass(t.Line truncated
Binary file not shown.
@@ -1 +1 @@
{"files":{"GitHub_ThingSpeak_API-f39bba3caddbf4af63e208b8552a98ac.jpg":{"logical_path":"GitHub_ThingSpeak_API.jpg","mtime":"2014-02-08T20:02:14-05:00","size":26303,"digest":"f39bba3caddbf4af63e208b8552a98ac"},"ThingSpeak_Logo-3139b15204b5af565fca3a5f342ef19c.png":{"logical_path":"ThingSpeak_Logo.png","mtime":"2014-02-08T20:02:14-05:00","size":9258,"digest":"3139b15204b5af565fca3a5f342ef19c"},"eye-b67d3d940541ae7d0b469ed20ee92fe3.png":{"logical_path":"eye.png","mtime":"2014-02-08T20:02:14-05:00","size":3294,"digest":"b67d3d940541ae7d0b469ed20ee92fe3"},"flag_gray-319110a59d1d75cad2d8f29af88fdb23.gif":{"logical_path":"flag_gray.gif","mtime":"2014-02-08T20:02:14-05:00","size":983,"digest":"319110a59d1d75cad2d8f29af88fdb23"},"flag_red-16607fd54284010c4e95d5e9a3935b40.gif":{"logical_path":"flag_red.gif","mtime":"2014-02-08T20:02:14-05:00","size":987,"digest":"16607fd54284010c4e95d5e9a3935b40"},"front-b28e4f9d550ff0101a0140b1fb1ec1da.png":{"logical_path":"front.png","mtime":"2014-02-08T20:02:14-05:00","size":17717,"digest":"b28e4f9d550ff0101a0140b1fb1ec1da"},"icon_location_24-40aef0eb9d6824f7538c1056c90a2156.png":{"logical_path":"icon_location_24.png","mtime":"2014-02-08T20:01:43-05:00","size":618,"digest":"40aef0eb9d6824f7538c1056c90a2156"},"icon_rss-3ce0d86e00a9e937993988e73720950e.gif":{"logical_path":"icon_rss.gif","mtime":"2014-02-08T20:02:14-05:00","size":1008,"digest":"3ce0d86e00a9e937993988e73720950e"},"icons/InfoBox-54072dd9794a709a9fee5ab80d4be545.png":{"logical_path":"icons/InfoBox.png","mtime":"2014-02-08T20:02:14-05:00","size":837,"digest":"54072dd9794a709a9fee5ab80d4be545"},"icons/Locked-84572b6d8c7a390e424483b16f28410f.png":{"logical_path":"icons/Locked.png","mtime":"2014-02-08T20:02:14-05:00","size":1882,"digest":"84572b6d8c7a390e424483b16f28410f"},"icons/Public_32-2bcfb892862a4396e3a5593a5e1df202.png":{"logical_path":"icons/Public_32.png","mtime":"2014-02-08T20:02:14-05:00","size":4788,"digest":"2bcfb892862a4396e3a5593a5e1df202"},"icons/Unlocked-226c08041c55d88ecf7898dffe6568aa.png":{"logical_path":"icons/Unlocked.png","mtime":"2014-02-08T20:02:14-05:00","size":1652,"digest":"226c08041c55d88ecf7898dffe6568aa"},"icons/delete-9a7fbc7ba573f4ab735f66bc17466a84.png":{"logical_path":"icons/delete.png","mtime":"2014-02-08T20:02:14-05:00","size":715,"digest":"9a7fbc7ba573f4ab735f66bc17466a84"},"my_house_status_update-526a896242134f12bf2882dfad48fe24.png":{"logical_path":"my_house_status_update.png","mtime":"2014-02-08T20:02:14-05:00","size":13437,"digest":"526a896242134f12bf2882dfad48fe24"},"rails-6a9a73b3eeba7d35c79c3de6fc98b6f1.png":{"logical_path":"rails.png","mtime":"2014-02-08T20:02:14-05:00","size":6646,"digest":"6a9a73b3eeba7d35c79c3de6fc98b6f1"},"react-99715cc1aac81b13fdc4384378c9cf0e.png":{"logical_path":"react.png","mtime":"2014-02-08T20:02:14-05:00","size":2996,"digest":"99715cc1aac81b13fdc4384378c9cf0e"},"scheduled_thinghttp-b525411c648770d5252475ab92925006.png":{"logical_path":"scheduled_thinghttp.png","mtime":"2014-02-08T20:02:14-05:00","size":8677,"digest":"b525411c648770d5252475ab92925006"},"shading-4c8cafd8b85355f46eedb553ece6a663.png":{"logical_path":"shading.png","mtime":"2014-02-08T20:02:14-05:00","size":565,"digest":"4c8cafd8b85355f46eedb553ece6a663"},"social_sensor_network_logo-2cc4b27d8115a3efcf38c0c6539d06fe.png":{"logical_path":"social_sensor_network_logo.png","mtime":"2014-02-08T20:02:14-05:00","size":15370,"digest":"2cc4b27d8115a3efcf38c0c6539d06fe"},"social_sensor_network_main-f2114a6f96a027de3c3b39aefd11a34b.png":{"logical_path":"social_sensor_network_main.png","mtime":"2014-02-08T20:02:14-05:00","size":132931,"digest":"f2114a6f96a027de3c3b39aefd11a34b"},"talkback-a8f0046a06cddead53bfe73e0a1b11b1.png":{"logical_path":"talkback.png","mtime":"2014-02-08T20:02:14-05:00","size":5183,"digest":"a8f0046a06cddead53bfe73e0a1b11b1"},"thinghttp-b22d0641869d4b49e8fdc1441d19bd9d.png":{"logical_path":"thinghttp.png","mtime":"2014-02-08T20:02:14-05:00","size":5918,"digest":"b22d0641869d4b49e8fdc1441d19bd9d"},"thingtweet-2f829197927298b1eb724a072adb072a.png":{"logical_path":"thingtweet.png","mtime":"2014-02-08T20:02:14-05:00","size":4075,"digest":"2f829197927298b1eb724a072adb072a"},"tweetcontrol-5fa1225bb39f188b215d5897b37c2c18.png":{"logical_path":"tweetcontrol.png","mtime":"2014-02-08T20:02:14-05:00","size":13429,"digest":"5fa1225bb39f188b215d5897b37c2c18"},"images/ui-bg_diagonals-thick_18_b81900_40x40-7cff5779324125bfa623755a21cb7d08.png":{"logical_path":"images/ui-bg_diagonals-thick_18_b81900_40x40.png","mtime":"2014-02-08T20:01:44-05:00","size":260,"digest":"7cff5779324125bfa623755a21cb7d08"},"images/ui-bg_diagonals-thick_20_666666_40x40-e3476d26e53f4b2bdba1cbd4216bd169.png":{"logical_path":"images/ui-bg_diagonals-thick_20_666666_40x40.png","mtime":"2014-02-08T20:01:44-05:00","size":251,"digest":"e3476d26e53f4b2bdba1cbd4216bd169"},"images/ui-bg_flat_10_000000_40x100-b4d9562e67d66d83845d2edeaae222d7.png":{"logical_path":"images/ui-bg_flat_10_000000_40x100.png","mtime":"2014-02-08T20:02:1Line truncated {"files":{"GitHub_ThingSpeak_API-f39bba3caddbf4af63e208b8552a98ac.jpg":{"logical_path":"GitHub_ThingSpeak_API.jpg","mtime":"2014-02-08T20:02:14-05:00","size":26303,"digest":"f39bba3caddbf4af63e208b8552a98ac"},"ThingSpeak_Logo-3139b15204b5af565fca3a5f342ef19c.png":{"logical_path":"ThingSpeak_Logo.png","mtime":"2014-02-08T20:02:14-05:00","size":9258,"digest":"3139b15204b5af565fca3a5f342ef19c"},"eye-b67d3d940541ae7d0b469ed20ee92fe3.png":{"logical_path":"eye.png","mtime":"2014-02-08T20:02:14-05:00","size":3294,"digest":"b67d3d940541ae7d0b469ed20ee92fe3"},"flag_gray-319110a59d1d75cad2d8f29af88fdb23.gif":{"logical_path":"flag_gray.gif","mtime":"2014-02-08T20:02:14-05:00","size":983,"digest":"319110a59d1d75cad2d8f29af88fdb23"},"flag_red-16607fd54284010c4e95d5e9a3935b40.gif":{"logical_path":"flag_red.gif","mtime":"2014-02-08T20:02:14-05:00","size":987,"digest":"16607fd54284010c4e95d5e9a3935b40"},"front-b28e4f9d550ff0101a0140b1fb1ec1da.png":{"logical_path":"front.png","mtime":"2014-02-08T20:02:14-05:00","size":17717,"digest":"b28e4f9d550ff0101a0140b1fb1ec1da"},"icon_location_24-40aef0eb9d6824f7538c1056c90a2156.png":{"logical_path":"icon_location_24.png","mtime":"2014-02-08T20:01:43-05:00","size":618,"digest":"40aef0eb9d6824f7538c1056c90a2156"},"icon_rss-3ce0d86e00a9e937993988e73720950e.gif":{"logical_path":"icon_rss.gif","mtime":"2014-02-08T20:02:14-05:00","size":1008,"digest":"3ce0d86e00a9e937993988e73720950e"},"icons/InfoBox-54072dd9794a709a9fee5ab80d4be545.png":{"logical_path":"icons/InfoBox.png","mtime":"2014-02-08T20:02:14-05:00","size":837,"digest":"54072dd9794a709a9fee5ab80d4be545"},"icons/Locked-84572b6d8c7a390e424483b16f28410f.png":{"logical_path":"icons/Locked.png","mtime":"2014-02-08T20:02:14-05:00","size":1882,"digest":"84572b6d8c7a390e424483b16f28410f"},"icons/Public_32-2bcfb892862a4396e3a5593a5e1df202.png":{"logical_path":"icons/Public_32.png","mtime":"2014-02-08T20:02:14-05:00","size":4788,"digest":"2bcfb892862a4396e3a5593a5e1df202"},"icons/Unlocked-226c08041c55d88ecf7898dffe6568aa.png":{"logical_path":"icons/Unlocked.png","mtime":"2014-02-08T20:02:14-05:00","size":1652,"digest":"226c08041c55d88ecf7898dffe6568aa"},"icons/delete-9a7fbc7ba573f4ab735f66bc17466a84.png":{"logical_path":"icons/delete.png","mtime":"2014-02-08T20:02:14-05:00","size":715,"digest":"9a7fbc7ba573f4ab735f66bc17466a84"},"my_house_status_update-526a896242134f12bf2882dfad48fe24.png":{"logical_path":"my_house_status_update.png","mtime":"2014-02-08T20:02:14-05:00","size":13437,"digest":"526a896242134f12bf2882dfad48fe24"},"rails-6a9a73b3eeba7d35c79c3de6fc98b6f1.png":{"logical_path":"rails.png","mtime":"2014-02-08T20:02:14-05:00","size":6646,"digest":"6a9a73b3eeba7d35c79c3de6fc98b6f1"},"react-99715cc1aac81b13fdc4384378c9cf0e.png":{"logical_path":"react.png","mtime":"2014-02-08T20:02:14-05:00","size":2996,"digest":"99715cc1aac81b13fdc4384378c9cf0e"},"scheduled_thinghttp-b525411c648770d5252475ab92925006.png":{"logical_path":"scheduled_thinghttp.png","mtime":"2014-02-08T20:02:14-05:00","size":8677,"digest":"b525411c648770d5252475ab92925006"},"shading-4c8cafd8b85355f46eedb553ece6a663.png":{"logical_path":"shading.png","mtime":"2014-02-08T20:02:14-05:00","size":565,"digest":"4c8cafd8b85355f46eedb553ece6a663"},"social_sensor_network_logo-2cc4b27d8115a3efcf38c0c6539d06fe.png":{"logical_path":"social_sensor_network_logo.png","mtime":"2014-02-08T20:02:14-05:00","size":15370,"digest":"2cc4b27d8115a3efcf38c0c6539d06fe"},"social_sensor_network_main-f2114a6f96a027de3c3b39aefd11a34b.png":{"logical_path":"social_sensor_network_main.png","mtime":"2014-02-08T20:02:14-05:00","size":132931,"digest":"f2114a6f96a027de3c3b39aefd11a34b"},"talkback-a8f0046a06cddead53bfe73e0a1b11b1.png":{"logical_path":"talkback.png","mtime":"2014-02-08T20:02:14-05:00","size":5183,"digest":"a8f0046a06cddead53bfe73e0a1b11b1"},"thinghttp-b22d0641869d4b49e8fdc1441d19bd9d.png":{"logical_path":"thinghttp.png","mtime":"2014-02-08T20:02:14-05:00","size":5918,"digest":"b22d0641869d4b49e8fdc1441d19bd9d"},"thingtweet-2f829197927298b1eb724a072adb072a.png":{"logical_path":"thingtweet.png","mtime":"2014-02-08T20:02:14-05:00","size":4075,"digest":"2f829197927298b1eb724a072adb072a"},"tweetcontrol-5fa1225bb39f188b215d5897b37c2c18.png":{"logical_path":"tweetcontrol.png","mtime":"2014-02-08T20:02:14-05:00","size":13429,"digest":"5fa1225bb39f188b215d5897b37c2c18"},"images/ui-bg_diagonals-thick_18_b81900_40x40-7cff5779324125bfa623755a21cb7d08.png":{"logical_path":"images/ui-bg_diagonals-thick_18_b81900_40x40.png","mtime":"2014-02-08T20:01:44-05:00","size":260,"digest":"7cff5779324125bfa623755a21cb7d08"},"images/ui-bg_diagonals-thick_20_666666_40x40-e3476d26e53f4b2bdba1cbd4216bd169.png":{"logical_path":"images/ui-bg_diagonals-thick_20_666666_40x40.png","mtime":"2014-02-08T20:01:44-05:00","size":251,"digest":"e3476d26e53f4b2bdba1cbd4216bd169"},"images/ui-bg_flat_10_000000_40x100-b4d9562e67d66d83845d2edeaae222d7.png":{"logical_path":"images/ui-bg_flat_10_000000_40x100.png","mtime":"2014-02-08T20:02:1Line truncated