Commit 4f0ab6f9 by cahrens

Optimize account settings and learner profile.

Also remove RequireJS dependency on mustache, and delete extra copy.
parent 7b5f9b80
......@@ -3,7 +3,6 @@
requirejs.config({
paths: {
'gettext': 'xmodule_js/common_static/js/test/i18n',
'mustache': 'xmodule_js/common_static/js/vendor/mustache',
'codemirror': 'xmodule_js/common_static/js/vendor/CodeMirror/codemirror',
'jquery': 'xmodule_js/common_static/js/vendor/jquery.min',
'jquery.ui': 'xmodule_js/common_static/js/vendor/jquery-ui.min',
......@@ -61,7 +60,6 @@
// Manually specify LMS files that are not converted to RequireJS
'history': 'js/vendor/history',
'js/mustache': 'js/mustache',
'js/staff_debug_actions': 'js/staff_debug_actions',
'js/vendor/jquery.qubit': 'js/vendor/jquery.qubit',
......
;(function (define, undefined) {
'use strict';
define([
'gettext', 'jquery', 'underscore', 'backbone', 'js/mustache', 'js/views/fields'
], function (gettext, $, _, Backbone, RequireMustache, FieldViews) {
'gettext', 'jquery', 'underscore', 'backbone', 'js/views/fields'
], function (gettext, $, _, Backbone, FieldViews) {
var AccountSettingsFieldViews = {};
......
......@@ -8,7 +8,8 @@
'js/student_profile/views/learner_profile_fields',
'js/student_profile/views/learner_profile_view',
'js/student_account/views/account_settings_fields',
'js/views/message_banner'
'js/views/message_banner',
'string_utils'
], function (gettext, $, _, Backbone, Logger, AccountSettingsModel, AccountPreferencesModel, FieldsView,
LearnerProfileFieldsView, LearnerProfileView, AccountSettingsFieldViews, MessageBannerView) {
......
;(function (define, undefined) {
'use strict';
define([
'gettext', 'jquery', 'underscore', 'backbone', 'js/mustache', 'backbone-super'
], function (gettext, $, _, Backbone, RequireMustache) {
var Mustache = window.Mustache || RequireMustache;
'gettext', 'jquery', 'underscore', 'backbone', 'backbone-super', 'jquery.fileupload'
], function (gettext, $, _, Backbone) {
var messageRevertDelay = 6000;
var FieldViews = {};
......@@ -127,7 +125,7 @@
if (xhr.status === 400) {
try {
var errors = JSON.parse(xhr.responseText),
validationErrorMessage = Mustache.escapeHtml(
validationErrorMessage = _.escape(
errors.field_errors[this.options.valueAttribute].user_message
),
message = this.indicators.validationError + validationErrorMessage;
......@@ -253,7 +251,7 @@
},
updateValueInField: function () {
this.$('.u-field-value input').val(Mustache.escapeHtml(this.modelValue()));
this.$('.u-field-value input').val(_.escape(this.modelValue()));
}
});
......@@ -290,7 +288,7 @@
updateValueInField: function () {
var value = (_.isUndefined(this.modelValue()) || _.isNull(this.modelValue())) ? '' : this.modelValue();
this.$('.u-field-value input').val(Mustache.escapeHtml(value));
this.$('.u-field-value input').val(_.escape(value));
},
saveValue: function () {
......@@ -375,7 +373,7 @@
value = this.options.placeholderValue || '';
}
this.$('.u-field-value').attr('aria-label', this.options.title);
this.$('.u-field-value-readonly').html(Mustache.escapeHtml(value));
this.$('.u-field-value-readonly').html(_.escape(value));
if (this.mode === 'display') {
this.updateDisplayModeClass();
......
......@@ -18,7 +18,9 @@
* done.
*/
modules: getModulesList([
'teams/js/teams_tab_factory'
'teams/js/teams_tab_factory',
'js/student_profile/views/learner_profile_factory',
'js/student_account/views/account_settings_factory'
]),
/**
......
......@@ -9,7 +9,7 @@
<script type="text/javascript" src="${static.url('js/jquery.autocomplete.js')}"></script>
<script type="text/javascript" src="${static.url('js/vendor/jquery.timeago.js')}"></script>
<script type="text/javascript" src="${static.url('js/src/jquery.timeago.locale.js')}"></script>
<script type="text/javascript" src="${static.url('js/mustache.js')}"></script>
<script type="text/javascript" src="${static.url('js/vendor/mustache.js')}"></script>
<script type="text/javascript" src="${static.url('js/src/tooltip_manager.js')}"></script>
<link href="${static.url('css/vendor/jquery.autocomplete.css')}" rel="stylesheet" type="text/css">
......@@ -37,21 +37,16 @@ from microsite_configuration import microsite
<%block name="headextra">
<%static:css group='style-course'/>
</%block>
<script>
(function (require) {
require(['js/student_account/views/account_settings_factory'], function(setupAccountSettingsSection) {
var fieldsData = ${ json.dumps(fields) };
var authData = ${ json.dumps(auth) };
var platformName = ${ json.dumps(microsite.get_value('platform_name', settings.PLATFORM_NAME))};
setupAccountSettingsSection(
fieldsData, authData, '${user_accounts_api_url}', '${user_preferences_api_url}', ${user.id},
platformName
);
});
}).call(this, require || RequireJS.require);
</script>
<%block name="js_extra">
<%static:require_module module_name="js/student_account/views/account_settings_factory" class_name="AccountSettingsFactory">
var fieldsData = ${ json.dumps(fields) };
var authData = ${ json.dumps(auth) };
var platformName = ${ json.dumps(microsite.get_value('platform_name', settings.PLATFORM_NAME))};
AccountSettingsFactory(
fieldsData, authData, '${user_accounts_api_url}', '${user_preferences_api_url}', ${user.id}, platformName
);
</%static:require_module>
</%block>
......@@ -34,16 +34,11 @@ from openedx.core.lib.json_utils import EscapedEdxJSONEncoder
</div>
<%block name="headextra">
<%static:css group='style-course'/>
</%block>
<script type="text/javascript" src="${static.url('js/vendor/jQuery-File-Upload/js/jquery.fileupload.js')}"></script>
<script>
(function (require) {
require(['js/student_profile/views/learner_profile_factory'], function(setupLearnerProfile) {
var options = ${ json.dumps(data, cls=EscapedEdxJSONEncoder) };
setupLearnerProfile(options);
});
}).call(this, require || RequireJS.require);
</script>
<%block name="js_extra">
<%static:require_module module_name="js/student_profile/views/learner_profile_factory" class_name="LearnerProfileFactory">
var options = ${ json.dumps(data, cls=EscapedEdxJSONEncoder) };
LearnerProfileFactory(options);
</%static:require_module>
</%block>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment