Merge pull request #70 from tim-mit/allow-subpaths

Allow subpaths
This commit is contained in:
ali asaria 2015-07-05 15:17:19 -04:00
commit 906b494eee
11 changed files with 151 additions and 120 deletions

View file

@ -21,7 +21,7 @@ body {
-khtml-user-select: none; -khtml-user-select: none;
-webkit-user-select: none; -webkit-user-select: none;
background-image: url('/css/bg/concrete_wall_2_2.png'); background-image: url('bg/concrete_wall_2_2.png');
} }
@ -127,7 +127,7 @@ width: 16px; height: 16px;
vertical-align: top; vertical-align: top;
height: 100%; height: 100%;
xopacity: 1; xopacity: 1;
background-image: url('/images/green-board-line.png'); background-image: url('../images/green-board-line.png');
background-repeat: repeat-y; background-repeat: repeat-y;
background-position: left top; background-position: left top;
} }
@ -311,43 +311,43 @@ xopacity: .5;
#sticker-red { #sticker-red {
background-image: url('/images/stickers/sticker-red.png'); background-image: url('../images/stickers/sticker-red.png');
} }
#sticker-blue { #sticker-blue {
background-image: url('/images/stickers/sticker-blue.png'); background-image: url('../images/stickers/sticker-blue.png');
} }
#sticker-yellow { #sticker-yellow {
background-image: url('/images/stickers/sticker-yellow.png'); background-image: url('../images/stickers/sticker-yellow.png');
} }
#sticker-green { #sticker-green {
background-image: url('/images/stickers/sticker-green.png'); background-image: url('../images/stickers/sticker-green.png');
} }
#sticker-pink { #sticker-pink {
background-image: url('/images/stickers/sticker-pink.png'); background-image: url('../images/stickers/sticker-pink.png');
} }
#sticker-lightblue { #sticker-lightblue {
background-image: url('/images/stickers/sticker-lightblue.png'); background-image: url('../images/stickers/sticker-lightblue.png');
} }
#sticker-orange { #sticker-orange {
background-image: url('/images/stickers/sticker-orange.png'); background-image: url('../images/stickers/sticker-orange.png');
} }
#sticker-purple { #sticker-purple {
background-image: url('/images/stickers/sticker-purple.png'); background-image: url('../images/stickers/sticker-purple.png');
} }
#sticker-gold { #sticker-gold {
background-image: url('/images/stickers/sticker-gold.png'); background-image: url('../images/stickers/sticker-gold.png');
} }
#sticker-silverstar { #sticker-silverstar {
background-image: url('/images/stickers/sticker-silverstar.png'); background-image: url('../images/stickers/sticker-silverstar.png');
} }
#sticker-bluestar { #sticker-bluestar {
background-image: url('/images/stickers/sticker-bluestar.png'); background-image: url('../images/stickers/sticker-bluestar.png');
} }
#sticker-redstar { #sticker-redstar {
background-image: url('/images/stickers/sticker-redstar.png'); background-image: url('../images/stickers/sticker-redstar.png');
} }
#addsticker { #addsticker {
background-image: url('/images/icons/iconic/raster/black/plus_8x8.png'); background-image: url('../images/icons/iconic/raster/black/plus_8x8.png');
background-position: 2px 2px; background-position: 2px 2px;
opacity: 0.3; opacity: 0.3;
@ -360,7 +360,7 @@ xopacity: .5;
opacity: 0.7; opacity: 0.7;
} }
#nosticker { #nosticker {
background-image: url('/images/stickers/sticker-deletestar.png'); background-image: url('../images/stickers/sticker-deletestar.png');
} }
#sticker-nostar { #sticker-nostar {
@ -374,73 +374,73 @@ xopacity: .5;
} }
/*.sticker-red { /*.sticker-red {
background-image: url('/images/stickers/sticker-red.png'); background-image: url('../images/stickers/sticker-red.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right bottom; background-position: right bottom;
} }
.sticker-blue { .sticker-blue {
background-image: url('/images/stickers/sticker-blue.png'); background-image: url('../images/stickers/sticker-blue.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right bottom; background-position: right bottom;
} }
.sticker-yellow { .sticker-yellow {
background-image: url('/images/stickers/sticker-yellow.png'); background-image: url('../images/stickers/sticker-yellow.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right bottom; background-position: right bottom;
} }
.sticker-green { .sticker-green {
background-image: url('/images/stickers/sticker-green.png'); background-image: url('../images/stickers/sticker-green.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right bottom; background-position: right bottom;
} }
.sticker-gold { .sticker-gold {
background-image: url('/images/stickers/sticker-gold.png'); background-image: url('../images/stickers/sticker-gold.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right bottom; background-position: right bottom;
} }
.sticker-bluestar { .sticker-bluestar {
background-image: url('/images/stickers/sticker-bluestar.png'); background-image: url('../images/stickers/sticker-bluestar.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right bottom; background-position: right bottom;
} }
.sticker-silverstar { .sticker-silverstar {
background-image: url('/images/stickers/sticker-silverstar.png'); background-image: url('../images/stickers/sticker-silverstar.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right bottom; background-position: right bottom;
} }
.sticker-redstar { .sticker-redstar {
background-image: url('/images/stickers/sticker-redstar.png'); background-image: url('../images/stickers/sticker-redstar.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right bottom; background-position: right bottom;
} }
.sticker-pink { .sticker-pink {
background-image: url('/images/stickers/sticker-pink.png'); background-image: url('../images/stickers/sticker-pink.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right bottom; background-position: right bottom;
} }
.sticker-orange { .sticker-orange {
background-image: url('/images/stickers/sticker-orange.png'); background-image: url('../images/stickers/sticker-orange.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right bottom; background-position: right bottom;
} }
.sticker-lightblue { .sticker-lightblue {
background-image: url('/images/stickers/sticker-lightblue.png'); background-image: url('../images/stickers/sticker-lightblue.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right bottom; background-position: right bottom;
} }
.sticker-purple { .sticker-purple {
background-image: url('/images/stickers/sticker-purple.png'); background-image: url('../images/stickers/sticker-purple.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: right bottom; background-position: right bottom;
}*/ }*/
@ -594,14 +594,14 @@ img {
/* states and images */ /* states and images */
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } .ui-icon { width: 16px; height: 16px; background-image: url(../images/ui-icons_222222_256x240.png); }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } .ui-widget-content .ui-icon {background-image: url(../images/ui-icons_222222_256x240.png); }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } .ui-widget-header .ui-icon {background-image: url(../images/ui-icons_222222_256x240.png); }
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } .ui-state-default .ui-icon { background-image: url(../images/ui-icons_888888_256x240.png); }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../images/ui-icons_454545_256x240.png); }
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } .ui-state-active .ui-icon {background-image: url(../images/ui-icons_454545_256x240.png); }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } .ui-state-highlight .ui-icon {background-image: url(../images/ui-icons_2e83ff_256x240.png); }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../images/ui-icons_cd0a0a_256x240.png); }
.ui-resizable { position: relative;} .ui-resizable { position: relative;}

View file

@ -35,7 +35,7 @@ body {
} }
.layout-grid td.demos { .layout-grid td.demos {
background: url('/images/demos_bg.jpg') no-repeat; background: url('../images/demos_bg.jpg') no-repeat;
height: 337px; height: 337px;
overflow: hidden; overflow: hidden;
} }
@ -153,12 +153,12 @@ eventually we should convert the font sizes to ems -- using px for now to minimi
#demo-config-menu li a:hover, #demo-config-menu li a:hover,
#demo-config-menu li a:active { background-color:#f6f6f6; } #demo-config-menu li a:active { background-color:#f6f6f6; }
#demo-config-menu li.demo-config-on { background: url(images/demo-config-on-tile.gif) repeat-x left center; } #demo-config-menu li.demo-config-on { background: url(../images/demo-config-on-tile.gif) repeat-x left center; }
#demo-config-menu li.demo-config-on a:link, #demo-config-menu li.demo-config-on a:link,
#demo-config-menu li.demo-config-on a:visited, #demo-config-menu li.demo-config-on a:visited,
#demo-config-menu li.demo-config-on a:hover, #demo-config-menu li.demo-config-on a:hover,
#demo-config-menu li.demo-config-on a:active { background: url(images/demo-config-on.gif) no-repeat left; padding-left:18px; color:#fff; border:0; margin-left:-10px; margin-top: 0px; margin-bottom: 0px; } #demo-config-menu li.demo-config-on a:active { background: url(../images/demo-config-on.gif) no-repeat left; padding-left:18px; color:#fff; border:0; margin-left:-10px; margin-top: 0px; margin-bottom: 0px; }
#demo-source, #demo-notes { #demo-source, #demo-notes {
clear: both; clear: both;
@ -179,12 +179,12 @@ code, pre { padding:8px 0 8px 20px ; font-size: 1.2em; line-height:130%; }
#demo-source a.source-open:link, #demo-source a.source-open:link,
#demo-source a.source-open:visited, #demo-source a.source-open:visited,
#demo-source a.source-open:hover, #demo-source a.source-open:hover,
#demo-source a.source-open:active { background-image: url(images/demo-spindown-open.gif); } #demo-source a.source-open:active { background-image: url(../images/demo-spindown-open.gif); }
#demo-source a.source-closed:link, #demo-source a.source-closed:link,
#demo-source a.source-closed:visited, #demo-source a.source-closed:visited,
#demo-source a.source-closed:hover, #demo-source a.source-closed:hover,
#demo-source a.source-closed:active { background-image: url(images/demo-spindown-closed.gif); } #demo-source a.source-closed:active { background-image: url(../images/demo-spindown-closed.gif); }
div.demo { div.demo {
padding:12px; padding:12px;
@ -216,24 +216,24 @@ div.demo-description {
----------------------------------*/ ----------------------------------*/
#widget-docs .ui-widget { font-family: Trebuchet MS,Verdana,Arial,sans-serif; font-size: 1em; } #widget-docs .ui-widget { font-family: Trebuchet MS,Verdana,Arial,sans-serif; font-size: 1em; }
#widget-docs .ui-widget input, #widget-docs .ui-widget select, #widget-docs .ui-widget textarea, #widget-docs .ui-widget button { font-family: Trebuchet MS,Verdana,Arial,sans-serif; font-size: 1em; } #widget-docs .ui-widget input, #widget-docs .ui-widget select, #widget-docs .ui-widget textarea, #widget-docs .ui-widget button { font-family: Trebuchet MS,Verdana,Arial,sans-serif; font-size: 1em; }
#widget-docs .ui-widget-header { border: 1px solid #ffffff; background: #464646 url(images/464646_40x100_textures_01_flat_100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } #widget-docs .ui-widget-header { border: 1px solid #ffffff; background: #464646 url(../images/464646_40x100_textures_01_flat_100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
#widget-docs .ui-widget-header a { color: #ffffff; } #widget-docs .ui-widget-header a { color: #ffffff; }
#widget-docs .ui-widget-content { border: 1px solid #ffffff; background: #ffffff url(images/ffffff_40x100_textures_01_flat_75.png) 50% 50% repeat-x; color: #222222; } #widget-docs .ui-widget-content { border: 1px solid #ffffff; background: #ffffff url(../images/ffffff_40x100_textures_01_flat_75.png) 50% 50% repeat-x; color: #222222; }
#widget-docs .ui-widget-content a { color: #222222; } #widget-docs .ui-widget-content a { color: #222222; }
/* Interaction states /* Interaction states
----------------------------------*/ ----------------------------------*/
#widget-docs .ui-state-default, #widget-docs .ui-widget-content #widget-docs .ui-state-default { border: 1px solid #666666; background: #555555 url(images/555555_40x100_textures_03_highlight_soft_75.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; outline: none; } #widget-docs .ui-state-default, #widget-docs .ui-widget-content #widget-docs .ui-state-default { border: 1px solid #666666; background: #555555 url(../images/555555_40x100_textures_03_highlight_soft_75.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; outline: none; }
#widget-docs .ui-state-default a { color: #ffffff; text-decoration: none; outline: none; } #widget-docs .ui-state-default a { color: #ffffff; text-decoration: none; outline: none; }
#widget-docs .ui-state-hover, #widget-docs .ui-widget-content #widget-docs .ui-state-hover, #widget-docs .ui-state-focus, #widget-docs .ui-widget-content #widget-docs .ui-state-focus { border: 1px solid #666666; background: #444444 url(images/444444_40x100_textures_03_highlight_soft_60.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; outline: none; } #widget-docs .ui-state-hover, #widget-docs .ui-widget-content #widget-docs .ui-state-hover, #widget-docs .ui-state-focus, #widget-docs .ui-widget-content #widget-docs .ui-state-focus { border: 1px solid #666666; background: #444444 url(../images/444444_40x100_textures_03_highlight_soft_60.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; outline: none; }
#widget-docs .ui-state-hover a { color: #ffffff; text-decoration: none; outline: none; } #widget-docs .ui-state-hover a { color: #ffffff; text-decoration: none; outline: none; }
#widget-docs .ui-state-active, #widget-docs .ui-widget-content #widget-docs .ui-state-active { border: 1px solid #666666; background: #ffffff url(images/ffffff_40x100_textures_01_flat_65.png) 50% 50% repeat-x; font-weight: normal; color: #F6921E; outline: none; } #widget-docs .ui-state-active, #widget-docs .ui-widget-content #widget-docs .ui-state-active { border: 1px solid #666666; background: #ffffff url(../images/ffffff_40x100_textures_01_flat_65.png) 50% 50% repeat-x; font-weight: normal; color: #F6921E; outline: none; }
#widget-docs .ui-state-active a { color: #F6921E; outline: none; text-decoration: none; } #widget-docs .ui-state-active a { color: #F6921E; outline: none; text-decoration: none; }
/* Interaction Cues /* Interaction Cues
----------------------------------*/ ----------------------------------*/
#widget-docs .ui-state-highlight, #widget-docs .ui-widget-content #widget-docs .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/fbf9ee_40x100_textures_02_glass_55.png) 50% 50% repeat-x; color: #363636; } #widget-docs .ui-state-highlight, #widget-docs .ui-widget-content #widget-docs .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(../images/fbf9ee_40x100_textures_02_glass_55.png) 50% 50% repeat-x; color: #363636; }
#widget-docs .ui-state-error, #widget-docs .ui-widget-content #widget-docs .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/fef1ec_40x100_textures_05_inset_soft_95.png) 50% bottom repeat-x; color: #cd0a0a; } #widget-docs .ui-state-error, #widget-docs .ui-widget-content #widget-docs .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(../images/fef1ec_40x100_textures_05_inset_soft_95.png) 50% bottom repeat-x; color: #cd0a0a; }
#widget-docs .ui-state-error-text, #widget-docs .ui-widget-content #widget-docs .ui-state-error-text { color: #cd0a0a; } #widget-docs .ui-state-error-text, #widget-docs .ui-widget-content #widget-docs .ui-state-error-text { color: #cd0a0a; }
#widget-docs .ui-state-disabled, #widget-docs .ui-widget-content #widget-docs .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } #widget-docs .ui-state-disabled, #widget-docs .ui-widget-content #widget-docs .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
#widget-docs .ui-priority-primary, #widget-docs .ui-widget-content #widget-docs .ui-priority-primary { font-weight: bold; } #widget-docs .ui-priority-primary, #widget-docs .ui-widget-content #widget-docs .ui-priority-primary { font-weight: bold; }
@ -243,14 +243,14 @@ div.demo-description {
----------------------------------*/ ----------------------------------*/
/* states and images */ /* states and images */
#demo-frame-wrapper .ui-icon, #widget-docs .ui-icon { width: 16px; height: 16px; background-image: url(images/222222_256x240_icons_icons.png); } #demo-frame-wrapper .ui-icon, #widget-docs .ui-icon { width: 16px; height: 16px; background-image: url(../images/222222_256x240_icons_icons.png); }
#widget-docs .ui-widget-content .ui-icon {background-image: url(images/222222_256x240_icons_icons.png); } #widget-docs .ui-widget-content .ui-icon {background-image: url(../images/222222_256x240_icons_icons.png); }
#widget-docs .ui-widget-header .ui-icon {background-image: url(images/222222_256x240_icons_icons.png); } #widget-docs .ui-widget-header .ui-icon {background-image: url(../images/222222_256x240_icons_icons.png); }
#widget-docs .ui-state-default .ui-icon { background-image: url(images/888888_256x240_icons_icons.png); } #widget-docs .ui-state-default .ui-icon { background-image: url(../images/888888_256x240_icons_icons.png); }
#widget-docs .ui-state-hover .ui-icon, #widget-docs .ui-state-focus .ui-icon {background-image: url(images/454545_256x240_icons_icons.png); } #widget-docs .ui-state-hover .ui-icon, #widget-docs .ui-state-focus .ui-icon {background-image: url(../images/454545_256x240_icons_icons.png); }
#widget-docs .ui-state-active .ui-icon {background-image: url(images/454545_256x240_icons_icons.png); } #widget-docs .ui-state-active .ui-icon {background-image: url(../images/454545_256x240_icons_icons.png); }
#widget-docs .ui-state-highlight .ui-icon {background-image: url(images/2e83ff_256x240_icons_icons.png); } #widget-docs .ui-state-highlight .ui-icon {background-image: url(../images/2e83ff_256x240_icons_icons.png); }
#widget-docs .ui-state-error .ui-icon, #widget-docs .ui-state-error-text .ui-icon {background-image: url(images/cd0a0a_256x240_icons_icons.png); } #widget-docs .ui-state-error .ui-icon, #widget-docs .ui-state-error-text .ui-icon {background-image: url(../images/cd0a0a_256x240_icons_icons.png); }
/* Misc visuals /* Misc visuals
@ -268,8 +268,8 @@ div.demo-description {
#widget-docs .ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; } #widget-docs .ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; }
/* Overlays */ /* Overlays */
#widget-docs .ui-widget-overlay { background: #aaaaaa url(images/aaaaaa_40x100_textures_01_flat_0.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } #widget-docs .ui-widget-overlay { background: #aaaaaa url(../images/aaaaaa_40x100_textures_01_flat_0.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
#widget-docs .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/aaaaaa_40x100_textures_01_flat_0.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; } #widget-docs .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(../images/aaaaaa_40x100_textures_01_flat_0.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; }
/* /*
----------------------------------*/ ----------------------------------*/
@ -301,10 +301,10 @@ div.demo-description {
.docs-list .param-header { float:left; clear:left; width:100%; padding:8px 0; border-top:1px solid #eee; } .docs-list .param-header { float:left; clear:left; width:100%; padding:8px 0; border-top:1px solid #eee; }
#widget-docs .param-header h3, #widget-docs .param-header p { margin:0; float:left; } #widget-docs .param-header h3, #widget-docs .param-header p { margin:0; float:left; }
#widget-docs .param-header h3 { width:50%; } #widget-docs .param-header h3 { width:50%; }
#widget-docs .param-header h3 span { background: url(images/demo-spindown-closed.gif) no-repeat left; padding-left:13px; } #widget-docs .param-header h3 span { background: url(../images/demo-spindown-closed.gif) no-repeat left; padding-left:13px; }
#widget-docs .param-open .param-header h3 span { background: url(images/demo-spindown-open.gif) no-repeat left; } #widget-docs .param-open .param-header h3 span { background: url(../images/demo-spindown-open.gif) no-repeat left; }
#widget-docs .param-header p { width:24%; } #widget-docs .param-header p { width:24%; }
#widget-docs .param-header p.param-type span { background: url(images/icon-docs-info.gif) no-repeat left; cursor:pointer; border-bottom:1px dashed #ccc; padding-left:15px; } #widget-docs .param-header p.param-type span { background: url(../images/icon-docs-info.gif) no-repeat left; cursor:pointer; border-bottom:1px dashed #ccc; padding-left:15px; }
.param-details { padding-left:13px; } .param-details { padding-left:13px; }
.param-args { margin:0 0 1.5em; border-top:1px dotted #ccc;} .param-args { margin:0 0 1.5em; border-top:1px dotted #ccc;}

View file

@ -18,26 +18,26 @@
.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } .ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
.ui-widget .ui-widget { font-size: 1em; } .ui-widget .ui-widget { font-size: 1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(../images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
.ui-widget-content a { color: #222222; } .ui-widget-content a { color: #222222; }
.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } .ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(../images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
.ui-widget-header a { color: #222222; } .ui-widget-header a { color: #222222; }
/* Interaction states /* Interaction states
----------------------------------*/ ----------------------------------*/
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(../images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(../images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } .ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(../images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
.ui-widget :active { outline: none; } .ui-widget :active { outline: none; }
/* Interaction Cues /* Interaction Cues
----------------------------------*/ ----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(../images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(../images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
@ -47,15 +47,15 @@
/* Icons /* Icons
----------------------------------*/ ----------------------------------*/
/* states and images */ /* states and ../images */
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } .ui-icon { width: 16px; height: 16px; background-image: url(../images/ui-icons_222222_256x240.png); }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } .ui-widget-content .ui-icon {background-image: url(../images/ui-icons_222222_256x240.png); }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } .ui-widget-header .ui-icon {background-image: url(../images/ui-icons_222222_256x240.png); }
.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } .ui-state-default .ui-icon { background-image: url(../images/ui-icons_888888_256x240.png); }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(../images/ui-icons_454545_256x240.png); }
.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } .ui-state-active .ui-icon {background-image: url(../images/ui-icons_454545_256x240.png); }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } .ui-state-highlight .ui-icon {background-image: url(../images/ui-icons_2e83ff_256x240.png); }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(../images/ui-icons_cd0a0a_256x240.png); }
/* positioning */ /* positioning */
.ui-icon-carat-1-n { background-position: 0 0; } .ui-icon-carat-1-n { background-position: 0 0; }
@ -250,5 +250,5 @@
.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } .ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
/* Overlays */ /* Overlays */
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } .ui-widget-overlay { background: #aaaaaa url(../images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; } .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(../images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }

View file

@ -5,7 +5,8 @@ var currentTheme = "bigcards";
var boardInitialized = false; var boardInitialized = false;
var keyTrap = null; var keyTrap = null;
var socket = io.connect(); var baseurl = location.pathname.substring(0, location.pathname.lastIndexOf('/'));
var socket = io.connect({path: baseurl + "/socket.io"});
//an action has happened, send it to the //an action has happened, send it to the
//server //server
@ -23,11 +24,11 @@ function sendAction(a, d) {
socket.on('connect', function() { socket.on('connect', function() {
//console.log('successful socket.io connect'); //console.log('successful socket.io connect');
//let the path be the room name //let the final part of the path be the room name
var path = location.pathname; var room = location.pathname.substring(location.pathname.lastIndexOf('/'));
//imediately join the room which will trigger the initializations //imediately join the room which will trigger the initializations
sendAction('joinRoom', path); sendAction('joinRoom', room);
}); });
socket.on('disconnect', function() { socket.on('disconnect', function() {
@ -166,8 +167,8 @@ function drawNewCard(id, text, x, y, rot, colour, sticker, animationspeed) {
' draggable" style="-webkit-transform:rotate(' + rot + ' draggable" style="-webkit-transform:rotate(' + rot +
'deg);\ 'deg);\
">\ ">\
<img src="/images/icons/token/Xion.png" class="card-icon delete-card-icon" />\ <img src="images/icons/token/Xion.png" class="card-icon delete-card-icon" />\
<img class="card-image" src="/images/' + <img class="card-image" src="images/' +
colour + '-card.png">\ colour + '-card.png">\
<div id="content:' + id + <div id="content:' + id +
'" class="content stickertarget droppable">' + '" class="content stickertarget droppable">' +
@ -423,7 +424,7 @@ function drawNewColumn(columnName) {
onblur: 'submit', onblur: 'submit',
width: '', width: '',
height: '', height: '',
xindicator: '<img src="/images/ajax-loader.gif">', xindicator: '<img src="images/ajax-loader.gif">',
event: 'dblclick', //event: 'mouseover' event: 'dblclick', //event: 'mouseover'
}); });
@ -525,7 +526,7 @@ function initColumns(columnArray) {
function changeThemeTo(theme) { function changeThemeTo(theme) {
currentTheme = theme; currentTheme = theme;
$("link[title=cardsize]").attr("href", "/css/" + theme + ".css"); $("link[title=cardsize]").attr("href", "css/" + theme + ".css");
} }
@ -686,7 +687,7 @@ $(function() {
if (boardInitialized === false) if (boardInitialized === false)
blockUI('<img src="/images/ajax-loader.gif" width=43 height=11/>'); blockUI('<img src="images/ajax-loader.gif" width=43 height=11/>');
//setTimeout($.unblockUI, 2000); //setTimeout($.unblockUI, 2000);

View file

@ -6,8 +6,25 @@
}; };
*/ */
exports.database = { var argv = require('yargs')
type: 'redis', .usage('Usage: $0 [--port INTEGER [8080]] [--baseurl STRING ["/"]] [--redis STRING:INT [127.0.0.1:6379]] [--gaEnabled] [--gaAccount STRING [UA-2069672-4]]')
prefix: '#scrumblr#' .argv;
exports.server = {
port: argv.port || 8080,
baseurl: argv.baseurl || '/'
};
exports.googleanalytics = {
enabled: argv['gaEnabled'] || false,
account: argv['gaAccount'] || "UA-2069672-4"
};
var redis_conf = argv.redis || '127.0.0.1:6379';
exports.database = {
type: 'redis',
prefix: '#scrumblr#',
host: redis_conf.split(':')[0] || '127.0.0.1',
port: redis_conf.split(':')[1] || 6379
}; };

View file

@ -1,4 +1,4 @@
//var conf = require('../../config.js').database; var conf = require('../../config.js').database;
var redis = require("redis"), var redis = require("redis"),
redisClient = null; //redis.createClient(); redisClient = null; //redis.createClient();
@ -16,7 +16,8 @@ var REDIS_PREFIX = '#scrumblr#';
var db = function(callback) { var db = function(callback) {
redisClient = redis.createClient(); console.log('Opening redis connection to ' + conf.host + ':' + conf.port);
redisClient = redis.createClient(conf.port, conf.host, {});
redisClient.on("connect", function (err) { redisClient.on("connect", function (err) {
callback(); callback();
}); });

View file

@ -21,6 +21,7 @@
"redis": "~0.12.1", "redis": "~0.12.1",
"sanitizer": "~0.1.1", "sanitizer": "~0.1.1",
"simplesets": "~1.2.0", "simplesets": "~1.2.0",
"socket.io": "1.x" "socket.io": "1.x",
"yargs": "~2.3.0"
} }
} }

View file

@ -7,6 +7,8 @@ var async = require('async');
var sanitizer = require('sanitizer'); var sanitizer = require('sanitizer');
var compression = require('compression'); var compression = require('compression');
var express = require('express'); var express = require('express');
var conf = require('./config.js').server;
var ga = require('./config.js').googleanalytics;
/************** /**************
LOCAL INCLUDES LOCAL INCLUDES
@ -24,27 +26,35 @@ var sids_to_user_names = [];
SETUP EXPRESS SETUP EXPRESS
**************/ **************/
var app = express(); var app = express();
var router = express.Router();
app.use(compression()); app.use(compression());
app.use(express.static(__dirname + '/client')); app.use(conf.baseurl, router);
app.locals.ga = ga.enabled;
app.locals.gaAccount = ga.account;
router.use(express.static(__dirname + '/client'));
var server = require('http').Server(app); var server = require('http').Server(app);
var port = process.argv[2] || 8080; server.listen(conf.port);
server.listen(port);
console.log('Server running at http://127.0.0.1:' + port + '/'); console.log('Server running at http://127.0.0.1:' + conf.port + '/');
/************** /**************
SETUP Socket.IO SETUP Socket.IO
**************/ **************/
var io = require('socket.io')(server); var io = require('socket.io')(server, {
path: conf.baseurl == '/' ? '' : conf.baseurl + "/socket.io"
});
/************** /**************
ROUTES ROUTES
**************/ **************/
app.get('/', function(req, res) { router.get('/', function(req, res) {
//console.log(req.header('host')); //console.log(req.header('host'));
url = req.header('host'); url = req.header('host') + req.baseUrl;
var connected = io.sockets.connected; var connected = io.sockets.connected;
clientsCount = Object.keys(connected).length; clientsCount = Object.keys(connected).length;
@ -56,14 +66,14 @@ app.get('/', function(req, res) {
}); });
app.get('/demo', function(req, res) { router.get('/demo', function(req, res) {
res.render('index.jade', { res.render('index.jade', {
pageTitle: 'scrumblr - demo', pageTitle: 'scrumblr - demo',
demo: true demo: true
}); });
}); });
app.get('/:id', function(req, res){ router.get('/:id', function(req, res){
res.render('index.jade', { res.render('index.jade', {
pageTitle: ('scrumblr - ' + req.params.id) pageTitle: ('scrumblr - ' + req.params.id)
}); });
@ -111,7 +121,6 @@ io.sockets.on('connection', function (client) {
break; break;
case 'joinRoom': case 'joinRoom':
joinRoom(client, message.data, function(clients) { joinRoom(client, message.data, function(clients) {
client.json.send( { action: 'roomAccept', data: '' } ); client.json.send( { action: 'roomAccept', data: '' } );

View file

@ -2,7 +2,7 @@ doctype html
html(lang="en") html(lang="en")
head head
<!-- SCRIPTS --> <!-- SCRIPTS -->
<link rel="stylesheet" type="text/css" href="/css/style.css" /> <link rel="stylesheet" type="text/css" href="css/style.css" />
<!-- FONTS --> <!-- FONTS -->
<link href='http://fonts.googleapis.com/css?family=Rock+Salt' rel='stylesheet' type='text/css'> <link href='http://fonts.googleapis.com/css?family=Rock+Salt' rel='stylesheet' type='text/css'>
<link href='http://fonts.googleapis.com/css?family=Covered+By+Your+Grace' rel='stylesheet' type='text/css'> <link href='http://fonts.googleapis.com/css?family=Covered+By+Your+Grace' rel='stylesheet' type='text/css'>
@ -56,4 +56,5 @@ body
<script type="text/javascript">function go() {var value = document.forms[0].elements["name"].value; value = escape(value); window.location.href = value; return false;}</script> <script type="text/javascript">function go() {var value = document.forms[0].elements["name"].value; value = escape(value); window.location.href = value; return false;}</script>
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-2069672-4']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> - if (locals.ga)
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', '#{gaAccount}']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>

View file

@ -12,15 +12,15 @@ block body
div.board-outline div.board-outline
div#board div#board
div#board-doodles div#board-doodles
image#marker(src='/images/marker.png') image#marker(src='images/marker.png')
image#eraser(src='/images/eraser.png') image#eraser(src='images/eraser.png')
table#board-table.board-table table#board-table.board-table
tr tr
td#icon-col(width='1%') td#icon-col(width='1%')
image#add-col.col-icon(width='20', height='20', src='/images/icons/iconic/raster/black/plus_alt_32x32.png') image#add-col.col-icon(width='20', height='20', src='images/icons/iconic/raster/black/plus_alt_32x32.png')
image#delete-col.col-icon(width='20', height='20', src='/images/icons/iconic/raster/black/minus_alt_32x32.png') image#delete-col.col-icon(width='20', height='20', src='images/icons/iconic/raster/black/minus_alt_32x32.png')
div.buttons div.buttons
@ -65,4 +65,5 @@ block body
//<div style="width: 980px; height: 450px; border: solid 2px; opacity:.1; margin-top: 100px"> this will be the backlog that only appears on drag or perhaps not at all</div> //<div style="width: 980px; height: 450px; border: solid 2px; opacity:.1; margin-top: 100px"> this will be the backlog that only appears on drag or perhaps not at all</div>
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-2069672-4']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> - if (locals.ga)
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', '#{gaAccount}']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>

View file

@ -5,8 +5,8 @@ html(lang="en")
<!-- STYLES --> <!-- STYLES -->
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet"> <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/css/style.css" /> <link rel="stylesheet" type="text/css" href="css/style.css" />
<link rel="stylesheet" title="cardsize" href="/css/bigcards.css" type="text/css" media="all" /> <link rel="stylesheet" title="cardsize" href="css/bigcards.css" type="text/css" media="all" />
<!-- FONTS --> <!-- FONTS -->
<link href='//fonts.googleapis.com/css?family=Rock+Salt' rel='stylesheet' type='text/css'> <link href='//fonts.googleapis.com/css?family=Rock+Salt' rel='stylesheet' type='text/css'>
@ -19,15 +19,15 @@ html(lang="en")
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script> <script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
<!-- External Scripts --> <!-- External Scripts -->
<script src="/lib/jquery.ui.touch-punch.min.js"></script> <script src="lib/jquery.ui.touch-punch.min.js"></script>
<script src="/lib/jquery.jeditable.js"></script> <script src="lib/jquery.jeditable.js"></script>
<script src="/lib/jquery.blockUI.js"></script> <script src="lib/jquery.blockUI.js"></script>
<!-- Socket.IO --> <!-- Socket.IO -->
<script src="/socket.io/socket.io.js"></script> <script src="socket.io/socket.io.js"></script>
<!-- ** My Script ** --> <!-- ** My Script ** -->
<script src="/script.js"></script> <script src="script.js"></script>
title= locals.pageTitle title= locals.pageTitle