1: <?php
2:
3:
4: if(!isset($config)) {
5: require_once '../util/AlphaConfig.inc';
6: $config = AlphaConfig::getInstance();
7:
8: require_once $config->get('app.root').'alpha/util/AlphaAutoLoader.inc';
9: }
10:
11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55:
56: class ViewRecordSelector extends AlphaController implements AlphaControllerInterface {
57: 58: 59: 60: 61: 62:
63: private static $logger = null;
64:
65: 66: 67: 68: 69:
70: public function __construct() {
71: self::$logger = new Logger('ViewRecordSelector');
72: self::$logger->debug('>>__construct()');
73:
74:
75: parent::__construct('Public');
76:
77: self::$logger->debug('<<__construct');
78: }
79:
80: 81: 82: 83: 84: 85: 86:
87: public function doGet($params) {
88: self::$logger->debug('>>doGet(params=['.var_export($params, true).'])');
89:
90: $relationObject = new Relation();
91:
92: try {
93: $relationType = $params['relationType'];
94: $value = $params['value'];
95: }catch (Exception $e) {
96: self::$logger->error('Required param missing for ViewRecordSelector controller['.$e->getMessage().']');
97: throw new ResourceNotFoundException('File not found');
98: }
99:
100: if($_GET['relationType'] == 'MANY-TO-MANY') {
101: try {
102: $relatedClassLeft = $params['relatedClassLeft'];
103: $relatedClassLeftDisplayField = $params['relatedClassLeftDisplayField'];
104: $relatedClassRight = $params['relatedClassRight'];
105: $relatedClassRightDisplayField = $params['relatedClassRightDisplayField'];
106: $field = $params['field'];
107: $accessingClassName = $params['accessingClassName'];
108: $lookupOIDs = $params['lookupOIDs'];
109: }catch (Exception $e) {
110: self::$logger->error('Required param missing for ViewRecordSelector controller['.$e->getMessage().']');
111: throw new ResourceNotFoundException('File not found');
112: }
113:
114: $relationObject->setRelatedClass($relatedClassLeft, 'left');
115: $relationObject->setRelatedClassDisplayField($relatedClassLeftDisplayField, 'left');
116: $relationObject->setRelatedClass($relatedClassRight, 'right');
117: $relationObject->setRelatedClassDisplayField($relatedClassRightDisplayField, 'right');
118: $relationObject->setRelationType($relationType);
119: $relationObject->setValue($value);
120:
121: $recSelector = new RecordSelector($relationObject, '', $field, $accessingClassName);
122: echo $recSelector->renderSelector(explode(',', $lookupOIDs));
123: }else{
124: try {
125: $relatedClass = $params['relatedClass'];
126: $relatedClassField = $params['relatedClassField'];
127: $relatedClassDisplayField = $params['relatedClassDisplayField'];
128: }catch (Exception $e) {
129: self::$logger->error('Required param missing for ViewRecordSelector controller['.$e->getMessage().']');
130: throw new ResourceNotFoundException('File not found');
131: }
132:
133: $relationObject->setRelatedClass($relatedClass);
134: $relationObject->setRelatedClassField($relatedClassField);
135: $relationObject->setRelatedClassDisplayField($relatedClassDisplayField);
136: $relationObject->setRelationType($relationType);
137: $relationObject->setValue($value);
138:
139: $recSelector = new RecordSelector($relationObject);
140: echo $recSelector->renderSelector();
141: }
142:
143: self::$logger->debug('<<__doGet');
144: }
145:
146: 147: 148: 149: 150: 151:
152: public function doPOST($params) {
153: self::$logger->debug('>>doPOST($params=['.var_export($params, true).'])');
154:
155: self::$logger->debug('<<doPOST');
156: }
157:
158: }
159:
160:
161: if ('ViewRecordSelector.php' == basename($_SERVER['PHP_SELF'])) {
162: $controller = new ViewRecordSelector();
163:
164: if(!empty($_POST)) {
165: $controller->doPOST($_POST);
166: }else{
167: $controller->doGET($_GET);
168: }
169: }
170:
171: ?>