No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 
 

81 líneas
2.0 KiB

  1. wn.provide('wn.utils');
  2. wn.utils = {
  3. get_file_link: function(filename) {
  4. return wn.utils.is_url(filename) || (filename.indexOf("images/")!=-1) || (filename.indexOf("files/")!=-1)
  5. ? filename : 'files/' + filename;
  6. },
  7. is_url: function(txt) {
  8. return txt.toLowerCase().substr(0,7)=='http://'
  9. || txt.toLowerCase().substr(0,8)=='https://'
  10. },
  11. filter_dict: function(dict, filters) {
  12. var ret = [];
  13. if(typeof filters=='string') {
  14. return [dict[filters]]
  15. }
  16. $.each(dict, function(i, d) {
  17. for(key in filters) {
  18. if($.isArray(filters[key])) {
  19. if(filters[key][0]=="in") {
  20. if(filters[key][1].indexOf(d[key])==-1)
  21. return;
  22. } else if(filters[key][0]=="not in") {
  23. if(filters[key][1].indexOf(d[key])!=-1)
  24. return;
  25. }
  26. } else {
  27. if(d[key]!=filters[key]) return;
  28. }
  29. }
  30. ret.push(d);
  31. });
  32. return ret;
  33. },
  34. comma_or: function(list) {
  35. return wn.utils.comma_sep(list, " or ");
  36. },
  37. comma_and: function(list) {
  38. return wn.utils.comma_sep(list, " and ");
  39. },
  40. comma_sep: function(list, sep) {
  41. if(list instanceof Array) {
  42. if(list.length==0) {
  43. return "";
  44. } else if (list.length==1) {
  45. return list[0];
  46. } else {
  47. return list.slice(0, list.length-1).join(", ") + sep + list.slice(-1)[0];
  48. }
  49. } else {
  50. return list;
  51. }
  52. },
  53. set_intro: function(me, wrapper, txt) {
  54. if(!me.intro_area) {
  55. me.intro_area = $('<div class="alert form-intro-area" style="margin-top: 20px;">')
  56. .insertBefore(wrapper.firstChild);
  57. }
  58. if(txt) {
  59. if(txt.search(/<p>/)==-1) txt = '<p>' + txt + '</p>';
  60. me.intro_area.html(txt);
  61. } else {
  62. me.intro_area.remove();
  63. me.intro_area = null;
  64. }
  65. },
  66. set_footnote: function(me, wrapper, txt) {
  67. if(!me.footnote_area) {
  68. me.footnote_area = $('<div class="alert form-intro-area" style="margin-top: 20px;">')
  69. .insertAfter(wrapper.lastChild);
  70. }
  71. if(txt) {
  72. if(txt.search(/<p>/)==-1) txt = '<p>' + txt + '</p>';
  73. me.footnote_area.html(txt);
  74. } else {
  75. me.footnote_area.remove();
  76. me.footnote_area = null;
  77. }
  78. },
  79. };