modx.panel.welcome.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /**
  2. * @class MODx.panel.Welcome
  3. * @extends MODx.Panel
  4. * @param {Object} config An object of configuration properties
  5. * @xtype modx-panel-welcome
  6. */
  7. MODx.panel.Welcome = function(config) {
  8. dashboardName = config.dashboard.id == 1 ? MODx.config.site_name : MODx.config.site_name+' - '+config.dashboard.name;
  9. config = config || {};
  10. Ext.applyIf(config,{
  11. id: 'modx-panel-welcome'
  12. ,cls: 'container'
  13. ,baseCls: 'modx-formpanel'
  14. ,layout: 'form'
  15. ,defaults: {
  16. collapsible: false
  17. ,autoHeight: true
  18. }
  19. ,items: [{
  20. html: dashboardName
  21. ,id: 'modx-welcome-header'
  22. ,xtype: 'modx-header'
  23. },{
  24. applyTo: 'modx-dashboard'
  25. ,border: false
  26. }]
  27. });
  28. MODx.panel.Welcome.superclass.constructor.call(this,config);
  29. this.setup();
  30. };
  31. Ext.extend(MODx.panel.Welcome, MODx.Panel,{
  32. setup: function() {
  33. if (this.config.dashboard && this.config.dashboard.hide_trees) {
  34. Ext.getCmp('modx-layout').hideLeftbar(false);
  35. }
  36. var newsContainer = Ext.get('modx-news-feed-container');
  37. if (newsContainer) {
  38. this.loadFeed(newsContainer, 'news');
  39. }
  40. var securityContainer = Ext.get('modx-security-feed-container');
  41. if (securityContainer) {
  42. this.loadFeed(securityContainer, 'security');
  43. }
  44. MODx.fireEvent('ready');
  45. },
  46. loadFeed: function(container, feed) {
  47. MODx.Ajax.request({
  48. url: MODx.config.connector_url + '?action=system/dashboard/widget/feed&feed=' + feed
  49. ,listeners: {
  50. success: {
  51. fn: function(response) {
  52. if (response.success) {
  53. container.update(response.object.html);
  54. }
  55. else if (response.message.length > 0) {
  56. container.update('<p class="error">' + response.message + '</p>');
  57. }
  58. }, scope: this
  59. }
  60. ,failure: {
  61. fn: function(response) {
  62. var message = response.message.length > 0 ? response.message : _('error_loading_feed');
  63. container.update('<p class="error">' + message + '</p>');
  64. }, scope: this
  65. }
  66. }
  67. }
  68. );
  69. }
  70. });
  71. Ext.reg('modx-panel-welcome', MODx.panel.Welcome);