Add timezone setting to personal settings page
This commit is contained in:
parent
c769f961ab
commit
a469d15bc8
|
@ -0,0 +1,26 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
// Init owncloud
|
||||||
|
require_once('../../../lib/base.php');
|
||||||
|
|
||||||
|
$l=new OC_L10N('calendar');
|
||||||
|
|
||||||
|
// We send json data
|
||||||
|
header( "Content-Type: application/jsonrequest" );
|
||||||
|
|
||||||
|
// Check if we are a user
|
||||||
|
if( !OC_User::isLoggedIn()){
|
||||||
|
echo json_encode( array( "status" => "error", "data" => array( "message" => $l->t("Authentication error") )));
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get data
|
||||||
|
if( isset( $_POST['timezone'] ) ){
|
||||||
|
$timezone=$_POST['timezone'];
|
||||||
|
OC_Preferences::setValue( OC_User::getUser(), 'calendar', 'timezone', $timezone );
|
||||||
|
echo json_encode( array( "status" => "success", "data" => array( "message" => $l->t("Timezone changed") )));
|
||||||
|
}else{
|
||||||
|
echo json_encode( array( "status" => "error", "data" => array( "message" => $l->t("Invalid request") )));
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
|
@ -16,3 +16,5 @@ OC_App::addNavigationEntry( array(
|
||||||
'href' => OC_Helper::linkTo( 'calendar', 'index.php' ),
|
'href' => OC_Helper::linkTo( 'calendar', 'index.php' ),
|
||||||
'icon' => OC_Helper::imagePath( 'calendar', 'icon.png' ),
|
'icon' => OC_Helper::imagePath( 'calendar', 'icon.png' ),
|
||||||
'name' => $l->t('Calendar')));
|
'name' => $l->t('Calendar')));
|
||||||
|
|
||||||
|
OC_App::registerPersonal('calendar', 'settings');
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
$(document).ready(function(){
|
||||||
|
$("#timezone").change( function(){
|
||||||
|
// Serialize the data
|
||||||
|
var post = $( "#timezone" ).serialize();
|
||||||
|
// Ajax foo
|
||||||
|
$.post( oc_webroot + '/apps/calendar/ajax/settimezone.php', post, function(data){
|
||||||
|
if( data.status == "success" ){
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$('#timezoneerror').html( data.data.message );
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
});
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$tmpl = new OC_Template( 'calendar', 'settings');
|
||||||
|
$timezone=OC_Preferences::getValue(OC_User::getUser(),'calendar','timezone','');
|
||||||
|
$tmpl->assign('timezone',$timezone);
|
||||||
|
$tmpl->assign('timezones',DateTimeZone::listIdentifiers());
|
||||||
|
|
||||||
|
OC_Util::addScript('calendar','settings');
|
||||||
|
|
||||||
|
return $tmpl->fetchPage();
|
|
@ -0,0 +1,19 @@
|
||||||
|
<form id="calendar">
|
||||||
|
<fieldset class="personalblock">
|
||||||
|
<label for="timezone"><strong><?php echo $l->t('Timezone');?></strong></label>
|
||||||
|
<select id="timezone" name="timezone">
|
||||||
|
<?php foreach($_['timezones'] as $timezone):
|
||||||
|
if ( preg_match( '/^(America|Antartica|Arctic|Asia|Atlantic|Europe|Indian|Pacific)\//', $timezone ) ):
|
||||||
|
$ex=explode('/', $timezone, 2);//obtain continent,city
|
||||||
|
if ($continent!=$ex[0]):
|
||||||
|
if ($continent!="") echo '</optgroup>';
|
||||||
|
echo '<optgroup label="'.$ex[0].'">';
|
||||||
|
endif;
|
||||||
|
$city=$ex[1];
|
||||||
|
$continent=$ex[0];
|
||||||
|
echo '<option value="'.$timezone.'"'.($_['timezone'] == $timezone?' selected="selected"':'').'>'.$city.'</option>';
|
||||||
|
endif;
|
||||||
|
endforeach;?>
|
||||||
|
</select><span id="timezoneerror"></span>
|
||||||
|
</fieldset>
|
||||||
|
</form>
|
Loading…
Reference in New Issue