소스 검색

Fixed many little issues with registering urls (and speed) - now working correctly and only missing localization - refs #5793

Yannick Warnier 12 년 전
부모
커밋
1904876b99

+ 14 - 12
main/admin/access_url_edit.php

@@ -39,11 +39,10 @@ if( $form->validate()) {
             if ($url_id==1)
                 $active=1;
             //checking url
-            if (substr($url,-1)=='/') {
-                UrlManager::udpate($url_id, $url, $description, $active);
-            } else {
-                UrlManager::udpate($url_id, $url.'/', $description, $active);
+            if (substr($url,-1)!=='/') {
+                $url_id .= '/';
             }
+            UrlManager::udpate($url_id, $url, $description, $active, $url_array['url_type'], $url_array);
             // URL Images
             $url_images_dir = api_get_path(SYS_PATH).'custompages/url-images/';
             $image_fields = array("url_image_1", "url_image_2", "url_image_3");
@@ -63,12 +62,11 @@ if( $form->validate()) {
             $num = UrlManager::url_exist($url);
             if ($num == 0) {
                 //checking url
-                if (substr($url,-1)=='/') {
-                    UrlManager::add($url, $description, $active);
-                } else {
-                    //create
-                    UrlManager::add($url.'/', $description, $active);
+                if (substr($url,-1)!='/' && $url_array['url_type'] == 1) {
+                    $url.='/';
                 }
+                $url_array['ip'] = $url_array['url'];
+                UrlManager::add($url, $description, $active, $url_array['url_type'], $url_array);
                 $message = get_lang('URLAdded');
                 $url_to_go='access_urls.php';
             } else {
@@ -106,12 +104,16 @@ if( $form->validate()) {
 }
 
 
-$form->addElement('text','url', 'URL', array('class'=>'span6'));
+$form->addElement('text','url', get_lang('URLIP'), array('class'=>'span6'));
 $form->addRule('url', get_lang('ThisFieldIsRequired'), 'required');
 $form->addRule('url', '', 'maxlength',254);
 
-$types = array(1=>get_lang('AccessURL'), 2=>get_lang('SincroServer'), 3=>get_lang('SincroClient'));
-$form->addElement('select', 'type', get_lang('Type'), $types);
+$types = array(
+  1=>get_lang('AccessURL'), 
+  2=>get_lang('SincroServer'), 
+  3=>get_lang('SincroClient'),
+);
+$form->addElement('select', 'url_type', get_lang('Type'), $types);
 
 $form->addElement('textarea','description',get_lang('Description'));
 

+ 91 - 70
main/admin/access_urls.php

@@ -1,10 +1,14 @@
 <?php
 /* For licensing terms, see /license.txt */
 /**
-*	@package chamilo.admin
-*	@author Julio Montoya <gugli100@gmail.com>
-*/
-
+ * Frontend script for multiple access urls
+ * @package chamilo.admin
+ * @author Julio Montoya <gugli100@gmail.com>
+ * @author Yannick Warnier <yannick.warnier@beeznest.com>
+ */
+/**
+ * Initialization
+ */
 // name of the language file that needs to be included
 $language_file = 'admin';
 $cidReset = true;
@@ -15,8 +19,8 @@ $this_section = SECTION_PLATFORM_ADMIN;
 api_protect_global_admin_script();
 
 if (!api_get_multiple_access_url()) {
-	header('Location: index.php');
-	exit;
+    header('Location: index.php');
+    exit;
 }
 
 $interbreadcrumb[] = array ("url" => 'index.php', 'name' => get_lang('PlatformAdmin'));
@@ -26,77 +30,75 @@ Display :: display_header($tool_name);
 $my_user_url_list = api_get_access_url_from_user(api_get_user_id());
 $current_access_url_id = api_get_current_access_url_id();
 $url_list = UrlManager::get_url_data();
-
-// Actions
+/**
+ * Controller
+ */
 if (isset ($_GET['action'])) {
-	if ($_GET['action'] == 'show_message')
-		Display :: display_normal_message(Security::remove_XSS(stripslashes($_GET['message'])));
-
-	$check = Security::check_token('get');
-	if ($check) {
-		$url_id=Database::escape_string($_GET['url_id']);
-
-		switch ($_GET['action']) {
-			case 'delete_url' :
-				$result = UrlManager::delete($url_id);
-				if ($result) {
-					Display :: display_normal_message(get_lang('URLDeleted'));
-				} else {
-					Display :: display_error_message(get_lang('CannotDeleteURL'));
-				}
-				break;
-			case 'lock' :
-				UrlManager::set_url_status('lock',$url_id);
-				Display :: display_normal_message(get_lang('URLInactive'));
-				break;
-			case 'unlock';
-				UrlManager::set_url_status('unlock',$url_id);
-				Display :: display_normal_message(get_lang('URLActive'));
-				break;
-			case 'register';
-				// we are going to register the admin
-				if(api_is_platform_admin()) {
-					if($current_access_url_id!=-1) {
-						$url_str = '';
-						foreach($url_list as $my_url) {
-							if (!in_array($my_url['id'],$my_user_url_list)){
-								UrlManager::add_user_to_url(api_get_user_id(),$my_url['id']);
-									$url_str.=$my_url['url'].' <br />';
-							}
-						}
-						Display :: display_normal_message(get_lang('AdminUserRegisteredToThisURL').': '.$url_str.'<br />',false);
-					}
-				}
-				break;
-			}
-
-		}
-		Security::clear_token();
+    if ($_GET['action'] == 'show_message') {
+        Display :: display_normal_message(Security::remove_XSS(stripslashes($_GET['message'])));
+    }
+    $check = Security::check_token('get');
+    if ($check) {
+        $url_id=Database::escape_string($_GET['url_id']);
+
+        switch ($_GET['action']) {
+            case 'delete_url' :
+                $result = UrlManager::delete($url_id);
+                if ($result) {
+                    Display :: display_normal_message(get_lang('URLDeleted'));
+                } else {
+                    Display :: display_error_message(get_lang('CannotDeleteURL'));
+                }
+                break;
+            case 'lock' :
+                UrlManager::set_url_status('lock',$url_id);
+                Display :: display_normal_message(get_lang('URLInactive'));
+                break;
+            case 'unlock';
+                UrlManager::set_url_status('unlock',$url_id);
+                Display :: display_normal_message(get_lang('URLActive'));
+                break;
+            case 'register';
+                // we are going to register the admin
+                if(api_is_platform_admin()) {
+                    if($current_access_url_id!=-1) {
+                        $url_str = '';
+                        foreach($url_list as $my_url) {
+                            if (!in_array($my_url['id'],$my_user_url_list)){
+                                UrlManager::add_user_to_url(api_get_user_id(),$my_url['id']);
+                                $url_str.=$my_url['url'].' <br />';
+                            }
+                        }
+                        Display :: display_normal_message(get_lang('AdminUserRegisteredToThisURL').': '.$url_str.'<br />',false);
+                    }
+                }
+                break;
+        }
+    }
+    Security::clear_token();
 }
-
 $parameters['sec_token'] = Security::get_token();
 
 // checking if the admin is registered in all sites
-
 $url_string='';
 $my_user_url_list = api_get_access_url_from_user(api_get_user_id());
 foreach($url_list as $my_url) {
-	if (!in_array($my_url['id'],$my_user_url_list)){
-		$url_string.=$my_url['url'].' <br />';
-	}
+    if (!in_array($my_url['id'],$my_user_url_list)){
+        $url_string.=$my_url['url'].' <br />';
+    }
 }
 if(!empty($url_string)) {
-	Display :: display_warning_message(get_lang('AdminShouldBeRegisterInSite').'<br />'.$url_string,false);
+    Display :: display_warning_message(get_lang('AdminShouldBeRegisterInSite').'<br />'.$url_string,false);
 }
 
 // checking the current installation
 if ($current_access_url_id==-1) {
-	Display :: display_warning_message(get_lang('URLNotConfiguredPleaseChangedTo').': '.api_get_path(WEB_PATH));
+    Display :: display_warning_message(get_lang('URLNotConfiguredPleaseChangedTo').': '.api_get_path(WEB_PATH));
 } elseif(api_is_platform_admin()) {
-	$quant= UrlManager::relation_url_user_exist(api_get_user_id(),$current_access_url_id);
-	if ($quant==0) {
-		Display :: display_warning_message('<a href="'.api_get_self().'?action=register&sec_token='.$parameters['sec_token'].'">'.get_lang('ClickToRegisterAdmin').'</a>',false);
-	}
+    $quant= UrlManager::relation_url_user_exist(api_get_user_id(),$current_access_url_id);
+    if ($quant==0) {
+        Display :: display_warning_message('<a href="'.api_get_self().'?action=register&sec_token='.$parameters['sec_token'].'">'.get_lang('ClickToRegisterAdmin').'</a>',false);
+    }
 }
 
 // action menu
@@ -110,11 +112,27 @@ echo '</div>';
 //$table = new SortableTable('urls', 'url_count_mask', 'get_url_data_mask',2);
 $sortable_data = UrlManager::get_url_data();
 $urls = array();
+$types = array(1=>'AccessURL',2=>'SincroServer',3=>'SincroClient'); 
 foreach($sortable_data as $row)  {
     //title
     $url = Display::url($row['url'], $row['url'], array('target'=>'_blank'));    
-    $description = $row['description'];
-    
+    $name = $row['description'];
+    if (!empty($row['branch_name'])) {
+        $name = $row['branch_name'];
+    }
+    $type = get_lang($types[$row['url_type']]);
+    $contact = '';
+    if (!empty($row['admin_mail']) || !empty($row['admin_name']) || !empty($row['admin_phone'])) {
+        $contact = (!empty($row['admin_name'])?$row['admin_name']:'').
+                   ' &lt;'.(!empty($row['admin_mail'])?$row['admin_mail']:'').
+                   '&gt;, '.(!empty($row['admin_phone'])?$row['admin_phone']:'');
+    }
+    $tech = '';
+    if (!empty($row['dwn_speed']) || !empty($row['up_speed']) || !empty($row['delay'])) {
+        $tech .= (empty($row['dwn_speed'])?'-':$row['dwn_speed']).'/';
+        $tech .= (empty($row['up_speed'])?'-':$row['up_speed']).'/';
+        $tech .= (empty($row['delay'])?'-':$row['delay']);
+    }
     //Status
     $active = $row['active'];
     if ($active=='1') {
@@ -137,7 +155,7 @@ foreach($sortable_data as $row)  {
     if ($url_id != '1') {
         $actions .= '<a href="access_urls.php?action=delete_url&amp;url_id='.$url_id.'&amp;sec_token='.$_SESSION['sec_token'].'" onclick="javascript:if(!confirm('."'".addslashes(api_htmlentities(get_lang("ConfirmYourChoice"),ENT_QUOTES,$charset))."'".')) return false;">'.Display::return_icon('delete.png', get_lang('Delete'), array(), ICON_SIZE_SMALL).'</a>';
     }    
-    $urls[] = array($url, $description, $status, $actions);
+    $urls[] = array($url, $name, $type, $tech, $contact, $status, $actions);
 }
 
 $table = new SortableTableFromArrayConfig($urls, 2, 50, 'urls');
@@ -145,10 +163,13 @@ $table->set_additional_parameters($parameters);
 
 //$table->set_header(0, '');
 $table->set_header(0, 'URL');
-$table->set_header(1, get_lang('Description'));
-$table->set_header(2, get_lang('Active'));
-$table->set_header(3, get_lang('Modify'), false);
+$table->set_header(1, get_lang('Name'));
+$table->set_header(2, get_lang('URLType'));
+$table->set_header(3, 'Dl/Ul/Delay in Kbit/s');
+$table->set_header(4, get_lang('Contact'));
+$table->set_header(5, get_lang('Active'));
+$table->set_header(6, get_lang('Modify'), false);
 $table->display();
 
-/*		FOOTER	*/
-Display :: display_footer();
+/*        FOOTER    */
+Display :: display_footer();

+ 2 - 2
main/admin/index.php

@@ -158,9 +158,9 @@ if (api_is_platform_admin()) {
     }   
     
     if (!empty($_configuration['multiple_access_urls'])) {
-		if (api_is_global_platform_admin()) {
+	if (api_is_global_platform_admin()) {
             	$items[] = array('url'=>'access_urls.php', 	'label' => get_lang('ConfigureMultipleAccessURLs'));                
-            }
+        }
     }
     
     if (api_get_setting('allow_reservation') == 'true') {

+ 4 - 2
main/inc/lib/database.constants.inc.php

@@ -341,5 +341,7 @@ define('TABLE_TIMELINE',                    'timeline');
 define('TABLE_GRADE_MODEL',                  'grade_model');
 define('TABLE_GRADE_MODEL_COMPONENTS',       'grade_components');
 
-define('TABLE_MIGRATION_TRANSACTION',           'migration_transaction');
-define('TABLE_MIGRATION_TRANSACTION_STATUS',    'migration_transaction_status');
+define('TABLE_BRANCH_SYNC',                  'branch_sync');
+define('TABLE_BRANCH_SYNC_LOG',              'branch_sync_log');
+define('TABLE_BRANCH_TRANSACTION',           'branch_transaction');
+define('TABLE_BRANCH_TRANSACTION_STATUS',    'branch_transaction_status');

+ 5 - 0
main/inc/lib/database.lib.php

@@ -692,6 +692,11 @@ class Database {
                 strpos($query, 'track_c_referers') === false &&
                 strpos($query, 'track_c_browsers') === false &&
                 strpos($query, 'settings_current') === false &&
+                strpos($query, 'branch_sync') === false &&
+                strpos($query, 'branch_sync_log') === false &&
+                strpos($query, 'branch_sync_log') === false &&
+                strpos($query, 'branch_transaction') === false &&
+                strpos($query, 'branch_transaction_status') === false &&
                 strpos($query, 'dokeos_classic_2D') === false &&
                 strpos($query, 'cosmic_campus') === false &&
                 strpos($query, 'static_') === false &&

+ 68 - 15
main/inc/lib/urlmanager.lib.php

@@ -20,19 +20,49 @@ class UrlManager
  	  * @param	string  The description of the site
  	  * @param	int		is active or not
 	  * @param  int     the user_id of the owner
+          * @param int The type of URL (1=multiple-access-url, 2=sincro-server, 3=sincro-client)
+          * @param array If the type is different than 1, then there might be extra URL parameters to take into account
 	  * @return boolean if success
 	  */
-	public static function add($url, $description, $active)
-	{
+	public static function add($url, $description, $active, $type=1, $extra_params) {
 		$tms = time();
+                $type = intval($type);
 		$table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
-		$sql = "INSERT INTO $table_access_url
-                SET url 	= '".Database::escape_string($url)."',
-                description = '".Database::escape_string($description)."',
-                active 		= '".Database::escape_string($active)."',
-                created_by 	= '".api_get_user_id()."',
-                tms = FROM_UNIXTIME(".$tms.")";
-		$result = Database::query($sql);
+                $u = api_get_user_id();
+                if ($u == 0) {
+                    $u = api_get_anonymous_id();
+                }
+                if ($type > 1) {
+                  $active = 0;
+                }
+		$sql = "INSERT INTO $table_access_url ".
+                " SET url 	= '".Database::escape_string($url)."', ".
+                " description = '".Database::escape_string($description)."', ".
+                " active 		= $active, ".
+                " created_by 	= $u, ".
+                " url_type        = $type, ".
+                " tms = FROM_UNIXTIME(".$tms.")";
+                $result = Database::query($sql);
+                $id = Database::insert_id();
+                if ($result !== false && $type == 3 && count($extra_params)>0) {
+                    // Register extra parameters in the branch_sync table
+                    $t = Database::get_main_table(TABLE_BRANCH_SYNC);
+                    $sql = "INSERT INTO $t SET ".
+                           " access_url_id = $id ".
+                           (!empty($extra_params['ip'])?", branch_ip = '".Database::escape_string($extra_params['ip'])."'":"") .
+                           (!empty($extra_params['name'])?", branch_name = '".Database::escape_string($extra_params['name'])."'":"") .
+                           (!empty($extra_params['last_sync'])?", last_sync_trans_id = '".Database::escape_string($extra_params['last_sync'])."'":"") .
+                           (!empty($extra_params['dwn_speed'])?", dwn_speed = '".Database::escape_string($extra_params['dwn_speed'])."'":"") .
+                           (!empty($extra_params['up_speed'])?", up_speed = '".Database::escape_string($extra_params['up_speed'])."'":"") .
+                           (!empty($extra_params['delay'])?", delay = '".Database::escape_string($extra_params['delay'])."'":"") .
+                           (!empty($extra_params['admin_mail'])?", admin_mail = '".Database::escape_string($extra_params['admin_mail'])."'":"") .
+                           (!empty($extra_params['admin_name'])?", admin_name = '".Database::escape_string($extra_params['admin_name'])."'":"") .
+                           (!empty($extra_params['admin_phone'])?", admin_phone = '".Database::escape_string($extra_params['admin_phone'])."'":"") .
+                           (!empty($extra_params['latitude'])?", latitude = '".Database::escape_string($extra_params['latitude'])."'":"") .
+                           (!empty($extra_params['longitude'])?", longitude = '".Database::escape_string($extra_params['longitude'])."'":"") .
+			   ", last_sync_trans_date = '".api_get_utc_datetime()."'"; 
+                    $result = $result && Database::query($sql);
+                }
 		return $result;
 	}
 
@@ -44,10 +74,11 @@ class UrlManager
 	* @param	string  The description of the site
 	* @param	int		is active or not
 	* @param	int     the user_id of the owner
+        * @param	int	The URL type
+        * @param	array	Extra parameters for type > 1
 	* @return 	boolean if success
 	*/
-	public static function udpate($url_id, $url, $description, $active)
-	{
+	public static function udpate($url_id, $url, $description, $active, $type, $extra_params) {
 		$url_id = intval($url_id);
 		$table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
 		$tms = time();
@@ -72,8 +103,17 @@ class UrlManager
 	public static function delete($id)
 	{
 		$id = intval($id);
+		$table_bs  = Database :: get_main_table(TABLE_BRANCH_SYNC);
+		$table_bsl = Database :: get_main_table(TABLE_BRANCH_SYNC_LOG);
+		$table_bt  = Database :: get_main_table(TABLE_BRANCH_TRANSACTION);
 		$table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
-		$sql= "DELETE FROM $table_access_url WHERE id = ".$id;
+                $sql = "DELETE FROM $table_bt WHERE branch_id = ".$id;
+		$result = Database::query($sql);
+                $sql = "DELETE FROM $table_bsl WHERE branch_sync_id = ".$id;
+		$result = Database::query($sql);
+                $sql = "DELETE FROM $table_bs WHERE access_url_id = ".$id;
+		$result = Database::query($sql);
+		$sql = "DELETE FROM $table_access_url WHERE id = ".$id;
 		$result = Database::query($sql);
 		return $result;
 	}
@@ -125,10 +165,17 @@ class UrlManager
 	public static function get_url_data()
 	{
 		$table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
-		$sql = "SELECT id, url, description, active FROM $table_access_url ORDER BY id";
+		$table_branch_sync = Database :: get_main_table(TABLE_BRANCH_SYNC);
+		$sql = "SELECT id, url, description, active, url_type FROM $table_access_url ORDER BY id";
 		$res = Database::query($sql);
 		$urls = array ();
-		while ($url = Database::fetch_array($res)) {
+		while ($url = Database::fetch_assoc($res)) {
+                        if ($url['url_type'] > 1) {
+				$sql2 = "SELECT branch_name, branch_ip, latitude, longitude, dwn_speed, up_speed, delay, admin_mail, admin_name, admin_phone, last_sync_trans_id, last_sync_trans_date, last_sync_type FROM $table_branch_sync WHERE access_url_id = ".$url['id'];
+				$res2 = Database::query($sql2);
+				$url2 = Database::fetch_assoc($res2);
+				$url = array_merge($url, $url2);
+			}
 			$urls[] = $url;
 		}
 		return $urls;
@@ -142,9 +189,15 @@ class UrlManager
 	public static function get_url_data_from_id($url_id)
 	{
 		$table_access_url= Database :: get_main_table(TABLE_MAIN_ACCESS_URL);
-		$sql = "SELECT id, url, description, active FROM $table_access_url WHERE id = ".Database::escape_string($url_id);
+		$sql = "SELECT id, url, description, active, url_type FROM $table_access_url WHERE id = ".Database::escape_string($url_id);
 		$res = Database::query($sql);
 		$row = Database::fetch_array($res);
+                if ($row['url_type'] > 1) {
+			$sql2 = "SELECT * FROM $table_branch_sync WHERE access_url_id = ".$url['id'];
+			$res2 = Database::query($sql);
+			$row2 = Database::fetch_array($res2);
+			$row = array_merge($row,$row2);	
+		}
 		return $row;
 	}
 

+ 41 - 11
main/install/db_main.sql

@@ -1576,6 +1576,7 @@ CREATE TABLE IF NOT EXISTS access_url(
     active	int unsigned not null default 0,
     created_by	int	not null,
     tms DATETIME NOT NULL default '0000-00-00 00:00:00',
+    url_type tinyint unsigned default 1,
     PRIMARY KEY (id)
 );
 
@@ -3088,8 +3089,45 @@ CREATE TABLE usergroup_rel_question (
     coefficient float(6,2)
 );
 
-DROP TABLE IF EXISTS migration_transaction;
-CREATE TABLE migration_transaction (
+DROP TABLE IF EXISTS branch_sync;
+CREATE TABLE branch_sync(
+  id int unsigned not null AUTO_INCREMENT PRIMARY KEY,
+  access_url_id int unsigned not null,
+  branch_name varchar(250) default '',
+  branch_ip varchar(40) default '',
+  latitude decimal(15,7),
+  longitude decimal(15,7),
+  dwn_speed int unsigned default null,
+  up_speed int unsigned default null,
+  delay int unsigned default null,
+  admin_mail varchar(250) default '',
+  admin_name varchar(250) default '',
+  admin_phone varchar(250) default '',
+  last_sync_trans_id bigint unsigned default 0,
+  last_sync_trans_date datetime,
+  last_sync_type char(20) default 'full'
+);
+
+DROP TABLE IF EXISTS branch_sync_log;
+CREATE TABLE branch_sync_log(
+  id bigint unsigned not null AUTO_INCREMENT PRIMARY KEY,
+  branch_sync_id int unsigned not null,
+  sync_trans_id bigint unsigned default 0,
+  sync_trans_date datetime,
+  sync_type char(20)
+);
+
+
+DROP TABLE IF EXISTS branch_transaction_status;
+CREATE TABLE branch_transaction_status (
+    id tinyint not null PRIMARY KEY AUTO_INCREMENT,
+    title char(20)
+);
+
+INSERT INTO branch_transaction_status VALUES (1, 'To be executed'), (2, 'Executed successfully'), (3, 'Execution deprecated'), (4, 'Execution failed');
+
+DROP TABLE IF EXISTS branch_transaction;
+CREATE TABLE branch_transaction (
     id bigint unsigned not null AUTO_INCREMENT,
     transaction_id bigint unsigned,
     branch_id int not null default 0,
@@ -3103,13 +3141,5 @@ CREATE TABLE migration_transaction (
     PRIMARY KEY (id, transaction_id, branch_id)
 );
 
-DROP TABLE IF EXISTS migration_transaction_status;
-CREATE TABLE migration_transaction_status (
-    id tinyint not null PRIMARY KEY AUTO_INCREMENT,
-    title char(20)
-);
-
-INSERT INTO migration_transaction_status VALUES (1, 'To be executed'), (2, 'Executed successfully'), (3, 'Execution deprecated'), (4, 'Execution failed');
-
 -- Do not move this 
-UPDATE settings_current SET selected_value = '1.10.0.20356' WHERE variable = 'chamilo_database_version';
+UPDATE settings_current SET selected_value = '1.10.0.20539' WHERE variable = 'chamilo_database_version';

+ 1 - 1
main/install/index.php

@@ -718,7 +718,7 @@ if (@$_POST['step2']) {
             <td align="right">
                 <input type="hidden" name="is_executable" id="is_executable" value="-" />
                 <input type="hidden" name="step6" value="1" />
-                <button id="button_step6" class="save" type="submit" name="button_step6" value="<?php echo get_lang('InstallChamilo'); ?>">
+                <button id="button_step6" class="save" type="submit" name="button_step6" value="<?php echo get_lang('InstallChamilo'); ?>" autofocus="autofocus">
                     <?php echo get_lang('InstallChamilo'); ?>
                 </button>
                 <button class="save" id="button_please_wait"></button>

+ 12 - 4
main/install/migrate-db-1.9.0-1.10.0-pre.sql

@@ -94,9 +94,17 @@ ALTER TABLE gradebook_link ADD COLUMN evaluation_type_id INT NOT NULL DEFAULT 0;
 
 INSERT INTO settings_options(variable,value,display_text) VALUES ('last_transaction_id','0');
 
-CREATE TABLE migration_transaction (id bigint unsigned not null AUTO_INCREMENT,   transaction_id bigint unsigned, branch_id int not null default 0,  action char(20),  item_id char(36),  orig_id char(36),  dest_id char(36),  status_id tinyint not null default 0,  time_insert datetime NOT NULL DEFAULT '0000-00-00 00:00:00',  time_update datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (id, transaction_id, branch_id));
-CREATE TABLE migration_transaction_status (  id tinyint not null PRIMARY KEY AUTO_INCREMENT,  title char(20));
-INSERT INTO migration_transaction_status VALUES (1, 'To be executed'), (2, 'Executed successfully'), (3, 'Execution deprecated'), (4, 'Execution failed');
+
+ALTER TABLE access_url ADD COLUMN url_type tinyint unsigned default 1;
+
+CREATE TABLE branch_sync( id int unsigned not null AUTO_INCREMENT PRIMARY KEY, access_url_id int unsigned not null, branch_name varchar(250) default '', branch_ip varchar(40) default '', latitude decimal(15,7), longitude decimal(15,7), dwn_speed int unsigned default null, up_speed int unsigned default null, delay int unsigned default null, admin_mail varchar(250) default '', admin_name varchar(250) default '', admin_phone varchar(250) default '', last_sync_trans_id bigint unsigned default 0, last_sync_trans_date datetime, last_sync_type char(20) default 'full');
+
+CREATE TABLE branch_sync_log( id bigint unsigned not null AUTO_INCREMENT PRIMARY KEY, branch_sync_id int unsigned not null, sync_trans_id bigint unsigned default 0, sync_trans_date datetime, sync_type char(20));
+
+CREATE TABLE branch_transaction_status (  id tinyint not null PRIMARY KEY AUTO_INCREMENT,  title char(20));
+INSERT INTO branch_transaction_status VALUES (1, 'To be executed'), (2, 'Executed successfully'), (3, 'Execution deprecated'), (4, 'Execution failed');
+
+CREATE TABLE branch_transaction (id bigint unsigned not null AUTO_INCREMENT,   transaction_id bigint unsigned, branch_id inti unsigned not null default 0,  action char(20),  item_id char(36),  orig_id char(36),  dest_id char(36),  status_id tinyint not null default 0,  time_insert datetime NOT NULL DEFAULT '0000-00-00 00:00:00',  time_update datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (id, transaction_id, branch_id));
 
 -- Do not move this 
-UPDATE settings_current SET selected_value = '1.10.0.20356' WHERE variable = 'chamilo_database_version';
+UPDATE settings_current SET selected_value = '1.10.0.20539' WHERE variable = 'chamilo_database_version';

+ 15 - 1
main/lang/spanish/admin.inc.php

@@ -1688,4 +1688,18 @@ $SpaceUsedOnSystemCannotBeMeasuredOnWindows = "El espacio usado en el disco no p
 $XOldTablesDeleted = "%d tablas antiguas eliminadas";
 $XOldDatabasesDeleted = "%d bases de datos antiguas eliminadas";
 $ExtensionShouldBeLoaded = "Esta extensión debería ser cargada.";
-?>
+$SpeedTest = "Prueba de velocidad";
+$SpeedTestIntroSection = "En esta página, puede hacer la prueba de la velocidad de su conexión hacia el servidor central. Simplemente presione el botón \"Iniciar prueba\"";
+$IPAddress = "Dirección IP";
+$InstitutionName = "Nombre de la I.E.";
+$LatitudeLongitude = "Latitud/Longitud";
+$AdministratorEmail = "Correo administrador";
+$AdministratorFullname = "Nombre completo administrador";
+$AdministratorPhone = "Teléfono de contacto";
+$Note = "Nota";
+$AccessURL = "Multi-URL";
+$SincroServer = "Servidor global de sincronización";
+$SincroClient = "Servidor local de institución";
+$URLIP = "URL/Dirección IP";
+$SentSincroClientData = "Enviar información";
+?>

+ 51 - 33
sincro/index.php

@@ -26,10 +26,12 @@ if (!api_get_multiple_access_url()) {
 $form = new FormValidator('add_url');
 //
 $url_type = 3;
-
+error_log(__LINE__);
 if( $form->validate()) {
-	$check = Security::check_token('post');
-	if($check) {
+error_log(__LINE__);
+	//$check = Security::check_token('post');
+	//if($check) {
+error_log(__LINE__);
 		$url_array = $form->getSubmitValues();
 		$url = Security::remove_XSS($url_array['url']);
 		$description = Security::remove_XSS($url_array['description']);
@@ -37,16 +39,16 @@ if( $form->validate()) {
 		$url_id = $url_array['id'];
 		$url_to_go='index.php';
 		if ($url_id!='') {
+error_log(__LINE__);
 			//we can't change the status of the url with id=1
 			if ($url_id==1) {
 				$active=1;
                         }
 			//checking url
-			if (substr($url,strlen($url)-1, strlen($url))=='/') {
-				UrlManager::udpate($url_id, $url, $description, $active);
-			} else {
-				UrlManager::udpate($url_id, $url.'/', $description, $active);
-			}
+			if (substr($url,-1)=='/') {
+                            $url.='/';
+                        }
+			UrlManager::udpate($url_id, $url, $description, $active, $url_array['url_type'], $url_array);
 /*
 			// URL Images
 			$url_images_dir = api_get_path(SYS_PATH).'custompages/url-images/';
@@ -65,15 +67,15 @@ if( $form->validate()) {
 			$url_to_go='index.php';
 			$message=get_lang('URLEdited');
 		} else {
+error_log(__LINE__);
 			$num = UrlManager::url_exist($url);
 			if ($num == 0) {
 				//checking url
-				if (substr($url,strlen($url)-1, strlen($url))=='/') {
-					UrlManager::add($url, $description, $active);
-				} else {
-					//create
-					UrlManager::add($url.'/', $description, $active);
-				}
+				if (substr($url,-1)=='/') {
+                                    $url .= '/';
+                                }
+error_log(__LINE__);
+				UrlManager::add($url, $description, $active, $url_type, $url_array);
 				$message = get_lang('URLAdded');
 				$url_to_go='index.php';
 			} else {
@@ -81,7 +83,7 @@ if( $form->validate()) {
 				$message = get_lang('URLAlreadyAdded');
 			}
 			// URL Images
-			$url .= (substr($url,strlen($url)-1, strlen($url))=='/') ? '' : '/';
+			$url .= (substr($url,-1)=='/') ? '' : '/';
 			$url_id = UrlManager::get_url_id($url);
 /*
 			$url_images_dir = api_get_path(SYS_PATH).'custompages/url-images/';
@@ -98,31 +100,34 @@ if( $form->validate()) {
 			}
 */
 		}
+error_log(__LINE__);
 		Security::clear_token();
 		$tok = Security::get_token();
-		header('Location: '.$url_to_go.'?action=show_message&message='.urlencode($message).'&sec_token='.$tok);
+		header('Location: '.$url_to_go.'?action=show_message&message='.urlencode($message));//.'&sec_token='.$tok);
 		exit();
-	}
+//	}
 } else {
+error_log(__LINE__);
+/*
 	if(isset($_POST['submit'])) {
 		Security::clear_token();
 	}
 	$token = Security::get_token();
 	$form->addElement('hidden','sec_token');
 	$form->setConstants(array('sec_token' => $token));
+*/
 }
 
-
-$form->addElement('text', 'url', get_lang('IPAddress'));
-$form->addRule('url', get_lang('ThisFieldIsRequired'), 'required');
+//$form->addRule('url', get_lang('ThisFieldIsRequired'), 'required');
 //$form->addRule('url', '', 'maxlength',254);
-
 $form->addElement('text', 'name', get_lang('InstitutionName'));
+$form->addElement('text', 'url', get_lang('IPAddress'));
 //$form->addElement('text', 'ip', get_lang('IPAddress'));
-$form->addElement('text', 'latlong', get_lang('LatitudeLongitude'));
-$form->addElement('hidden', 'dwn_speed', get_lang('DownloadSpeed'));
-$form->addElement('hidden', 'up_speed', get_lang('UploadSpeed'));
-$form->addElement('hidden', 'delay', get_lang('ConnectionDelay'));
+$form->addElement('hidden', 'latitude', get_lang('Latitude'), array('id' => 'latitude'));
+$form->addElement('hidden', 'longitude', get_lang('Longitude'), array('id' => 'longitude'));
+$form->addElement('hidden', 'dwn_speed', get_lang('DownloadSpeed'), array('id' => 'dwn_speed_input'));
+$form->addElement('hidden', 'up_speed', get_lang('UploadSpeed'), array('id' => 'up_speed_input'));
+$form->addElement('hidden', 'delay', get_lang('ConnectionDelay'), array('id' => 'delay_input'));
 $form->addElement('text', 'admin_mail', get_lang('AdministratorEmail'));
 $form->addElement('text', 'admin_name', get_lang('AdministratorFullname'));
 $form->addElement('text', 'admin_phone', get_lang('AdministratorPhone'));
@@ -132,12 +137,12 @@ $form->addElement('textarea','description',get_lang('Note'));
 
 //$defaults['url']='http://';
 $defaults['url'] = $_SERVER['REMOTE_ADDR'];
-$defaults['admin_mail'] = api_get_setting('emailAdministrator');
-$defaults['admin_name'] = api_get_setting('administratorSurname').', '.api_get_setting('administratorName');
-$defaults['admin_phone'] = api_get_setting('administratorTelephone');
+//$defaults['admin_mail'] = api_get_setting('emailAdministrator');
+//$defaults['admin_name'] = api_get_setting('administratorSurname').', '.api_get_setting('administratorName');
+//$defaults['admin_phone'] = api_get_setting('administratorTelephone');
 $form->setDefaults($defaults);
 
-$submit_name = get_lang('AddUrl');
+$submit_name = get_lang('SentSincroClientData');
 if (isset($_GET['url_id'])) {
 	$url_id = Database::escape_string($_GET['url_id']);
 	$num_url_id = UrlManager::url_id_exist($url_id);
@@ -160,6 +165,16 @@ $tool_name = get_lang('SpeedTest');
 /**
  * View
  */
+//<script type="text/javascript" src="jquery-1.3.1.min.js"></script>
+//<script type="text/javascript" src="ui.core.min.js"></script>
+$htmlHeadXtra[] = <<<EOB
+<link rel="stylesheet" href="css/style.css" type="text/css" />
+<script type="text/javascript" src="jquery.query-2.0.1.js"></script>
+<script type="text/javascript" src="ui.progressbar.min.js"></script>
+<script type="text/javascript" src="config.js"></script>
+<script type="text/javascript" src="motor.js"></script>
+EOB;
+
 Display :: display_header($tool_name);
 
 if (isset ($_GET['action'])) {
@@ -177,11 +192,14 @@ $form->addElement('file','url_image_2','URL Image 2 (PNG)');
 $form->addElement('file','url_image_3','URL Image 3 (PNG)');
 */
 // Submit button
-$form->addElement('style_submit_button', 'submit', $submit_name, 'class="add"');
+$form->addElement('style_submit_button', 'submit', $submit_name, array('class'=>"add hidden", 'id' => 'submit_url_button'));
 echo '<div class="normal-message">'.get_lang('SpeedTestIntroSection').'</div>';
-echo '<div class="form-column" style="float: left;">';
+echo '<div id="pagesincro">';
+echo '<div class="form-column">';
 $form->display();
 echo '</div>';
-echo '<div class="anim-column" style="float: left;">';
-echo '<img src="">';
+echo '<div class="anim-column" style="float: right;">';
+include 'body.php';
+echo '</div>';
 echo '</div>';
+Display :: display_footer();