diff --git a/.gitignore b/.gitignore index d5ea9fc9..b262808e 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ dump/ settings.json server/extracts.msgfmt +version.js diff --git a/.meteor/packages b/.meteor/packages index fbbd7e14..fcf09c8d 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -37,7 +37,6 @@ accounts-google standard-minifiers rzymek:moment-locale-da rzymek:moment-locale-ja -ecmascript es5-shim okgrow:router-autoscroll meteorhacks:subs-manager diff --git a/.meteor/versions b/.meteor/versions index f9f298c2..6ba8b846 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -89,9 +89,10 @@ mongo-id@1.0.1 mongo-livedata@1.0.9 msgfmt:core@2.0.0-preview.13 msgfmt:extract@2.0.0-preview.9 -msgfmt:ui@2.0.0-preview.3 +msgfmt:ui@2.0.0-preview.5 nemo64:bootstrap@3.3.5_2 nemo64:bootstrap-data@3.3.5 +nicolaslopezj:router-layer@0.0.11 npm-bcrypt@0.7.8_2 npm-mongo@1.4.39_1 oauth@1.1.6 diff --git a/bin/install-hooks b/bin/install-hooks new file mode 100755 index 00000000..85a645dc --- /dev/null +++ b/bin/install-hooks @@ -0,0 +1,3 @@ +#!/bin/sh +ln -s ../../bin/update-version .git/hooks/post-checkout +ln -s ../../bin/update-version .git/hooks/post-commit \ No newline at end of file diff --git a/bin/update-version b/bin/update-version new file mode 100755 index 00000000..65ffdf2a --- /dev/null +++ b/bin/update-version @@ -0,0 +1,16 @@ +#!/bin/sh +ver=$(git describe --abbrev=0) +complete=$(git describe) +branch=$(git rev-parse --abbrev-ref HEAD) +commit=$(git rev-parse HEAD) +timestamp=$(git log -1 --date=short --pretty=format:%cd) +cat > version.js << EOF +VERSION = { + "basic": "$ver", + "complete": "$complete", + "branch": "$branch", + "commit": "$commit", + "timestamp": "$timestamp" +}; +EOF + diff --git a/client/styles/custom/custom.mixins.import.less b/client/styles/custom/custom.mixins.import.less index 7962be8d..a7eba1e9 100644 --- a/client/styles/custom/custom.mixins.import.less +++ b/client/styles/custom/custom.mixins.import.less @@ -32,6 +32,8 @@ transform: rotate(@degrees) scale(@x-axis, @y-axis); } +// CUSTOM BUTTON MIXINS + .btn-thin { .btn; padding: 3px 12px; @@ -74,3 +76,40 @@ border-top: 3px solid @body-bg; } } + +// CUSTOM GRID MIXINS +// One-line statements using bootstrap grid mixins +// Value 0 is used to inherit the previous value + +.grid(@xs) { + .make-xs-column(@xs); +} + +.grid(@xs, @sm) { + .make-xs-column(@xs); + .make-sm-column(@sm); +} + +.grid(@xs, @sm, @md) { + .make-xs-column(@xs); + + & when not (@sm = 0) { + .make-sm-column(@sm); + } + + .make-md-column(@md); +} + +.grid(@xs, @sm, @md, @lg) { + .make-xs-column(@xs); + + & when not (@sm = 0) { + .make-sm-column(@sm); + } + + & when not (@md = 0) { + .make-md-column(@md); + } + + .make-lg-column(@lg); +} diff --git a/client/styles/custom/custom.variables.import.less b/client/styles/custom/custom.variables.import.less index ef6d4e8d..dd998d7e 100644 --- a/client/styles/custom/custom.variables.import.less +++ b/client/styles/custom/custom.variables.import.less @@ -4,8 +4,14 @@ @light-blue: #D8EBF4; //Used mainly for backgrounds @ownrole: #bcb6ff; @ownrole-color: #4E4E1C; +@orange: #f98f39; +@yellow: #f3f981; @mobile: ~"screen and (max-width: @{screen-xs})"; @tablet: ~"screen and (min-width: @{screen-xs}) and (max-width: @{screen-sm})"; @desktop: ~"screen and (min-width: @{screen-md}) and (max-width: @{screen-md})"; @large-desktop: ~"screen and (min-width: @{screen-lg}) and (max-width: @{screen-lg})"; + +//set custom grid breakpoints +@screen-xxs: 550px; +@screen-xxxs: 380px; diff --git a/client/styles/main.less b/client/styles/main.less index d006cc35..24f8a277 100644 --- a/client/styles/main.less +++ b/client/styles/main.less @@ -9,6 +9,10 @@ @import "custom/custom.variables.import.less"; @import "custom/custom.classes.import.less"; +// Load Modules +@import "modules/calendar_event/calendar.event.grid.import.less"; +@import "modules/calendar_event/calendar.event.import.less"; + // Load Template Stylesheets @import "views/messages/messages.import.less"; @import "views/main.import.less"; @@ -28,12 +32,16 @@ @import "views/find/find.import.less"; +@import "views/frames/calendar.grid.import.less"; +@import "views/frames/calendar.import.less"; + @import "views/groups/groups.import.less"; @import "views/categories/categories.import.less"; @import "views/login/login.import.less"; +@import "views/misc/kiosk/kiosk.grid.import.less"; @import "views/misc/kiosk/kiosk.import.less"; @import "views/navigation/navigation.footer.import.less"; diff --git a/client/styles/modules/calendar_event/calendar.event.grid.import.less b/client/styles/modules/calendar_event/calendar.event.grid.import.less new file mode 100644 index 00000000..1474882a --- /dev/null +++ b/client/styles/modules/calendar_event/calendar.event.grid.import.less @@ -0,0 +1,40 @@ +.frame_calendar_event_container { + .grid(4, 3, 0, 2); + height: 200px; + padding: 0 3px 10px; + + @media screen and (max-width: @screen-xxs) { + .grid(6); + padding: 0 3px 10px; + } + + @media screen and (max-width: @screen-xxxs) { + .grid(12); + padding: 0 3px 10px; + } + + .frame_calendar_event { + .grid(12); + .no-padding; + height: 100%; + + .-eventLocationTime { + .grid(12); + height: 50px; + padding: 5px; + } + + .-eventTitle { + .grid(12); + max-height: 56px; + padding: 5px; + } + + .-eventDescription { + .grid(12); + height: 85px; + margin-top: -3px; + padding: 0 5px 5px; + } + } +} diff --git a/client/styles/modules/calendar_event/calendar.event.import.less b/client/styles/modules/calendar_event/calendar.event.import.less new file mode 100644 index 00000000..4d2a7df8 --- /dev/null +++ b/client/styles/modules/calendar_event/calendar.event.import.less @@ -0,0 +1,32 @@ +.frame_calendar_event_container { + .frame_calendar_event { + .transition(0.5s); + background: @light-blue; + + &:hover { + .box-shadow; + } + + .-eventLocationTime, + .-eventTitle, + .-eventDescription { + overflow: hidden; + word-wrap: break-word; + } + + .-eventLocationTime { + background: @brand-success; + border-bottom: 1px solid #fff; + color: #333; + } + + .-eventTitle { + color: #333; + font-size: medium; + } + + .-eventDescription { + color: @brand-primary; + } + } +} diff --git a/client/styles/views/calendar/calendar.import.less b/client/styles/views/calendar/calendar.import.less index c5b9f4dc..0b6703f6 100644 --- a/client/styles/views/calendar/calendar.import.less +++ b/client/styles/views/calendar/calendar.import.less @@ -4,6 +4,35 @@ } } +.switchDate { + .make-xs-column(12); + background-color: @brand-primary; + font-size: 32px; + color: white; + text-align:center; + margin: -15px 0 1em !important; + + button{ + .btn; + .btn-primary; + float: left; + margin: 3px; + margin-top: 6px; + + &:first-child { + margin-left: 0; + } + + &:last-child { + margin-right: 0; + } + } + + &>.right{ + float: right; + } +} + .calendar_eventlist { margin-left: -20px; } diff --git a/client/styles/views/courses/details/course.discussion.import.less b/client/styles/views/courses/details/course.discussion.import.less index 661d62fe..f8aa23ce 100644 --- a/client/styles/views/courses/details/course.discussion.import.less +++ b/client/styles/views/courses/details/course.discussion.import.less @@ -10,6 +10,7 @@ button { .btn; .btn-primary; + float: right; &.cancel, &.cancelEdit { @@ -46,6 +47,19 @@ } } } + + label { + padding-top: 8px; + font-weight: inherit; + + input.-anon { + width: auto; + height: auto; + display: inline-block; + margin: 0; + vertical-align: text-top; + } + } } .discussion-titlebar { @@ -104,8 +118,8 @@ border-top: none; text-align: right; - button { - margin-left: 5px; + button.cancel { + margin-right: 0; } } } diff --git a/client/styles/views/courses/events/course.events.import.less b/client/styles/views/courses/events/course.events.import.less index 0356c430..78fd3b2e 100644 --- a/client/styles/views/courses/events/course.events.import.less +++ b/client/styles/views/courses/events/course.events.import.less @@ -106,11 +106,17 @@ div#edit_event_description { .make-xs-column(12); background: @brand-primary; color: @body-bg; - border: 15px solid @brand-primary; + border: 5px solid @brand-primary; h4 { font-weight: bold; } + & > .link{ + position: absolute; + right: 10px; + top: -1px; + color: black; + } } diff --git a/client/styles/views/frames/calendar.grid.import.less b/client/styles/views/frames/calendar.grid.import.less new file mode 100644 index 00000000..b709e63b --- /dev/null +++ b/client/styles/views/frames/calendar.grid.import.less @@ -0,0 +1,24 @@ +.frame_calendar_date { + .grid(12); + padding: 0 0 10px; + + &:first-child { + margin-top: -50px; + } + + .date { + padding: 5px 7px 5px 9px; + width: 100px; + + @media screen and (max-width: @screen-xxxs) { + .grid(12); + padding: 0.5em; + } + } + + .frame_calendar_events { + .grid(12); + padding: 10px 7px 0; + margin-bottom: -10px; + } +} diff --git a/client/styles/views/frames/calendar.import.less b/client/styles/views/frames/calendar.import.less new file mode 100644 index 00000000..2e5ebf05 --- /dev/null +++ b/client/styles/views/frames/calendar.import.less @@ -0,0 +1,13 @@ +.frame_calendar_date { + .date { + background: lighten(@orange, 25%); + border-left: 10px solid @orange; + font-size: large; + text-align: center; + + @media screen and (max-width: @screen-xxxs) { + border-left: none; + border-top: 10px solid @orange; + } + } +} diff --git a/client/styles/views/main.import.less b/client/styles/views/main.import.less index bf994ad0..922be4c6 100644 --- a/client/styles/views/main.import.less +++ b/client/styles/views/main.import.less @@ -113,3 +113,35 @@ button.report { margin-bottom: 15px; } } + +.noscript { + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + background: @light-blue; + + .noscript_message_box { + margin: auto; + width: 300px; + height: 100px; + position: relative; + top: calc(~"50% - 100px"); + border: 3px solid #fff; + background: @brand-primary; + + img { + .grid(4); + .no-padding; + height: 95px; + } + + .noscript_message { + .grid (8); + padding: 15px 15px; + color: #fff; + height: 100%; + } + } +} diff --git a/client/styles/views/misc/kiosk/kiosk.grid.import.less b/client/styles/views/misc/kiosk/kiosk.grid.import.less new file mode 100644 index 00000000..59ae966d --- /dev/null +++ b/client/styles/views/misc/kiosk/kiosk.grid.import.less @@ -0,0 +1,130 @@ +.kiosk { + .grid(12); + margin-top: -25px; + + a { + & > .calendar_event { + width: 100%; + } + .calendar_event { + .grid(12, 6, 3); + .no-padding; + + .kiosk_event_header { + .grid(12); + padding-top: 10px; + padding-bottom: 10px; + + .kiosk_event_date { + .grid(6); + .no-padding; + } + + .kiosk_event_home { + .grid(6); + .no-padding; + + span.glyphicon { + padding-right: 5px; + } + } + } + + .course_event_title { + .grid(12); + + & > h3 { + margin-top: 15px; + } + } + .course_event_desc { + .grid(12); + } + } + } + + .kiosk_events_ongoing_container { + .grid(12); + + h3 { + margin-top: 0; + } + + .kiosk_events_ongoing_title { + .grid(6, 12); + .no-padding; + } + + .kiosk_events_ongoing { + .grid(8); + .no-padding; + margin-left: -6px; + + .calendar_event { + height: 200px; + } + + .kiosk_event_header { + .kiosk_event_date { + .grid(12); + padding: 8px; + } + + .kiosk_event_home { + .grid(12); + padding: 8px 8px 0; + + span.glyphicon { + padding-right: 0; + } + } + } + + .course_event_title { + h3 { + margin: 10px 0 10px 0; + } + } + } + } + + .kiosk_events_container { + .grid(12); + padding-bottom: 50px; + + .kiosk_events_title { + .grid(12); + .no-padding; + } + + .kiosk_events { + .grid(12); + .no-padding; + margin-left: -6px; + } + } +} + + +.kiosk_header { + .grid(12); + + h1 { + margin: 0; + padding-bottom: 15px; + + a.dropdown-toggle { + padding-left: 30px; + } + + ul.dropdown-menu { + left: 150px; + } + } +} + +.course_event_detail { + .kiosk_header { + .no-padding; + } +} diff --git a/client/styles/views/misc/kiosk/kiosk.import.less b/client/styles/views/misc/kiosk/kiosk.import.less index aed63a95..40b7679d 100644 --- a/client/styles/views/misc/kiosk/kiosk.import.less +++ b/client/styles/views/misc/kiosk/kiosk.import.less @@ -1,147 +1,56 @@ .kiosk { - .make-sm-column(12); - .make-xs-column(12); - margin-top: -15px; - padding: 0 40px; - a { &:hover { text-decoration: none; + .calendar_event { & > .course_event_desc { color: @brand-primary; } } } - & > .calendar_event { - width: 100%; - } - .calendar_event { - .make-sm-column(6); - .make-md-column(3); - .make-xs-column(12); - .no-padding; + .calendar_event { .kiosk_event_header { - .make-sm-column(12); - .make-xs-column(12); background: @brand-success; - font-size: large; - color: @gray-base; - padding-top: 10px; - padding-bottom: 10px; border-bottom: 3px solid @body-bg; - - .kiosk_event_date { - .make-sm-column(6); - .make-xs-column(6); - .no-padding; - } + color: @gray-base; + font-size: large; .kiosk_event_home { - .make-sm-column(6); - .make-xs-column(6); - .no-padding; text-align: right; - - span.glyphicon { - padding-right: 5px; - } } } .course_event_title { - .make-sm-column(12); - .make-xs-column(12); - & > h3 { - margin-top: 15px; color: @gray-base; } } - .course_event_desc { - .make-sm-column(12); - .make-sm-column(12); - } } } .kiosk_events_ongoing_container { - .make-sm-column(12); - .make-xs-column(12); - h3 { - margin-top: 0; - } - - .kiosk_events_ongoing_title { - .make-sm-column(6); - .make-xs-column(12); - .no-padding; - } - .kiosk_events_ongoing { - .make-sm-column(8); - .make-xs-column(8); - .no-padding; - margin-left: -6px; - .calendar_event { - height: 200px; background: rgba(250,150,00,0.3); } .kiosk_event_header { background: rgba(200,250,00,0.2); + .kiosk_event_date { - .make-sm-column(12); - .make-xs-column(12); - .no-padding; border: 1px solid @body-bg; - padding: 8px; border-radius: 1px !important; } .kiosk_event_home { - .make-sm-column(12); - .make-xs-column(12); - .no-padding; text-align: left; - padding: 8px 8px 0; - - span.glyphicon { - padding-right: 0; - } - } - } - - .course_event_title { - h3 { - margin: 10px 0 10px 0; } } } } - .kiosk_events_container { - .make-sm-column(12); - .make-xs-column(12); - padding-bottom: 50px; - - .kiosk_events_title { - .make-sm-column(12); - .make-xs-column(12); - .no-padding; - } - - .kiosk_events { - .make-sm-column(12); - .make-xs-column(12); - .no-padding; - margin-left: -6px; - - } - } - .kiosk_slim { overflow: hidden; background: @brand-success; @@ -152,41 +61,17 @@ .kiosk_header { - .make-sm-column(12); - .make-xs-column(12); - h1 { - margin: 0; - padding-bottom: 15px; a.dropdown-toggle { - padding-left: 30px; font-size: large; &:focus { text-decoration: none; } } + ul.dropdown-menu { - left: 150px; z-index: 1030; } } } - -.course_event_detail { - .kiosk_header { - .no-padding; - } -} -// #backToKiosk { -// font-size: large; -// padding-top: 80px; -// } - -// a#switch { - // font-size: large; - // } - -// a#backToKiosk:hover { -// text-decoration: none; -// } diff --git a/client/styles/views/navigation/navigation.navbar.import.less b/client/styles/views/navigation/navigation.navbar.import.less index e90e0269..e072ebfa 100644 --- a/client/styles/views/navigation/navigation.navbar.import.less +++ b/client/styles/views/navigation/navigation.navbar.import.less @@ -3,6 +3,11 @@ .navbar-fixed-top; border-bottom: none; + .navbar-container { + max-width: 1600px; + margin: auto; + } + .navbar-brand { padding: 0px; > span { @@ -15,7 +20,7 @@ display: inline-block; height: 100%; opacity: 0.97; - padding: 6px; + padding: 0 6px; } } } diff --git a/client/styles/views/users/ownprofile.import.less b/client/styles/views/users/ownprofile.import.less index dafe1317..74e50435 100644 --- a/client/styles/views/users/ownprofile.import.less +++ b/client/styles/views/users/ownprofile.import.less @@ -5,6 +5,10 @@ margin-top: 0; } + p { + margin-bottom: 5px; + } + form.edit { input { margin-left: 5px; @@ -12,12 +16,24 @@ } button { - .btn; + .btn-thin; .btn-primary; - &.verify { - .btn-sm; + } + + ul.groups { + .list-unstyled; + + li { + margin-top: 5px; + + span.group { + color: @brand-primary; + background: rgba(130, 216, 130, 0.5); + padding: 0 4px 1px; + } } } + .translate { padding-top: 10px; } diff --git a/client/styles/views/users/userprofile.import.less b/client/styles/views/users/userprofile.import.less index 44711219..c76a50f8 100644 --- a/client/styles/views/users/userprofile.import.less +++ b/client/styles/views/users/userprofile.import.less @@ -18,7 +18,7 @@ padding: 0; list-style: none; li{ - margin-top: 10px; + margin-top: 5px; &:first-child { margin-top: none; } @@ -32,4 +32,27 @@ } } } + + .invite_group { + margin-top: 5px; + + &:first-child { + margin-top: 0; + } + + span.group { + color: @brand-primary; + background: rgba(130, 216, 130, 0.5); + padding: 0 4px 1px; + } + + button { + .btn-primary; + .btn-thin; + + &:hover { + color: #fff; + } + } + } } diff --git a/client/views/calendar/calendar.html b/client/views/calendar/calendar.html index c195ca0f..773f48cc 100644 --- a/client/views/calendar/calendar.html +++ b/client/views/calendar/calendar.html @@ -1,17 +1,22 @@