mirror of
https://github.com/moodle/moodle.git
synced 2025-04-22 08:55:15 +02:00
MDL-67654 mod_forum: formchangechecker for discussion inline replies.
This commit is contained in:
parent
46f977a8bf
commit
bdfe918b13
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
mod/forum/amd/build/inpage_reply.min.js
vendored
2
mod/forum/amd/build/inpage_reply.min.js
vendored
@ -1,2 +1,2 @@
|
||||
define ("mod_forum/inpage_reply",["jquery","core/templates","core/notification","mod_forum/repository","mod_forum/selectors"],function(a,b,c,d,f){var g={NESTED_V2:4,THREADED:2,NESTED:3,FLAT_OLDEST_FIRST:1,FLAT_NEWEST_FIRST:-1},h={POST_CREATED:"mod_forum-post-created"},i={MOODLE:0},j=function(a){var b=a.find(f.post.inpageSubmitBtnText),c=a.find(f.post.loadingIconContainer),d=a.outerWidth();a.css("width",d);b.addClass("hidden");c.removeClass("hidden")},k=function(a){var b=a.find(f.post.inpageSubmitBtnText),c=a.find(f.post.loadingIconContainer);a.css("width","");b.removeClass("hidden");c.addClass("hidden")},l=function(l){l.on("click",f.post.inpageSubmitBtn,function(m){m.preventDefault();var e=a(m.currentTarget),n=e.parent().find(f.post.inpageReplyButton),o=e.parents(f.post.inpageReplyForm).get(0),p=o.elements.post.value.trim(),q=i.MOODLE,r=o.elements.reply.value,s=o.elements.subject.value,t=e.closest(f.post.post),u=o.elements.privatereply!=void 0?o.elements.privatereply.checked:!1,v=l.find(f.post.modeSelect),w=v.length?parseInt(v.get(0).value):null,x;if(p.length){j(e);n.prop("disabled",!0);d.addDiscussionPost(r,s,p,q,u,!0).then(function(a){var b=a.messages.reduce(function(a,b){if("success"==b.type){a+="<p>"+b.message+"</p>"}return a},"");c.addNotification({message:b,type:"success"});return a}).then(function(a){o.reset();var c=a.post;x=c.id;switch(w){case g.NESTED_V2:var d=c.capabilities,e=t.children().not(f.post.repliesContainer).find(f.post.authorName).text();c.parentauthorname=e;c.showactionmenu=d.view||d.controlreadstatus||d.edit||d.split||d.delete||d.export||c.urls.viewparent;return b.render("mod_forum/forum_discussion_nested_v2_post_reply",c);case g.THREADED:return b.render("mod_forum/forum_discussion_threaded_post",c);case g.NESTED:return b.render("mod_forum/forum_discussion_nested_post",c);default:return b.render("mod_forum/forum_discussion_post",c);}}).then(function(a,c){var d=t.find(f.post.repliesContainer).first();if(w==g.FLAT_NEWEST_FIRST){return b.prependNodeContents(d,a,c)}else{return b.appendNodeContents(d,a,c)}}).then(function(){e.trigger(h.POST_CREATED,x);k(e);n.prop("disabled",!1);return t.find(f.post.inpageReplyContent).hide()}).then(function(){location.href="#p"+x}).catch(function(a){k(e);n.prop("disabled",!1);return c.exception(a)})}})};return{init:function init(a){l(a)},CONTENT_FORMATS:i,EVENTS:h}});
|
||||
define ("mod_forum/inpage_reply",["jquery","core/templates","core/notification","mod_forum/repository","mod_forum/selectors"],function(a,b,c,d,f){var g={NESTED_V2:4,THREADED:2,NESTED:3,FLAT_OLDEST_FIRST:1,FLAT_NEWEST_FIRST:-1},h={POST_CREATED:"mod_forum-post-created"},i={MOODLE:0},j=function(a){var b=a.find(f.post.inpageSubmitBtnText),c=a.find(f.post.loadingIconContainer),d=a.outerWidth();a.css("width",d);b.addClass("hidden");c.removeClass("hidden")},k=function(a){var b=a.find(f.post.inpageSubmitBtnText),c=a.find(f.post.loadingIconContainer);a.css("width","");b.removeClass("hidden");c.addClass("hidden")},l=function(l){l.on("click",f.post.inpageSubmitBtn,function(m){m.preventDefault();var e=a(m.currentTarget),n=e.parent().find(f.post.inpageReplyButton),o=e.parents(f.post.inpageReplyForm).get(0),p=o.elements.post.value.trim(),q=i.MOODLE,r=o.elements.reply.value,s=o.elements.subject.value,t=e.closest(f.post.post),u=o.elements.privatereply!=void 0?o.elements.privatereply.checked:!1,v=l.find(f.post.modeSelect),w=v.length?parseInt(v.get(0).value):null,x;if(p.length){j(e);n.prop("disabled",!0);d.addDiscussionPost(r,s,p,q,u,!0).then(function(a){var b=a.messages.reduce(function(a,b){if("success"==b.type){a+="<p>"+b.message+"</p>"}return a},"");c.addNotification({message:b,type:"success"});return a}).then(function(a){o.reset();var c=a.post;x=c.id;switch(w){case g.NESTED_V2:var d=c.capabilities,e=t.children().not(f.post.repliesContainer).find(f.post.authorName).text();c.parentauthorname=e;c.showactionmenu=d.view||d.controlreadstatus||d.edit||d.split||d.delete||d.export||c.urls.viewparent;return b.render("mod_forum/forum_discussion_nested_v2_post_reply",c);case g.THREADED:return b.render("mod_forum/forum_discussion_threaded_post",c);case g.NESTED:return b.render("mod_forum/forum_discussion_nested_post",c);default:return b.render("mod_forum/forum_discussion_post",c);}}).then(function(a,c){var d=t.find(f.post.repliesContainer).first();if(w==g.FLAT_NEWEST_FIRST){return b.prependNodeContents(d,a,c)}else{return b.appendNodeContents(d,a,c)}}).then(function(){e.trigger(h.POST_CREATED,x);k(e);n.prop("disabled",!1);if("undefined"!=typeof M.core_formchangechecker){M.core_formchangechecker.reset_form_dirty_state()}return t.find(f.post.inpageReplyContent).hide()}).then(function(){location.href="#p"+x}).catch(function(a){k(e);n.prop("disabled",!1);return c.exception(a)})}})};return{init:function init(a){l(a)},CONTENT_FORMATS:i,EVENTS:h}});
|
||||
//# sourceMappingURL=inpage_reply.min.js.map
|
||||
|
File diff suppressed because one or more lines are too long
2
mod/forum/amd/build/posts_list.min.js
vendored
2
mod/forum/amd/build/posts_list.min.js
vendored
@ -1,2 +1,2 @@
|
||||
define ("mod_forum/posts_list",["jquery","core/templates","core/notification","core/pending","mod_forum/selectors","mod_forum/inpage_reply"],function(a,b,c,d,f,g){var h=function(e){e.on("click",f.post.inpageReplyLink,function(h){h.preventDefault();if(window.location.hash){var e=window.location.href.split("#")[0];history.pushState({},document.title,e)}var i=new d("inpage-reply"),j=a(h.currentTarget).parents(f.post.forumCoreContent),k=j.find(f.post.forumSubject),l=a(h.currentTarget).parents(f.post.forumContent),m={postid:a(l).data("post-id"),reply_url:a(h.currentTarget).attr("href"),sesskey:M.cfg.sesskey,parentsubject:k.data("replySubject"),canreplyprivately:a(h.currentTarget).data("can-reply-privately"),postformat:g.CONTENT_FORMATS.MOODLE};if(!l.find(f.post.inpageReplyContent).length){b.render("mod_forum/inpage_reply",m).then(function(a,c){return b.appendNodeContents(j,a,c)}).then(function(){return l.find(f.post.inpageReplyContent).slideToggle(300,i.resolve).find("textarea").focus()}).fail(c.exception)}else{var n=l.find(f.post.inpageReplyContent);n.slideToggle(300,i.resolve);if(n.is(":visible")){n.find("textarea").focus()}}})};return{init:function init(a){h(a);g.init(a)}}});
|
||||
define ("mod_forum/posts_list",["jquery","core/templates","core/notification","core/pending","core/yui","mod_forum/selectors","mod_forum/inpage_reply"],function(a,b,c,d,e,f,g){var h=function(h){h.on("click",f.post.inpageReplyLink,function(h){h.preventDefault();if(window.location.hash){var i=window.location.href.split("#")[0];history.pushState({},document.title,i)}var j=new d("inpage-reply"),k=a(h.currentTarget).parents(f.post.forumCoreContent),l=k.find(f.post.forumSubject),m=a(h.currentTarget).parents(f.post.forumContent),n={postid:a(m).data("post-id"),reply_url:a(h.currentTarget).attr("href"),sesskey:M.cfg.sesskey,parentsubject:l.data("replySubject"),canreplyprivately:a(h.currentTarget).data("can-reply-privately"),postformat:g.CONTENT_FORMATS.MOODLE};if(!m.find(f.post.inpageReplyContent).length){b.render("mod_forum/inpage_reply",n).then(function(a,c){return b.appendNodeContents(k,a,c)}).then(function(){return m.find(f.post.inpageReplyContent).slideToggle(300,j.resolve).find("textarea").focus()}).then(function(){e.use("moodle-core-formchangechecker",function(){M.core_formchangechecker.init({formid:"inpage-reply-".concat(n.postid)})})}).fail(c.exception)}else{var o=m.find(f.post.inpageReplyContent);o.slideToggle(300,j.resolve);if(o.is(":visible")){o.find("textarea").focus()}}})};return{init:function init(a){h(a);g.init(a)}}});
|
||||
//# sourceMappingURL=posts_list.min.js.map
|
||||
|
File diff suppressed because one or more lines are too long
@ -245,6 +245,21 @@ const buildShowInPageReplyFormFunction = (additionalTemplateContext) => {
|
||||
} catch (e) {
|
||||
Notification.exception(e);
|
||||
}
|
||||
|
||||
// Load formchangechecker module.
|
||||
import('core/yui')
|
||||
.then(Y => {
|
||||
return new Promise(resolve => {
|
||||
Y.use('moodle-core-formchangechecker', Y => {
|
||||
resolve(Y);
|
||||
});
|
||||
});
|
||||
})
|
||||
.then(Y => {
|
||||
M.core_formchangechecker.init({formid: Y.one(postContainer[0].querySelector('form')).generateID()});
|
||||
return Y;
|
||||
})
|
||||
.catch();
|
||||
}
|
||||
|
||||
inPageReplyCreateButton.fadeOut(ANIMATION_DURATION, () => {
|
||||
|
@ -169,6 +169,12 @@ define([
|
||||
submitButton.trigger(EVENTS.POST_CREATED, newid);
|
||||
hideSubmitButtonLoadingIcon(submitButton);
|
||||
allButtons.prop('disabled', false);
|
||||
|
||||
// Tell formchangechecker we submitted the form.
|
||||
if (typeof M.core_formchangechecker !== 'undefined') {
|
||||
M.core_formchangechecker.reset_form_dirty_state();
|
||||
}
|
||||
|
||||
return currentRoot.find(Selectors.post.inpageReplyContent).hide();
|
||||
})
|
||||
.then(function() {
|
||||
|
@ -30,6 +30,7 @@ define([
|
||||
'core/templates',
|
||||
'core/notification',
|
||||
'core/pending',
|
||||
'core/yui',
|
||||
'mod_forum/selectors',
|
||||
'mod_forum/inpage_reply',
|
||||
], function(
|
||||
@ -37,6 +38,7 @@ define([
|
||||
Templates,
|
||||
Notification,
|
||||
Pending,
|
||||
Y,
|
||||
Selectors,
|
||||
InPageReply
|
||||
) {
|
||||
@ -76,6 +78,13 @@ define([
|
||||
return currentRoot.find(Selectors.post.inpageReplyContent)
|
||||
.slideToggle(300, pending.resolve).find('textarea').focus();
|
||||
})
|
||||
.then(function() {
|
||||
// Load formchangechecker module.
|
||||
Y.use('moodle-core-formchangechecker', () => {
|
||||
M.core_formchangechecker.init({formid: `inpage-reply-${context.postid}`});
|
||||
});
|
||||
return;
|
||||
})
|
||||
.fail(Notification.exception);
|
||||
} else {
|
||||
var form = currentRoot.find(Selectors.post.inpageReplyContent);
|
||||
|
Loading…
x
Reference in New Issue
Block a user