const Post = function(w) { this.window = w; } Post.prototype.commentsEvents = function() { var document = this.window.document; var parentCommentIdField = document.getElementById('comment_parentCommentId'); if (!parentCommentIdField) { return; } var isAnswerAlert = document.getElementById('answer-alert'); var cancelAnswerButton = document.getElementById('cancel-answer'); var toogleAnswerAlert = function() { if (parentCommentIdField.value) { isAnswerAlert.classList.remove('hidden'); } else { isAnswerAlert.classList.add('hidden'); } } toogleAnswerAlert(); var answerButtons = document.querySelectorAll('a[data-answer]'); for (var i = 0, len = answerButtons.length; i < len; i++) { answerButtons[i].addEventListener('click', function(e) { parentCommentIdField.value = e.target.getAttribute('data-answer'); toogleAnswerAlert(); }, false); } cancelAnswerButton.addEventListener('click', function(e) { e.preventDefault(); parentCommentIdField.value = null; toogleAnswerAlert(); }, false); var previewButton = document.querySelector('.preview-button'); var previewRender = document.querySelector('#preview'); previewButton.addEventListener('click', function() { if (previewRender.innerHTML === '') { previewRender.innerHTML = '

Chargement en cours…

'; } var content = document.querySelector('#comment_content').value; var httpRequest = new XMLHttpRequest(); httpRequest.onreadystatechange = function(data) { if (httpRequest.readyState === 4 && httpRequest.status === 200) { var json = JSON.parse(httpRequest.response); previewRender.innerHTML = json.render; document.location.href = '#preview'; } }; httpRequest.open('POST', Routing.generate('api_comment_preview')); httpRequest.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' ); httpRequest.send('content=' + encodeURIComponent(content)); }, false); } Post.prototype.imagesEvents = function() { var document = this.window.document; var isFullscreen = false; var images = document.querySelectorAll('.body img'); var handleClick = function(image) { if (isFullscreen) { if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } } else { if (image.requestFullscreen) { image.requestFullscreen(); } else if (image.webkitRequestFullscreen) { image.webkitRequestFullscreen(); } else if (image.mozRequestFullScreen) { image.mozRequestFullScreen(); } } isFullscreen = !isFullscreen; }; for (var i = 0, len = images.length; i < len; i++) { var image = images[i]; if (image.parentNode.tagName === 'A') { continue; } (function(i) { i.addEventListener('click', function() { handleClick(i); }, false); })(image); } } Post.prototype.init = function() { this.commentsEvents(); this.imagesEvents(); } module.exports = Post