delete datetext functions, implement dateutils
This commit is contained in:
@@ -5,17 +5,23 @@
|
||||
'js/discovery/views/search_form', 'js/discovery/views/courses_listing',
|
||||
'js/discovery/views/filter_bar', 'js/discovery/views/refine_sidebar'],
|
||||
function(Backbone, SearchState, Filters, SearchForm, CoursesListing, FilterBar, RefineSidebar) {
|
||||
return function(meanings, searchQuery) {
|
||||
return function(meanings, searchQuery, userLanguage, userTimezone) {
|
||||
var dispatcher = _.extend({}, Backbone.Events);
|
||||
var search = new SearchState();
|
||||
var filters = new Filters();
|
||||
var listing = new CoursesListing({model: search.discovery});
|
||||
var form = new SearchForm();
|
||||
var filterBar = new FilterBar({collection: filters});
|
||||
var refineSidebar = new RefineSidebar({
|
||||
collection: search.discovery.facetOptions,
|
||||
meanings: meanings
|
||||
});
|
||||
var listing;
|
||||
var courseListingModel = search.discovery;
|
||||
courseListingModel.userPreferences = {
|
||||
userLanguage: userLanguage,
|
||||
userTimezone: userTimezone
|
||||
};
|
||||
listing = new CoursesListing({model: courseListingModel});
|
||||
|
||||
dispatcher.listenTo(form, 'search', function(query) {
|
||||
filters.reset();
|
||||
|
||||
@@ -4,24 +4,19 @@
|
||||
'underscore',
|
||||
'backbone',
|
||||
'gettext',
|
||||
'date'
|
||||
], function($, _, Backbone, gettext, Date) {
|
||||
'edx-ui-toolkit/js/utils/date-utils'
|
||||
], function($, _, Backbone, gettext, DateUtils) {
|
||||
'use strict';
|
||||
|
||||
function formatDate(date) {
|
||||
return dateUTC(date).toString('MMM dd, yyyy');
|
||||
}
|
||||
|
||||
// Return a date object using UTC time instead of local time
|
||||
function dateUTC(date) {
|
||||
return new Date(
|
||||
date.getUTCFullYear(),
|
||||
date.getUTCMonth(),
|
||||
date.getUTCDate(),
|
||||
date.getUTCHours(),
|
||||
date.getUTCMinutes(),
|
||||
date.getUTCSeconds()
|
||||
);
|
||||
function formatDate(date, userLanguage, userTimezone) {
|
||||
var context;
|
||||
context = {
|
||||
datetime: date,
|
||||
language: userLanguage,
|
||||
timezone: userTimezone,
|
||||
format: DateUtils.dateFormatEnum.shortDate
|
||||
};
|
||||
return DateUtils.localize(context);
|
||||
}
|
||||
|
||||
return Backbone.View.extend({
|
||||
@@ -36,8 +31,26 @@
|
||||
|
||||
render: function() {
|
||||
var data = _.clone(this.model.attributes);
|
||||
data.start = formatDate(new Date(data.start));
|
||||
data.enrollment_start = formatDate(new Date(data.enrollment_start));
|
||||
var userLanguage = '',
|
||||
userTimezone = '';
|
||||
if (this.model.userPreferences !== undefined) {
|
||||
userLanguage = this.model.userPreferences.userLanguage;
|
||||
userTimezone = this.model.userPreferences.userTimezone;
|
||||
}
|
||||
if (data.advertised_start !== undefined) {
|
||||
data.start = data.advertised_start;
|
||||
} else {
|
||||
data.start = formatDate(
|
||||
new Date(data.start),
|
||||
userLanguage,
|
||||
userTimezone
|
||||
);
|
||||
}
|
||||
data.enrollment_start = formatDate(
|
||||
new Date(data.enrollment_start),
|
||||
userLanguage,
|
||||
userTimezone
|
||||
);
|
||||
this.$el.html(this.tpl(data));
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -31,12 +31,15 @@
|
||||
},
|
||||
|
||||
renderItems: function() {
|
||||
/* eslint no-param-reassign: [2, { "props": true }] */
|
||||
var latest = this.model.latest();
|
||||
var items = latest.map(function(result) {
|
||||
result.userPreferences = this.model.userPreferences;
|
||||
var item = new CourseCardView({model: result});
|
||||
return item.render().el;
|
||||
}, this);
|
||||
this.$list.append(items);
|
||||
/* eslint no-param-reassign: [2, { "props": false }] */
|
||||
},
|
||||
|
||||
attachScrollHandler: function() {
|
||||
|
||||
Reference in New Issue
Block a user