Merge remote-tracking branch 'origin/dev' into dev

remotes/origin/hasaccess
Vitaly Baev 8 years ago
commit 68f2dd6812
  1. 2
      apps/course/views.py
  2. 7311
      web/build/css/app.css
  3. 2
      web/build/css/app.css.map
  4. 563
      web/build/js/app.js
  5. 1
      web/build/js/app.js.map

@ -78,7 +78,7 @@ def coursecomment(request, course_id):
course=course,
parent=_coursecomment,
)
ctx = {'node': coursecomment}
ctx = {'node': coursecomment, 'user': request.user}
html = loader.render_to_string('course/blocks/comment.html', ctx)
return JsonResponse({
'success': True,

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

@ -61,12 +61,11 @@ var app =
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 6);
/******/ return __webpack_require__(__webpack_require__.s = 4);
/******/ })
/************************************************************************/
/******/ ({
/***/ 0:
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@ -10437,8 +10436,7 @@ return jQuery;
/***/ }),
/***/ 1:
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@ -10458,8 +10456,181 @@ function assertString(input) {
module.exports = exports['default'];
/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var MOBILE_WIDTH = exports.MOBILE_WIDTH = 600;
/***/ 10:
/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = merge;
function merge() {
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var defaults = arguments[1];
for (var key in defaults) {
if (typeof obj[key] === 'undefined') {
obj[key] = defaults[key];
}
}
return obj;
}
module.exports = exports['default'];
/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
__webpack_require__(5);
__webpack_require__(6);
__webpack_require__(7);
__webpack_require__(8);
__webpack_require__(9);
__webpack_require__(15);
__webpack_require__(16);
__webpack_require__(17);
__webpack_require__(18);
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var _jquery = __webpack_require__(0);
var _jquery2 = _interopRequireDefault(_jquery);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _jquery2.default)(document).ready(function () {
// Добавляем заголовок X-CSRFToken для всех AJAX запросов JQuery.
_jquery2.default.ajaxSetup({
headers: {
'X-CSRFToken': (0, _jquery2.default)('meta[name="csrf-token"]').attr('content')
}
});
});
/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var _jquery = __webpack_require__(0);
var _jquery2 = _interopRequireDefault(_jquery);
var _constants = __webpack_require__(2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _jquery2.default)(document).ready(function () {
var header = (0, _jquery2.default)('.js-header'),
menu = header.find('.js-header-menu'),
wrap = header.find('.js-header-wrap'),
close = header.find('.js-header-close'),
section = header.find('.js-header-section'),
list = header.find('.js-header-list');
menu.on('click', function (e) {
if ((0, _jquery2.default)(window).width() < _constants.MOBILE_WIDTH) {
e.preventDefault();
wrap.addClass('visible');
}
});
close.on('click', function (e) {
if ((0, _jquery2.default)(window).width() < _constants.MOBILE_WIDTH) {
e.preventDefault();
wrap.removeClass('visible');
(0, _jquery2.default)(window).scrollTop(0);
}
});
section.on('click', function (e) {
if ((0, _jquery2.default)(window).width() < _constants.MOBILE_WIDTH) {
e.preventDefault();
var _this = (0, _jquery2.default)(this);
_this.toggleClass('open');
_this.next().slideToggle();
}
});
});
/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var _jquery = __webpack_require__(0);
var _jquery2 = _interopRequireDefault(_jquery);
var _constants = __webpack_require__(2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _jquery2.default)(document).ready(function () {
var search = (0, _jquery2.default)('.js-search'),
input = search.find('.js-search-input'),
btn = search.find('.js-search-btn');
btn.on('click', function (e) {
if ((0, _jquery2.default)(window).width() >= _constants.MOBILE_WIDTH) {
if (!search.hasClass('open')) {
e.preventDefault();
}
search.addClass('open');
setTimeout(function () {
input.focus();
}, 200);
}
});
search.on('click', function (e) {
e.stopPropagation();
});
(0, _jquery2.default)(document).on('click', function () {
search.removeClass('open');
input.val('');
});
});
/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@ -10481,8 +10652,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
});
/***/ }),
/***/ 11:
/* 9 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@ -10492,15 +10662,15 @@ var _jquery = __webpack_require__(0);
var _jquery2 = _interopRequireDefault(_jquery);
var _isEmail = __webpack_require__(12);
var _isEmail = __webpack_require__(10);
var _isEmail2 = _interopRequireDefault(_isEmail);
var _isEmpty = __webpack_require__(15);
var _isEmpty = __webpack_require__(13);
var _isEmpty2 = _interopRequireDefault(_isEmpty);
var _isLength = __webpack_require__(16);
var _isLength = __webpack_require__(14);
var _isLength2 = _interopRequireDefault(_isLength);
@ -10790,8 +10960,7 @@ function login_with_facebook(accessToken) {
}
/***/ }),
/***/ 12:
/* 10 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@ -10810,11 +10979,11 @@ var _merge = __webpack_require__(3);
var _merge2 = _interopRequireDefault(_merge);
var _isByteLength = __webpack_require__(13);
var _isByteLength = __webpack_require__(11);
var _isByteLength2 = _interopRequireDefault(_isByteLength);
var _isFQDN = __webpack_require__(14);
var _isFQDN = __webpack_require__(12);
var _isFQDN2 = _interopRequireDefault(_isFQDN);
@ -10886,8 +11055,7 @@ function isEmail(str, options) {
module.exports = exports['default'];
/***/ }),
/***/ 13:
/* 11 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@ -10905,7 +11073,7 @@ var _assertString = __webpack_require__(1);
var _assertString2 = _interopRequireDefault(_assertString);
exports.default = isByteLength;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* eslint-disable prefer-rest-params */
function isByteLength(str, options) {
@ -10926,8 +11094,7 @@ function isByteLength(str, options) {
module.exports = exports['default'];
/***/ }),
/***/ 14:
/* 12 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@ -10994,8 +11161,7 @@ function isFQDN(str, options) {
module.exports = exports['default'];
/***/ }),
/***/ 15:
/* 13 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@ -11019,135 +11185,14 @@ function isEmpty(str) {
module.exports = exports['default'];
/***/ }),
/***/ 150:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var _jquery = __webpack_require__(0);
var _jquery2 = _interopRequireDefault(_jquery);
option.removeClass('active');
_thisOption.addClass('active');
(0, _jquery2.default)(document).ready(function () {
// Обработчик отправки комментария. Нам не важно, комментарий к курсу или к уроку - URL берется из action формы
(0, _jquery2.default)('form.questions__form').on('submit', function (e) {
e.preventDefault();
var submitButton = (0, _jquery2.default)(this).find('button.questions__action');
var replyToInput = (0, _jquery2.default)(this).find('input[name=reply_id]');
var replyToValue = replyToInput.val() ? parseInt(replyToInput.val()) : 0;
var commentTextarea = (0, _jquery2.default)(this).find('textarea.questions__textarea');
commentTextarea.attr('disabled', 'disabled');
submitButton.attr('disabled', 'disabled');
_jquery2.default.ajax((0, _jquery2.default)(this).attr('action'), {
method: 'post',
data: {
reply_id: replyToValue,
comment: commentTextarea.val()
}
}).done(function (data) {
console.log(data);
if (data.success === true) {
if (replyToValue > 0) {
(0, _jquery2.default)('#question__' + replyToValue).after(data.comment);
} else {
(0, _jquery2.default)('.questions__list').append(data.comment);
}
commentTextarea.val('');
}
}).fail(function (xhr) {}).always(function () {
commentTextarea.removeAttr('disabled');
submitButton.removeAttr('disabled');
});
});
// Обработчик кнопки "Ответить"
(0, _jquery2.default)('.questions__list').on('click', 'button.question__reply-button', function () {
var replyId = (0, _jquery2.default)(this).attr('data-reply-id');
var form = (0, _jquery2.default)('form.questions__form');
form.find('input[name=reply_id]').val(replyId);
form.find('.questions__reply-anchor').attr('href', '#question__' + replyId);
form.find('.questions__reply-info').show();
});
// Обработчик отмены комментирования в ответ на комментарий
(0, _jquery2.default)('.questions__reply-cancel').on('click', function (e) {
e.preventDefault();
var form = (0, _jquery2.default)('form.questions__form');
form.find('input[name=reply_id]').val(0);
form.find('.questions__reply-info').hide();
});
});
/***/ }),
/***/ 16:
/* 14 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var _jquery = __webpack_require__(0);
var _jquery2 = _interopRequireDefault(_jquery);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _jquery2.default)(document).ready(function () {
var body = (0, _jquery2.default)('body'),
popup = void 0;
body.on('click', '[data-popup]', function (e) {
e.preventDefault();
e.stopPropagation();
var data = (0, _jquery2.default)(this).data('popup');
popup = (0, _jquery2.default)(data);
showPopup();
});
(0, _jquery2.default)('.js-popup-close').on('click', function (e) {
e.preventDefault();
hidePopup();
});
body.on('click', '.js-outer', function () {
if (popup !== undefined) {
hidePopup();
}
});
(0, _jquery2.default)('.js-popup-wrap').on('click', function (e) {
e.stopPropagation();
});
(0, _jquery2.default)(document).keyup(function (e) {
if (e.keyCode === 27) hidePopup();
});
function showPopup() {
body.addClass('no-scroll');
popup.addClass('open');
setTimeout(function () {
popup.addClass('visible');
}, 100);
}
function hidePopup() {
body.removeClass('no-scroll');
popup.removeClass('visible');
setTimeout(function () {
popup.removeClass('open');
}, 300);
}
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
@ -11156,17 +11201,7 @@ exports.default = isLength;
var _assertString = __webpack_require__(1);
var _jquery = __webpack_require__(0);
var _jquery2 = _interopRequireDefault(_jquery);
var _moment = __webpack_require__(28);
var _moment2 = _interopRequireDefault(_moment);
var _createBrowserHistory = __webpack_require__(21);
var _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);
var _assertString2 = _interopRequireDefault(_assertString);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@ -11187,10 +11222,10 @@ function isLength(str, options) {
var len = str.length - surrogatePairs.length;
return len >= min && (typeof max === 'undefined' || len <= max);
}
module.exports = exports['default'];
/***/ }),
/***/ 17:
/* 15 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@ -11246,8 +11281,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
});
/***/ }),
/***/ 18:
/* 16 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@ -11283,8 +11317,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
});
/***/ }),
/***/ 19:
/* 17 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@ -11346,95 +11379,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
});
/***/ }),
/***/ 2:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var MOBILE_WIDTH = exports.MOBILE_WIDTH = 600;
/***/ }),
/***/ 3:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = merge;
function merge() {
var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var defaults = arguments[1];
for (var key in defaults) {
if (typeof obj[key] === 'undefined') {
obj[key] = defaults[key];
}
}
return obj;
}
module.exports = exports['default'];
/***/ }),
/***/ 6:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
__webpack_require__(7);
__webpack_require__(8);
__webpack_require__(9);
__webpack_require__(10);
__webpack_require__(11);
__webpack_require__(17);
__webpack_require__(18);
__webpack_require__(19);
__webpack_require__(150);
/***/ }),
/***/ 7:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var _jquery = __webpack_require__(0);
var _jquery2 = _interopRequireDefault(_jquery);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _jquery2.default)(document).ready(function () {
// Добавляем заголовок X-CSRFToken для всех AJAX запросов JQuery.
_jquery2.default.ajaxSetup({
headers: {
'X-CSRFToken': (0, _jquery2.default)('meta[name="csrf-token"]').attr('content')
}
});
});
/***/ }),
/***/ 8:
/* 18 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
@ -11444,88 +11389,62 @@ var _jquery = __webpack_require__(0);
var _jquery2 = _interopRequireDefault(_jquery);
var _constants = __webpack_require__(2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(0, _jquery2.default)(document).ready(function () {
var header = (0, _jquery2.default)('.js-header'),
menu = header.find('.js-header-menu'),
wrap = header.find('.js-header-wrap'),
close = header.find('.js-header-close'),
section = header.find('.js-header-section'),
list = header.find('.js-header-list');
menu.on('click', function (e) {
if ((0, _jquery2.default)(window).width() < _constants.MOBILE_WIDTH) {
e.preventDefault();
wrap.addClass('visible');
}
});
close.on('click', function (e) {
if ((0, _jquery2.default)(window).width() < _constants.MOBILE_WIDTH) {
e.preventDefault();
wrap.removeClass('visible');
(0, _jquery2.default)(window).scrollTop(0);
}
});
section.on('click', function (e) {
if ((0, _jquery2.default)(window).width() < _constants.MOBILE_WIDTH) {
e.preventDefault();
var _this = (0, _jquery2.default)(this);
_this.toggleClass('open');
_this.next().slideToggle();
}
});
});
/***/ }),
/***/ 9:
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var _jquery = __webpack_require__(0);
var _jquery2 = _interopRequireDefault(_jquery);
var _constants = __webpack_require__(2);
// Обработчик отправки комментария. Нам не важно, комментарий к курсу или к уроку - URL берется из action формы
(0, _jquery2.default)('form.questions__form').on('submit', function (e) {
e.preventDefault();
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var submitButton = (0, _jquery2.default)(this).find('button.questions__action');
var replyToInput = (0, _jquery2.default)(this).find('input[name=reply_id]');
var replyToValue = replyToInput.val() ? parseInt(replyToInput.val()) : 0;
var commentTextarea = (0, _jquery2.default)(this).find('textarea.questions__textarea');
commentTextarea.attr('disabled', 'disabled');
submitButton.attr('disabled', 'disabled');
(0, _jquery2.default)(document).ready(function () {
var search = (0, _jquery2.default)('.js-search'),
input = search.find('.js-search-input'),
btn = search.find('.js-search-btn');
_jquery2.default.ajax((0, _jquery2.default)(this).attr('action'), {
method: 'post',
data: {
reply_id: replyToValue,
comment: commentTextarea.val()
}
}).done(function (data) {
console.log(data);
if (data.success === true) {
if (replyToValue > 0) {
(0, _jquery2.default)('#question__' + replyToValue).after(data.comment);
} else {
(0, _jquery2.default)('.questions__list').append(data.comment);
}
btn.on('click', function (e) {
if ((0, _jquery2.default)(window).width() >= _constants.MOBILE_WIDTH) {
if (!search.hasClass('open')) {
e.preventDefault();
commentTextarea.val('');
}
search.addClass('open');
setTimeout(function () {
input.focus();
}, 200);
}
}).fail(function (xhr) {}).always(function () {
commentTextarea.removeAttr('disabled');
submitButton.removeAttr('disabled');
});
});
search.on('click', function (e) {
e.stopPropagation();
// Обработчик кнопки "Ответить"
(0, _jquery2.default)('.questions__list').on('click', 'button.question__reply-button', function () {
var replyId = (0, _jquery2.default)(this).attr('data-reply-id');
var form = (0, _jquery2.default)('form.questions__form');
form.find('input[name=reply_id]').val(replyId);
form.find('.questions__reply-anchor').attr('href', '#question__' + replyId);
form.find('.questions__reply-info').show();
});
(0, _jquery2.default)(document).on('click', function () {
search.removeClass('open');
input.val('');
// Обработчик отмены комментирования в ответ на комментарий
(0, _jquery2.default)('.questions__reply-cancel').on('click', function (e) {
e.preventDefault();
var form = (0, _jquery2.default)('form.questions__form');
form.find('input[name=reply_id]').val(0);
form.find('.questions__reply-info').hide();
});
});
/***/ })
/******/ });
/******/ ]);
//# sourceMappingURL=app.js.map

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save