Skip to content
tpl.il_xqsp_condition.html 5.93 KiB
Newer Older
<div>
mjansen's avatar
mjansen committed
	<div id="ilConditionFormContainer">{FORM}</div>
	<div id="ilQuestionSetPoolConditionAddOnPreviewContainer">
		<div id="ilQuestionSetPoolConditionAddOnContainer">
			<div class="ilFloatLeft ilForm ilQuestionSetPoolConditionLegend">{INFO}</div>
			<div class="ilForm ilFloatRight ilQuestionSetPoolConditionQuestionTable">
				<table class="fullwidth">
					<tbody>
					<tr class="tblheader">
						<th class="std">{TXT_QUESTION}</th>
						<th class="std" colspan="2">{TXT_ACTIONS}</th>
					</tr>
					<!-- BEGIN question_row -->
					<tr class="{CSS_ROW}">
						<td class="std">{QUESTION_INDEX} {QUESTION_TITLE}</td>
						<td class="std"><a class="il_ContainerItemCommand preview" id="preview_{QUESTION_ID}" href="#">{PREVIEW}</a></td>
mjansen's avatar
mjansen committed
						<td class="std"><a class="il_ContainerItemCommand" id="edit_{QUESTION_ID}" href="{EDIT_LINK}" onclick="return !window.open(this.href, '', 'width=1024,height=800,location=no,scrollbars=yes,menubar=no,dependent=yes,status=no,toolbar=no')" target="_blank">{EDIT}</a></td>
					</tr>
mjansen's avatar
mjansen committed
					<!-- END question_row -->
					</tbody>
				</table>
			</div>
		</div>
		<div class="ilQuestionSetPoolConditionInputQuestionPreviewContainer">
nkrzywon's avatar
nkrzywon committed
			<a class="ilClose" href="#">{CLOSE_IMG_ALT} {CLOSE_IMG_SRC}</a>
mjansen's avatar
mjansen committed
		</div>
	</div>
mjansen's avatar
mjansen committed
<div class="ilClearFloat"></div>
	(function($, d, w) {
		w.afterQuestionChangedTrigger = function() {
mjansen's avatar
mjansen committed
			// Check whether or not the question has changed: Maybe cou can compare the value of field "tstamp" with
mjansen's avatar
mjansen committed
			// the unix timestamp created when the user clicked the the "edit" link 
mjansen's avatar
mjansen committed
			//$("#ilQuestionSetPoolConditionInputContainer form input[type=submit]").first().click();
nkrzywon's avatar
nkrzywon committed
		var $fbd_toggle = $('#il_center_col a.toggle_feedback');
mjansen's avatar
mjansen committed
		$(function() {
			var $metabar                            = $(".il-layout-page header");
			var $breadcrumbs                        = $(".il-layout-page .breadcrumbs");
mjansen's avatar
mjansen committed
			var $condition_container                = $("#ilConditionFormContainer");
			var $condition_add_on_container         = $("#ilQuestionSetPoolConditionAddOnContainer");
			var $panelcontainer                     = $(".ilQuestionSetPoolConditionInputQuestionPreviewContainer");
			var $table                              = $(".ilQuestionSetPoolConditionQuestionTable");

			var showFeedback = function() {
				$fbd_toggle.removeClass('ilFormATestFeedbackHidden');
nkrzywon's avatar
nkrzywon committed
				$('form[name="condition_form"] textarea[name*="feedback"]').closest("div.form-group").show();
				$fbd_toggle.text("{TXT_HIDE_FEEDBACK} ");
			};
			
			var hideFeedback = function() {
nkrzywon's avatar
nkrzywon committed
				$('form[name="condition_form"] textarea[name*="feedback"]').closest("div.form-group").hide();
				$fbd_toggle.addClass('ilFormATestFeedbackHidden');
				$fbd_toggle.text("{TXT_SHOW_FEEDBACK}");
			};

			if ($fbd_toggle.length === 1) {
				$fbd_toggle.on("click", function(e) {
					e.preventDefault();
					e.stopPropagation();

					if ($fbd_toggle.hasClass('ilFormATestFeedbackHidden')) {
						showFeedback();
					} else {
						hideFeedback();
					}
				});
			}

mjansen's avatar
mjansen committed
			var onScrollHandler = function() {
				if ($panelcontainer.hasClass('ilPartialContainer')) {
					var static_height    = parseFloat($metabar.height()) + parseFloat($breadcrumbs.height());
					var threshold_height = parseFloat($(document).scrollTop()) + static_height; 
mjansen's avatar
mjansen committed

					var stcc            = $condition_container.offset().top;
					var stcaoc          = $condition_add_on_container.offset().top;

					if (threshold_height >= stcc && !$condition_container.hasClass('ilFixedMode')) {
mjansen's avatar
mjansen committed
						$condition_container.css('width', $condition_container.width());
						$condition_container.css('top', static_height);
mjansen's avatar
mjansen committed
						$condition_container.addClass('ilFixedMode');

						$condition_add_on_container.css('marginTop', $condition_container.height());
						$condition_add_on_container.addClass('ilFixedMode');

						$panelcontainer.css('marginTop', $condition_container.height());
						$panelcontainer.addClass('ilFixedMode');
					} else if ($condition_container.hasClass('ilFixedMode') && stcaoc >= threshold_height + parseFloat($condition_add_on_container.css("marginTop"))) {
mjansen's avatar
mjansen committed
						$condition_container.removeAttr('style');
						$condition_container.removeClass('ilFixedMode');

						$condition_add_on_container.removeAttr('style');
						$condition_add_on_container.removeClass('ilFixedMode');

						$panelcontainer.removeAttr('style');
						$panelcontainer.removeClass('ilFixedMode');
					}
				}
			}

			var $closeBtn = $panelcontainer.find(".ilClose");
			$closeBtn.click(function(e) {
				$condition_add_on_container.removeClass("ilPartialContainer");
				$panelcontainer.removeClass("ilPartialContainer");
				$table.removeClass("ilPartialContainer");

				$condition_container.removeAttr('style');
				$condition_container.removeClass('ilFixedMode');
mjansen's avatar
mjansen committed
				$condition_add_on_container.removeAttr('style');
				$condition_add_on_container.removeClass('ilFixedMode');
	
				$panelcontainer.removeAttr('style');
				$panelcontainer.removeClass('ilFixedMode');
				showFeedback();
mjansen's avatar
mjansen committed
				e.preventDefault();
			});
mjansen's avatar
mjansen committed
			$(".preview").click(function(e) {
				var $this = $(this);
				var $panel;
mjansen's avatar
mjansen committed

				hideFeedback();
mjansen's avatar
mjansen committed
				$condition_add_on_container.addClass("ilPartialContainer");
				$panelcontainer.addClass("ilPartialContainer");
				$table.addClass("ilPartialContainer");
mjansen's avatar
mjansen committed
				$panelcontainer.find(".ilPreviewPanel").remove();

				$panel = $('<div class="ilPreviewPanel" id="preview_container_' + $this.attr('id') + '"></div>');
				$.ajax({
					url: '{PREVIEW_LINK}&question_id=' + $this.attr('id').replace("preview_", ""),
					dataType: 'html',
					success: function(data) {
						try {
							$panel.html(data);
							$panel.appendTo($panelcontainer);
						} catch(e) {
							console.log(e);
						}
mjansen's avatar
mjansen committed

						if(typeof MathJax !=  "undefined") {
							MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
						}
mjansen's avatar
mjansen committed

						onScrollHandler();
mjansen's avatar
mjansen committed
				});
mjansen's avatar
mjansen committed
				e.preventDefault();
			});
			$(document).on('scroll', onScrollHandler);