package.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. MWF.xApplication.Selector = MWF.xApplication.Selector || {};
  2. MWF.xDesktop.requireApp("Selector", "lp."+MWF.language, null, false);
  3. //MWF.xDesktop.requireApp("Selector", "Actions.RestActions", null, false);
  4. MWF.O2Selector = new Class({
  5. Implements: [Options],
  6. options: {
  7. "count": 0,
  8. "type": "person",
  9. "title": "Select Person",
  10. "groups": [],
  11. "roles": [],
  12. "units": [],
  13. "unitType": "",
  14. "values": [],
  15. "exclude" : []
  16. },
  17. initialize: function(container, options){
  18. //MWF.xDesktop.requireApp("Selector", "Actions.RestActions", null, false);
  19. this.setOptions(options);
  20. this.container = container;
  21. if( this.options.types && typeOf(this.options.types) === "array" ){
  22. MWF.xDesktop.requireApp("Selector", "MultipleSelector", function() {
  23. this.selector = new MWF.xApplication.Selector.MultipleSelector(this.container, this.options );
  24. this.selector.load();
  25. }.bind(this));
  26. }else{
  27. var type = typeOf(this.options.type) === "string" ? this.options.type.capitalize() : this.options.type;
  28. if (type){
  29. if ((type.toLowerCase()==="unit") && (this.options.unitType)){
  30. MWF.xDesktop.requireApp("Selector", "UnitWithType", function(){
  31. this.selector = new MWF.xApplication.Selector.UnitWithType(this.container, options);
  32. this.selector.load();
  33. }.bind(this));
  34. }else if ((type.toLowerCase()==="identity") && ((this.options.dutys) && this.options.dutys.length)){
  35. MWF.xDesktop.requireApp("Selector", "IdentityWidthDuty", function(){
  36. this.selector = new MWF.xApplication.Selector.IdentityWidthDuty(this.container, options);
  37. this.selector.load();
  38. }.bind(this));
  39. }else{
  40. MWF.xDesktop.requireApp("Selector", type, function(){
  41. this.selector = new MWF.xApplication.Selector[type](this.container, options);
  42. this.selector.load();
  43. }.bind(this));
  44. }
  45. }
  46. }
  47. }
  48. });
  49. MWF.O2SelectorFilter = new Class({
  50. Implements: [Options],
  51. options: {
  52. "count": 0,
  53. "type": "person",
  54. "title": "Select Person",
  55. "groups": [],
  56. "roles": [],
  57. "units": [],
  58. "unitType": "",
  59. "values": []
  60. },
  61. initialize: function(value, options){
  62. //MWF.xDesktop.requireApp("Selector", "Actions.RestActions", null, false);
  63. this.setOptions(options);
  64. this.value = value;
  65. var type = this.options.type.capitalize();
  66. if (type){
  67. if ((type.toLowerCase()==="unit") && (this.options.unitType)){
  68. MWF.xDesktop.requireApp("Selector", "UnitWithType", function(){
  69. this.selector = new MWF.xApplication.Selector.UnitWithType.Filter(this.container, options);
  70. this.selector.load();
  71. }.bind(this));
  72. }else if ((type.toLowerCase()==="identity") && ((this.options.dutys) && this.options.dutys.length)){
  73. MWF.xDesktop.requireApp("Selector", "IdentityWidthDuty", function(){
  74. this.selectFilter = new MWF.xApplication.Selector.IdentityWidthDuty.Filter(this.value, options);
  75. }.bind(this), false);
  76. }else{
  77. MWF.xDesktop.requireApp("Selector", type, function(){
  78. this.selectFilter = new MWF.xApplication.Selector[type].Filter(this.value, options);
  79. }.bind(this), false);
  80. }
  81. }else{
  82. MWF.xDesktop.requireApp("Selector", "MultipleSelector", function() {
  83. this.selectFilter = new MWF.xApplication.Selector.MultipleSelector.Filter(this.container, this.options );
  84. }.bind(this), false);
  85. }
  86. },
  87. filter: function(value, callback){
  88. return this.selectFilter.filter(value, callback);
  89. }
  90. });
  91. (function(){
  92. var _createEl = function(data, node){
  93. var dname = data.distinguishedName;
  94. if (typeOf(data)==="string"){
  95. data = {"id": data};
  96. dname = data.id;
  97. }
  98. var len = dname.length;
  99. var flag = dname.substring(len-1,len);
  100. switch (flag){
  101. case "U":
  102. new o2.widget.O2Unit(data, node, {"style": "xform"});
  103. break;
  104. case "I":
  105. new o2.widget.O2Identity(data, node, {"style": "xform"});
  106. break;
  107. case "G":
  108. new o2.widget.O2Group(data, node, {"style": "xform"});
  109. break;
  110. case "P":
  111. new o2.widget.O2Person(data, node, {"style": "xform"});
  112. break;
  113. case "R":
  114. new o2.widget.O2Role(data, node, {"style": "xform"});
  115. break;
  116. }
  117. };
  118. Element.prototype.setSelectPerson = function(container, options){
  119. if (options.types) options.type = "";
  120. options.onComplete = function(items){
  121. debugger;
  122. o2.require("o2.widget.O2Identity", function(){
  123. options.values = [];
  124. this.empty();
  125. items.each(function(item){
  126. options.values.push(item.data);
  127. _createEl(item.data, this);
  128. if (options.selectItem) options.selectItem(item);
  129. }.bind(this));
  130. this.store("data-value", options.values);
  131. }.bind(this));
  132. }.bind(this);
  133. if (options.values){
  134. options.values.each(function(v){
  135. this.store("data-value", options.values);
  136. _createEl(v, this);
  137. }.bind(this));
  138. }
  139. this.addEvent("click", function(){
  140. var i = this.getZIndex();
  141. options.zIndex = i+1;
  142. new MWF.O2Selector(container, options);
  143. }.bind(this));
  144. };
  145. })();