Merge branch 'release'
This commit is contained in:
@@ -5,6 +5,10 @@ These are notable changes in edx-platform. This is a rolling list of changes,
|
||||
in roughly chronological order, most recent first. Add your entries at or near
|
||||
the top. Include a label indicating the component affected.
|
||||
|
||||
LMS: Improved accessibility of parts of forum navigation sidebar.
|
||||
|
||||
LMS: enhanced accessibility labeling and aria support for the discussion forum new post dropdown as well as response and comment area labeling.
|
||||
|
||||
LMS: enhanced shib support, including detection of linked shib account
|
||||
at login page and support for the ?next= GET parameter.
|
||||
|
||||
|
||||
@@ -257,6 +257,7 @@ PIPELINE_JS = {
|
||||
'js/src/utility.js',
|
||||
'js/models/settings/course_grading_policy.js',
|
||||
'js/models/asset.js', 'js/models/assets.js',
|
||||
'js/views/assets.js',
|
||||
'js/views/assets_view.js', 'js/views/asset_view.js'],
|
||||
'output_filename': 'js/cms-application.js',
|
||||
'test_order': 0
|
||||
|
||||
90
cms/static/js/views/assets.js
Normal file
90
cms/static/js/views/assets.js
Normal file
@@ -0,0 +1,90 @@
|
||||
// This code is temporarily moved out of asset_index.html
|
||||
// to fix AWS pipelining issues. We can move it back after RequireJS is integrated.
|
||||
$(document).ready(function() {
|
||||
$('.uploads .upload-button').bind('click', showUploadModal);
|
||||
$('.upload-modal .close-button').bind('click', hideModal);
|
||||
$('.upload-modal .choose-file-button').bind('click', showFileSelectionMenu);
|
||||
});
|
||||
|
||||
var showUploadModal = function (e) {
|
||||
e.preventDefault();
|
||||
resetUploadModal();
|
||||
// $modal has to be global for hideModal to work.
|
||||
$modal = $('.upload-modal').show();
|
||||
$('.file-input').bind('change', startUpload);
|
||||
$('.upload-modal .file-chooser').fileupload({
|
||||
dataType: 'json',
|
||||
type: 'POST',
|
||||
maxChunkSize: 100 * 1000 * 1000, // 100 MB
|
||||
autoUpload: true,
|
||||
progressall: function(e, data) {
|
||||
var percentComplete = parseInt((100 * data.loaded) / data.total, 10);
|
||||
showUploadFeedback(e, percentComplete);
|
||||
},
|
||||
maxFileSize: 100 * 1000 * 1000, // 100 MB
|
||||
maxNumberofFiles: 100,
|
||||
add: function(e, data) {
|
||||
data.process().done(function () {
|
||||
data.submit();
|
||||
});
|
||||
},
|
||||
done: function(e, data) {
|
||||
displayFinishedUpload(data.result);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$modalCover.show();
|
||||
};
|
||||
|
||||
var showFileSelectionMenu = function(e) {
|
||||
e.preventDefault();
|
||||
$('.file-input').click();
|
||||
};
|
||||
|
||||
var startUpload = function (e) {
|
||||
var file = e.target.value;
|
||||
|
||||
$('.upload-modal h1').html(gettext('Uploading…'));
|
||||
$('.upload-modal .file-name').html(file.substring(file.lastIndexOf("\\") + 1));
|
||||
$('.upload-modal .choose-file-button').hide();
|
||||
$('.upload-modal .progress-bar').removeClass('loaded').show();
|
||||
};
|
||||
|
||||
var resetUploadModal = function () {
|
||||
$('.file-input').unbind('change', startUpload);
|
||||
|
||||
// Reset modal so it no longer displays information about previously
|
||||
// completed uploads.
|
||||
var percentVal = '0%';
|
||||
$('.upload-modal .progress-fill').width(percentVal);
|
||||
$('.upload-modal .progress-fill').html(percentVal);
|
||||
$('.upload-modal .progress-bar').hide();
|
||||
|
||||
$('.upload-modal .file-name').show();
|
||||
$('.upload-modal .file-name').html('');
|
||||
$('.upload-modal .choose-file-button').html(gettext('Choose File'));
|
||||
$('.upload-modal .embeddable-xml-input').val('');
|
||||
$('.upload-modal .embeddable').hide();
|
||||
};
|
||||
|
||||
var showUploadFeedback = function (event, percentComplete) {
|
||||
var percentVal = percentComplete + '%';
|
||||
$('.upload-modal .progress-fill').width(percentVal);
|
||||
$('.upload-modal .progress-fill').html(percentVal);
|
||||
};
|
||||
|
||||
var displayFinishedUpload = function (resp) {
|
||||
var asset = resp.asset;
|
||||
|
||||
$('.upload-modal h1').html(gettext('Upload New File'));
|
||||
$('.upload-modal .embeddable-xml-input').val(asset.portable_url);
|
||||
$('.upload-modal .embeddable').show();
|
||||
$('.upload-modal .file-name').hide();
|
||||
$('.upload-modal .progress-fill').html(resp.msg);
|
||||
$('.upload-modal .choose-file-button').html(gettext('Load Another File')).show();
|
||||
$('.upload-modal .progress-fill').width('100%');
|
||||
|
||||
// TODO remove setting on window object after RequireJS.
|
||||
window.assetsView.addAsset(new CMS.Models.Asset(asset));
|
||||
};
|
||||
@@ -20,96 +20,8 @@
|
||||
<script type="text/javascript">
|
||||
var assets = new CMS.Models.AssetCollection(${asset_list});
|
||||
assets.url = "${update_asset_callback_url}";
|
||||
var assetsView = new CMS.Views.Assets({collection: assets, el: $('#asset_table_body')});
|
||||
|
||||
$(document).ready(function() {
|
||||
$('.uploads .upload-button').bind('click', showUploadModal);
|
||||
$('.upload-modal .close-button').bind('click', hideModal);
|
||||
$('.upload-modal .choose-file-button').bind('click', showFileSelectionMenu);
|
||||
});
|
||||
|
||||
var showUploadModal = function (e) {
|
||||
e.preventDefault();
|
||||
resetUploadModal();
|
||||
// $modal has to be global for hideModal to work.
|
||||
$modal = $('.upload-modal').show();
|
||||
$('.file-input').bind('change', startUpload);
|
||||
$('.upload-modal .file-chooser').fileupload({
|
||||
dataType: 'json',
|
||||
type: 'POST',
|
||||
maxChunkSize: 100 * 1000 * 1000, // 100 MB
|
||||
autoUpload: true,
|
||||
progressall: function(e, data) {
|
||||
var percentComplete = parseInt((100 * data.loaded) / data.total, 10);
|
||||
showUploadFeedback(e, percentComplete);
|
||||
},
|
||||
maxFileSize: 100 * 1000 * 1000, // 100 MB
|
||||
maxNumberofFiles: 100,
|
||||
add: function(e, data) {
|
||||
data.process().done(function () {
|
||||
data.submit();
|
||||
});
|
||||
},
|
||||
done: function(e, data) {
|
||||
displayFinishedUpload(data.result);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$modalCover.show();
|
||||
};
|
||||
|
||||
var showFileSelectionMenu = function(e) {
|
||||
e.preventDefault();
|
||||
$('.file-input').click();
|
||||
};
|
||||
|
||||
var startUpload = function (e) {
|
||||
var file = e.target.value;
|
||||
|
||||
$('.upload-modal h1').html(gettext('Uploading…'));
|
||||
$('.upload-modal .file-name').html(file.substring(file.lastIndexOf("\\") + 1));
|
||||
$('.upload-modal .choose-file-button').hide();
|
||||
$('.upload-modal .progress-bar').removeClass('loaded').show();
|
||||
};
|
||||
|
||||
var resetUploadModal = function () {
|
||||
$('.file-input').unbind('change', startUpload);
|
||||
|
||||
// Reset modal so it no longer displays information about previously
|
||||
// completed uploads.
|
||||
var percentVal = '0%';
|
||||
$('.upload-modal .progress-fill').width(percentVal);
|
||||
$('.upload-modal .progress-fill').html(percentVal);
|
||||
$('.upload-modal .progress-bar').hide();
|
||||
|
||||
$('.upload-modal .file-name').show();
|
||||
$('.upload-modal .file-name').html('');
|
||||
$('.upload-modal .choose-file-button').html(gettext('Choose File'));
|
||||
$('.upload-modal .embeddable-xml-input').val('');
|
||||
$('.upload-modal .embeddable').hide();
|
||||
};
|
||||
|
||||
var showUploadFeedback = function (event, percentComplete) {
|
||||
var percentVal = percentComplete + '%';
|
||||
$('.upload-modal .progress-fill').width(percentVal);
|
||||
$('.upload-modal .progress-fill').html(percentVal);
|
||||
};
|
||||
|
||||
var displayFinishedUpload = function (resp) {
|
||||
var asset = resp.asset;
|
||||
|
||||
$('.upload-modal h1').html(gettext('Upload New File'));
|
||||
$('.upload-modal .embeddable-xml-input').val(asset.portable_url);
|
||||
$('.upload-modal .embeddable').show();
|
||||
$('.upload-modal .file-name').hide();
|
||||
$('.upload-modal .progress-fill').html(resp.msg);
|
||||
$('.upload-modal .choose-file-button').html(gettext('Load Another File')).show();
|
||||
$('.upload-modal .progress-fill').width('100%');
|
||||
|
||||
assetsView.addAsset(new CMS.Models.Asset(asset));
|
||||
};
|
||||
|
||||
// TODO remove setting on window object after RequireJS.
|
||||
window.assetsView = new CMS.Views.Assets({collection: assets, el: $('#asset_table_body')});
|
||||
</script>
|
||||
</%block>
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
<div class="component-edit-header">
|
||||
<span class="component-name"></span>
|
||||
<ul class="nav-edit-modes">
|
||||
<span class="help-text" style="color: #ddd;font-size:small;">${_("%%USER_ID%% in text expands, e.g. 2A6B...")}</span>
|
||||
<li id="editor-mode" class="mode active-mode" aria-controls="editor-tab" role="tab">
|
||||
<a href="#">${_("Editor")}</a>
|
||||
</li>
|
||||
|
||||
@@ -353,9 +353,13 @@ if Backbone?
|
||||
@loadMorePages(event)
|
||||
|
||||
sortThreads: (event) ->
|
||||
@$(".sort-bar a").removeClass("active")
|
||||
$(event.target).addClass("active")
|
||||
@sortBy = $(event.target).data("sort")
|
||||
activeSort = @$(".sort-bar a[class='active']")
|
||||
activeSort.removeClass("active")
|
||||
activeSort.attr("aria-checked", "false")
|
||||
newSort = $(event.target)
|
||||
newSort.addClass("active")
|
||||
newSort.attr("aria-checked", "true")
|
||||
@sortBy = newSort.data("sort")
|
||||
|
||||
@displayedCollection.comparator = switch @sortBy
|
||||
when 'date' then @displayedCollection.sortByDateRecentFirst
|
||||
|
||||
@@ -96,7 +96,7 @@ def course_wiki_redirect(request, course_id):
|
||||
root,
|
||||
course_slug,
|
||||
title=course_slug,
|
||||
content=cgi.escape("This is the wiki for **{0}**'s _{1}_.".format(course.display_org_with_default, course.display_name_with_default)),
|
||||
content=cgi.escape(u"This is the wiki for **{0}**'s _{1}_.".format(course.display_org_with_default, course.display_name_with_default)),
|
||||
user_message="Course page automatically created.",
|
||||
user=None,
|
||||
ip_address=None,
|
||||
|
||||
@@ -151,7 +151,7 @@ body.discussion {
|
||||
padding: $baseline*2;
|
||||
@include box-sizing(border-box);
|
||||
|
||||
label {
|
||||
.topic-dropdown-label {
|
||||
font-size: 22px;
|
||||
font-weight: 700;
|
||||
color: $white;
|
||||
@@ -221,6 +221,10 @@ body.discussion {
|
||||
&.focused {
|
||||
background-color: #666;
|
||||
}
|
||||
|
||||
.topic-menu-span {
|
||||
color: #eee;
|
||||
}
|
||||
}
|
||||
|
||||
li li {
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
|
||||
<div class="browse-topic-drop-menu-wrapper">
|
||||
<div class="browse-topic-drop-search">
|
||||
<input type="text" class="browse-topic-drop-search-input" placeholder="filter topics">
|
||||
<label class="sr" for="browse-topic">${_("Filter Topics")}</label>
|
||||
<input type="text" id="browse-topic" class="browse-topic-drop-search-input" placeholder="filter topics">
|
||||
</div>
|
||||
<ul class="browse-topic-drop-menu">
|
||||
<li>
|
||||
|
||||
@@ -35,7 +35,8 @@
|
||||
</div>
|
||||
<div class="right-column">
|
||||
<div class="form-row">
|
||||
<input type="text" class="new-post-title" name="title" placeholder="Title">
|
||||
<label class="sr" for="new-inline-post-title">${_("new post title")}</label>
|
||||
<input type="text" id="new-inline-post-title" class="new-post-title" name="title" placeholder="Title">
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="new-post-body" name="body" placeholder="Enter your question or comment…"></div>
|
||||
@@ -43,9 +44,10 @@
|
||||
</div>
|
||||
## TODO commenting out tags til we figure out what to do with them
|
||||
##<div class="form-row">
|
||||
## <input type="text" class="new-post-tags" name="tags" placeholder="Tags">
|
||||
## <label class="sr" for="new-inline-post-tags">${_("Add post tags")}</label>
|
||||
## <input type="text" id="new-inline-post-tags" class="new-post-tags" name="tags" placeholder="Tags">
|
||||
##</div>
|
||||
<input type="submit" class="submit" value="${_("Add post")}">
|
||||
<input type="submit" id="new-inline-post-submit" class="submit" value="${_("Add post")}">
|
||||
<a href="#" class="new-post-cancel">${_("Cancel")}</a>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -10,31 +10,30 @@
|
||||
</%def>
|
||||
|
||||
<%def name="render_entry(entries, entry)">
|
||||
<li><a href="#" class="topic" data-discussion_id="${entries[entry]['id']}" cohorted = "${entries[entry]['id'] in cohorted_commentables}">${entry}</a></li>
|
||||
<li role="menuitem"><a href="#" class="topic" data-discussion_id="${entries[entry]['id']}" aria-describedby="topic-name-span-${entries[entry]['id']}" cohorted = "${entries[entry]['id'] in cohorted_commentables}">${entry}</a></li>
|
||||
</%def>
|
||||
|
||||
<%def name="render_category(categories, category)">
|
||||
<li>
|
||||
<a href="#">${category}</a>
|
||||
<ul>
|
||||
<li role="menuitem">
|
||||
<a href="#"><span class="category-menu-span">${category}</span></a>
|
||||
<ul role="menu">
|
||||
${render_form_filter_dropdown(categories[category])}
|
||||
</ul>
|
||||
</li>
|
||||
</%def>
|
||||
|
||||
|
||||
<article class="new-post-article">
|
||||
<div class="inner-wrapper">
|
||||
<form class="new-post-form">
|
||||
<div class="left-column">
|
||||
<label>${_("Create new post about:")}</label>
|
||||
<span class="topic-dropdown-label" id="topic-dropdown-label">${_("Create new post about:")}</span>
|
||||
<div class="form-topic-drop">
|
||||
<a href="#" class="topic_dropdown_button">${_("Show All Discussions")}<span class="drop-arrow">▾</span></a>
|
||||
<a href="#" aria-labelledby="topic-dropdown-label" class="topic_dropdown_button">${_("Show All Discussions")}<span class="drop-arrow" aria-hidden="true">▾</span></a>
|
||||
<div class="topic_menu_wrapper">
|
||||
<div class="topic_menu_search">
|
||||
<input type="text" class="form-topic-drop-search-input" placeholder="filter topics">
|
||||
<div class="topic_menu_search" role="menu">
|
||||
<label class="sr" for="browse-topic-newpost">${_("Filter List")}</label>
|
||||
<input type="text" id="browse-topic-newpost" class="form-topic-drop-search-input" placeholder="Filter discussion areas">
|
||||
</div>
|
||||
<ul class="topic_menu">
|
||||
<ul class="topic_menu" role="menu">
|
||||
${render_form_filter_dropdown(category_map)}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -67,7 +66,8 @@
|
||||
<div class="right-column">
|
||||
<ul class="new-post-form-errors"></ul>
|
||||
<div class="form-row">
|
||||
<input type="text" class="new-post-title" name="title" placeholder="Title">
|
||||
<label class="sr" for="new-post-title">${_("new post title")}</label>
|
||||
<input type="text" id="new-post-title" class="new-post-title" name="title" placeholder="Title">
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="new-post-body" name="body" placeholder="Enter your question or comment…"></div>
|
||||
@@ -75,9 +75,10 @@
|
||||
</div>
|
||||
## TODO tags commenting out til we figure out what to do w/ tags
|
||||
##<div class="form-row">
|
||||
## <input type="text" class="new-post-tags" name="tags" placeholder="Tags">
|
||||
## <label class="sr" for="new-post-tags">${_("Add post tags")}</label>
|
||||
## <input type="text" id="new-post-tags" class="new-post-tags" name="tags" placeholder="Tags">
|
||||
##</div>
|
||||
<input type="submit" class="submit" value="${_("Add post")}">
|
||||
<input type="submit" id="new-post-submit" class="submit" value="${_("Add post")}">
|
||||
<a href="#" class="new-post-cancel">${_("Cancel")}</a>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<div class="group-visibility-label">${_("This post visible only to group {group}.").format(group=cohort_dictionary[thread['group_id']])} </div>
|
||||
%endif
|
||||
|
||||
<a href="#" class="vote-btn discussion-vote discussion-vote-up"><span class="plus-icon">+</span> <span class='votes-count-number'>${thread['votes']['up_count']}</span></a>
|
||||
<a href="#" class="vote-btn discussion-vote discussion-vote-up"><span class="plus-icon">+</span> <span class='votes-count-number'>${thread['votes']['up_count']}<span class="sr">votes (click to vote)</span></span></a>
|
||||
<h1>${thread['title']}</h1>
|
||||
<p class="posted-details">
|
||||
<span class="timeago" title="${thread['created_at'] | h}">sometime</span> by
|
||||
|
||||
@@ -12,21 +12,26 @@
|
||||
<i class="icon icon-reorder"></i>
|
||||
<span class="sr">${_("Discussion Topics")}</span>
|
||||
</a>
|
||||
<a href="#" class="browse-topic-drop-btn"><span class="current-board">${_("Show All Discussions")}</span> <span class="drop-arrow">▾</span></a>
|
||||
<a href="#" class="browse-topic-drop-btn" aria-haspopup="true" aria-owns="browse-topic-drop-menu">
|
||||
<span class="sr">${_("Discussion topics; current selection is: ")}</span>
|
||||
<span class="current-board">${_("Show All Discussions")}</span>
|
||||
<span class="drop-arrow" aria-hidden="true">▾</span>
|
||||
</a>
|
||||
</div>
|
||||
<%include file="_filter_dropdown.html" />
|
||||
<div class="search">
|
||||
<form class="post-search">
|
||||
<input type="text" placeholder="Search all discussions" class="post-search-field">
|
||||
<label class="sr" for="search-discussions">Search</label>
|
||||
<input type="text" id="search-discussions" placeholder="Search all discussions" class="post-search-field">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sort-bar">
|
||||
<span class="sort-label">${_("Sort by:")}</span>
|
||||
<ul>
|
||||
<li><a href="#" class="active" data-sort="date">${_("date")}</a></li>
|
||||
<li><a href="#" data-sort="votes">${_("votes")}</a></li>
|
||||
<li><a href="#" data-sort="comments">${_("comments")}</a></li>
|
||||
<span class="sort-label" id="sort-label">${_("Sort by:")}</span>
|
||||
<ul role="radiogroup" aria-labelledby="sort-label">
|
||||
<li><a href="#" role="radio" aria-checked="true" class="active" data-sort="date">${_("date")}</a></li>
|
||||
<li><a href="#" role="radio" aria-checked="false" data-sort="votes">${_("votes")}</a></li>
|
||||
<li><a href="#" role="radio" aria-checked="false" data-sort="comments">${_("comments")}</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
${"<% } %>"}
|
||||
|
||||
<a href="#" class="vote-btn discussion-vote discussion-vote-up" data-role="discussion-vote" data-tooltip="vote">
|
||||
<span class="plus-icon">+</span> <span class='votes-count-number'>${'<%- votes["up_count"] %>'}</span></a>
|
||||
<span class="plus-icon">+</span> <span class='votes-count-number'>${'<%- votes["up_count"] %>'}<span class="sr">votes (click to vote)</span></span></a>
|
||||
<h1>${'<%- title %>'}</h1>
|
||||
<p class="posted-details">
|
||||
${"<% if (obj.username) { %>"}
|
||||
@@ -83,7 +83,8 @@
|
||||
<h1>${_("Editing post")}</h1>
|
||||
<ul class="edit-post-form-errors"></ul>
|
||||
<div class="form-row">
|
||||
<input type="text" class="edit-post-title" name="title" value="${"<%-title %>"}" placeholder="Title">
|
||||
<label class="sr" for="edit-post-title">${_("Edit post title")}</label>
|
||||
<input type="text" id="edit-post-title" class="edit-post-title" name="title" value="${"<%-title %>"}" placeholder="Title">
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<div class="edit-post-body" name="body">${"<%- body %>"}</div>
|
||||
@@ -91,9 +92,10 @@
|
||||
## TODO tags
|
||||
## Until we decide what to do with tags, commenting them out.
|
||||
##<div class="form-row">
|
||||
## <input type="text" class="edit-post-tags" name="tags" placeholder="Tags" value="${"<%- tags %>"}">
|
||||
## <label class="sr" for="edit-post-tags">${_("Edit post tags")}</label>
|
||||
## <input type="text" id="edit-post-tags" class="edit-post-tags" name="tags" placeholder="Tags" value="${"<%- tags %>"}">
|
||||
##</div>
|
||||
<input type="submit" class="post-update" value="${_("Update post")}">
|
||||
<input type="submit" id="edit-post-submit" class="post-update" value="${_("Update post")}">
|
||||
<a href="#" class="post-cancel">${_("Cancel")}</a>
|
||||
</div>
|
||||
</script>
|
||||
@@ -105,7 +107,8 @@
|
||||
% if course is UNDEFINED or has_permission(user, 'create_sub_comment', course.id):
|
||||
<form class="comment-form" data-id="${'<%- wmdId %>'}">
|
||||
<ul class="discussion-errors"></ul>
|
||||
<div class="comment-body" data-id="${'<%- wmdId %>'}"
|
||||
<label class="sr" for="add-new-comment">${_("Add a comment")}</label>
|
||||
<div class="comment-body" id="add-new-comment" data-id="${'<%- wmdId %>'}"
|
||||
data-placeholder="Add a comment..."></div>
|
||||
<div class="comment-post-control">
|
||||
<a class="discussion-submit-comment control-button" href="#">${_("Submit")}</a>
|
||||
@@ -118,7 +121,7 @@
|
||||
|
||||
<script type="text/template" id="thread-response-show-template">
|
||||
<header class="response-local">
|
||||
<a href="javascript:void(0)" class="vote-btn" data-tooltip="vote"><span class="plus-icon"></span><span class="votes-count-number">${"<%- votes['up_count'] %>"}</span></a>
|
||||
<a href="javascript:void(0)" class="vote-btn" data-tooltip="vote"><span class="plus-icon"></span><span class="votes-count-number">${"<%- votes['up_count'] %>"}<span class="sr">votes (click to vote)</span></span></a>
|
||||
<a href="javascript:void(0)" class="endorse-btn${'<% if (endorsed) { %> is-endorsed<% } %>'} action-endorse" style="cursor: default; display: none;" data-tooltip="endorse"><span class="check-icon" style="pointer-events: none; "></span></a>
|
||||
${"<% if (obj.username) { %>"}
|
||||
<a href="${'<%- user_url %>'}" class="posted-by">${'<%- username %>'}</a>
|
||||
@@ -143,7 +146,7 @@
|
||||
<div class="form-row">
|
||||
<div class="edit-post-body" name="body">${"<%- body %>"}</div>
|
||||
</div>
|
||||
<input type="submit" class="post-update" value="${_("Update response")}">
|
||||
<input type="submit" id="edit-response-submit"class="post-update" value="${_("Update response")}">
|
||||
<a href="#" class="post-cancel">${_("Cancel")}</a>
|
||||
</div>
|
||||
</script>
|
||||
@@ -165,11 +168,11 @@
|
||||
<a href="${'<%- id %>'}" data-id="${'<%- id %>'}">
|
||||
<span class="title">${"<%- title %>"}</span>
|
||||
${"<% if (unread_comments_count > 0) { %>"}
|
||||
<span class="comments-count unread" data-tooltip="${"<%- unread_comments_count %>"} new comment${"<%- unread_comments_count > 1 ? 's' : '' %>"}">${"<%- comments_count %>"}</span>
|
||||
<span class="comments-count unread" data-tooltip="${"<%- unread_comments_count %>"} new comment${"<%- unread_comments_count > 1 ? 's' : '' %>"}">${"<%- comments_count %>"} <span class="sr">comments (${"<%- unread_comments_count %>"} unread comments)</span></span>
|
||||
${"<% } else { %>"}
|
||||
<span class="comments-count">${"<%- comments_count %>"}</span>
|
||||
<span class="comments-count">${"<%- comments_count %>"}<span class="sr">comments</span></span>
|
||||
${"<% } %>"}
|
||||
<span class="votes-count">+${"<%- votes['up_count'] %>"}</span>
|
||||
<span class="votes-count">+${"<%- votes['up_count'] %>"}<span class="sr">votes</span></span>
|
||||
</a>
|
||||
</script>
|
||||
<script type="text/template" id="discussion-home">
|
||||
@@ -216,7 +219,8 @@
|
||||
<tr class="helpgrid-row helpgrid-row-notification">
|
||||
<td class="row-title">Receive updates</td>
|
||||
<td class="row-item-full" colspan="3">
|
||||
<input type="checkbox" class="email-setting" name="email-notification"></input>
|
||||
<label class="sr" for="email-setting-checkbox">${_("Toggle Notifications Setting")}</label>
|
||||
<input type="checkbox" id="email-setting-checkbox" class="email-setting" name="email-notification"/>
|
||||
<i class="icon icon-envelope"></i>
|
||||
<span class="row-description"> If enabled, you will receive an email digest once a day notifying you about new, unread activity from posts you are following. </span>
|
||||
</td>
|
||||
|
||||
@@ -3,7 +3,7 @@ CONTENT MUSTACHE
|
||||
<div class="discussion-content-wrapper">
|
||||
<div class="discussion-votes">
|
||||
<a class="discussion-vote discussion-vote-up" href="javascript:void(0)" value="up">▲</a>
|
||||
<div class="discussion-votes-point">{{content.votes.point}}</div>
|
||||
<div class="discussion-votes-point">{{content.votes.point}}<span class="sr">votes (click to vote)</span></div>
|
||||
<a class="discussion-vote discussion-vote-down" href="javascript:void(0)" value="down">▼</a>
|
||||
</div>
|
||||
<div class="discussion-right-wrapper">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="discussion-post local">
|
||||
<div><a href="javascript:void(0)" class="dogear action-follow" data-tooltip="follow"></a></div>
|
||||
<header>
|
||||
<a href="#" class="vote-btn discussion-vote discussion-vote-up" data-role="discussion-vote" data-tooltip="vote"><span class="plus-icon">+</span> <span class='votes-count-number'>{{votes.up_count}}</span></a>
|
||||
<a href="#" class="vote-btn discussion-vote discussion-vote-up" data-role="discussion-vote" data-tooltip="vote"><span class="plus-icon">+</span> <span class='votes-count-number'>{{votes.up_count}}</span><span class="sr">votes (click to vote)</span></a>
|
||||
<h3>{{title}}</h3>
|
||||
<div class="discussion-flag-abuse notflagged" data-role="thread-flag" data-tooltip="Report Misuse">
|
||||
<i class="icon icon-flag"></i><span class="flag-label">Flagged</span></div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="local"><a href="javascript:void(0)" class="dogear action-follow"></a></div>
|
||||
<div class="discussion-post local">
|
||||
<header>
|
||||
<a href="#" class="vote-btn discussion-vote discussion-vote-up" data-role="discussion-vote"><span class="plus-icon">+</span> <span class='votes-count-number'>{{votes.up_count}}</span></a>
|
||||
<a href="#" class="vote-btn discussion-vote discussion-vote-up" data-role="discussion-vote"><span class="plus-icon">+</span> <span class='votes-count-number'>{{votes.up_count}}</span><span class="sr">votes (click to vote)</span></a>
|
||||
<h3>{{title}}</h3>
|
||||
<p class="posted-details">
|
||||
{{#user}}
|
||||
|
||||
Reference in New Issue
Block a user