Skip to content
Snippets Groups Projects
Unverified Commit c45de5c3 authored by Calen Pennington's avatar Calen Pennington Committed by GitHub
Browse files

Revert "Revert "Revert "Merge pull request #17325 from cpennington/switch-ass…"

parent 8bcdcc52
No related merge requests found
......@@ -17,6 +17,7 @@
* done.
*/
modules: getModulesList([
'js/factories/asset_index',
'js/factories/base',
'js/factories/container',
'js/factories/course_create_rerun',
......
define(['js/base', 'cms/js/main', 'js/src/logger', 'datepair', 'accessibility',
'ieshim', 'tooltip_manager', 'lang_edx', 'js/models/course'],
function() {
'use strict';
}
);
'ieshim', 'tooltip_manager', 'lang_edx', 'js/models/course']);
define(
['js/factories/asset_index', 'common/js/utils/page_factory', 'js/factories/base'],
function(AssetIndexFactory, invokePageFactory) {
'use strict';
invokePageFactory('AssetIndexFactory', AssetIndexFactory);
}
);
(function(define) {
'use strict';
define(
['js/models/course'],
function(ContextCourse) {
window.course = new ContextCourse(window.pageFactoryArguments.ContextCourse[0]);
}
);
}).call(this, define || RequireJS.define);
define(
['js/factories/login', 'common/js/utils/page_factory', 'js/factories/base'],
['js/factories/login', 'common/js/utils/page_factory'],
function(LoginFactory, invokePageFactory) {
'use strict';
invokePageFactory('LoginFactory', LoginFactory);
......
define(['domReady', 'jquery', 'jquery.smoothScroll'],
require(['domReady', 'jquery', 'jquery.smoothScroll'],
function(domReady, $) {
'use strict';
var toggleSock = function(e) {
e.preventDefault();
......@@ -35,5 +33,4 @@ define(['domReady', 'jquery', 'jquery.smoothScroll'],
// toggling footer additional support
$('.cta-show-sock').bind('click', toggleSock);
});
}
);
});
......@@ -28,16 +28,16 @@
% endif
</%block>
<%block name="page_bundle">
<%block name="requirejs">
% if not waffle_flag_enabled:
<%static:invoke_page_bundle page_name="js/pages/asset_index" class_name="AssetIndexFactory">
{
assetCallbackUrl: "${asset_callback_url|n, js_escaped_string}",
uploadChunkSizeInMBs: ${ chunk_size_in_mbs| n, dump_js_escaped_json },
maxFileSizeInMBs: ${ max_file_size_in_mbs| n, dump_js_escaped_json },
maxFileSizeRedirectUrl: "${max_file_size_redirect_url|n, js_escaped_string}"
}
</%static:invoke_page_bundle>
require(["js/factories/asset_index"], function (AssetIndexFactory) {
AssetIndexFactory({
assetCallbackUrl: "${asset_callback_url|n, js_escaped_string}",
uploadChunkSizeInMBs: ${chunk_size_in_mbs|n, dump_js_escaped_json},
maxFileSizeInMBs: ${max_file_size_in_mbs|n, dump_js_escaped_json},
maxFileSizeRedirectUrl: "${max_file_size_redirect_url|n, js_escaped_string}"
});
});
% endif
</%block>
......
......@@ -121,39 +121,29 @@ from openedx.core.djangolib.markup import HTML
<%block name="modal_placeholder"></%block>
<%block name="jsextra"></%block>
% if context_course:
<script type="text/javascript">
if (typeof window.pageFactoryArguments == "undefined") {
window.pageFactoryArguments = {};
}
window.pageFactoryArguments['ContextCourse'] = {
id: "${context_course.id | n, js_escaped_string}",
name: "${context_course.display_name_with_default | n, js_escaped_string}",
url_name: "${context_course.location.block_id | n, js_escaped_string}",
org: "${context_course.location.org | n, js_escaped_string}",
num: "${context_course.location.course | n, js_escaped_string}",
display_course_number: "${context_course.display_coursenumber | n, js_escaped_string}",
revision: "${context_course.location.branch | n, js_escaped_string}",
self_paced: ${ context_course.self_paced | n, dump_js_escaped_json }
}
</script>
% endif
% if user.is_authenticated():
<%static:invoke_page_bundle page_name='js/sock'/>
% endif
<%block name='page_bundle'>
<script type="text/javascript">
require(['js/factories/base'], function () {
require(['js/models/course'], function(Course) {
% if context_course:
window.course = new Course(window.pageFactoryArguments['ContextCourse']);
% endif
<%block name='requirejs'></%block>
});
});
</script>
<%block name="page_bundle">
<script type="text/javascript">
require(['js/factories/base'], function () {
require(['js/models/course'], function(Course) {
% if context_course:
window.course = new Course({
id: "${context_course.id | n, js_escaped_string}",
name: "${context_course.display_name_with_default | n, js_escaped_string}",
url_name: "${context_course.location.block_id | n, js_escaped_string}",
org: "${context_course.location.org | n, js_escaped_string}",
num: "${context_course.location.course | n, js_escaped_string}",
display_course_number: "${context_course.display_coursenumber | n, js_escaped_string}",
revision: "${context_course.location.branch | n, js_escaped_string}",
self_paced: ${context_course.self_paced | n, dump_js_escaped_json}
});
% endif
% if user.is_authenticated():
require(['js/sock']);
% endif
<%block name='requirejs'></%block>
});
});
</script>
</%block>
<%include file="widgets/segment-io-footer.html" />
<div class="modal-cover"></div>
......
......@@ -164,7 +164,7 @@ source, template_path = Loader(engine).load_template_source(path)
</script>
</%def>
<%def name="invoke_page_bundle(page_name, class_name=None)">
<%def name="invoke_page_bundle(page_name, class_name)">
<%doc>
Loads Javascript onto your page synchronously.
Uses RequireJS in development and a plain script tag in production.
......@@ -174,18 +174,16 @@ source, template_path = Loader(engine).load_template_source(path)
<%
body = capture(caller.body)
%>
% if class_name:
<script type="text/javascript">
if (typeof pageFactoryArguments == "undefined") {
var pageFactoryArguments = {};
}
% if body:
pageFactoryArguments['${class_name | n, js_escaped_string}'] = [${ body | n, decode.utf8 }];
% else:
pageFactoryArguments['${class_name | n, js_escaped_string}'] = [];
% endif
</script>
% endif
<script type="text/javascript">
if (typeof pageFactoryArguments == "undefined") {
var pageFactoryArguments = {};
}
% if body:
pageFactoryArguments['${class_name | n, js_escaped_string}'] = [${ body | n, decode.utf8 }];
% else:
pageFactoryArguments['${class_name | n, js_escaped_string}'] = [];
% endif
</script>
<%self:webpack entry="${page_name}"/>
</%def>
......
......@@ -51,6 +51,12 @@ REQUIREJS_WAIT = {
"js/sock", "gettext", "js/base",
"jquery.ui", "cms/js/main", "underscore"],
# Upload
re.compile(r'^\s*Files & Uploads'): [
'js/base', 'jquery.ui', 'cms/js/main', 'underscore',
'js/views/assets', 'js/views/asset'
],
# Pages
re.compile(r'^Pages \|'): [
'js/models/explicit_url', 'js/views/tabs',
......
var path = require('path');
module.exports = {
namespacedRequire: [
path.resolve(__dirname, '../common/static/common/js/components/views/feedback_notification.js'),
path.resolve(__dirname, '../common/static/common/js/components/views/feedback_prompt.js'),
path.resolve(__dirname, '../common/static/common/js/components/views/feedback.js'),
path.resolve(__dirname, '../common/static/common/js/components/views/paging_footer.js'),
path.resolve(__dirname, '../cms/static/js/views/paging.js'),
path.resolve(__dirname, '../common/static/common/js/components/utils/view_utils.js')
],
// These files are used by RequireJS as well, so we can't remove
// the instances of "text!some/file.underscore" (which webpack currently
// processes twice). So instead we have webpack dynamically remove the `text!` prefix
// until we can remove RequireJS from the system.
textBangUnderscore: [
path.resolve(__dirname, '../cms/static/js/certificates/views/certificate_details.js'),
path.resolve(__dirname, '../cms/static/js/certificates/views/certificate_editor.js'),
path.resolve(__dirname, '../cms/static/js/certificates/views/certificate_preview.js'),
path.resolve(__dirname, '../cms/static/js/certificates/views/signatory_details.js'),
path.resolve(__dirname, '../cms/static/js/certificates/views/signatory_editor.js'),
path.resolve(__dirname, '../cms/static/js/views/active_video_upload_list.js'),
path.resolve(__dirname, '../cms/static/js/views/assets.js'),
path.resolve(__dirname, '../cms/static/js/views/course_video_settings.js'),
path.resolve(__dirname, '../cms/static/js/views/edit_chapter.js'),
path.resolve(__dirname, '../cms/static/js/views/experiment_group_edit.js'),
path.resolve(__dirname, '../cms/static/js/views/license.js'),
path.resolve(__dirname, '../cms/static/js/views/modals/move_xblock_modal.js'),
path.resolve(__dirname, '../cms/static/js/views/move_xblock_breadcrumb.js'),
path.resolve(__dirname, '../cms/static/js/views/move_xblock_list.js'),
path.resolve(__dirname, '../cms/static/js/views/paging_header.js'),
path.resolve(__dirname, '../cms/static/js/views/previous_video_upload_list.js'),
path.resolve(__dirname, '../cms/static/js/views/previous_video_upload.js'),
path.resolve(__dirname, '../cms/static/js/views/video_thumbnail.js'),
path.resolve(__dirname, '../cms/static/js/views/video_transcripts.js'),
path.resolve(__dirname, '../common/static/common/js/components/views/feedback.js'),
path.resolve(__dirname, '../common/static/common/js/components/views/paginated_view.js'),
path.resolve(__dirname, '../common/static/common/js/components/views/paging_footer.js'),
path.resolve(__dirname, '../common/static/common/js/components/views/paging_header.js'),
path.resolve(__dirname, '../common/static/common/js/components/views/progress_circle_view.js'),
path.resolve(__dirname, '../common/static/common/js/components/views/search_field.js'),
path.resolve(__dirname, '../common/static/common/js/components/views/tabbed_view.js'),
path.resolve(__dirname, '../lms/djangoapps/discussion/static/discussion/js/views/discussion_board_view.js'),
path.resolve(__dirname, '../lms/djangoapps/discussion/static/discussion/js/views/discussion_fake_breadcrumbs.js'),
path.resolve(__dirname, '../lms/djangoapps/discussion/static/discussion/js/views/discussion_search_view.js'),
path.resolve(__dirname, '../lms/djangoapps/discussion/static/discussion/js/views/discussion_user_profile_view.js'),
path.resolve(__dirname, '../lms/djangoapps/support/static/support/js/views/certificates.js'),
path.resolve(__dirname, '../lms/djangoapps/support/static/support/js/views/enrollment_modal.js'),
path.resolve(__dirname, '../lms/djangoapps/support/static/support/js/views/enrollment.js'),
path.resolve(__dirname, '../lms/djangoapps/support/static/support/js/views/manage_user.js'),
path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/edit_team_members.js'),
path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/edit_team.js'),
path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/instructor_tools.js'),
path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/team_card.js'),
path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/team_profile_header_actions.js'),
path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/team_profile.js'),
path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/teams_tab.js'),
path.resolve(__dirname, '../lms/djangoapps/teams/static/teams/js/views/topic_teams.js'),
path.resolve(__dirname, '../lms/static/js/api_admin/views/catalog_preview.js'),
path.resolve(__dirname, '../lms/static/js/components/card/views/card.js'),
path.resolve(__dirname, '../lms/static/js/components/header/views/header.js'),
path.resolve(__dirname, '../lms/static/js/financial-assistance/views/financial_assistance_form_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/certificate_list_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/certificate_status_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/collection_list_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/course_card_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/course_enroll_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/course_entitlement_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/expired_notification_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/explore_new_programs_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/program_card_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/program_details_sidebar_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/program_details_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/program_header_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/sidebar_view.js'),
path.resolve(__dirname, '../lms/static/js/learner_dashboard/views/upgrade_message_view.js'),
path.resolve(__dirname, '../lms/static/js/student_account/views/account_section_view.js'),
path.resolve(__dirname, '../lms/static/js/student_account/views/account_settings_fields.js'),
path.resolve(__dirname, '../lms/static/js/student_account/views/account_settings_view.js'),
path.resolve(__dirname, '../lms/static/js/student_account/views/FormView.js'),
path.resolve(__dirname, '../lms/static/js/student_account/views/LoginView.js'),
path.resolve(__dirname, '../lms/static/js/student_account/views/RegisterView.js'),
path.resolve(__dirname, '../lms/static/js/views/fields.js'),
path.resolve(__dirname, '../lms/static/js/views/image_field.js'),
path.resolve(__dirname, '../lms/static/js/views/message_banner.js'),
path.resolve(__dirname, '../openedx/features/course_bookmarks/static/course_bookmarks/js/views/bookmarks_list.js'),
path.resolve(__dirname, '../openedx/features/course_search/static/course_search/js/spec/course_search_spec.js'),
path.resolve(
__dirname,
'openedx/features/course_search/static/course_search/js/views/course_search_results_view.js'
),
path.resolve(
__dirname,
'openedx/features/course_search/static/course_search/js/views/dashboard_search_results_view.js'
),
path.resolve(__dirname, '../openedx/features/course_search/static/course_search/js/views/search_results_view.js'),
path.resolve(__dirname, '../openedx/features/learner_profile/static/learner_profile/js/views/badge_list_container.js'),
path.resolve(__dirname, '../openedx/features/learner_profile/static/learner_profile/js/views/badge_list_view.js'),
path.resolve(__dirname, '../openedx/features/learner_profile/static/learner_profile/js/views/badge_view.js'),
path.resolve(
__dirname,
'openedx/features/learner_profile/static/learner_profile/js/views/learner_profile_fields.js'
),
path.resolve(__dirname, '../openedx/features/learner_profile/static/learner_profile/js/views/section_two_tab.js'),
path.resolve(__dirname, '../openedx/features/learner_profile/static/learner_profile/js/views/share_modal_view.js')
]
}
......@@ -7,7 +7,12 @@ var webpack = require('webpack');
var BundleTracker = require('webpack-bundle-tracker');
var StringReplace = require('string-replace-webpack-plugin');
var files = require('./webpack-config/file-lists.js');
var namespacedRequireFiles = [
path.resolve(__dirname, 'common/static/common/js/components/views/feedback_notification.js'),
path.resolve(__dirname, 'common/static/common/js/components/views/feedback_prompt.js'),
path.resolve(__dirname, 'common/static/common/js/components/views/feedback.js'),
path.resolve(__dirname, 'common/static/common/js/components/utils/view_utils.js')
];
var defineHeader = /\(function ?\(define(, require)?\) ?\{/;
var defineFooter = /\}\)\.call\(this, define \|\| RequireJS\.define(, require \|\| RequireJS\.require)?\);/;
......@@ -20,8 +25,6 @@ module.exports = {
Import: './cms/static/js/features/import/factories/import.js',
CourseOrLibraryListing: './cms/static/js/features_jsx/studio/CourseOrLibraryListing.jsx',
'js/pages/login': './cms/static/js/pages/login.js',
'js/pages/asset_index': './cms/static/js/pages/asset_index.js',
'js/sock': './cms/static/js/sock.js',
// LMS
SingleSupportForm: './lms/static/support/jsx/single_support_form.jsx',
......@@ -94,7 +97,7 @@ module.exports = {
],
rules: [
{
test: files.namespacedRequire,
test: namespacedRequireFiles,
loader: StringReplace.replace(
['babel-loader'],
{
......@@ -111,26 +114,11 @@ module.exports = {
}
)
},
{
test: files.textBangUnderscore,
loader: StringReplace.replace(
['babel-loader'],
{
replacements: [
{
pattern: /text!(.*\.underscore)/,
replacement: function(match, p1) { return p1; }
}
]
}
)
},
{
test: /\.(js|jsx)$/,
exclude: [
/node_modules/,
files.namespacedRequire,
files.textBangUnderscore
namespacedRequireFiles
],
use: 'babel-loader'
},
......@@ -142,16 +130,9 @@ module.exports = {
use: 'babel-loader'
},
{
test: path.resolve(__dirname, 'common/static/coffee/src/ajax_prefix.js'),
use: [
'babel-loader',
{
loader: 'exports-loader',
options: {
'this.AjaxPrefix': true
}
}
]
test: /\.coffee$/,
exclude: /node_modules/,
use: 'coffee-loader'
},
{
test: /\.underscore$/,
......@@ -161,34 +142,13 @@ module.exports = {
// This file is used by both RequireJS and Webpack and depends on window globals
// This is a dirty hack and shouldn't be replicated for other files.
test: path.resolve(__dirname, 'cms/static/cms/js/main.js'),
loader: StringReplace.replace(
['babel-loader'],
{
replacements: [
{
pattern: /\(function\(AjaxPrefix\) {/,
replacement: function() { return ''; }
},
{
pattern: /], function\(domReady, \$, str, Backbone, gettext, NotificationView\) {/,
replacement: function() {
// eslint-disable-next-line
return '], function(domReady, $, str, Backbone, gettext, NotificationView, AjaxPrefix) {';
}
},
{
pattern: /'..\/..\/common\/js\/components\/views\/feedback_notification',/,
replacement: function() {
return "'../../common/js/components/views/feedback_notification', 'AjaxPrefix',";
}
},
{
pattern: /}\).call\(this, AjaxPrefix\);/,
replacement: function() { return ''; }
}
]
use: {
loader: 'imports-loader',
options: {
AjaxPrefix:
'exports-loader?this.AjaxPrefix!../../../../common/static/coffee/src/ajax_prefix.coffee'
}
)
}
},
{
test: /\.(woff2?|ttf|svg|eot)(\?v=\d+\.\d+\.\d+)?$/,
......@@ -198,9 +158,8 @@ module.exports = {
},
resolve: {
extensions: ['.js', '.jsx', '.json'],
extensions: ['.js', '.jsx', '.json', '.coffee'],
alias: {
AjaxPrefix: 'ajax_prefix',
'edx-ui-toolkit': 'edx-ui-toolkit/src/', // @TODO: some paths in toolkit are not valid relative paths
'jquery.ui': 'jQuery-File-Upload/js/vendor/jquery.ui.widget.js',
jquery: 'jquery/src/jquery', // Use the non-dist form of jQuery for better debugging + optimization
......@@ -209,21 +168,13 @@ module.exports = {
// https://github.com/webpack/webpack/issues/304#issuecomment-272150177
// (I've tried every other suggestion solution on that page, this
// was the only one that worked.)
sinon: __dirname + '/node_modules/sinon/pkg/sinon.js',
'jquery.smoothScroll': 'jquery.smooth-scroll.min',
'jquery.timepicker': 'timepicker/jquery.timepicker',
datepair: 'timepicker/datepair',
accessibility: 'accessibility_tools',
ieshim: 'ie_shim'
sinon: __dirname + '/node_modules/sinon/pkg/sinon.js'
},
modules: [
'node_modules',
'cms/static',
'common/static',
'common/static/js/src',
'common/static/js/vendor/',
'common/static/js/vendor/jQuery-File-Upload/js/',
'common/static/coffee/src'
'cms/static',
'common/static/js/src'
]
},
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment