Sha256: 056956b6b2a33773faf212787604061b59f26efc805b77bda02d264ca533c78f

Contents?: true

Size: 1.99 KB

Versions: 42

Compression:

Stored size: 1.99 KB

Contents

var mumuki = mumuki || {};

mumuki.load(function () {
  var $newDiscussionModal = $('.new-discussion-modal');
  var $newDiscussion = $('.discussion-create');

  $newDiscussion.click(function () {
    $newDiscussionModal.modal({
      backdrop: 'static',
      keyboard: false
    });
  });

  var $subscriptionSpans = $('.discussion-subscription > span');
  var $upvoteSpans = $('.discussion-upvote > span');

  function createNewMessageEditor() {
    var $textarea = $("#new-discussion-message");
    var textarea = $textarea[0];
    if(!textarea) return;

    return new mumuki.editor.CodeMirrorBuilder(textarea)
      .setupSimpleEditor()
      .setupMinLines($textarea.data('lines'))
      .build();
  }

  function createReadOnlyEditors() {
    return $(".read-only-editor").map(function (index, textarea) {
      var $textarea = $("#solution_content");

      return new mumuki.editor.CodeMirrorBuilder(textarea)
        .setupReadOnlyEditor()
        .setupMinLines($textarea.data('lines'))
        .setupLanguage()
        .build();
    });
  }

  createReadOnlyEditors();
  createNewMessageEditor();
  
  var Forum = {
    toggleButton: function (spans) {
      spans.toggleClass('hidden');
    },
    token: new mumuki.CsrfToken(),
    tokenRequest: function (data) {
      return $.ajax(Forum.token.newRequest(data))
    },
    discussionPost: function (url) {
      return Forum.tokenRequest({
        url: url,
        method: 'POST',
        xhrFields: {withCredentials: true}
      })
    },
    discussionSubscription: function (url) {
      Forum.discussionPostAndToggle(url, $subscriptionSpans)
    },
    discussionUpvote: function (url) {
      Forum.discussionPostAndToggle(url, $upvoteSpans)
    },
    discussionPostAndToggle: function (url, elem) {
      Forum.discussionPost(url).done(Forum.toggleButton(elem))
    },
    discussionMessageToggleApprove : function (url, elem) {
      Forum.discussionPost(url).done(function () {
        elem.toggleClass("selected");
      })
    }
  };

  mumuki.Forum = Forum;

});

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
mumuki-laboratory-7.6.2 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.6.1 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.6.0 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.5.2 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.5.1 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.5.0 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.4.2 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.4.1 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.4.0 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.3.1 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.3.0 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.2.0 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.1.0 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.0.12 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.0.11 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.0.10 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.0.9 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.0.8 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.0.7 app/assets/javascripts/mumuki_laboratory/application/discussions.js
mumuki-laboratory-7.0.6 app/assets/javascripts/mumuki_laboratory/application/discussions.js