X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/ff191b1dc1ac37864898b775ce973f3900ddda89..6e8379333178e150cb4783e99342e55abc576589:/redakcja/static/edumed/js/edumed.js diff --git a/redakcja/static/edumed/js/edumed.js b/redakcja/static/edumed/js/edumed.js index 622ed0e5..9d22b645 100644 --- a/redakcja/static/edumed/js/edumed.js +++ b/redakcja/static/edumed/js/edumed.js @@ -136,14 +136,24 @@ self = _this; return $(".placeholder", question).droppable({ accept: function(draggable) { - var $draggable; + var $draggable, is_accepted; $draggable = $(draggable); - if (!$draggable.is(".draggable")) return false; - return self.draggable_accept($draggable, $(this)); + is_accepted = true; + if (!$draggable.is(".draggable")) is_accepted = false; + if (is_accepted) { + is_accepted = self.draggable_accept($draggable, $(this)); + } + if (is_accepted) { + $(this).addClass('accepting'); + } else { + $(this).removeClass('accepting'); + } + return is_accepted; }, drop: function(ev, ui) { var $added, added, _this = this; + $(ev.target).removeClass('accepting'); added = $(ui.draggable).clone(); $added = added; $added.data("original", ui.draggable); @@ -160,6 +170,12 @@ } return $(added).remove(); }); + }, + over: function(ev, ui) { + return $(ev.target).addClass('dragover'); + }, + out: function(ev, ui) { + return $(ev.target).removeClass('dragover'); } }); }); @@ -288,14 +304,9 @@ var _this = this; Zastap.__super__.constructor.call(this, element); $(".paragraph", this.element).each(function(i, par) { - var spans; - _this.wrap_words($(par), $('')); - spans = $("> span", par).attr("contenteditable", "true"); - return spans.click(function(ev) { - spans.filter(':not(:empty)').removeClass('editing'); - return $(ev.target).addClass('editing'); - }); + return _this.wrap_words($(par), $('')); }); + this.dragging(false, false); } Zastap.prototype.check = function() { @@ -303,24 +314,20 @@ _this = this; all = 0; correct = 0; - $(".question-piece", this.element).each(function(i, qpiece) { - var should_be_changed, txt; - txt = $(qpiece).data('original'); - should_be_changed = false; - if (!(txt != null)) { - txt = $(qpiece).data('solution'); - should_be_changed = true; - } - if (!(txt != null)) return; - if (should_be_changed) all += 1; - if (txt !== $(qpiece).text()) { - return _this.piece_incorrect(qpiece); - } else { - if (should_be_changed) { - _this.piece_correct(qpiece); - return correct += 1; + $(".paragraph", this.element).each(function(i, par) { + return $(".placeholder", par).each(function(j, qpiece) { + var $dragged, $qp, should_be_checked; + should_be_checked = false; + $qp = $(qpiece); + $dragged = $qp.next(".draggable"); + if ($qp.data("solution")) { + if ($dragged && $qp.data("solution") === $dragged.data("no")) { + _this.piece_correct($dragged); + correct += 1; + } + return all += 1; } - } + }); }); return this.show_score([correct, all]); };