{* $Id: mod-short_url.tpl 66519 2018-05-27 23:18:23Z xorti $ *}
{strip}
	{tikimodule error=$module_params.error title=$tpl_module_title name="short_url" flip=$module_params.flip decorations=$module_params.decorations nobox=$module_params.nobox notitle=$module_params.notitle}
		<div id="short-url-module">
			<div>
				<div id="short-url-error" class="alert alert-danger" style="display:none"></div>
				<button id="short-url-get" class="btn btn-primary btn-sm form-control">{icon name="link"} {tr}Get short url{/tr}</button>
			</div>

			<div id="short-url-link"style="display:none">
				<div class="form-group">
					<input type="text" class="form-control" readonly="readonly">
				</div>
				<button id="short-url-copy" class="btn btn-primary btn-sm form-control">{icon name="clipboard"}{tr}Copy{/tr}</button>
			</div>

		</div>
	{/tikimodule}
{/strip}

{jq}
	function getShortUrl() {
		$('#short-url-error').hide();
		$('#short-url-get').attr('disabled', 'disabled');

		$.ajax({
			method: 'GET',
			url: 'tiki-short_url.php?url='+encodeURIComponent(window.location.href)+'&title='+encodeURIComponent(document.title)+'&module=y',
			dataType: 'json',
			success: function (data) {
				if (data.error != undefined) {
					$('#short-url-error').html(data.message);
					$('#short-url-error').show();
				} else {
					$('#short-url-link input').val(data.url);
					$('#short-url-get').hide();
					$('#short-url-link').show();
				}
			},
			complete: function () {
				$('#short-url-get').removeAttr('disabled');
			},
			error: function (data) {
				//@todo implement
			},
		});
	}

	$('#short-url-get').on('click', function() { getShortUrl(); });
	$('#short-url-copy').on('click', function() {
		$('#short-url-link input[type="text"]').select();

		var defaultText = $('#short-url-copy').html();
		var successText = '{{icon name="check"}} {tr}Copied{/tr}';
		var errorText = '{{icon name="close"}} Error copying url';

		try {
			document.execCommand('copy');
			$('#short-url-link input[type="text"]').blur();
			window.getSelection().removeAllRanges();

			$('#short-url-copy').addClass('btn-success').attr('disabled', 'disabled').html(successText);
			setTimeout(function(){
				$('#short-url-copy').removeClass('btn-success').removeAttr('disabled').html(defaultText);
			}, 1000);

		}
		catch (err) {
			$('#short-url-copy').addClass('btn-danger').html(errorText);
			setTimeout(function(){
				$('#short-url-copy').removeClass('btn-danger').html(defaultText);
			}, 1000);
		}
	});
{/jq}
