Commit 240fcc1d by Calen Pennington

Fix merge conflicts

parent cd862b32
......@@ -356,17 +356,6 @@ class ContentStoreToyCourseTest(ModuleStoreTestCase):
"""
Tests the ajax callback to render an XModule
"""
<<<<<<< HEAD
=======
resp = self._test_preview(Location('i4x', 'edX', 'toy', 'vertical', 'vertical_test', None), 'container_preview')
self.assertContains(resp, '/branch/draft/block/sample_video')
self.assertContains(resp, '/branch/draft/block/separate_file_video')
self.assertContains(resp, '/branch/draft/block/video_with_end_time')
self.assertContains(resp, '/branch/draft/block/T1_changemind_poll_foo_2')
def _test_preview(self, location, view_name):
""" Preview test case. """
>>>>>>> edx/master
direct_store = modulestore('direct')
_, course_items = import_from_xml(direct_store, 'common/test/data/', ['toy'])
usage_key = course_items[0].id.make_usage_key('vertical', 'vertical_test')
......
......@@ -196,15 +196,9 @@ def unit_handler(request, usage_key_string):
return render_to_response('unit.html', {
'context_course': course,
'unit': item,
<<<<<<< HEAD
'unit_locator': usage_key,
'xblocks': xblocks,
'component_templates': component_templates,
=======
'unit_locator': locator,
'locators': locators,
'unit_usage_key': usage_key,
'child_usage_keys': [block.scope_ids.usage_id for block in xblocks],
'component_templates': json.dumps(component_templates),
>>>>>>> edx/master
'draft_preview_link': preview_lms_link,
'published_preview_link': lms_link,
'subsection': containing_subsection,
......
......@@ -20,13 +20,8 @@ from xblock.fields import Scope
from xblock.fragment import Fragment
import xmodule
<<<<<<< HEAD
from xmodule.modulestore.django import modulestore
from xmodule.modulestore.exceptions import ItemNotFoundError, InvalidLocationError
=======
from xmodule.modulestore.django import modulestore, loc_mapper
from xmodule.modulestore.exceptions import ItemNotFoundError, InvalidLocationError, DuplicateItemError
>>>>>>> edx/master
from xmodule.modulestore.inheritance import own_metadata
from xmodule.video_module import manage_video_subtitles_save
......@@ -182,25 +177,15 @@ def xblock_view_handler(request, usage_key_string, view_name):
accept_header = request.META.get('HTTP_ACCEPT', 'application/json')
if 'application/json' in accept_header:
<<<<<<< HEAD
store = get_modulestore(usage_key)
component = store.get_item(usage_key)
is_read_only = _xblock_is_read_only(component)
# wrap the generated fragment in the xmodule_editor div so that the javascript
# can bind to it correctly
component.runtime.wrappers.append(partial(wrap_xblock, 'StudioRuntime', usage_id_serializer=unicode))
=======
store = get_modulestore(old_location)
xblock = store.get_item(old_location)
xblock = store.get_item(usage_key)
is_read_only = _is_xblock_read_only(xblock)
container_views = ['container_preview', 'reorderable_container_child_preview']
unit_views = ['student_view']
# wrap the generated fragment in the xmodule_editor div so that the javascript
# can bind to it correctly
xblock.runtime.wrappers.append(partial(wrap_xblock, 'StudioRuntime'))
>>>>>>> edx/master
xblock.runtime.wrappers.append(partial(wrap_xblock, 'StudioRuntime', usage_id_serializer=unicode))
if view_name == 'studio_view':
try:
......@@ -226,13 +211,8 @@ def xblock_view_handler(request, usage_key_string, view_name):
# which links to the new container page.
html = render_to_string('container_xblock_component.html', {
'xblock_context': context,
<<<<<<< HEAD
'xblock': component,
'locator': usage_key,
=======
'xblock': xblock,
'locator': locator,
>>>>>>> edx/master
'locator': usage_key,
})
return JsonResponse({
'html': html,
......
......@@ -27,12 +27,7 @@ from util.sandboxing import can_execute_unsafe_code
import static_replace
from .session_kv_store import SessionKeyValueStore
<<<<<<< HEAD
from .helpers import render_from_lms
=======
from .helpers import render_from_lms, xblock_has_own_studio_page
from ..utils import get_course_for_item
>>>>>>> edx/master
from contentstore.views.access import get_user_role
......@@ -175,13 +170,9 @@ def _studio_wrap_xblock(xblock, view, frag, context, display_name_only=False):
"""
# Only add the Studio wrapper when on the container page. The unit page will remain as is for now.
if context.get('container_view', None) and view == 'student_view':
<<<<<<< HEAD
=======
root_xblock = context.get('root_xblock')
is_root = root_xblock and xblock.location == root_xblock.location
locator = loc_mapper().translate_location(xblock.course_id, xblock.location, published=False)
is_reorderable = _is_xblock_reorderable(xblock, context)
>>>>>>> edx/master
template_context = {
'xblock_context': context,
'xblock': xblock,
......
"""
Unit tests for the container view.
"""
import json
from contentstore.tests.utils import CourseTestCase
from contentstore.utils import compute_publish_state, PublishState
from contentstore.views.helpers import xblock_studio_url
from xmodule.modulestore.django import modulestore
from xmodule.modulestore.tests.factories import ItemFactory
class ContainerViewTestCase(CourseTestCase):
"""
Unit tests for the container view.
"""
def setUp(self):
super(ContainerViewTestCase, self).setUp()
self.chapter = ItemFactory.create(parent_location=self.course.location,
category='chapter', display_name="Week 1")
self.sequential = ItemFactory.create(parent_location=self.chapter.location,
category='sequential', display_name="Lesson 1")
self.vertical = ItemFactory.create(parent_location=self.sequential.location,
category='vertical', display_name='Unit')
self.child_vertical = ItemFactory.create(parent_location=self.vertical.location,
category='vertical', display_name='Child Vertical')
self.video = ItemFactory.create(parent_location=self.child_vertical.location,
category="video", display_name="My Video")
def test_container_html(self):
self._test_html_content(
self.child_vertical,
expected_location_in_section_tag=self.child_vertical.location,
expected_breadcrumbs=(
r'<a href="/unit/{unit_location}"\s*'
r'class="navigation-link navigation-parent">Unit</a>\s*'
r'<a href="#" class="navigation-link navigation-current">Child Vertical</a>'
).format(unit_location=(unicode(self.vertical.location).replace("+", "\\+")))
)
def test_container_on_container_html(self):
"""
Create the scenario of an xblock with children (non-vertical) on the container page.
This should create a container page that is a child of another container page.
"""
published_xblock_with_child = ItemFactory.create(
parent_location=self.child_vertical.location,
category="wrapper", display_name="Wrapper"
)
ItemFactory.create(
parent_location=published_xblock_with_child.location,
category="html", display_name="Child HTML"
)
expected_breadcrumbs = (
r'<a href="/unit/{unit_location}"\s*'
r'class="navigation-link navigation-parent">Unit</a>\s*'
r'<a href="/container/{child_vertical_location}"\s*'
r'class="navigation-link navigation-parent">Child Vertical</a>\s*'
r'<a href="#" class="navigation-link navigation-current">Wrapper</a>'
).format(
unit_location=unicode(self.vertical.location).replace("+", "\\+"),
child_vertical_location=unicode(self.child_vertical.location).replace("+", "\\+"),
)
self._test_html_content(
published_xblock_with_child,
expected_location_in_section_tag=published_xblock_with_child.location,
expected_breadcrumbs=expected_breadcrumbs
)
# Now make the unit and its children into a draft and validate the container again
modulestore('draft').convert_to_draft(self.vertical.location)
modulestore('draft').convert_to_draft(self.child_vertical.location)
draft_xblock_with_child = modulestore('draft').convert_to_draft(published_xblock_with_child.location)
self._test_html_content(
draft_xblock_with_child,
expected_location_in_section_tag=draft_xblock_with_child.location,
expected_breadcrumbs=expected_breadcrumbs
)
def _test_html_content(self, xblock, expected_location_in_section_tag, expected_breadcrumbs):
"""
Get the HTML for a container page and verify the section tag is correct
and the breadcrumbs trail is correct.
"""
publish_state = compute_publish_state(xblock)
url = xblock_studio_url(xblock)
resp = self.client.get_html(url)
self.assertEqual(resp.status_code, 200)
html = resp.content
expected_section_tag = \
'<section class="wrapper-xblock level-page is-hidden" ' \
'data-locator="{child_location}" ' \
'data-course-key="{course_key}">'.format(
child_location=unicode(expected_location_in_section_tag),
course_key=unicode(expected_location_in_section_tag.course_key)
)
self.assertIn(expected_section_tag, html)
# Verify the navigation link at the top of the page is correct.
self.assertRegexpMatches(html, expected_breadcrumbs)
# Verify the link that allows users to change publish status.
if publish_state == PublishState.public:
expected_message = 'you need to edit unit <a href="/unit/{unit_location}">Unit</a> as a draft.'
else:
expected_message = 'your changes will be published with unit <a href="/unit/{unit_location}">Unit</a>.'
expected_unit_link = expected_message.format(
unit_location=unicode(self.vertical.location)
)
self.assertIn(expected_unit_link, html)
def test_container_preview_html(self):
"""
Verify that an xblock returns the expected HTML for a container preview
"""
# First verify that the behavior is correct with a published container
self._test_preview_html(self.vertical)
self._test_preview_html(self.child_vertical)
# Now make the unit and its children into a draft and validate the preview again
draft_unit = modulestore('draft').convert_to_draft(self.vertical.location)
draft_container = modulestore('draft').convert_to_draft(self.child_vertical.location)
self._test_preview_html(draft_unit)
self._test_preview_html(draft_container)
def _test_preview_html(self, xblock):
"""
Verify that the specified xblock has the expected HTML elements for container preview
"""
publish_state = compute_publish_state(xblock)
preview_url = '/xblock/{}/container_preview'.format(xblock.location)
resp = self.client.get(preview_url, HTTP_ACCEPT='application/json')
self.assertEqual(resp.status_code, 200)
resp_content = json.loads(resp.content)
html = resp_content['html']
# Verify that there are no drag handles for public pages
drag_handle_html = '<span data-tooltip="Drag to reorder" class="drag-handle action"></span>'
if publish_state == PublishState.public:
self.assertNotIn(drag_handle_html, html)
else:
self.assertIn(drag_handle_html, html)
......@@ -36,7 +36,7 @@ class ContainerPageTestCase(StudioPageTestCase):
branch_name=branch_name,
expected_section_tag=(
'<section class="wrapper-xblock level-page is-hidden studio-xblock-wrapper" '
'data-locator="{branch_name}/Split_Test">'.format(branch_name=branch_name)
'data-locator="{0}" data-course-key="{0.course_key}">'.format(self.child_container.location)
),
expected_breadcrumbs=(
r'<a href="/unit/{branch_name}/Unit"\s*'
......@@ -66,7 +66,7 @@ class ContainerPageTestCase(StudioPageTestCase):
branch_name=branch_name,
expected_section_tag=(
'<section class="wrapper-xblock level-page is-hidden studio-xblock-wrapper" '
'data-locator="{branch_name}/Wrapper">'.format(branch_name=branch_name)
'data-locator="{0}" data-course-key="{0.course_key}">'.format(published_container.location)
),
expected_breadcrumbs=(
r'<a href="/unit/{branch_name}/Unit"\s*'
......
......@@ -311,7 +311,7 @@ define(["jquery", "underscore", "js/spec_helpers/create_sinon", "js/spec_helpers
// verify content of request
request = lastRequest();
expect(request.url).toEqual("/xblock");
expect(request.url).toEqual("/xblock/");
expect(request.method).toEqual("POST");
expect(JSON.parse(request.requestBody)).toEqual(
JSON.parse(
......
<<<<<<< HEAD
define(["coffee/src/views/unit", "js/models/module_info", "js/spec_helpers/create_sinon", "js/views/feedback_notification",
"jasmine-stealth"],
function (UnitEditView, ModuleModel, create_sinon, NotificationView) {
var verifyJSON = function (requests, json) {
var request = requests[requests.length - 1];
expect(request.url).toEqual("/xblock/");
expect(request.method).toEqual("POST");
// There was a problem with order of returned parameters in strings.
// Changed to compare objects instead strings.
expect(JSON.parse(request.requestBody)).toEqual(JSON.parse(json));
=======
define(["jquery", "underscore", "jasmine", "coffee/src/views/unit", "js/models/module_info",
"js/spec_helpers/create_sinon", "js/spec_helpers/edit_helpers", "jasmine-stealth"],
function ($, _, jasmine, UnitEditView, ModuleModel, create_sinon, edit_helpers) {
......@@ -21,7 +9,6 @@ define(["jquery", "underscore", "jasmine", "coffee/src/views/unit", "js/models/m
{ html: html, "resources": [] },
requestIndex
);
>>>>>>> edx/master
};
initialize = function(test) {
......
......@@ -94,7 +94,7 @@ define(["jquery", "underscore", "js/spec_helpers/create_sinon", "js/spec_helpers
verifyXBlockRequest = function (requests, expectedJson) {
var request = requests[requests.length - 1],
actualJson = JSON.parse(request.requestBody);
expect(request.url).toEqual("/xblock");
expect(request.url).toEqual("/xblock/");
expect(request.method).toEqual("POST");
expect(actualJson).toEqual(expectedJson);
};
......
......@@ -11,16 +11,11 @@ define(["underscore"], function (_) {
var urlRoot = '/xblock';
var getUpdateUrl = function (locator) {
<<<<<<< HEAD
if (locator === undefined) {
return urlRoot + "/";
=======
if (_.isUndefined(locator)) {
return urlRoot;
>>>>>>> edx/master
return urlRoot + '/';
}
else {
return urlRoot + "/" + locator;
return urlRoot + '/' + locator;
}
};
return {
......@@ -28,4 +23,3 @@ define(["underscore"], function (_) {
getUpdateUrl: getUpdateUrl
};
});
......@@ -116,7 +116,7 @@ define(["jquery", "underscore", "gettext", "js/views/feedback_notification",
requestData = _.extend(template, {
parent_locator: parentLocator
});
return $.postJSON(this.getURLRoot(), requestData,
return $.postJSON(this.getURLRoot() + '/', requestData,
_.bind(this.onNewXBlock, this, placeholderElement, scrollOffset));
},
......@@ -135,7 +135,7 @@ define(["jquery", "underscore", "gettext", "js/views/feedback_notification",
duplicate_source_locator: xblockElement.data('locator'),
parent_locator: parentElement.data('locator')
};
return $.postJSON(self.getURLRoot(), requestData,
return $.postJSON(self.getURLRoot() + '/', requestData,
_.bind(self.onNewXBlock, self, placeholderElement, scrollOffset));
});
},
......
......@@ -83,11 +83,7 @@ main_xblock_info = {
<section class="content-area">
<article class="content-primary window">
<<<<<<< HEAD
<section class="wrapper-xblock level-page is-hidden" data-locator="${xblock_locator}" data-course-key="${xblock_locator.course_key}">
=======
<section class="wrapper-xblock level-page is-hidden studio-xblock-wrapper" data-locator="${xblock_locator}">
>>>>>>> edx/master
<section class="wrapper-xblock level-page is-hidden studio-xblock-wrapper" data-locator="${xblock_locator}" data-course-key="${xblock_locator.course_key}">
</section>
<div class="no-container-content is-hidden">
<p>${_("This page has no content yet.")}</p>
......
......@@ -5,11 +5,11 @@ from contentstore.views.helpers import xblock_studio_url
<%namespace name='static' file='static_content.html'/>
% if is_reorderable:
<li class="studio-xblock-wrapper is-draggable" data-locator="${locator}">
<li class="studio-xblock-wrapper is-draggable" data-locator="${xblock.location}">
% else:
<div class="studio-xblock-wrapper">
% endif
<section class="wrapper-xblock xblock-type-container level-element" data-locator="${locator}">
<section class="wrapper-xblock xblock-type-container level-element" data-locator="${xblock.location}">
<header class="xblock-header">
<div class="header-details">
${xblock.display_name_with_default}
......
<%! from django.utils.translation import ugettext as _ %>
<<<<<<< HEAD
% if xblock.location != xblock_context['root_xblock'].location:
<% section_class = "level-nesting" if xblock.has_children else "level-element" %>
<section class="wrapper-xblock ${section_class}" data-locator="${xblock.location}" data-display-name="${xblock.display_name_with_default | h}" data-category="${xblock.category | h}" data-course-key="${xblock.location.course_key}">
=======
% if not is_root:
% if is_reorderable:
<li class="studio-xblock-wrapper is-draggable" data-locator="${locator}">
<li class="studio-xblock-wrapper is-draggable" data-locator="${xblock.location}">
% else:
<div class="studio-xblock-wrapper" data-locator="${locator}">
<div class="studio-xblock-wrapper" data-locator="${xblock.location}">
% endif
<%
section_class = "level-nesting" if xblock.has_children else "level-element"
collapsible_class = "is-collapsible" if xblock.has_children else ""
%>
<section class="wrapper-xblock ${section_class} ${collapsible_class}">
>>>>>>> edx/master
<section class="wrapper-xblock ${section_class} ${collapsible_class}" data-course-key="${xblock.location.course_key}">
% endif
<header class="xblock-header">
......
......@@ -23,7 +23,7 @@ from django.utils.translation import ugettext as _
require(["domReady!", "jquery", "js/models/module_info", "coffee/src/views/unit", "js/collections/component_template",
"jquery.ui", "xmodule", "coffee/src/main", "xblock/cms.runtime.v1"],
function(doc, $, ModuleModel, UnitEditView, ComponentTemplates) {
window.unit_location_analytics = '${unit_locator}';
window.unit_location_analytics = '${unit_usage_key}';
var templates = new ComponentTemplates(${component_templates | n}, {parse: true});
......@@ -31,7 +31,7 @@ require(["domReady!", "jquery", "js/models/module_info", "coffee/src/views/unit"
el: $('.main-wrapper'),
view: 'unit',
model: new ModuleModel({
id: '${unit_locator}',
id: '${unit_usage_key}',
state: '${unit_state}'
}),
templates: templates
......@@ -46,7 +46,7 @@ require(["domReady!", "jquery", "js/models/module_info", "coffee/src/views/unit"
</%block>
<%block name="content">
<div class="main-wrapper edit-state-${unit_state}" data-locator="${unit_locator}" data-course-key="${unit_locator.course_key}">
<div class="main-wrapper edit-state-${unit_state}" data-locator="${unit_usage_key}" data-course-key="${unit_usage_key.course_key}">
<div class="inner-wrapper">
<div class="alert editing-draft-alert">
<p class="alert-message"><strong>${_("You are editing a draft.")}</strong>
......@@ -60,8 +60,8 @@ require(["domReady!", "jquery", "js/models/module_info", "coffee/src/views/unit"
<article class="unit-body window">
<p class="unit-name-input"><label for="unit-display-name-input">${_("Display Name:")}</label><input type="text" value="${unit.display_name_with_default | h}" id="unit-display-name-input" class="unit-display-name-input" /></p>
<ol class="components">
% for xblock in xblocks:
<li class="component" data-locator="${xblock.location}" data-course-key="${xblock.location.course_key}"/>
% for usage_key in child_usage_keys:
<li class="component" data-locator="${usage_key}" data-course-key="${usage_key.course_key}"/>
% endfor
</ol>
<div class="add-xblock-component new-component-item adding"></div>
......
......@@ -1856,29 +1856,3 @@ def change_email_settings(request):
track.views.server_track(request, "change-email-settings", {"receive_emails": "no", "course": course_id}, page='dashboard')
return JsonResponse({"success": True})
<<<<<<< HEAD
@login_required
def token(request):
'''
Return a token for the backend of annotations.
It uses the course id to retrieve a variable that contains the secret
token found in inheritance.py. It also contains information of when
the token was issued. This will be stored with the user along with
the id for identification purposes in the backend.
'''
course_id = SlashSeparatedCourseKey.from_deprecated_string(request.GET.get("course_id"))
course = course_from_id(course_id)
dtnow = datetime.datetime.now()
dtutcnow = datetime.datetime.utcnow()
delta = dtnow - dtutcnow
newhour, newmin = divmod((delta.days * 24 * 60 * 60 + delta.seconds + 30) // 60, 60)
newtime = "%s%+02d:%02d" % (dtnow.isoformat(), newhour, newmin)
secret = course.annotation_token_secret
custom_data = {"issuedAt": newtime, "consumerKey": secret, "userId": request.user.email, "ttl": 86400}
newtoken = create_token(secret, custom_data)
response = HttpResponse(newtoken, mimetype="text/plain")
return response
=======
>>>>>>> edx/master
......@@ -64,21 +64,12 @@
<section id="catchDIV">
<div class="annotationListContainer">${_('You do not have any notes.')}</div>
</section>
<<<<<<< HEAD
<script>
//Grab uri of the course
var parts = window.location.href.split("/"),
uri = '';
for (var index = 0; index <= 6; index += 1) uri += parts[index]+"/"; //Get the unit url
=======
<script>
//Grab uri of the course
var parts = window.location.href.split("/"),
uri = '';
for (var index = 0; index <= 6; index += 1) uri += parts[index]+"/"; //Get the unit url
>>>>>>> edx/master
var pagination = 100,
is_staff = false,
options = {
......@@ -177,11 +168,7 @@
},
},
auth: {
<<<<<<< HEAD
tokenUrl: location.protocol+'//'+location.host+"/token?course_id=${course.id.to_deprecated_string()}"
=======
token: "${token}"
>>>>>>> edx/master
},
store: {
// The endpoint of the store on your server.
......
......@@ -35,34 +35,6 @@ ${static.css(group='style-vendor-tinymce-skin', raw=True)}
<script>
<<<<<<< HEAD
function onClickHideInstructions(){
//Reset function if there is more than one event handler
$(this).off();
$(this).on('click',onClickHideInstructions);
var hide = $(this).html()=='Collapse Instructions'?true:false,
cls, txt,slideMethod;
txt = (hide ? 'Expand' : 'Collapse') + ' Instructions';
cls = (hide ? ['expanded', 'collapsed'] : ['collapsed', 'expanded']);
slideMethod = (hide ? 'slideUp' : 'slideDown');
$(this).text(txt).removeClass(cls[0]).addClass(cls[1]);
$(this).parents('.annotatable-section:first').find('.annotatable-instructions')[slideMethod]();
}
$('.annotatable-toggle-instructions').on('click', onClickHideInstructions);
//Grab uri of the course
var parts = window.location.href.split("/"),
uri = '';
for (var index = 0; index <= 9; index += 1) uri += parts[index]+"/"; //Get the unit url
//Change uri in cms
var lms_location = $('.sidebar .preview-button').attr('href');
if (typeof lms_location!='undefined'){
uri = window.location.protocol;
for (var index = 0; index <= 9; index += 1) uri += lms_location.split("/")[index]+"/"; //Get the unit url
}
var pagination = 100,
is_staff = !('${user.is_staff}'=='False'),
=======
function onClickHideInstructions(){
//Reset function if there is more than one event handler
$(this).off();
......@@ -91,7 +63,6 @@ ${static.css(group='style-vendor-tinymce-skin', raw=True)}
uri += unit_id;
var pagination = 100,
is_staff = !('${user.is_staff}'=='False'),
>>>>>>> edx/master
options = {
optionsAnnotator: {
permissions:{
......@@ -148,11 +119,7 @@ ${static.css(group='style-vendor-tinymce-skin', raw=True)}
},
},
auth: {
<<<<<<< HEAD
tokenUrl: location.protocol+'//'+location.host+"/token?course_id=${course_key.to_deprecated_string()}"
=======
token: "${token}"
>>>>>>> edx/master
},
store: {
// The endpoint of the store on your server.
......@@ -198,20 +165,11 @@ ${static.css(group='style-vendor-tinymce-skin', raw=True)}
}
},
};
<<<<<<< HEAD
var imgURLRoot = "${settings.STATIC_URL}" + "js/vendor/ova/catch/img/";
tinyMCE.baseURL = "${settings.STATIC_URL}" + "js/vendor/ova";
//remove old instances
=======
var imgURLRoot = "${settings.STATIC_URL}" + "js/vendor/ova/catch/img/";
tinymce.baseURL = "${settings.STATIC_URL}" + "js/vendor/tinymce/js/tinymce";
//remove old instances
>>>>>>> edx/master
if (Annotator._instances.length !== 0) {
$('#textHolder').annotator("destroy");
}
......@@ -219,10 +177,6 @@ ${static.css(group='style-vendor-tinymce-skin', raw=True)}
//Load the plugin Video/Text Annotation
var ova = new OpenVideoAnnotation.Annotator($('#textHolder'),options);
<<<<<<< HEAD
=======
>>>>>>> edx/master
//Catch
var annotator = ova.annotator,
catchOptions = {
......
......@@ -54,11 +54,7 @@ ${static.css(group='style-vendor-tinymce-skin', raw=True)}
$('.annotatable-toggle-instructions').on('click', onClickHideInstructions);
//Grab uri of the course
<<<<<<< HEAD
var parts = window.location.href.split("/"),
=======
var parts = window.location.href.split("/"),
>>>>>>> edx/master
uri = '';
for (var index = 0; index <= 9; index += 1) uri += parts[index]+"/"; //Get the unit url
//Change uri in cms
......@@ -67,12 +63,8 @@ ${static.css(group='style-vendor-tinymce-skin', raw=True)}
uri = window.location.protocol;
for (var index = 0; index <= 9; index += 1) uri += lms_location.split("/")[index]+"/"; //Get the unit url
}
<<<<<<< HEAD
=======
var unit_id = $('#sequence-list').find('.active').attr("data-element");
uri += unit_id;
>>>>>>> edx/master
var pagination = 100,
is_staff = !('${user.is_staff}'=='False'),
options = {
......@@ -131,11 +123,7 @@ ${static.css(group='style-vendor-tinymce-skin', raw=True)}
},
},
auth: {
<<<<<<< HEAD
tokenUrl: location.protocol+'//'+location.host+"/token?course_id=${course_key.to_deprecated_string()}"
=======
token: "${token}"
>>>>>>> edx/master
},
store: {
// The endpoint of the store on your server.
......@@ -180,11 +168,7 @@ ${static.css(group='style-vendor-tinymce-skin', raw=True)}
};
var imgURLRoot = "${settings.STATIC_URL}" + "js/vendor/ova/catch/img/";
<<<<<<< HEAD
tinyMCE.baseURL = "${settings.STATIC_URL}" + "js/vendor/ova";
=======
tinymce.baseURL = "${settings.STATIC_URL}" + "js/vendor/tinymce/js/tinymce";
>>>>>>> edx/master
//remove old instances
if (Annotator._instances.length !== 0) {
......@@ -196,11 +180,6 @@ ${static.css(group='style-vendor-tinymce-skin', raw=True)}
ova.annotator.addPlugin('Tags');
<<<<<<< HEAD
=======
>>>>>>> edx/master
//Catch
var annotator = ova.annotator,
catchOptions = {
......
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