diff --git a/dev/css/sakai/sakai.base.css b/dev/css/sakai/sakai.base.css index d793402ff42..8d7d24d8433 100644 --- a/dev/css/sakai/sakai.base.css +++ b/dev/css/sakai/sakai.base.css @@ -754,6 +754,7 @@ a.s3d-button { } .s3d-link-button:disabled { cursor: default !important; + color: #999; } .s3d-link-button:focus { box-shadow: none !important; diff --git a/devwidgets/discussion/bundles/default.properties b/devwidgets/discussion/bundles/default.properties index 483468f0c36..6be9e9e3220 100644 --- a/devwidgets/discussion/bundles/default.properties +++ b/devwidgets/discussion/bundles/default.properties @@ -7,12 +7,14 @@ ANYONE = Anyone COLLAPSE_ALL = Collapse all CONTACT_ADMINISTRATOR_FOR_INFORMATION = Contact the administrators for more information. DELETED_BY = Deleted by +DISCUSSION WIDGET = Discussion widget DONT_ADD_TOPIC = Don't add topic DONT_REPLY = Don't reply EDIT = Edit EDIT_YOUR_MESSAGE = Edit your message EDITED_BY = Edited by ENTER_YOUR_MESSAGE = Enter your message +ERROR_NOT_CHANGEABLE = You can't modify anything in edit mode. Please save the document first. EXPAND_ALL = Expand all name = BBS description = Bulletin Board System widget\r\n diff --git a/devwidgets/discussion/discussion.html b/devwidgets/discussion/discussion.html index 094e3598a2c..3f0098d07d6 100644 --- a/devwidgets/discussion/discussion.html +++ b/devwidgets/discussion/discussion.html @@ -129,7 +129,7 @@ {if settings.addtopic == true} | {/if} - +
{for topic in postData}
diff --git a/devwidgets/discussion/javascript/discussion.js b/devwidgets/discussion/javascript/discussion.js index ad966259bd1..14b7a849b3e 100644 --- a/devwidgets/discussion/javascript/discussion.js +++ b/devwidgets/discussion/javascript/discussion.js @@ -120,6 +120,7 @@ require(["jquery", "sakai/sakai.api.core", "jquery-plugins/jquery.cookie"], func var discussionEditContainer = ".discussion_edit_container"; var discussionDontSaveEdit = "#discussion_dont_save_edit"; var discussionSaveEdit = "#discussion_save_edit"; + var discussionEditButtons = '#discussion_add_new_topic, .discussion_reply_topic, .discussion_quote, .discussion_edit'; // Delete var discussionDelete = ".discussion_delete"; @@ -142,23 +143,30 @@ require(["jquery", "sakai/sakai.api.core", "jquery-plugins/jquery.cookie"], func var $discussionHide = $("#discussion_i18n_hide", $rootel); /** - * Enables all edit mode buttons (reply, quote, edit, create new topic) - */ + * Show a message to the user that they can't change anything while in edit mode + */ + var showNotChangeableMessage = function() { + sakai.api.Util.notification.show(sakai.api.i18n.getValueForKey('DISCUSSION WIDGET', 'discussion'), + sakai.api.i18n.getValueForKey('ERROR_NOT_CHANGEABLE', 'discussion'), + sakai.api.Util.notification.type.ERROR); + }; + + /** + * Enables all edit mode buttons (reply, quote, edit, create new topic) + */ var enableEditButtons = function() { - $('#discussion_add_new_topic').removeAttr('disabled'); - $('.discussion_reply_topic').removeAttr('disabled'); - $('.discussion_quote,').removeAttr('disabled'); - $('.discussion_edit').removeAttr('disabled'); + $(discussionEditButtons, $rootel) + .off('click', showNotChangeableMessage) + .removeAttr('disabled'); }; /** - * Disables all edit mode buttons (reply, quote, edit, create new topic) - */ + * Disables all edit mode buttons (reply, quote, edit, create new topic) + */ var disableEditButtons = function() { - $('#discussion_add_new_topic').attr('disabled', 'disabled'); - $('.discussion_reply_topic').attr('disabled', 'disabled'); - $('.discussion_quote,').attr('disabled', 'disabled'); - $('.discussion_edit').attr('disabled', 'disabled'); + $(discussionEditButtons, $rootel) + .on('click', showNotChangeableMessage) + .attr('disabled', 'disabled'); }; var continueInit = function(){ @@ -347,7 +355,7 @@ require(["jquery", "sakai/sakai.api.core", "jquery-plugins/jquery.cookie"], func "sakai": sakai }, $(discussionNoInitialTopic, $rootel)); $(discussionNoInitialTopic, $rootel).show(); - if ($($rootel.parents('.contentauthoring_edit_mode')).length) { + if ($rootel.parents('.contentauthoring_edit_mode').length) { disableEditButtons(); } }