- SOL-465: Initial implementation of certificates web view and signatories (names/titles) - SOL-718 Close button is working properly - SOL-801 Backbone Signatories Modeling - SOL-803 Underscore template: Editor (Add) - SOL-802 Signatories: Underscore template - Details - SOL-804 Signatories: Underscore template: Editor (Edit) - Add signatory delete Django view - SOL-805 Signatory editor (Delete) - Add Coffeescript router - SOL-716 Jasmine Tests - Added missing minified JS library - client side validation of signatory fields - SOL-390 signatories names - Remove obsolete extends Sass files - input maxlength limiting for signatory information - SOL-389: Course title override - SOL-466: Add capability to upload digitized signatures in Studio - ziafazal: fixed css for upload signature image - ziafazal: completed deletion of signature images - UX-1741: Add initial static rendering/styling for Open edX web certs * creating new global static dir * adding static version of edX UX pattern library assets * adding web certificates static assets * adding static (+abstracted) web certificates rendering * creating two tiers of rendering (base + distinguished) * providing sample assets for certificate rendering * supporting RTL layouts * adding certifcates assests to edX static asset pipeline * temporarily hiding the mozilla open badges share action * wiring print button to print view/page * fixup! addressing conflict artifact in valid cert template * fixup! adding missing %hd-subsection sass extend + components comment clean up * fixup! correcting pattern library .hd-4 font-weight value - SOL-468 Linked Student View for Web View Credential - SOL-467: Add capability to upload organization logos for certificates - SOL-391 / SOL-387: Signatory related info (assets) in certificates web view - kelketek: Fixes for static asset collection in certificate HTML view. - SOL-398 Web View: Public Access - mattdrayer: Post-merge branch stabilization - catong: Initial changes to Studio template and Help config file - ziafazal: Branch stabilizations - SOL-387: Display organization logo on LMS web view - talbs/mattdrayer: Branch Stabilizations - talbs: converting backpack action to use a button HTML element - talbs: revising placeholder assets + their rendering in cert view - mattdrayer: Username web view wireup - SOL-386 Certificate Mode Previews - SOL-905: Make organization logo and signatory signature uneditable - SOL-922: Improve test coverage - SOL-765: Add LinkedIn sharing - [marco] temporary styling adjustment to account for smaller linkedin share image / fake button - SOL-921: Address hardcoded template items - SOL-927: Deleting certificate should delete org logo image also * updated invalid template * removed hr * fix invalid certificate error - clrux: Add i18n to certificate templates and partials - mattdrayer: Pylint violations - SOL-920 Certificate Activation/Deactivation - mattdrayer: Added LMS support - SOL-932: Fix preview mode support in certificate view - SOL-934: Fixed bug reported and broken tests - SOL-935 removed the 'valid' word from web view title - talbs: RTL support updates/fixes * revising certificate type icon/name vertical alignment * removing unused older certificate template * revising styling for message/banner actions * abstracting accomplishment type to use course mode + adding in honor/verified-specific placeholders - mattdrayer: JSHint violations
242 lines
12 KiB
HTML
242 lines
12 KiB
HTML
<%namespace name='static' file='../static_content.html'/>
|
|
<%!
|
|
from django.core.urlresolvers import reverse
|
|
from django.utils.translation import ugettext as _
|
|
from contentstore.context_processors import doc_url
|
|
from student.roles import CourseCreatorRole, CourseInstructorRole, CourseStaffRole
|
|
%>
|
|
<%page args="online_help_token"/>
|
|
|
|
<div class="wrapper-header wrapper" id="view-top">
|
|
<header class="primary" role="banner">
|
|
|
|
<div class="wrapper wrapper-l">
|
|
<h1 class="branding"><a href="/">
|
|
% if settings.FEATURES.get('IS_EDX_DOMAIN', False):
|
|
<img src="${static.url("images/edx-theme/edx-studio-logo.png")}" alt="${settings.STUDIO_NAME}" />
|
|
% else:
|
|
<img src="${static.url("images/default-theme/logo.png")}" alt="${settings.STUDIO_NAME}" />
|
|
% endif
|
|
</a></h1>
|
|
|
|
% if context_course:
|
|
<%
|
|
course_key = context_course.id
|
|
index_url = reverse('contentstore.views.course_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
checklists_url = reverse('contentstore.views.checklists_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
course_team_url = reverse('contentstore.views.course_team_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
assets_url = reverse('contentstore.views.assets_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
textbooks_url = reverse('contentstore.views.textbooks_list_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
videos_url = reverse('contentstore.views.videos_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
import_url = reverse('contentstore.views.import_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
course_info_url = reverse('contentstore.views.course_info_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
export_url = reverse('contentstore.views.export_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
settings_url = reverse('contentstore.views.settings_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
grading_url = reverse('contentstore.views.grading_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
advanced_settings_url = reverse('contentstore.views.advanced_settings_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
tabs_url = reverse('contentstore.views.tabs_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
certificates_url = reverse('contentstore.views.certificates.certificates_list_handler', kwargs={'course_key_string': unicode(course_key)})
|
|
%>
|
|
<h2 class="info-course">
|
|
<span class="sr">${_("Current Course:")}</span>
|
|
<a class="course-link" href="${index_url}">
|
|
<span class="course-org">${context_course.display_org_with_default | h}</span><span class="course-number">${context_course.display_number_with_default | h}</span>
|
|
<span class="course-title" title="${context_course.display_name_with_default}">${context_course.display_name_with_default}</span>
|
|
</a>
|
|
</h2>
|
|
|
|
<nav class="nav-course nav-dd ui-left" aria-label="${_('Course')}">
|
|
<h2 class="sr">${_("Course Navigation")}</h2>
|
|
<ol>
|
|
<li class="nav-item nav-course-courseware">
|
|
<h3 class="title"><span class="label"><span class="label-prefix sr">${_("Course")} </span>${_("Content")}</span> <i class="icon fa fa-caret-down ui-toggle-dd"></i></h3>
|
|
|
|
<div class="wrapper wrapper-nav-sub">
|
|
<div class="nav-sub">
|
|
<ul>
|
|
<li class="nav-item nav-course-courseware-outline">
|
|
<a href="${index_url}">${_("Outline")}</a>
|
|
</li>
|
|
<li class="nav-item nav-course-courseware-updates">
|
|
<a href="${course_info_url}">${_("Updates")}</a>
|
|
</li>
|
|
<li class="nav-item nav-course-courseware-pages">
|
|
<a href="${tabs_url}">${_("Pages")}</a>
|
|
</li>
|
|
<li class="nav-item nav-course-courseware-uploads">
|
|
<a href="${assets_url}">${_("Files & Uploads")}</a>
|
|
</li>
|
|
<li class="nav-item nav-course-courseware-textbooks">
|
|
<a href="${textbooks_url}">${_("Textbooks")}</a>
|
|
</li>
|
|
% if context_course.video_pipeline_configured:
|
|
<li class="nav-item nav-course-courseware-videos">
|
|
<a href="${videos_url}">${_("Video Uploads")}</a>
|
|
</li>
|
|
% endif
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
|
|
<li class="nav-item nav-course-settings">
|
|
<h3 class="title"><span class="label"><span class="label-prefix sr">${_("Course")} </span>${_("Settings")}</span> <i class="icon fa fa-caret-down ui-toggle-dd"></i></h3>
|
|
|
|
<div class="wrapper wrapper-nav-sub">
|
|
<div class="nav-sub">
|
|
<ul>
|
|
<li class="nav-item nav-course-settings-schedule">
|
|
<a href="${settings_url}">${_("Schedule & Details")}</a>
|
|
</li>
|
|
<li class="nav-item nav-course-settings-grading">
|
|
<a href="${grading_url}">${_("Grading")}</a>
|
|
</li>
|
|
<li class="nav-item nav-course-settings-team">
|
|
<a href="${course_team_url}">${_("Course Team")}</a>
|
|
</li>
|
|
<li class="nav-item nav-course-settings-group-configurations">
|
|
<a href="${reverse('contentstore.views.group_configurations_list_handler', kwargs={'course_key_string': unicode(course_key)})}">${_("Group Configurations")}</a>
|
|
</li>
|
|
<li class="nav-item nav-course-settings-advanced">
|
|
<a href="${advanced_settings_url}">${_("Advanced Settings")}</a>
|
|
</li>
|
|
% if settings.FEATURES.get('CERTIFICATES_HTML_VIEW', False) and \
|
|
(user.is_superuser or user.is_staff or \
|
|
CourseCreatorRole(course_key).has_user(user) or \
|
|
CourseInstructorRole(course_key).has_user(user) or \
|
|
CourseStaffRole(course_key).has_user(user)):
|
|
<li class="nav-item nav-course-settings-certificates">
|
|
<a href="${certificates_url}">${_("Certificates")}</a>
|
|
</li>
|
|
% endif
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
|
|
<li class="nav-item nav-course-tools">
|
|
<h3 class="title"><span class="label">${_("Tools")}</span> <i class="icon fa fa-caret-down ui-toggle-dd" aria-hidden="true"></i></h3>
|
|
<div class="wrapper wrapper-nav-sub">
|
|
<div class="nav-sub">
|
|
<ul>
|
|
<li class="nav-item nav-course-tools-checklists">
|
|
<a href="${checklists_url}">${_("Checklists")}</a>
|
|
</li>
|
|
<li class="nav-item nav-course-tools-import">
|
|
<a href="${import_url}">${_("Import")}</a>
|
|
</li>
|
|
<li class="nav-item nav-course-tools-export">
|
|
<a href="${export_url}">${_("Export")}</a>
|
|
</li>
|
|
% if settings.FEATURES.get('ENABLE_EXPORT_GIT') and context_course.giturl:
|
|
<li class="nav-item nav-course-tools-export-git">
|
|
<a href="${reverse('export_git', kwargs=dict(course_key_string=unicode(course_key)))}">${_("Export to Git")}</a>
|
|
</li>
|
|
% endif
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
</nav>
|
|
% elif context_library:
|
|
<%
|
|
library_key = context_library.location.course_key
|
|
index_url = reverse('contentstore.views.library_handler', kwargs={'library_key_string': unicode(library_key)})
|
|
import_url = reverse('contentstore.views.import_handler', kwargs={'course_key_string': unicode(library_key)})
|
|
lib_users_url = reverse('contentstore.views.manage_library_users', kwargs={'library_key_string': unicode(library_key)})
|
|
export_url = reverse('contentstore.views.export_handler', kwargs={'course_key_string': unicode(library_key)})
|
|
%>
|
|
<h2 class="info-course">
|
|
<span class="sr">${_("Current Library:")}</span>
|
|
<a class="course-link" href="${index_url}">
|
|
<span class="course-org">${context_library.display_org_with_default | h}</span><span class="course-number">${context_library.display_number_with_default | h}</span>
|
|
<span class="course-title" title="${context_library.display_name_with_default}">${context_library.display_name_with_default}</span>
|
|
</a>
|
|
</h2>
|
|
|
|
<nav class="nav-course nav-dd ui-left" aria-label="${_('Course')}">
|
|
<h2 class="sr">${_("Course Navigation")}</h2>
|
|
<ol>
|
|
|
|
<li class="nav-item nav-library-settings">
|
|
<h3 class="title"><span class="label"><span class="label-prefix sr">${_("Library")} </span>${_("Settings")}</span> <i class="icon fa fa-caret-down ui-toggle-dd"></i></h3>
|
|
<div class="wrapper wrapper-nav-sub">
|
|
<div class="nav-sub">
|
|
<ul>
|
|
<li class="nav-item nav-library-settings-team">
|
|
<a href="${lib_users_url}">${_("User Access")}</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
<li class="nav-item nav-course-tools">
|
|
<h3 class="title"><span class="label">${_("Tools")}</span> <i class="icon fa fa-caret-down ui-toggle-dd"></i></h3>
|
|
|
|
<div class="wrapper wrapper-nav-sub">
|
|
<div class="nav-sub">
|
|
<ul>
|
|
<li class="nav-item nav-course-tools-import">
|
|
<a href="${import_url}">${_("Import")}</a>
|
|
</li>
|
|
<li class="nav-item nav-course-tools-export">
|
|
<a href="${export_url}">${_("Export")}</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
</nav>
|
|
% endif
|
|
</div>
|
|
|
|
<div class="wrapper wrapper-r">
|
|
% if user.is_authenticated():
|
|
<nav class="nav-account nav-is-signedin nav-dd ui-right" aria-label="${_('Account')}">
|
|
<h2 class="sr">${_("Account Navigation")}</h2>
|
|
<ol>
|
|
<li class="nav-item nav-account-help">
|
|
<h3 class="title"><span class="label"><a href="${get_online_help_info(online_help_token)['doc_url']}" title="${_("Contextual Online Help")}" target="_blank">${_("Help")}</a></span></h3>
|
|
</li>
|
|
|
|
<li class="nav-item nav-account-user">
|
|
<h3 class="title"><span class="label"><span class="label-prefix sr">${_("Currently signed in as:")}</span><span class="account-username" title="${ user.username }">${ user.username }</span></span> <i class="icon fa fa-caret-down ui-toggle-dd"></i></h3>
|
|
|
|
<div class="wrapper wrapper-nav-sub">
|
|
<div class="nav-sub">
|
|
<ul>
|
|
<li class="nav-item nav-account-dashboard">
|
|
<a href="/">${_("{studio_name} Home").format(studio_name=settings.STUDIO_SHORT_NAME)}</a>
|
|
</li>
|
|
<li class="nav-item nav-account-signout">
|
|
<a class="action action-signout" href="${reverse('logout')}">${_("Sign Out")}</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
</ol>
|
|
</nav>
|
|
|
|
% else:
|
|
<nav class="nav-not-signedin nav-pitch" aria-label="${_('Account')}">
|
|
<h2 class="sr">${_("Account Navigation")}</h2>
|
|
<ol>
|
|
<li class="nav-item nav-not-signedin-help">
|
|
<a href="${get_online_help_info(online_help_token)['doc_url']}" title="${_("Contextual Online Help")}" target="_blank">${_("Help")}</a>
|
|
</li>
|
|
<li class="nav-item nav-not-signedin-signup">
|
|
<a class="action action-signup" href="${reverse('signup')}">${_("Sign Up")}</a>
|
|
</li>
|
|
<li class="nav-item nav-not-signedin-signin">
|
|
<a class="action action-signin" href="${reverse('login')}">${_("Sign In")}</a>
|
|
</li>
|
|
</ol>
|
|
</nav>
|
|
% endif
|
|
</div>
|
|
</header>
|
|
</div>
|