imce_search.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. imce.hooks.load.push(function() {
  2. imce.opAdd({
  3. name : 'search',
  4. title : 'Search',
  5. content : jQuery('#imce-search-form')
  6. });
  7. jQuery('#imce-search-form').submit(function() {
  8. jQuery('#imce-search-results div').html('Searching ' + ((imce.conf.dir == '.') ? 'all ' : imce.conf.dir + ' and sub') +'directories for ' + jQuery('#edit-imce-search-term').val());
  9. jQuery('#imce-search-results div').addClass('loading');
  10. var case_insensitive = 0;
  11. jQuery('#edit-imce-search-case:checked').each(function() { case_insensitive = 1; });
  12. jQuery.ajax({
  13. url: Drupal.settings.basePath + 'imce_search_callback/' + case_insensitive + '/' + encodeURI(imce.conf.dir + '/' + jQuery('#edit-imce-search-term').val()),
  14. type: 'GET',
  15. success: function(serverdata, status, xmlhttp) {
  16. data = eval('(' + serverdata + ')');
  17. var filelist = jQuery.map(data.files, function(fullpath, index) {
  18. var li = document.createElement('li');
  19. jQuery(li).click(function () {
  20. file = fullpath.substr(fullpath.lastIndexOf('/') + 1);
  21. dir = fullpath.substr(0, fullpath.lastIndexOf('/'));
  22. if (dir!=imce.conf.dir) {
  23. imce.navigate(dir);
  24. imce.dirActivate(dir);
  25. }
  26. imce.dirActivate(dir);
  27. imce.highlight(file);
  28. }).css('cursor','pointer').addClass('link');
  29. if (index > 10) {
  30. jQuery(li).addClass('toggle');
  31. }
  32. jQuery(li).html(fullpath);
  33. return li;
  34. });
  35. jQuery('#imce-search-results ul').hide();
  36. jQuery('#imce-search-results ul').empty().append(filelist);
  37. jQuery('#imce-search-results ul li[class="toggle"]').hide();
  38. jQuery('#imce-search-results ul').show();
  39. jQuery('#imce-search-results div').html(data.search + '. ' + data.files.length + ' results found. ');
  40. if (data.files.length > 10) {
  41. var toggle = document.createElement('a');
  42. jQuery(toggle).append('Show all');
  43. jQuery(toggle).toggle(function () {
  44. jQuery(this).html('Short list');
  45. jQuery('#imce-search-results ul li[class*="toggle"]').show();
  46. },
  47. function () {
  48. jQuery(this).html('Show all');
  49. jQuery('#imce-search-results ul li[class*="toggle"]').hide();
  50. }
  51. );
  52. jQuery('#imce-search-results div').append(toggle);
  53. }
  54. jQuery('#imce-search-results div').removeClass('loading');
  55. }
  56. });
  57. return false;
  58. });
  59. });