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: class ViewRecordSelector extends AlphaController implements AlphaControllerInterface {
56: 57: 58: 59: 60: 61:
62: private static $logger = null;
63:
64: 65: 66: 67: 68:
69: public function __construct() {
70: self::$logger = new Logger('ViewRecordSelector');
71: self::$logger->debug('>>__construct()');
72:
73:
74: parent::__construct('Public');
75:
76: self::$logger->debug('<<__construct');
77: }
78:
79: 80: 81: 82: 83: 84: 85:
86: public function doGet($params) {
87: self::$logger->debug('>>doGet(params=['.var_export($params, true).'])');
88:
89: $relationObject = new Relation();
90:
91: try {
92: $relationType = $params['relationType'];
93: $value = $params['value'];
94: }catch (Exception $e) {
95: self::$logger->error('Required param missing for ViewRecordSelector controller['.$e->getMessage().']');
96: throw new ResourceNotFoundException('File not found');
97: }
98:
99: if($_GET['relationType'] == 'MANY-TO-MANY') {
100: try {
101: $relatedClassLeft = $params['relatedClassLeft'];
102: $relatedClassLeftDisplayField = $params['relatedClassLeftDisplayField'];
103: $relatedClassRight = $params['relatedClassRight'];
104: $relatedClassRightDisplayField = $params['relatedClassRightDisplayField'];
105: $field = $params['field'];
106: $accessingClassName = $params['accessingClassName'];
107: $lookupOIDs = $params['lookupOIDs'];
108: }catch (Exception $e) {
109: self::$logger->error('Required param missing for ViewRecordSelector controller['.$e->getMessage().']');
110: throw new ResourceNotFoundException('File not found');
111: }
112:
113: $relationObject->setRelatedClass($relatedClassLeft, 'left');
114: $relationObject->setRelatedClassDisplayField($relatedClassLeftDisplayField, 'left');
115: $relationObject->setRelatedClass($relatedClassRight, 'right');
116: $relationObject->setRelatedClassDisplayField($relatedClassRightDisplayField, 'right');
117: $relationObject->setRelationType($relationType);
118: $relationObject->setValue($value);
119:
120: $recSelector = new RecordSelector($relationObject, '', $field, $accessingClassName);
121: echo $recSelector->renderSelector(explode(',', $lookupOIDs));
122: }else{
123: try {
124: $relatedClass = $params['relatedClass'];
125: $relatedClassField = $params['relatedClassField'];
126: $relatedClassDisplayField = $params['relatedClassDisplayField'];
127: }catch (Exception $e) {
128: self::$logger->error('Required param missing for ViewRecordSelector controller['.$e->getMessage().']');
129: throw new ResourceNotFoundException('File not found');
130: }
131:
132: $relationObject->setRelatedClass($relatedClass);
133: $relationObject->setRelatedClassField($relatedClassField);
134: $relationObject->setRelatedClassDisplayField($relatedClassDisplayField);
135: $relationObject->setRelationType($relationType);
136: $relationObject->setValue($value);
137:
138: $recSelector = new RecordSelector($relationObject);
139: echo $recSelector->renderSelector();
140: }
141:
142: self::$logger->debug('<<__doGet');
143: }
144:
145: 146: 147: 148: 149: 150:
151: public function doPOST($params) {
152: self::$logger->debug('>>doPOST($params=['.var_export($params, true).'])');
153:
154: self::$logger->debug('<<doPOST');
155: }
156: }
157:
158:
159: if ('ViewRecordSelector.php' == basename($_SERVER['PHP_SELF'])) {
160: $controller = new ViewRecordSelector();
161:
162: if(!empty($_POST)) {
163: $controller->doPOST($_POST);
164: }else{
165: $controller->doGET($_GET);
166: }
167: }
168:
169: ?>