mirror of
https://github.com/lukevella/rallly.git
synced 2025-04-29 18:26:34 +02:00
Updated datepicker
This commit is contained in:
parent
5a99b705d2
commit
49f0c92015
12 changed files with 75 additions and 38 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -11,7 +11,7 @@ angular.module('rallly')
|
|||
'newevent.invite'
|
||||
];
|
||||
|
||||
$scope.page = 1;
|
||||
$scope.page = 2;
|
||||
|
||||
var goTo = function(page){
|
||||
$scope.page = page;
|
||||
|
|
|
@ -141,7 +141,7 @@ angular.module('rallly')
|
|||
}
|
||||
}
|
||||
})
|
||||
.directive('timePicker', function(){
|
||||
.directive('timePicker', function($timeout){
|
||||
return {
|
||||
scope : {
|
||||
model : '=ngModel'
|
||||
|
@ -149,9 +149,12 @@ angular.module('rallly')
|
|||
require : 'ngModel',
|
||||
link : function(scope, el, attrs, ngModel){
|
||||
ngModel.$viewChangeListeners.push(function(){
|
||||
scope.model = Date.parse(ngModel.$modelValue);
|
||||
ngModel.$setViewValue(scope.model.toString("hh:mm tt"));
|
||||
ngModel.$render();
|
||||
scope.model = ngModel.$modelValue;
|
||||
});
|
||||
|
||||
ngModel.$parsers.push(function (value) {
|
||||
if (!value) return;
|
||||
return Date.parse(value);
|
||||
});
|
||||
|
||||
ngModel.$validators.time = function(modelValue, viewValue){
|
||||
|
|
|
@ -13,10 +13,10 @@ $templateCache.put("templates/form/dateForm.html","<div class=\"section-details\
|
|||
$templateCache.put("templates/form/eventForm.html","<div class=\"section-details\">\n <div class=\"section-title\">Event Details</div>\n</div>\n<div class=\"section-main\">\n <div class=\"form-row\">\n <div class=\"form-col\">\n <div class=\"form-group\">\n <label for=\"title\">Title</label>\n <span class=\"form-error\" ng-show=\"(form.title.$touched || form.$submitted) && errors.title\">\n <img src=\"/images/error.png\" width=\"14\" /> {{errors.title}}\n </span>\n <input id=\"title\" name=\"title\" ng-maxlength=\"30\" required ng-model=\"event.title\" type=\"text\" placeholder=\"Monthly Meetup...\" class=\"form-control extend\"/>\n </div>\n </div>\n <div class=\"form-col\">\n <div class=\"form-group optional\">\n <label for=\"location\">Location</label>\n <span class=\"form-error\" ng-show=\"(form.location.$touched || form.$submitted) && errors.location\">\n <img src=\"/images/error.png\" width=\"14\" /> {{errors.location}}\n </span>\n <input id=\"location\" name=\"location\" ng-model=\"event.location\" ng-maxlength=\"50\" type=\"text\" placeholder=\"Rick\'s Cafe...\" class=\"form-control extend\"/>\n </div>\n </div>\n </div>\n <div class=\"form-row\">\n <div class=\"form-group optional\">\n <label for=\"description\" >Description</label>\n <textarea id=\"description\" name=\"description\" ng-model=\"event.description\" placeholder=\"Enter Description...\" class=\"form-control extend\"></textarea>\n </div>\n </div>\n</div>\n");
|
||||
$templateCache.put("templates/form/participantsForm.html","<div class=\"section-details\">\n <div class=\"section-title\">Invite Participants</div>\n</div>\n<div class=\"section-main\">\n <div class=\"form-row\">\n <div class=\"form-group optional\">\n <label>Participant\'s Emails</label>\n <tags-input max-length=\"50\" allowed-tags-pattern=\"{{emailRegex}}\" display-property=\"email\" ng-model=\"event.emails\" placeholder=\"Add an Email\" type=\"email\" autocomplete=\"off\"></tags-input>\n <input type=\"hidden\" name=\"shouldCreate\" value=\"true\" />\n\n </div>\n </div>\n</div>\n</section>\n");
|
||||
$templateCache.put("templates/form/settingsForm.html","<div class=\"section-details\">\n <div class=\"section-title\">Settings</div>\n</div>\n<div class=\"section-main\">\n <div class=\"switch-row\">\n <div class=\"switch-details\">\n <div class=\"title\">\n Poll Status\n </div>\n <div class=\"description\">\n Let people vote on the poll.\n </div>\n </div>\n <div class=\"switch\">\n <div class=\"switch-value\">\n {{event.isClosed ? \'Closed\' : \'Open\' }}\n </div>\n <div switch-toggle ng-model=\"event.isClosed\" invert>\n </div>\n </div>\n </div>\n <div class=\"switch-row\">\n <div class=\"switch-details\">\n <div class=\"title\">\n Notifications\n </div>\n <div class=\"description\">\n Send email notifications to the creator of this event.\n </div>\n </div>\n <div class=\"switch\">\n <div class=\"switch-value\">\n {{event.creator.allowNotifications ? \'Enabled\' : \'Disabled\' }}\n </div>\n <div switch-toggle ng-model=\"event.creator.allowNotifications\">\n </div>\n </div>\n </div>\n <div class=\"switch-row\">\n <div class=\"switch-details\">\n <div class=\"title\">\n Delete Event\n </div>\n <div class=\"description\">\n Once you delete an event it will no longer be accessible.\n </div>\n </div>\n <div class=\"switch\">\n <button type=\"button\" ng-click=\"deleteEvent()\" class=\"btn\" ng-class=\"{danger : !deleteRequestSent, disabled : deleteRequestSent}\">{{deleteRequestSent ? \'Request Sent\' : \'Delete Event\' }}</button>\n </div>\n </div>\n</div>\n</section>\n");
|
||||
$templateCache.put("templates/form/timeForm.html","<div class=\"section-details\">\n <div class=\"section-title\">Choose Times</div>\n</div>\n<div class=\"section-main\">\n <table class=\"time-form\">\n <tr ng-repeat=\"d in event.dates\">\n <td>\n <div class=\"daticon\">\n <div class=\"dow\">\n {{d.date | date: \'EEE\'}}\n </div>\n <div class=\"day\">\n {{d.date | date: \'d\'}}\n </div>\n <div class=\"month\">\n {{d.date | date : \'MMM\'}}\n </div>\n <span class=\"delete\" ng-click=\"unsetDate(d.date)\"></span>\n </div>\n </td>\n <td ng-repeat=\"time in [1,2,3] track by $index\">\n <input type=\"text\" time-picker ng-model-options=\"{ updateOn: \'blur\' }\" ng-model=\"d.times[$index]\" class=\"time-picker-input form-control\" />\n </td>\n </tr>\n </table>\n</div>\n");
|
||||
$templateCache.put("templates/form/timeForm.html","<div class=\"section-details\">\n <div class=\"section-title\">Choose Times</div>\n</div>\n<div class=\"section-main\">\n <table class=\"time-form\">\n <thead>\n <tr>\n <th>\n\n </th>\n <th>\n Time 1\n </th>\n <th>\n Time 2\n </th>\n <th>\n Time 3\n </th>\n </tr>\n </thead>\n <tbody>\n <tr ng-repeat=\"d in event.dates\">\n <td>\n <div class=\"daticon\">\n <div class=\"dow\">\n {{d.date | date: \'EEE\'}}\n </div>\n <div class=\"day\">\n {{d.date | date: \'d\'}}\n </div>\n <div class=\"month\">\n {{d.date | date : \'MMM\'}}\n </div>\n <span class=\"delete\" ng-click=\"unsetDate(d.date)\"></span>\n </div>\n </td>\n <td ng-repeat=\"time in [1,2,3] track by $index\">\n <input type=\"text\" time-picker ng-model-options=\"{ updateOn: \'blur\' }\" ng-model=\"d.times[$index]\" class=\"time-picker-input\" />\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n");
|
||||
$templateCache.put("templates/form/userForm.html","<div class=\"section-details\">\n <div class=\"section-title\">Your Details</div>\n</div>\n<div class=\"section-main\">\n <div class=\"form-row\">\n <div class=\"form-col\">\n <div class=\"form-group\">\n <label for=\"name\">Name</label>\n <span class=\"form-error\" ng-show=\"(form.name.$touched || form.$submitted) && errors.name\">\n <img src=\"/images/error.png\" width=\"14\" /> {{errors.name}}\n </span>\n <input id=\"name\" name=\"name\" ng-maxlength=\"30\" required ng-model=\"event.creator.name\" type=\"text\" placeholder=\"John Doe...\" class=\"form-control extend\"/>\n </div>\n </div>\n <div class=\"form-col\">\n <div class=\"form-group\">\n <label for=\"email\">Email</label>\n <span class=\"form-error\" ng-show=\"(form.email.$touched || form.$submitted) && errors.email\">\n <img src=\"/images/error.png\" width=\"14\" /> {{errors.email}}\n </span>\n <input type=\"email\" id=\"email\" name=\"email\" ng-pattern=\"emailRegex\" required ng-model=\"event.creator.email\" placeholder=\"john.doe@email.com...\" class=\"form-control extend\"/>\n </div>\n </div>\n </div>\n</div>\n");
|
||||
$templateCache.put("templates/newEvent/datetime.html","<section class=\"box-section\" date-form form=\"form\" event=\"event\">\n\n</section>\n\n<section class=\"box-section\" ng-show=\"event.dates.length\" time-form form=\"form\" event=\"event\">\n\n</section>\n\n<div class=\"box-controls box-bottom-sticky\">\n <button type=\"button\" class=\"btn\" ng-click=\"prevPage()\">Previous</button>\n <button type=\"submit\" class=\"btn\">Next</button>\n</div>\n");
|
||||
$templateCache.put("templates/newEvent/general.html","<section class=\"box-section\" user-form form=\"form\" event=\"event\">\n\n</section>\n\n<section class=\"box-section\" event-form form=\"form\" event=\"event\">\n\n</section>\n\n<div class=\"box-controls box-bottom-sticky\">\n <button type=\"submit\" class=\"btn\">Next Step</button>\n</div>\n");
|
||||
$templateCache.put("templates/newEvent/invite.html","<section class=\"box-section\" participants-form form=\"form\" event=\"event\">\n\n</section>\n\n<div class=\"box-controls box-bottom-sticky\">\n <button type=\"button\" class=\"btn\" ng-click=\"prevPage()\">Previous</button>\n <button type=\"submit\" class=\"btn\">Create</button>\n</div>\n");
|
||||
$templateCache.put("templates/newEvent/layout.html","<div class=\"box\" ng-class=\"{\'animated shake\': form.$submitted && form.$invalid }\">\n\n <div class=\"box-title\">Schedule a New Event</div>\n <div class=\"box-description\">\n Fill in the form below to create your event and share it with your friends and colleagues.\n </div>\n <ol class=\"box-steps\">\n <li class=\"step active\">\n General Details\n </li>\n <li class=\"step\" ng-class=\"{ active : page > 1 }\">\n Dates & Times\n </li>\n <li class=\"step\" ng-class=\"{ active : page > 2 }\">\n Invites\n </li>\n <li class=\"step\" ng-class=\"{ active : page > 3 }\">\n Done\n </li>\n </ol>\n <form novalidate autocomplete=\"off\" name=\"form\" ng-submit=\"submit()\">\n <div ui-view>\n\n </div>\n </form>\n</div>\n");
|
||||
$templateCache.put("templates/newEvent/layout.html","<div class=\"box\">\n\n <div class=\"box-title\">Schedule a New Event</div>\n <div class=\"box-description\">\n Fill in the form below to create your event and share it with your friends and colleagues.\n </div>\n <ol class=\"box-steps\">\n <li class=\"step active\">\n General Details\n </li>\n <li class=\"step\" ng-class=\"{ active : page > 1 }\">\n Dates & Times\n </li>\n <li class=\"step\" ng-class=\"{ active : page > 2 }\">\n Invites\n </li>\n <li class=\"step\" ng-class=\"{ active : page > 3 }\">\n Done\n </li>\n </ol>\n <form novalidate autocomplete=\"off\" name=\"form\" ng-submit=\"submit()\">\n <div ui-view>\n\n </div>\n </form>\n</div>\n");
|
||||
$templateCache.put("templates/newEvent/success.html","<div class=\"box-message\">\n <div class=\"main-image\">\n <img src=\"/images/success_large.png\" width=\"100\" />\n </div>\n <div class=\"title\">Event Created</div>\n <div class=\"content\">\n Your event has been created successfully! You should receive an email shortly with instructions to verify your email address.\n </div>\n <div class=\"mini-divider\">\n </div>\n <div class=\"form-group\">\n <input type=\"text\" class=\"form-control\" disabled=\"true\" value=\"{{eventUrl}}\" />\n <a href=\"{{eventUrl}}\" class=\"btn form-btn\">GO</a>\n </div>\n</div>\n");}]);
|
|
@ -1,6 +1,6 @@
|
|||
@mixin form-input {
|
||||
border-radius: 2px;
|
||||
border: 1px solid $border-clr;
|
||||
border: 2px solid $border-clr;
|
||||
font-size:em(18px);
|
||||
@include transition(border-color 0.1s ease-in-out);
|
||||
&:focus {
|
||||
|
|
|
@ -132,7 +132,7 @@ $box-h-pad: 25px;
|
|||
width:100%;
|
||||
list-style-position:inside;
|
||||
padding:0;
|
||||
margin:0 0 20px 0;
|
||||
margin:40px 0 10px 0;
|
||||
.step {
|
||||
@include flex(1);
|
||||
color: $text-2-clr;
|
||||
|
|
|
@ -20,7 +20,6 @@ $name-col-width: 235px;
|
|||
&.date-header {
|
||||
text-align:center;
|
||||
min-width: $date-col-width;
|
||||
width: $date-col-width;
|
||||
}
|
||||
&.actions-header {
|
||||
min-width: $actions-col-width;
|
||||
|
@ -127,7 +126,6 @@ $name-col-width: 235px;
|
|||
}
|
||||
&.vote-cell {
|
||||
min-width: $date-col-width;
|
||||
width: $date-col-width;
|
||||
text-align:center;
|
||||
position: relative;
|
||||
.overlay {
|
||||
|
|
|
@ -20,10 +20,10 @@
|
|||
}
|
||||
|
||||
.time-picker-input {
|
||||
@include form-input;
|
||||
padding: em(5px) 0;
|
||||
text-align:center;
|
||||
font-size:em(26px);
|
||||
border:0;
|
||||
font-size:em(14px);
|
||||
&.ng-invalid {
|
||||
border-color: $red-clr;
|
||||
&:focus {
|
||||
|
@ -34,16 +34,34 @@
|
|||
border-color: $green-clr;
|
||||
}
|
||||
&:focus {
|
||||
outline:0;
|
||||
color: $text-clr;
|
||||
}
|
||||
}
|
||||
|
||||
.time-form {
|
||||
width:100%;
|
||||
border:1px solid $border-clr;
|
||||
th {
|
||||
border-bottom:2px solid $border-clr;
|
||||
padding: 10px;
|
||||
font-size: 14px;
|
||||
text-transform:uppercase;
|
||||
}
|
||||
td {
|
||||
padding: 10px 10px 10px 0;
|
||||
border-right: 1px solid $border-clr;
|
||||
padding: 10px 10px;
|
||||
border-bottom:1px solid $border-clr;
|
||||
&:last-child {
|
||||
border-right:0;
|
||||
}
|
||||
input {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
tr:last-child {
|
||||
td {
|
||||
border-bottom:0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,24 +3,42 @@
|
|||
</div>
|
||||
<div class="section-main">
|
||||
<table class="time-form">
|
||||
<tr ng-repeat="d in event.dates">
|
||||
<td>
|
||||
<div class="daticon">
|
||||
<div class="dow">
|
||||
{{d.date | date: 'EEE'}}
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
|
||||
</th>
|
||||
<th>
|
||||
Time 1
|
||||
</th>
|
||||
<th>
|
||||
Time 2
|
||||
</th>
|
||||
<th>
|
||||
Time 3
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="d in event.dates">
|
||||
<td>
|
||||
<div class="daticon">
|
||||
<div class="dow">
|
||||
{{d.date | date: 'EEE'}}
|
||||
</div>
|
||||
<div class="day">
|
||||
{{d.date | date: 'd'}}
|
||||
</div>
|
||||
<div class="month">
|
||||
{{d.date | date : 'MMM'}}
|
||||
</div>
|
||||
<span class="delete" ng-click="unsetDate(d.date)"></span>
|
||||
</div>
|
||||
<div class="day">
|
||||
{{d.date | date: 'd'}}
|
||||
</div>
|
||||
<div class="month">
|
||||
{{d.date | date : 'MMM'}}
|
||||
</div>
|
||||
<span class="delete" ng-click="unsetDate(d.date)"></span>
|
||||
</div>
|
||||
</td>
|
||||
<td ng-repeat="time in [1,2,3] track by $index">
|
||||
<input type="text" time-picker ng-model-options="{ updateOn: 'blur' }" ng-model="d.times[$index]" class="time-picker-input form-control" />
|
||||
</td>
|
||||
</tr>
|
||||
</td>
|
||||
<td ng-repeat="time in [1,2,3] track by $index">
|
||||
<input type="text" time-picker ng-model-options="{ updateOn: 'blur' }" ng-model="d.times[$index]" class="time-picker-input" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="box" ng-class="{'animated shake': form.$submitted && form.$invalid }">
|
||||
<div class="box">
|
||||
|
||||
<div class="box-title">Schedule a New Event</div>
|
||||
<div class="box-description">
|
||||
|
|
Loading…
Add table
Reference in a new issue