utils.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. // Some general purpose JS functions for the iTop application
  2. /**
  3. * Reload a truncated list
  4. */
  5. function ReloadTruncatedList(divId, sSerializedFilter, sExtraParams)
  6. {
  7. $('#'+divId).addClass('loading');
  8. //$('#'+divId).blockUI();
  9. $.post('ajax.render.php?style=list',
  10. { operation: 'ajax', filter: sSerializedFilter, extra_params: sExtraParams },
  11. function(data){
  12. $('#'+divId).empty();
  13. $('#'+divId).append(data);
  14. $('#'+divId).removeClass('loading');
  15. $('#'+divId+' .listResults').tableHover(); // hover tables
  16. $('#'+divId+' .listResults').tablesorter( { headers: { 0:{sorter: false }}, widgets: ['zebra']} ); // sortable and zebra tables
  17. //$('#'+divId).unblockUI();
  18. }
  19. );
  20. }
  21. /**
  22. * Reload any block -- used for periodic auto-reload
  23. */
  24. function ReloadBlock(divId, sStyle, sSerializedFilter, sExtraParams)
  25. {
  26. $('#'+divId).addClass('loading');
  27. //$('#'+divId).blockUI();
  28. $.post('ajax.render.php?style='+sStyle,
  29. { operation: 'ajax', filter: sSerializedFilter, extra_params: sExtraParams },
  30. function(data){
  31. $('#'+divId).empty();
  32. $('#'+divId).append(data);
  33. $('#'+divId).removeClass('loading');
  34. $('#'+divId+' .listResults').tableHover(); // hover tables
  35. $('#'+divId+' .listResults').tablesorter( { headers: { 0:{sorter: false }}, widgets: ['zebra']} ); // sortable and zebra tables
  36. //$('#'+divId).unblockUI();
  37. }
  38. );
  39. }
  40. /**
  41. * Update the display and value of a file input widget when the user picks a new file
  42. */
  43. function UpdateFileName(id, sNewFileName)
  44. {
  45. var aPath = sNewFileName.split('\\');
  46. var sNewFileName = aPath[aPath.length-1];
  47. $('#'+id).val(sNewFileName);
  48. $('#'+id).trigger('validate');
  49. $('#name_'+id).text(sNewFileName);
  50. return true;
  51. }
  52. /**
  53. * Reload a search form for the specified class
  54. */
  55. function ReloadSearchForm(divId, sClassName, sBaseClass)
  56. {
  57. $('#'+divId).block();
  58. var formEvents = $('#'+divId+' form').data('events');
  59. var bSubmitHookIsUsed = false;
  60. // Save the submit handlers
  61. aSubmit = new Array();
  62. if ( (formEvents != null) && (formEvents.submit != undefined))
  63. {
  64. aSubmit = formEvents.submit;
  65. }
  66. $.post('ajax.render.php',
  67. { operation: 'search_form', className: sClassName, baseClass: sBaseClass, currentId: divId },
  68. function(data){
  69. $('#'+divId).empty();
  70. $('#'+divId).append(data);
  71. if (aSubmit.length > 0)
  72. {
  73. for(index = 0; index < aSubmit.length; index++)
  74. {
  75. // Restore the previously bound submit handlers
  76. if (aSubmit[index].data != undefined)
  77. {
  78. $('#'+divId+' form').bind('submit.'+aSubmit[index].namespace, aSubmit[index].data, aSubmit[index].handler)
  79. }
  80. else
  81. {
  82. $('#'+divId+' form').bind('submit.'+aSubmit[index].namespace, aSubmit[index].handler)
  83. }
  84. }
  85. }
  86. $('#'+divId).unblock();
  87. }
  88. );
  89. }
  90. /**
  91. * Stores - in a persistent way - user specific preferences
  92. * depends on a global variable oUserPreferences created/filled by the iTopWebPage
  93. * that acts as a local -write through- cache
  94. */
  95. function SetUserPreference(sPreferenceCode, sPrefValue, bPersistent)
  96. {
  97. sPreviousValue = undefined;
  98. try
  99. {
  100. sPreviousValue = oUserPreferences[sPreferenceCode];
  101. }
  102. catch(err)
  103. {
  104. sPreviousValue = undefined;
  105. }
  106. oUserPreferences[sPreferenceCode] = sPrefValue;
  107. if (bPersistent && (sPrefValue != sPreviousValue))
  108. {
  109. ajax_request = $.post('ajax.render.php',
  110. { operation: 'set_pref', code: sPreferenceCode, value: sPrefValue} ); // Make it persistent
  111. }
  112. }
  113. /**
  114. * Get user specific preferences
  115. * depends on a global variable oUserPreferences created/filled by the iTopWebPage
  116. * that acts as a local -write through- cache
  117. */
  118. function GetUserPreference(sPreferenceCode, sDefaultValue)
  119. {
  120. var value = sDefaultValue;
  121. if ( oUserPreferences[sPreferenceCode] != undefined)
  122. {
  123. value = oUserPreferences[sPreferenceCode];
  124. }
  125. return value;
  126. }