MobileConfigurationView.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. //
  2. // IBM Confidential
  3. // OCO Source Materials
  4. // BI and PM: Mobile
  5. // (C) Copyright IBM Corp. 2013
  6. // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. //
  8. dojo.provide('mobileAdmin.serverConfig.view.MobileConfigurationView');
  9. // dojo dependencies
  10. dojo.require('dijit.layout.BorderContainer');
  11. dojo.require('dijit.layout.ContentPane');
  12. dojo.require('dijit.TitlePane');
  13. // Mobile dependencies
  14. dojo.require('mobileAdmin.serverConfig.control.MobilePropertyGroup');
  15. dojo.declare('mobileAdmin.serverConfig.view.MobileConfigurationView', null, {
  16. constructor: function(_this_Fragment, mobileMsgResources) {
  17. this.fragmentResources = _this_Fragment;
  18. this.msgResources = mobileMsgResources;
  19. this.appBorderContainer = null;
  20. this.appCenterContentPane = null;
  21. this.groupControls = [];
  22. },
  23. initialize: function() {
  24. var appUIContainerDiv = dojo.query('#idAppUIContainer', this.fragmentResources.div)[0];
  25. if(appUIContainerDiv) {
  26. // Fragment caption bar title
  27. dojo.query("#caption_bar_title", this.fragmentResources.div)[0].appendChild(document.createTextNode(this.msgResources.ADM.SRV_CONF_PAGE_CAPTION_BAR_TITLE));
  28. // Fragment button titles
  29. dojo.query("#save_button_title", this.fragmentResources.div)[0].appendChild(document.createTextNode(this.msgResources.ADM.SRV_CONF_BUTTON_SAVE_CONFIGURATION));
  30. this.appBorderContainer = new dijit.layout.BorderContainer({style:'height:800px;'}, appUIContainerDiv);
  31. var appTopContentPane = new dijit.layout.ContentPane({region:'top', "class":'appTopContentPane', id:"idAppTopContentPane"});
  32. appTopContentPane.domNode.innerHTML = this.msgResources.ADM.SRV_CONF_PAGE_DESCRIPTION;
  33. this.appBorderContainer.addChild(appTopContentPane);
  34. this.appCenterContentPane = new dijit.layout.ContentPane({region:'center', "class":'appCenterContentPane', id:'idAppCenterContentPane'});
  35. this.appBorderContainer.addChild(this.appCenterContentPane);
  36. //a11y - remove unnecessary role attribute from dijit content pane widgets
  37. //mirrors dojo patch fix - https://bugs.dojotoolkit.org/attachment/ticket/16241/ContentPane.js.remove.invalid.role.patch
  38. appTopContentPane.domNode.removeAttribute('role');
  39. this.appCenterContentPane.domNode.removeAttribute('role');
  40. this.appBorderContainer.startup();
  41. }
  42. },
  43. displayMobileConfiguration: function(dataModel) {
  44. var configPropertyGroups = dataModel.queryGroupLabels();
  45. for(var i = 0; i < configPropertyGroups.length; i++) {
  46. var groupControl = new mobileAdmin.serverConfig.control.MobilePropertyGroup(this.fragmentResources, this.msgResources);
  47. this.groupControls.push(groupControl);
  48. groupControl.renderGroup(this.appCenterContentPane, configPropertyGroups[i], dataModel);
  49. }
  50. },
  51. prepareForSave : function(){
  52. for (var i = 0; i < this.groupControls.length; i++){
  53. this.groupControls[i].prepareForSave();
  54. }
  55. },
  56. dispose: function() {
  57. var captionBarTitleNode = dojo.query("#caption_bar_title", this.fragmentResources.div)[0];
  58. dojo.empty(captionBarTitleNode);
  59. captionBarTitleNode = null;
  60. var saveButtonTitleNode = dojo.query("#save_button_title", this.fragmentResources.div)[0];
  61. dojo.empty(saveButtonTitleNode);
  62. saveButtonTitleNode = null;
  63. this.appCenterContentPane = null;
  64. this.appBorderContainer.destroyRecursive(false);
  65. delete this.appBorderContainer;
  66. this.appBorderContainer = null;
  67. this.fragmentResources = null;
  68. this.msgResources = null;
  69. }
  70. });