PageRenderTime 39ms CodeModel.GetById 10ms RepoModel.GetById 0ms app.codeStats 0ms

/htdocs/wp-content/themes/vtte-revistas/js/script.js

https://gitlab.com/VTTE/sitios-vtte
JavaScript | 249 lines | 197 code | 18 blank | 34 comment | 19 complexity | b268554def1d609a9122869a8ffab107 MD5 | raw file
  1. /*
  2. String to slug
  3. http://dense13.com/blog/2009/05/03/converting-string-to-slug-javascript/
  4. */
  5. function string_to_slug(str) {
  6. str = str.replace(/^\s+|\s+$/g, ''); // trim
  7. str = str.toLowerCase();
  8. // remove accents, swap ñ for n, etc
  9. var from = "àáäâèéëêìíïîòóöôùúüûñç·/_,:;";
  10. var to = "aaaaeeeeiiiioooouuuunc------";
  11. for (var i=0, l=from.length ; i<l ; i++) {
  12. str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
  13. }
  14. str = str.replace(/[^a-z0-9 -]/g, '') // remove invalid chars
  15. .replace(/\s+/g, '-') // collapse whitespace and replace by -
  16. .replace(/-+/g, '-'); // collapse dashes
  17. return str;
  18. }
  19. function trackDownload(id,site_id,nonce_data) {
  20. var storageValue = 'revista-utem-'+site_id+'-article-'+id;
  21. var hasValue = localStorage.getItem(storageValue);
  22. if (!hasValue) {
  23. var request = new XMLHttpRequest();
  24. request.open('POST', Ajax.url, true);
  25. request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
  26. request.onload = function () {
  27. if (this.status >= 200 && this.status < 400) {
  28. localStorage.setItem(storageValue,true);
  29. } else {
  30. console.log(this.response);
  31. }
  32. };
  33. request.onerror = function () {
  34. console.log('connection error');
  35. };
  36. request.send('action=track_download&attachment_id=' + id +'&nonce_data='+nonce_data );
  37. }
  38. }
  39. jQuery(document).on("forminvalid.zf.abide", function(ev,frm) {
  40. return false;
  41. }).on("formvalid.zf.abide", function(ev,frm) {
  42. var name = frm.find('.name-input').val(),
  43. mail = frm.find('.mail-input').val(),
  44. comments = frm.find('.textarea-input').val(),
  45. lastname = frm.find('.lastname-input').val(),
  46. recipient = frm.find('.recipient-input').val(),
  47. post_id = frm.find('.post-input').val(),
  48. sec = frm.find('#send_by_mail_nonce').val();
  49. jQuery.ajax({
  50. url: Ajax.url,
  51. type: 'POST',
  52. data: {
  53. action: 'send_by_mail',
  54. name: name,
  55. mail: mail,
  56. comments: comments,
  57. recipient: recipient,
  58. post_id: post_id,
  59. lastname: lastname,
  60. sec: sec
  61. },
  62. beforeSend: function(){
  63. jQuery('.send-form').val('ENVIANDO...');
  64. },
  65. success: function(data){
  66. if ((data == 'mail error') || (data == 'error')) {
  67. jQuery('.error-message').show();
  68. } else if (data == 1) {
  69. jQuery('.send-form').val('Formulario enviado');
  70. jQuery('.send-form').attr('disabled','disabled');
  71. jQuery('.success-message').show();
  72. }
  73. }
  74. });
  75. console.log();
  76. return false;
  77. });
  78. (function($){
  79. //function by @basilio
  80. $.fn.av_heights = function(){
  81. tallest = 0;
  82. $(this).each(function(){
  83. if ( $(this).height() > tallest ) { tallest = $(this).outerHeight(); };
  84. })
  85. $(this).css({'height': tallest});
  86. }
  87. $.fn.smoothTop = function(){
  88. $(this).click(function(){
  89. $("html, body").animate({ scrollTop: 0 }, 600);
  90. return false;
  91. });
  92. }
  93. $.fn.slideTarget = function() {
  94. $(this).on('click', function(e){
  95. e.preventDefault();
  96. var obj = $(this);
  97. var target = $(obj.attr('href'));
  98. if (target.length && (target.is(':visible'))) {
  99. obj.removeClass('active');
  100. target.slideUp('fast');
  101. target.removeClass('active');
  102. } else if (!target.is(':visible')) {
  103. target.removeClass('hide');
  104. obj.addClass('active');
  105. target.slideDown('fast');
  106. target.addClass('active');
  107. }
  108. return false;
  109. });
  110. }
  111. })(jQuery);
  112. jQuery(document).ready(function($){
  113. $('.author-button').slideTarget();
  114. $('#author-info-meta').hide();
  115. $('.author-info-meta').find('.close-button').on('click',function(){
  116. var obj = $(this);
  117. obj.parent().slideUp('fast');
  118. obj.parent().removeClass('active');
  119. $('.buttons').find('.author-button').removeClass('active');
  120. });
  121. $('.send_by_mail').on('submit',function(e) {
  122. e.preventDefault();
  123. return false;
  124. });
  125. $('.send_by_mail_button').on('click', function(e){
  126. $('#send_by_mail').find('.name-input').val('');
  127. $('#send_by_mail').find('.mail-input').val('');
  128. $('#send_by_mail').find('.textarea-input').val('');
  129. $('#send_by_mail').find('.recipient-input').val('');
  130. $('#send_by_mail').find('.error-message').hide();
  131. $('#send_by_mail').find('.send-form').val('Enviar');
  132. $('#send_by_mail').find('.send-form').attr('enabled','enabled');
  133. //return false;
  134. });
  135. $('.single-article .std-text').find('h4').each(function(){
  136. var obj = $(this);
  137. var slug = string_to_slug(obj.text());
  138. $('<a name="'+slug+'"></a>').insertBefore(obj);
  139. //obj.attr('id',slug);
  140. var h6 = $('<h6>').addClass('xs').append(obj.text());
  141. var link = $('<a>').attr('href','#'+slug).append(h6);
  142. var li = $('<li>').addClass("local-item").append(link);
  143. $('.local-nav').append(li);
  144. });
  145. // $('.shortlink-button').on('click', function(e){
  146. // e.preventDefault();
  147. // var $temp = $('<input>');
  148. // var text = $('.shortlink-text').val().select();
  149. // try {
  150. // var success = document.execCommand('copy'),
  151. // msg = success ? 'Enlace copiado' : 'No se pudo copiar';
  152. // console.log(msg);
  153. // } catch(err) {
  154. // console.log(err);
  155. // }
  156. // return false;
  157. // });
  158. var clipboard = new ClipboardJS('.shortlink-button', {
  159. text: function() {
  160. return $('.shortlink-text').val();
  161. }
  162. });
  163. clipboard.on('success', function(e) {
  164. $('.clipboard-status').html('<span class="success">Enlace Copiado</span>').fadeIn('fast').delay(200).fadeOut('fast');
  165. //$('.shortlink-button').attr('title','Enlace Copiado');
  166. e.clearSelection();
  167. });
  168. clipboard.on('error', function(e) {
  169. $('.clipboard-status').html('<span class="error">Enlace Copiado</span>').fadeIn('fast').delay(200).fadeOut('fast');
  170. });
  171. $('.local-nav').find('a').on('click',function(event){
  172. event.preventDefault();
  173. var obj = $(this);
  174. var anchor = $('a[name='+obj.attr('href').replace('#','')+']' ).offset().top - 30;
  175. $('html, body').stop().animate({
  176. scrollTop: anchor
  177. }, 800);
  178. });
  179. $('.advanced-search-form').find('.close-button').on('click', function(e) {
  180. e.preventDefault();
  181. $('.advanced-search-form').addClass('hide');
  182. return false;
  183. });
  184. $('.advanced-search').on('click', function(e){
  185. e.preventDefault();
  186. $('.advanced-search-form').toggleClass('hide');
  187. return false;
  188. });
  189. $('.input-datepicker').datepicker({
  190. language: 'es',
  191. range: true,
  192. dateFormat: 'yyyy/mm/dd',
  193. autoClose: true
  194. })
  195. var input = document.getElementById('autocomplete-autores');
  196. var aw = new Awesomplete(input, {
  197. list: userList
  198. });
  199. document.addEventListener('awesomplete-selectcomplete', function(obj){
  200. $('#autocomplete-autor-id').val(obj.text.value);
  201. $('#autocomplete-autores').val(obj.text.label);
  202. });
  203. // talkify.config = {
  204. // remoteService: {
  205. // active: false
  206. // }
  207. // }
  208. $('.play-tts').on('click', function(e){
  209. var player = new talkify.Html5Player().disableTextHighlighting().forceLanguage('es-ES');
  210. var play = new talkify.playlist()
  211. .begin()
  212. .usingPlayer(player)
  213. .withElements($('.article-content').get())
  214. .build();
  215. var obj = $(this);
  216. if (player.isPlaying()) {
  217. play.pause();
  218. obj.html('<span class="dashicons dashicons-controls-play"></span>');
  219. } else {
  220. play.play();
  221. obj.html('<span class="dashicons dashicons-controls-pause"></span>');
  222. }
  223. });
  224. // $('#autocomplete-autores').on('awesomplete-selectcomplete', function(event,obj){
  225. // console.log(event,obj);
  226. // });
  227. //var elem = new Foundation.Sticky($('.local-navigation'),{
  228. // stickTo: 'top',
  229. // anchor : 'content-navigation'
  230. //});
  231. });