cobalt.users.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. (function($) {
  2. $(document).bind('cobalt-load', function(evt, cobalt) {
  3. var plugin = {
  4. 'version': 0,
  5. 'catalogs': {},
  6. 'handlers': []
  7. };
  8. plugin['catalogs']['users'] = {
  9. 'update': function(last_update, callback) {
  10. $.getJSON(Drupal.settings.basePath + 'cobalt/data/users_json/' + Math.round((last_update/1000)), {}, function (data) {
  11. var num_nodes = data.length;
  12. for (var i=0; i<num_nodes; i++) {
  13. cobalt.addEntry({id:data[i][0], name:data[i][1], information:{'perm': data[i][2]}, catalog:'users', classname:'user'});
  14. }
  15. callback(true);
  16. });
  17. },
  18. 'install': function() {
  19. },
  20. 'uninstall': function() {
  21. },
  22. 'update_rate': 300000
  23. };
  24. // Add handlers
  25. plugin['handlers'].push({
  26. 'id': 'user_view',
  27. 'name': Drupal.t('View'),
  28. 'data_class': 'user',
  29. 'applicable': function(text, item) {
  30. return item.information.perm.indexOf('r') >= 0;
  31. },
  32. 'handler': function(text, item) {
  33. window.location.href = Drupal.settings.basePath + 'user/' + item.id;
  34. }
  35. });
  36. plugin['handlers'].push({
  37. 'id': 'user_edit',
  38. 'name': Drupal.t('Edit'),
  39. 'data_class': 'user',
  40. 'applicable': function(text, item) {
  41. return item.information.perm.indexOf('w') >= 0;
  42. },
  43. 'handler': function(text, item) {
  44. window.location.href = Drupal.settings.basePath + 'user/' + item.id + '/edit?destination=' + Drupal.settings.cobalt.path;
  45. }
  46. });
  47. plugin['handlers'].push({
  48. 'id': 'user_delete',
  49. 'name': Drupal.t('Cancel account'),
  50. 'data_class': 'user',
  51. 'applicable': function(text, item) {
  52. return item.information.perm.indexOf('d') >= 0;
  53. },
  54. 'handler': function(text, item) {
  55. window.location.href = Drupal.settings.basePath + 'user/' + item.id + '/cancel?destination=' + Drupal.settings.cobalt.path;
  56. }
  57. });
  58. cobalt.registerPlugin('cobaltusers', plugin);
  59. });
  60. })(jQuery);