Role.js 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. MWF.xDesktop.requireApp("Selector", "Person", null, false);
  2. MWF.xApplication.Selector.Role = new Class({
  3. Extends: MWF.xApplication.Selector.Person,
  4. options: {
  5. "style": "default",
  6. "count": 0,
  7. "title": "",
  8. "groups": [],
  9. "roles": [],
  10. "values": [],
  11. "names": [],
  12. "selectType" : "role"
  13. },
  14. setInitTitle: function(){
  15. this.setOptions({"title": MWF.xApplication.Selector.LP.selectRole});
  16. },
  17. _init : function(){
  18. this.selectType = "role";
  19. this.className = "Role";
  20. },
  21. _listItemByKey: function(callback, failure, key){
  22. if (this.options.units.length || this.options.roles.length) key = this.getLikeKey(key);
  23. this.orgAction.listRoleByKey(function(json){
  24. if (callback) callback.apply(this, [json]);
  25. }.bind(this), failure, key);
  26. },
  27. _getItem: function(callback, failure, id, async){
  28. this.orgAction.getRole(function(json){
  29. if (callback) callback.apply(this, [json]);
  30. }.bind(this), failure, ((typeOf(id)==="string") ? id : id.distinguishedName), async);
  31. },
  32. _newItemSelected: function(data, selector, item, selectedNode){
  33. return new MWF.xApplication.Selector.Role.ItemSelected(data, selector, item, selectedNode)
  34. },
  35. _listItemByPinyin: function(callback, failure, key){
  36. if (this.options.units.length || this.options.roles.length) key = this.getLikeKey(key);
  37. this.orgAction.listRoleByPinyin(function(json){
  38. if (callback) callback.apply(this, [json]);
  39. }.bind(this), failure, key);
  40. },
  41. _newItem: function(data, selector, container){
  42. return new MWF.xApplication.Selector.Role.Item(data, selector, container);
  43. },
  44. _listItemNext: function(last, count, callback){
  45. this.orgAction.listRoleNext(last, count, function(json){
  46. if (callback) callback.apply(this, [json]);
  47. }.bind(this));
  48. },
  49. _getChildrenItemIds: function(data){
  50. return data.roleList;
  51. },
  52. getLikeKey : function( key ){
  53. var result = key;
  54. if (this.options.groups.length || this.options.roles.length){
  55. var array = [];
  56. this.options.groups.each( function(d){
  57. array.push( typeOf(d)==="object" ? d.distinguishedName : d );
  58. }.bind(this));
  59. var array2 = [];
  60. this.options.roles.each( function(d){
  61. array2.push( typeOf(d)==="object" ? d.distinguishedName : d );
  62. }.bind(this));
  63. result = {"key": key || "", "groupList": array, "roleList": array2};
  64. }
  65. return result;
  66. }
  67. });
  68. MWF.xApplication.Selector.Role.Item = new Class({
  69. Extends: MWF.xApplication.Selector.Person.Item,
  70. _getShowName: function(){
  71. return this.data.name;
  72. },
  73. _setIcon: function(){
  74. var style = this.selector.options.style;
  75. this.iconNode.setStyle("background-image", "url("+"../x_component_Selector/$Selector/"+style+"/icon/roleicon.png)");
  76. }
  77. });
  78. MWF.xApplication.Selector.Role.ItemSelected = new Class({
  79. Extends: MWF.xApplication.Selector.Person.ItemSelected,
  80. _getShowName: function(){
  81. return this.data.name;
  82. },
  83. _setIcon: function(){
  84. var style = this.selector.options.style;
  85. this.iconNode.setStyle("background-image", "url("+"../x_component_Selector/$Selector/"+style+"/icon/roleicon.png)");
  86. }
  87. });