Author: sebawagner
Date: Sun Aug  5 16:55:11 2012
New Revision: 1369619

URL: http://svn.apache.org/viewvc?rev=1369619&view=rev
Log:
OPENMEETINGS-389 fix update of form and REST call

Modified:
    
incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetings.module
    
incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetingsRoomManagament.php
    
incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetings_gateway.php

Modified: 
incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetings.module
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetings.module?rev=1369619&r1=1369618&r2=1369619&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetings.module
 (original)
+++ 
incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetings.module
 Sun Aug  5 16:55:11 2012
@@ -236,15 +236,15 @@ function openmeetings_start_form($form_s
                        $becomemoderator = 0;
                }
 
-               $showAudioVideoTest = 1;
+               $allowRecording = 
$node['build_info']['args'][0]->room->allowRecording;
 
                //test if user is logined       
                if (!in_array("anonymous user", $user->roles)) {
-                       $roomhash = 
$openmeetings_gateway->openmeetings_setUserObjectAndGenerateRoomHash($user->name,
 $user->name, '', $user->picture, $user->mail, $user->uid, $user->roles[2], 
$room_id, $becomemoderator, $showAudioVideoTest);
+                       $roomhash = 
$openmeetings_gateway->openmeetings_setUserObjectAndGenerateRoomHashByURLAndRecFlag($user->name,
 $user->name, '', $user->picture, $user->mail, $user->uid, $user->roles[2], 
$room_id, $becomemoderator, $allowRecording);
                } else {
-                       $roomhash = 
$openmeetings_gateway->openmeetings_setUserObjectAndGenerateRoomHash('anonymous 
user', 'anonymous user', '', 'anonymous user', 'anonymous user', $user->uid, 
$user->roles[1], $room_id, $becomemoderator, $showAudioVideoTest);
+                       $roomhash = 
$openmeetings_gateway->openmeetings_setUserObjectAndGenerateRoomHashByURLAndRecFlag('anonymous
 user', 'anonymous user', '', 'anonymous user', 'anonymous user', $user->uid, 
$user->roles[1], $room_id, $becomemoderator, $allowRecording);
                }
-
+               
                if ($language->language == 'en') {
                        $om_laguage_id = 1;
                } else if ($language->language == 'de') {
@@ -421,6 +421,19 @@ function openmeetings_form(& $node) {
        // build the node form correctly.
        global $user;
        // $type = node_get_types('type', $node);
+       
+       $node->room = null;
+       
+       if (isset($node->vid)) {
+               $additions = db_query('SELECT * FROM {openmeetings_rooms} WHERE 
nid = :nid', array (
+                       ':nid' => $node->vid
+               ));
+
+               foreach($additions as $room) {
+                       $node->room = $room;
+               }
+       }
+       
 
        $type = _node_types_build()->types;
        
@@ -483,7 +496,7 @@ function openmeetings_form(& $node) {
                $form['roomtype_id'] = array (
                        '#type' => 'select',
                        '#title' => t('Roomtype'),
-                       '#default_value' => isset ($node->roomtype_id) ? 
$node->roomtype_id : 1,
+                       '#default_value' => isset ($node->room->roomtype_id) ? 
$node->room->roomtype_id : 1,
                        '#options' => $options,
                        '#description' => t('Roomtype'),
                        
@@ -491,7 +504,7 @@ function openmeetings_form(& $node) {
        } else {
                $form['roomtype_id'] = array (
                        '#type' => 'hidden',
-                       '#default_value' => isset ($node->roomtype_id) ? 
$node->roomtype_id : 1,
+                       '#default_value' => isset ($node->room->roomtype_id) ? 
$node->room->roomtype_id : 1,
                        
                );
        }
@@ -515,22 +528,33 @@ function openmeetings_form(& $node) {
        }
 
        if (user_access('edit is_public', $user)) {
-               $options = array (
-                       "1" => t('Yes'),
-                       "0" => t('No')
-               );
+               
+               //the "ispublic" flag has no effect to the drupal integration,
+               //integrated rooms should always have the flag set to false/0
+               
+//             $options = array (
+//                     "1" => t('Yes'),
+//                     "0" => t('No')
+//             );
+//             $form['is_public'] = array (
+//                     '#type' => 'select',
+//                     '#title' => t('Public Room'),
+//                     '#default_value' => isset ($node->room->is_public) ? 
$node->room->is_public : "1",
+//                     '#options' => $options,
+//                     '#description' => t('If this room is public, it will 
appear in the frontend for everybody.'),
+//                     
+//             );
+               
                $form['is_public'] = array (
-                       '#type' => 'select',
-                       '#title' => t('Public Room'),
-                       '#default_value' => isset ($node->is_public) ? 
$node->is_public : "1",
-                       '#options' => $options,
-                       '#description' => t('If this room is public, it will 
appear in the frontend for everybody.'),
+                       '#type' => 'hidden',
+                       '#default_value' => 0,
                        
                );
+               
        } else {
                $form['is_public'] = array (
                        '#type' => 'hidden',
-                       '#default_value' => isset ($node->is_public) ? 
$node->is_public : "1",
+                       '#default_value' => 0,
                        
                );
        }
@@ -538,13 +562,13 @@ function openmeetings_form(& $node) {
        if (user_access('edit appointment', $user)) {
                $form['appointment'] = array (
                        '#type' => 'hidden',
-                       '#default_value' => isset ($node->appointment) ? 
$node->appointment : "0",
+                       '#default_value' => isset ($node->room->appointment) ? 
$node->room->appointment : "0",
                        
                );
        } else {
                $form['appointment'] = array (
                        '#type' => 'hidden',
-                       '#default_value' => isset ($node->appointment) ? 
$node->appointment : "0",
+                       '#default_value' => isset ($node->room->appointment) ? 
$node->room->appointment : "0",
                        
                );
        }
@@ -557,15 +581,15 @@ function openmeetings_form(& $node) {
                $form['is_moderated_room'] = array (
                        '#type' => 'select',
                        '#title' => t('Moderated Room'),
-                       '#default_value' => isset ($node->is_moderated_room) ? 
$node->is_moderated_room : "1",
+                       '#default_value' => isset 
($node->room->is_moderated_room) ? $node->room->is_moderated_room : "1",
                        '#options' => $options,
-                       '#description' => t('Users have to wait untill a 
Moderator arrives. Use the becomeModerator param in 
setUserObjectAndGenerateRoomHash to set a user as default Moderator.'),
+                       '#description' => t('Users have to wait untill a 
Moderator arrives.'),
                        
                );
        } else {
                $form['is_moderated_room'] = array (
                        '#type' => 'hidden',
-                       '#default_value' => isset ($node->is_moderated_room) ? 
$node->is_moderated_room : "1",
+                       '#default_value' => isset 
($node->room->is_moderated_room) ? $node->room->is_moderated_room : "1",
                        
                );
        }
@@ -578,7 +602,7 @@ function openmeetings_form(& $node) {
                $form['isAudioOnly'] = array (
                        '#type' => 'select',
                        '#title' => t('Is Audio Only'),
-                       '#default_value' => isset ($node->isAudioOnly) ? 
$node->isAudioOnly : "0",
+                       '#default_value' => isset ($node->room->isAudioOnly) ? 
$node->room->isAudioOnly : "0",
                        '#options' => $options,
                        '#description' => t('Is Audio Only.'),
                        
@@ -586,7 +610,7 @@ function openmeetings_form(& $node) {
        } else {
                $form['isAudioOnly'] = array (
                        '#type' => 'hidden',
-                       '#default_value' => isset ($node->isAudioOnly) ? 
$node->isAudioOnly : "1",
+                       '#default_value' => isset ($node->room->isAudioOnly) ? 
$node->room->isAudioOnly : "1",
                        
                );
        }
@@ -599,7 +623,7 @@ function openmeetings_form(& $node) {
                $form['allowUserQuestions'] = array (
                        '#type' => 'select',
                        '#title' => t('Allow User Questions'),
-                       '#default_value' => isset ($node->allowUserQuestions) ? 
$node->allowUserQuestions : "1",
+                       '#default_value' => isset 
($node->room->allowUserQuestions) ? $node->room->allowUserQuestions : "1",
                        '#options' => $options,
                        '#description' => t('Allow users to ask questions.'),
                        
@@ -607,7 +631,7 @@ function openmeetings_form(& $node) {
        } else {
                $form['allowUserQuestions'] = array (
                        '#type' => 'hidden',
-                       '#default_value' => isset ($node->allowUserQuestions) ? 
$node->allowUserQuestions : "1",
+                       '#default_value' => isset 
($node->room->allowUserQuestions) ? $node->room->allowUserQuestions : "1",
                        
                );
        }
@@ -620,7 +644,7 @@ function openmeetings_form(& $node) {
                $form['allowRecording'] = array (
                        '#type' => 'select',
                        '#title' => t('Allow Recording'),
-                       '#default_value' => isset ($node->allowRecording) ? 
$node->allowRecording : "1",
+                       '#default_value' => isset ($node->room->allowRecording) 
? $node->room->allowRecording : "1",
                        '#options' => $options,
                        '#description' => t('Allow Recording.'),
                        
@@ -628,7 +652,7 @@ function openmeetings_form(& $node) {
        } else {
                $form['allowRecording'] = array (
                        '#type' => 'hidden',
-                       '#default_value' => isset ($node->allowRecording) ? 
$node->allowRecording : "1",
+                       '#default_value' => isset ($node->room->allowRecording) 
? $node->room->allowRecording : "1",
                        
                );
        }
@@ -757,6 +781,9 @@ function openmeetings_insert($node) {
                        'is_public' => $node->is_public,
                        'appointment' => 0,
                        'is_moderated_room' => $node->is_moderated_room,
+                       'allowRecording' => $node->allowRecording,
+                       'isAudioOnly' => $node->isAudioOnly,
+                       'allowUserQuestions' => $node->allowUserQuestions,
                        'demo' => 0,
                        
                ))->execute();
@@ -788,13 +815,17 @@ function openmeetings_update($node) {
                openmeetings_insert($node);
        } else {
 
+               //print_r($node);
+               //die("UDPATE");
+
                $room_name = check_plain($node->room_name);
                if ($room_name == variable_get('openmeetings_room_prefix2', 
'NewRoom')) {
                        $room_name = variable_get('openmeetings_room_prefix2', 
'NewRoom') . "_" . base_convert((time() - 1225500000) . rand(0, 10), 10, 36);
                }
-               $data = '';
+               
+               $data = array();
 
-               $data['room_id'] = $node->original->room->room_id;
+               $data['room_id'] = $node->room->room_id;
                $data['name'] = $node->room_name;
                $data['roomtype_id'] = $node->roomtype_id;
                $data['comment'] = $node->room_comment;
@@ -803,9 +834,10 @@ function openmeetings_update($node) {
                $data['appointment'] = $node->appointment;
                $data['isDemoRoom'] = 0;
                $data['demoTime'] = "";
+               $data['isAudioOnly'] = $node->isAudioOnly;
                $data['is_moderated_room'] = $node->is_moderated_room;
                $data['allowUserQuestions'] = $node->allowUserQuestions;
-
+               
                $omRoomManagament = new openmeetingsRoomManagament();
                $room_id = 
$omRoomManagament->updateRoomWithModerationAndQuestions($data);
 
@@ -827,7 +859,10 @@ function openmeetings_update($node) {
                                'file_delete' => 0,
                                'is_public' => 0,
                                'appointment' => 0,
-                               'is_moderated_room' => 0,
+                               'is_moderated_room' => $node->is_moderated_room,
+                               'allowRecording' => $node->allowRecording,
+                               'isAudioOnly' => $node->isAudioOnly,
+                               'allowUserQuestions' => 
$node->allowUserQuestions,
                                'demo' => 0,
                                
                        ))->condition('nid', $node->nid)->execute();

Modified: 
incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetingsRoomManagament.php
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetingsRoomManagament.php?rev=1369619&r1=1369618&r2=1369619&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetingsRoomManagament.php
 (original)
+++ 
incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetingsRoomManagament.php
 Sun Aug  5 16:55:11 2012
@@ -52,14 +52,11 @@ class openmeetingsRoomManagament {
                        $openmeetings->isDemoRoom = 0;
                        $openmeetings->demoTime = "";
                        $openmeetings->isModeratedRoom = 
$data['is_moderated_room'];
+                       $openmeetings->isAudioOnly = $data['isAudioOnly'];
                        $openmeetings->allowUserQuestions = 
$data['allowUserQuestions'];
                        
-                       $roomid = 
$openmeetings_gateway->updateRoomWithModerationAndQuestions($openmeetings);   
+                       $roomid = 
$openmeetings_gateway->openmeetings_updateRoomWithModerationAndQuestions($openmeetings);
      
                        
-                       //echo "roomid". $roomid;
-                       //exit();
-                       
-                               
                        return $roomid;
                                                
                } else {

Modified: 
incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetings_gateway.php
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetings_gateway.php?rev=1369619&r1=1369618&r2=1369619&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetings_gateway.php
 (original)
+++ 
incubator/openmeetings/trunk/plugins/drupal/sites/all/modules/openmeetings/openmeetings_gateway.php
 Sun Aug  5 16:55:11 2012
@@ -105,8 +105,6 @@ class openmeetings_gateway {
 
        function openmeetings_updateRoomWithModeration($openmeetings) {
 
-               global $CFG;
-
                $restService = new openmeetings_rest_service();
                //echo $restService."<br/>";
                $err = $restService->getError();
@@ -118,7 +116,7 @@ class openmeetings_gateway {
                $course_name = 
'MOODLE_COURSE_ID_'.$openmeetings->course.'_NAME_'.$openmeetings->name;
                        
                $isModeratedRoom = false;
-               if ($openmeetings->is_moderated_room == 1) {
+               if ($openmeetings->isModeratedRoom == 1) {
                        $isModeratedRoom = true;
                }
 
@@ -142,6 +140,48 @@ class openmeetings_gateway {
                }
                return -1;
        }
+       
+       function 
openmeetings_updateRoomWithModerationAndQuestions($openmeetings) {
+
+               $restService = new openmeetings_rest_service();
+               //echo $restService."<br/>";
+               $err = $restService->getError();
+               if ($err) {
+                       echo '<h2>Constructor error</h2><pre>' . $err . 
'</pre>';
+                       echo '<h2>Debug</h2><pre>' . 
htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
+                       exit();
+               }
+               $room_name = 
'DRUPAL_ModeleKey:_'.$this->moduleKey.'_NAME_'.$openmeetings->name;
+                       
+               $isModeratedRoom = ($openmeetings->isModeratedRoom == 1) ? 
'true' : 'false';
+       $allowUserQuestions = ($openmeetings->allowUserQuestions == 1) ? 'true' 
: 'false';
+       $isAudioOnly = ($openmeetings->isAudioOnly == 1) ? 'true' : 'false';
+
+               $url = 
$this->getUrl()."/services/RoomService/updateRoomWithModerationAndQuestions?" .
+                                                       
"SID=".$this->session_id.
+                                                       
"&room_id=".$openmeetings->room_id.
+                                                       
"&name=".urlencode($room_name).
+                                                       
"&roomtypes_id=".urlencode($openmeetings->roomtypes_id).
+                                                       
"&comment=".urlencode("Created by SOAP-Gateway for Moodle Platform").
+                                                       
"&numberOfPartizipants=".$openmeetings->numberOfPartizipants.
+                                                       "&ispublic=false".
+                                                       "&appointment=false".
+                                                       "&isDemoRoom=false".
+                                                       "&demoTime=0".
+                                                       
"&isModeratedRoom=".$isModeratedRoom . 
+                                                       
"&allowUserQuestions=".$allowUserQuestions;
+
+               die($url);
+
+               $result = $restService->call($url);
+
+               if ($restService->getError()) {
+                       echo '<h2>Fault (Expect - The request contains an 
invalid SOAP body)</h2><pre>'; print_r($restService->getErrorMessage()); echo 
'</pre>';
+               } else {
+                       return $result;
+               }
+               return -1;
+       }
 
        /*
         * public String setUserObjectAndGenerateRecordingHashByURL(String SID, 
String username, String firstname, String lastname,
@@ -346,6 +386,48 @@ class openmeetings_gateway {
                }   
                return -1;
        }
+       
+       function 
openmeetings_updateRoomWithModerationQuestionsAudioTypeAndHideOptions($openmeetings)
 {
+       
+               $restService = new openmeetings_rest_service();
+       $room_name = 
'DRUPAL_ModeleKey:_'.$this->moduleKey.'_NAME_'.$openmeetings->name;
+               
+       $isModeratedRoom = ($openmeetings->isModeratedRoom == 1) ? 'true' : 
'false';
+       $allowUserQuestions = ($openmeetings->allowUserQuestions == 1) ? 'true' 
: 'false';
+       $isAudioOnly = ($openmeetings->isAudioOnly == 1) ? 'true' : 'false';
+               
+               $url = 
$this->getUrl().'/services/RoomService/updateRoomWithModerationQuestionsAudioTypeAndHideOptions?'
 .
+                                               'SID='.$this->session_id .
+                                               
'&room_id='.$openmeetings->room_id .
+                                               '&name='.urlencode($room_name).
+                                               
'&roomtypes_id='.$openmeetings->roomtypes_id .
+                                               '&comment='.urlencode('Created 
by SOAP/REST-Gateway for Drupal Platform') .
+                                               
'&numberOfPartizipants='.$openmeetings->numberOfPartizipants .
+                                               
'&ispublic='.$openmeetings->ispublic .
+                                               '&appointment=false'.
+                                               '&isDemoRoom=false'.
+                                               '&demoTime=0' .
+                                               '&isModeratedRoom='. 
$isModeratedRoom .
+                                               '&allowUserQuestions='. 
$allowUserQuestions .
+                                               '&isAudioOnly='. $isAudioOnly .
+                                               '&hideTopBar=false' .
+                                               '&hideChat=false' .
+                                               
'&hideActivitiesAndActions=false' .
+                                               '&hideFilesExplorer=false' .
+                                               '&hideActionsMenu=false' .
+                                               '&hideScreenSharing=false' .
+                                               '&hideWhiteboard=false' 
+                                               ;
+               
+               $result = $restService->call($url, "return");
+               
+               if ($restService->getError()) {
+                       echo '<h2>Fault (Expect - The request contains an 
invalid SOAP body)</h2><pre>'; print_r($restService->getErrorMessage()); echo 
'</pre>';
+               } else {
+                       return $result;
+               }   
+               return -1;
+       }
 
        /**
         * Get list of available recordings made by this Moodle instance


Reply via email to