###
LemonLDAP::NG Notifications script
###

msg = $('#msg').attr 'trspan'

setMsg = (msg, level) ->
	$('#msg').html window.translate msg
	$('#color').removeClass 'message-positive message-warning alert-success alert-warning'
	$('#color').addClass "message-#{level}"
	level = 'success' if level == 'positive'
	$('#color').addClass "alert-#{level}"
	$('#color').attr "role", "status"

displayError = (j, status, err) ->
	setMsg 'notificationRetrieveFailed', 'warning'
	console.log 'Error:', err, 'Status:', status

toggle_eye = (slash) ->
		if slash
			$("#icon-explorer-button").removeClass 'fa-eye'
			$("#icon-explorer-button").addClass 'fa-eye-slash'
		else
			$("#icon-explorer-button").removeClass 'fa-eye-slash'
			$("#icon-explorer-button").addClass 'fa-eye'

toggle_explorer = (visible) ->
		if visible
			$('#explorer').hide()
			$('#color').hide()
			toggle_eye 0
		else
			$('#explorer').show()
			$('#color').show()
			toggle_eye 1

toggle = (button, notif, epoch) ->
		setMsg msg, 'positive'
		$(".btn-danger").each ->
			$(this).removeClass 'btn-danger'
			$(this).addClass 'btn-success'
		$(".fa-eye-slash").each ->
			$(this).removeClass 'fa-eye-slash'
			$(this).addClass 'fa-eye'
		$(".verify").each ->
			$(this).text window.translate 'verify'
			$(this).attr('trspan', 'verify')
		if notif and epoch
			button.removeClass 'btn-success'
			button.addClass 'btn-danger'
			$("#icon-#{notif}-#{epoch}").removeClass 'fa-eye'
			$("#icon-#{notif}-#{epoch}").addClass 'fa-eye-slash'
			$("#text-#{notif}-#{epoch}").text window.translate 'hide'
			$("#text-#{notif}-#{epoch}").attr('trspan', 'hide')
			$("#myNotification").removeAttr('hidden')
			toggle_eye 1
		else
			$("#myNotification").attr('hidden', 'true')
			$("#explorer-button").attr('hidden', 'true')

# viewNotif function (launched by "verify" button)
viewNotif = (notif, epoch, button) ->
		console.log 'Ref:', notif, 'epoch:', epoch
		if notif and epoch
			console.log 'Send AJAX request'
			$.ajax
				type: "GET"
				url: "#{portal}mynotifications/#{notif}"
				data:
					epoch: epoch
				dataType: 'json'
				error: displayError
				success: (resp) ->
					if resp.result
						console.log 'Notification:', resp.notification
						toggle button, notif, epoch
						$('#displayNotif').html resp.notification
						$('#notifRef').text(notif)
						myDate = new Date(epoch * 1000)
						$('#notifEpoch').text(myDate.toLocaleString())
						$("#explorer-button").removeAttr('hidden')
					else setMsg 'notificationNotFound', 'warning'
		else setMsg 'notificationRetrieveFailed', 'warning'

# Register "click" events
$(document).ready ->
	$(".data-epoch").each ->
		myDate = new Date($(this).text() * 1000)
		$(this).text(myDate.toLocaleString())
	$('#goback').attr 'href', portal
	$('body').on 'click', '.btn-success', () -> viewNotif ( $(this).attr 'notif' ), ( $(this).attr 'epoch' ), $(this)
	$('body').on 'click', '.btn-danger', () -> toggle $(this)
	$('body').on 'click', '.btn-info', () -> toggle_explorer $('#explorer').is(':visible')