Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

54 linhas
1.3 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. }