[Pkg-owncloud-commits] [owncloud] 09/11: Imported Upstream version 7.0.9~~rc1~dfsg

David Prévot taffit at moszumanska.debian.org
Sun Aug 30 00:14:23 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 43e55201171252591037721805a546ede8f117d7
Merge: 6afea8d c674351
Author: David Prévot <taffit at debian.org>
Date:   Sat Aug 29 18:17:58 2015 -0400

    Imported Upstream version 7.0.9~~rc1~dfsg

 apps/calendar/js/calendar.js                       |  4 +-
 apps/files_external/lib/config.php                 | 12 +++++
 .../configuration/logging_configuration.txt        | 48 ++++++++-----------
 .../configuration/logging_configuration.html       | 56 +++++++++-------------
 core/doc/user/_sources/pim/contacts.txt            |  4 +-
 core/doc/user/_sources/pim/sync_ios.txt            |  8 ++--
 core/doc/user/_sources/pim/sync_osx.txt            |  5 +-
 core/doc/user/pim/contacts.html                    |  3 +-
 core/doc/user/pim/sync_ios.html                    |  6 +--
 core/doc/user/pim/sync_osx.html                    |  3 +-
 lib/private/installer.php                          |  4 ++
 lib/private/updater.php                            |  8 ++++
 version.php                                        |  8 ++--
 13 files changed, 91 insertions(+), 78 deletions(-)

diff --cc apps/calendar/js/calendar.js
index 8f4c284,0000000..16b9eec
mode 100644,000000..100644
--- a/apps/calendar/js/calendar.js
+++ b/apps/calendar/js/calendar.js
@@@ -1,1165 -1,0 +1,1167 @@@
 +/**
 + * Copyright (c) 2012 Georg Ehrke <ownclouddev at georgswebsite dot de>
 + * Copyright (c) 2011 Bart Visscher <bartv at thisnet.nl>
 + * This file is licensed under the Affero General Public License version 3 or
 + * later.
 + * See the COPYING-README file.
 + */
 +
 +Calendar={
 +	Util:{
 +		sendmail: function(eventId, location, description, dtstart, dtend){
 +			Calendar.UI.loading(true);
 +			$.post(
 +			OC.filePath('calendar','ajax/event','sendmail.php'),
 +			{
 +				eventId:eventId,
 +				location:location,
 +				description:description,
 +				dtstart:dtstart,
 +				dtend:dtend
 +			},
 +			function(result){
 +				if(result.status !== 'success'){
 +					OC.dialogs.alert(result.data.message, 'Error sending mail');
 +				}
 +				Calendar.UI.loading(false);
 +			}
 +		);
 +		},
 +		dateTimeToTimestamp:function(dateString, timeString){
 +			dateTuple = dateString.split('-');
 +			timeTuple = timeString.split(':');
 +			
 +			var day, month, year, minute, hour;
 +			day = parseInt(dateTuple[0], 10);
 +			month = parseInt(dateTuple[1], 10);
 +			year = parseInt(dateTuple[2], 10);
 +			hour = parseInt(timeTuple[0], 10);
 +			minute = parseInt(timeTuple[1], 10);
 +			
 +			var date = new Date(year, month-1, day, hour, minute);
 +			
 +			return parseInt(date.getTime(), 10);
 +		},
 +		formatDate:function(year, month, day){
 +			if(day < 10){
 +				day = '0' + day;
 +			}
 +			if(month < 10){
 +				month = '0' + month;
 +			}
 +			return day + '-' + month + '-' + year;
 +		},
 +		formatTime:function(hour, minute){
 +			if(hour < 10){
 +				hour = '0' + hour;
 +			}
 +			if(minute < 10){
 +				minute = '0' + minute;
 +			}
 +			return hour + ':' + minute;
 +		}, 
 +		adjustDate:function(){
 +			var fromTime = $('#fromtime').val();
 +			var fromDate = $('#from').val();
 +			var fromTimestamp = Calendar.Util.dateTimeToTimestamp(fromDate, fromTime);
 +
 +			var toTime = $('#totime').val();
 +			var toDate = $('#to').val();
 +			var toTimestamp = Calendar.Util.dateTimeToTimestamp(toDate, toTime);
 +
 +			if(fromTimestamp >= toTimestamp){
 +				fromTimestamp += 30*60*1000;
 +				
 +				var date = new Date(fromTimestamp);
 +				movedTime = Calendar.Util.formatTime(date.getHours(), date.getMinutes());
 +				movedDate = Calendar.Util.formatDate(date.getFullYear(),
 +						date.getMonth()+1, date.getDate());
 +
 +				$('#to').val(movedDate);
 +				$('#totime').val(movedTime);
 +			}
 +		},
 +		getDayOfWeek:function(iDay){
 +			var weekArray=['sun','mon','tue','wed','thu','fri','sat'];
 +			return weekArray[iDay];
 +		},
 +		setTimeline : function() {
 +			var curTime = new Date();
 +			if (curTime.getHours() == 0 && curTime.getMinutes() <= 5)// Because I am calling this function every 5 minutes
 +			{
 +				// the day has changed
 +				var todayElem = $(".fc-today");
 +				todayElem.removeClass("fc-today");
 +				todayElem.removeClass("fc-state-highlight");
 +
 +				todayElem.next().addClass("fc-today");
 +				todayElem.next().addClass("fc-state-highlight");
 +			}
 +
 +			var parentDiv = $(".fc-agenda-slots:visible").parent();
 +			var timeline = parentDiv.children(".timeline");
 +			if (timeline.length == 0) {//if timeline isn't there, add it
 +				timeline = $("<hr>").addClass("timeline");
 +				parentDiv.prepend(timeline);
 +			}
 +
 +			var curCalView = $('#fullcalendar').fullCalendar("getView");
 +			if (curCalView.visStart < curTime && curCalView.visEnd > curTime) {
 +				timeline.show();
 +			} else {
 +				timeline.hide();
 +			}
 +
 +			var curSeconds = (curTime.getHours() * 60 * 60) + (curTime.getMinutes() * 60) + curTime.getSeconds();
 +			var percentOfDay = curSeconds / 86400;
 +			//24 * 60 * 60 = 86400, # of seconds in a day
 +			var topLoc = Math.floor(parentDiv.height() * percentOfDay);
 +			var appNavigationWidth = ($(window).width() > 768) ? $('#app-navigation').width() : 0;
- 			timeline.css({'left':($('.fc-today').offset().left-appNavigationWidth),'width': $('.fc-today').width(),'top':topLoc + 'px'});
++			if (timeline.is(':visible')) {
++				timeline.css({'left':($('.fc-today').offset().left-appNavigationWidth),'width': $('.fc-today').width(),'top':topLoc + 'px'});
++			}
 +		},
 +	},
 +	UI:{
 +		loading: function(isLoading){
 +			if (isLoading){
 +				$('#loading').show();
 +			}else{
 +				$('#loading').hide();
 +			}
 +		},
 +		startEventDialog:function(){
 +			Calendar.UI.loading(false);
 +			$('#fullcalendar').fullCalendar('unselect');
 +			Calendar.UI.lockTime();
 +			$( "#from" ).datepicker({
 +				minDate: null,
 +				maxDate: null,
 +				dateFormat : 'dd-mm-yy',
 +				onSelect: function(){ Calendar.Util.adjustDate(); }
 +			});
 +			$( "#to" ).datepicker({
 +				minDate: null,
 +				maxDate: null,
 +				dateFormat : 'dd-mm-yy'
 +			});
 +			$('#fromtime').timepicker({
 +				showPeriodLabels: false,
 +				onSelect: function(){ Calendar.Util.adjustDate(); }
 +			});
 +			$('#totime').timepicker({
 +				showPeriodLabels: false
 +			});
 +			$('#category').multiple_autocomplete({source: categories});
 +			Calendar.UI.repeat('init');
 +			$('#end').change(function(){
 +				Calendar.UI.repeat('end');
 +			});
 +			$('#repeat').change(function(){
 +				Calendar.UI.repeat('repeat');
 +			});
 +			$('#advanced_year').change(function(){
 +				Calendar.UI.repeat('year');
 +			});
 +			$('#advanced_month').change(function(){
 +				Calendar.UI.repeat('month');
 +			});
 +			$('#event-title').bind('keydown', function(event){
 +				if (event.which == 13){
 +					$('#event_form #submitNewEvent').click();
 +				}
 +			});
 +			$( "#event" ).tabs({ selected: 0});
 +			$('#event').dialog({
 +				width : 500,
 +				height: 600,
 +				resizable: false,
 +				draggable: false,
 +				close : function(event, ui) {
 +					$(this).dialog('destroy').remove();
 +				}
 +			});
 +			Calendar.UI.Share.init();
 +			$('#sendemailbutton').click(function() {
 +				Calendar.Util.sendmail($(this).attr('data-eventid'), $(this).attr('data-location'), $(this).attr('data-description'), $(this).attr('data-dtstart'), $(this).attr('data-dtend'));
 +			});
 +			// Focus the title, and reset the text value so that it isn't selected.
 +			var val = $('#event-title').val();
 +			$('#event-title').focus().val('').val(val);
 +		},
 +		newEvent:function(start, end, allday){
 +			start = Math.round(start.getTime()/1000);
 +			if (end){
 +				end = Math.round(end.getTime()/1000);
 +			}
 +			if($('#event').dialog('isOpen') == true){
 +				// TODO: save event
 +				$('#event').dialog('destroy').remove();
 +			}else{
 +				Calendar.UI.loading(true);
 +				$('#dialog_holder').load(OC.filePath('calendar', 'ajax/event', 'new.form.php'), {start:start, end:end, allday:allday?1:0}, Calendar.UI.startEventDialog);
 +			}
 +		},
 +		editEvent:function(calEvent, jsEvent, view){
 +			if (calEvent.editable == false || calEvent.source.editable == false) {
 +				return;
 +			}
 +			var id = calEvent.id;
 +			if($('#event').dialog('isOpen') == true){
 +				// TODO: save event
 +				$('#event').dialog('destroy').remove();
 +			}else{
 +				Calendar.UI.loading(true);
 +				$('#dialog_holder').load(OC.filePath('calendar', 'ajax/event', 'edit.form.php'), {id: id}, Calendar.UI.startEventDialog);
 +			}
 +		},
 +		submitDeleteEventForm:function(url){
 +			var id = $('input[name="id"]').val();
 +			$('#errorbox').empty();
 +			Calendar.UI.loading(true);
 +			$.post(url, {id:id}, function(data){
 +					Calendar.UI.loading(false);
 +					if(data.status == 'success'){
 +						$('#fullcalendar').fullCalendar('removeEvents', $('#event_form input[name=id]').val());
 +						$('#event').dialog('destroy').remove();
 +					} else {
 +						$('#errorbox').html(t('calendar', 'Deletion failed'));
 +					}
 +
 +			}, "json");
 +		},
 +		validateEventForm:function(url){
 +			var post = $( "#event_form" ).serialize();
 +			$("#errorbox").empty();
 +			Calendar.UI.loading(true);
 +			$.post(url, post,
 +				function(data){
 +					Calendar.UI.loading(false);
 +					if(data.status == "error"){
 +						var output = missing_field + ": <br />";
 +						if(data.title == "true"){
 +							output = output + missing_field_title + "<br />";
 +						}
 +						if(data.cal == "true"){
 +							output = output + missing_field_calendar + "<br />";
 +						}
 +						if(data.from == "true"){
 +							output = output + missing_field_fromdate + "<br />";
 +						}
 +						if(data.fromtime == "true"){
 +							output = output + missing_field_fromtime + "<br />";
 +						}
 +						if(data.interval == "true"){
 +							output = output + missing_field_interval + "<br />";
 +						}
 +						if(data.to == "true"){
 +							output = output + missing_field_todate + "<br />";
 +						}
 +						if(data.totime == "true"){
 +							output = output + missing_field_totime + "<br />";
 +						}
 +						if(data.endbeforestart == "true"){
 +							output = output + missing_field_startsbeforeends + "!<br/>";
 +						}
 +						if(data.dberror == "true"){
 +							output = "There was a database fail!";
 +						}
 +						$("#errorbox").html(output);
 +					} else
 +					if(data.status == 'success'){
 +						$('#event').dialog('destroy').remove();
 +						$('#fullcalendar').fullCalendar('refetchEvents');
 +					}
 +				},"json");
 +		},
 +		moveEvent:function(event, dayDelta, minuteDelta, allDay, revertFunc){
 +			if($('#event').length != 0) {
 +				revertFunc();
 +				return;
 +			}
 +			Calendar.UI.loading(true);
 +			$.post(OC.filePath('calendar', 'ajax/event', 'move.php'), { id: event.id, dayDelta: dayDelta, minuteDelta: minuteDelta, allDay: allDay?1:0, lastmodified: event.lastmodified},
 +			function(data) {
 +				Calendar.UI.loading(false);
 +				if (data.status == 'success'){
 +					event.lastmodified = data.lastmodified;
 +					console.log("Event moved successfully");
 +				}else{
 +					revertFunc();
 +					$('#fullcalendar').fullCalendar('refetchEvents');
 +				}
 +			});
 +		},
 +		resizeEvent:function(event, dayDelta, minuteDelta, revertFunc){
 +			Calendar.UI.loading(true);
 +			$.post(OC.filePath('calendar', 'ajax/event', 'resize.php'), { id: event.id, dayDelta: dayDelta, minuteDelta: minuteDelta, lastmodified: event.lastmodified},
 +			function(data) {
 +				Calendar.UI.loading(false);
 +				if (data.status == 'success'){
 +					event.lastmodified = data.lastmodified;
 +					console.log("Event resized successfully");
 +				}else{
 +					revertFunc();
 +					$('#fullcalendar').fullCalendar('refetchEvents');
 +				}
 +			});
 +		},
 +		showadvancedoptions:function(){
 +			$("#advanced_options").slideDown('slow');
 +			$("#advanced_options_button").css("display", "none");
 +		},
 +		showadvancedoptionsforrepeating:function(){
 +			if($("#advanced_options_repeating").is(":hidden")){
 +				$('#advanced_options_repeating').slideDown('slow');
 +			}else{
 +				$('#advanced_options_repeating').slideUp('slow');
 +			}
 +		},
 +		getEventPopupText:function(event){
 +			if (event.allDay){
 +				var timespan = $.fullCalendar.formatDates(event.start, event.end, 'ddd d MMMM[ yyyy]{ - [ddd d] MMMM yyyy}', {monthNamesShort: monthNamesShort, monthNames: monthNames, dayNames: dayNames, dayNamesShort: dayNamesShort}); //t('calendar', "ddd d MMMM[ yyyy]{ - [ddd d] MMMM yyyy}")
 +			}else{
 +				var timespan = $.fullCalendar.formatDates(event.start, event.end, 'ddd d MMMM[ yyyy] ' + defaulttime + '{ - [ ddd d MMMM yyyy]' + defaulttime + '}', {monthNamesShort: monthNamesShort, monthNames: monthNames, dayNames: dayNames, dayNamesShort: dayNamesShort}); //t('calendar', "ddd d MMMM[ yyyy] HH:mm{ - [ ddd d MMMM yyyy] HH:mm}")
 +				// Tue 18 October 2011 08:00 - 16:00
 +			}
 +			var html =
 +				'<div class="summary">' + escapeHTML(event.title) + '</div>' +
 +				'<div class="timespan">' + timespan + '</div>';
 +			if (event.description){
 +				html += '<div class="description">' + escapeHTML(event.description) + '</div>';
 +			}
 +			return html;
 +		},
 +		lockTime:function(){
 +			if($('#allday_checkbox').is(':checked')) {
 +				$("#fromtime").attr('disabled', true)
 +					.addClass('disabled');
 +				$("#totime").attr('disabled', true)
 +					.addClass('disabled');
 +			} else {
 +				$("#fromtime").attr('disabled', false)
 +					.removeClass('disabled');
 +				$("#totime").attr('disabled', false)
 +					.removeClass('disabled');
 +			}
 +		},
 +		showCalDAVUrl:function(username, calname){
 +			$('#caldav_url').val(totalurl + '/' + encodeURIComponent(username) + '/' + calname);
 +			$('#caldav_url').show();
 +			$("#caldav_url_close").show();
 +		},
 +		repeat:function(task){
 +			if(task=='init'){
 +				
 +				var byWeekNoTitle = $('#advanced_byweekno').attr('title');
 +				$('#byweekno').multiselect({
 +					header: false,
 +					noneSelectedText: byWeekNoTitle,
 +					selectedList: 2,
 +					minWidth : 60
 +				});
 +				
 +				var weeklyoptionsTitle = $('#weeklyoptions').attr('title');
 +				$('#weeklyoptions').multiselect({
 +					header: false,
 +					noneSelectedText: weeklyoptionsTitle,
 +					selectedList: 2,
 +					minWidth : 110
 +				});
 +				$('input[name="bydate"]').datepicker({
 +					dateFormat : 'dd-mm-yy'
 +				});
 +				
 +				var byyeardayTitle = $('#byyearday').attr('title');
 +				$('#byyearday').multiselect({
 +					header: false,
 +					noneSelectedText: byyeardayTitle,
 +					selectedList: 2,
 +					minWidth : 60
 +				});
 +				
 +				var bymonthTitle = $('#bymonth').attr('title');
 +				$('#bymonth').multiselect({
 +					header: false,
 +					noneSelectedText: bymonthTitle,
 +					selectedList: 2,
 +					minWidth : 110
 +				});
 +				
 +				var bymonthdayTitle = $('#bymonthday').attr('title');
 +				$('#bymonthday').multiselect({
 +					header: false,
 +					noneSelectedText: bymonthdayTitle,
 +					selectedList: 2,
 +					minWidth : 60
 +				});
 +				Calendar.UI.repeat('end');
 +				Calendar.UI.repeat('month');
 +				Calendar.UI.repeat('year');
 +				Calendar.UI.repeat('repeat');
 +			}
 +			if(task == 'end'){
 +				$('#byoccurrences').css('display', 'none');
 +				$('#bydate').css('display', 'none');
 +				if($('#end option:selected').val() == 'count'){
 +					$('#byoccurrences').css('display', 'block');
 +				}
 +				if($('#end option:selected').val() == 'date'){
 +					$('#bydate').css('display', 'block');
 +				}
 +			}
 +			if(task == 'repeat'){
 +				$('#advanced_month').css('display', 'none');
 +				$('#advanced_weekday').css('display', 'none');
 +				$('#advanced_weekofmonth').css('display', 'none');
 +				$('#advanced_byyearday').css('display', 'none');
 +				$('#advanced_bymonth').css('display', 'none');
 +				$('#advanced_byweekno').css('display', 'none');
 +				$('#advanced_year').css('display', 'none');
 +				$('#advanced_bymonthday').css('display', 'none');
 +				if($('#repeat option:selected').val() == 'monthly'){
 +					$('#advanced_month').css('display', 'block');
 +					Calendar.UI.repeat('month');
 +				}
 +				if($('#repeat option:selected').val() == 'weekly'){
 +					$('#advanced_weekday').css('display', 'block');
 +				}
 +				if($('#repeat option:selected').val() == 'yearly'){
 +					$('#advanced_year').css('display', 'block');
 +					Calendar.UI.repeat('year');
 +				}
 +				if($('#repeat option:selected').val() == 'doesnotrepeat'){
 +					$('#advanced_options_repeating').slideUp('slow');
 +				}
 +			}
 +			if(task == 'month'){
 +				$('#advanced_weekday').css('display', 'none');
 +				$('#advanced_weekofmonth').css('display', 'none');
 +				if($('#advanced_month_select option:selected').val() == 'weekday'){
 +					$('#advanced_weekday').css('display', 'block');
 +					$('#advanced_weekofmonth').css('display', 'block');
 +				}
 +			}
 +			if(task == 'year'){
 +				$('#advanced_weekday').css('display', 'none');
 +				$('#advanced_byyearday').css('display', 'none');
 +				$('#advanced_bymonth').css('display', 'none');
 +				$('#advanced_byweekno').css('display', 'none');
 +				$('#advanced_bymonthday').css('display', 'none');
 +				if($('#advanced_year_select option:selected').val() == 'byyearday'){
 +					//$('#advanced_byyearday').css('display', 'block');
 +				}
 +				if($('#advanced_year_select option:selected').val() == 'byweekno'){
 +					$('#advanced_byweekno').css('display', 'block');
 +				}
 +				if($('#advanced_year_select option:selected').val() == 'bydaymonth'){
 +					$('#advanced_bymonth').css('display', 'block');
 +					$('#advanced_bymonthday').css('display', 'block');
 +					$('#advanced_weekday').css('display', 'block');
 +				}
 +			}
 +
 +		},
 +		setViewActive: function(view){
 +			$('#view input[type="button"]').removeClass('active');
 +			var id;
 +			switch (view) {
 +				case 'agendaWeek':
 +					id = 'oneweekview_radio';
 +					break;
 +				case 'month':
 +					id = 'onemonthview_radio';
 +					break;
 +				case 'agendaDay':
 +					id = 'onedayview_radio';
 +					break;
 +			}
 +			$('#'+id).addClass('active');
 +		},
 +		categoriesChanged:function(newcategories){
 +			categories = $.map(newcategories, function(v) {return v.name;});
 +			console.log('Calendar categories changed to: ' + categories);
 +			$('#category').multiple_autocomplete('option', 'source', categories);
 +		},
 +		lastView:null,
 +		isToday:true,
 +		timerHolder:null,
 +		timerInterval:300000, // 300000 = 5*60*1000ms = 5 min
 +		changeView:function(view){
 +			switch (view){
 +				case 'today':
 +				case 'prev':
 +				case 'next':
 +					$('#fullcalendar').fullCalendar(view);
 +					if (view=='today' && Calendar.UI.isToday) {
 +						Calendar.UI.changeView('refresh')
 +					}
 +					if (view=='today'){
 +						Calendar.UI.isToday = true;
 +					}else{
 +						Calendar.UI.isToday = false;
 +					}
 +					break;
 +
 +				case 'agendaDay':
 +				case 'agendaWeek':
 +				case 'month':
 +					$('#fullcalendar').fullCalendar('changeView', view);
 +					if (Calendar.UI.lastView == view) {
 +						Calendar.UI.changeView('refresh')
 +					}
 +					Calendar.UI.lastView = view;
 +					break;
 +
 +				case 'refresh':
 +					// refetch the events.
 +					$('#fullcalendar').fullCalendar('refetchEvents');
 +				case 'auto_refresh':
 +					// reset the timer not to refetch before new 5 min.
 +					if (Calendar.UI.timerHolder){
 +						window.clearTimeout(Calendar.UI.timerHolder)
 +					}
 +					Calendar.UI.timerHolder = window.setTimeout( function(){Calendar.UI.changeView('refresh')}, Calendar.UI.timerInterval);
 +					break;
 +
 +				default:
 +					console.error('unsupported change view to:' + view);
 +			}
 +		},
 +		Calendar:{
 +			overview:function(){
 +				if($('#choosecalendar_dialog').dialog('isOpen') == true){
 +					$('#choosecalendar_dialog').dialog('moveToTop');
 +				}else{
 +					Calendar.UI.loading(true);
 +					$('#dialog_holder').load(OC.filePath('calendar', 'ajax/calendar', 'overview.php'), function(){
 +						$('#choosecalendar_dialog').dialog({
 +							width : 600,
 +							height: 400,
 +							close : function(event, ui) {
 +								$(this).dialog('destroy').remove();
 +							}
 +						});
 +						Calendar.UI.loading(false);
 +					});
 +				}
 +			},
 +			activation:function(checkbox, calendarid)
 +			{
 +				if(checkbox.checked?1:0) {
 +					$('#checkbox_'+calendarid).removeClass('unchecked');
 +				}
 +				else {
 +					$('#checkbox_'+calendarid).addClass('unchecked');
 +				}
 +				Calendar.UI.loading(true);
 +				$.post(OC.filePath('calendar', 'ajax/calendar', 'activation.php'), { calendarid: calendarid, active: checkbox.checked?1:0 },
 +				  function(data) {
 +					Calendar.UI.loading(false);
 +					if (data.status == 'success'){
 +						checkbox.checked = data.active == 1;
 +						if (data.active == 1){
 +							$('#fullcalendar').fullCalendar('addEventSource', data.eventSource);
 +						}else{
 +							$('#fullcalendar').fullCalendar('removeEventSource', data.eventSource.url);
 +						}
 +					}
 +				  });
 +			},
 +			sharedEventsActivation:function(checkbox)
 +			{
 +				if (checkbox.checked){
 +					$('#fullcalendar').fullCalendar('addEventSource', sharedEventSource);
 +				}else{
 +					$('#fullcalendar').fullCalendar('removeEventSource', sharedEventSource.url);
 +				}
 +			},
 +			newCalendar:function(object){
 +				var div = $('<div />')
 +					.load(OC.filePath('calendar', 'ajax/calendar', 'new.form.php'),
 +						function(){
 +							Calendar.UI.Calendar.colorPicker(this);
 +							$('#displayname_new').focus();
 +						});
 +				
 +				var bodyListener = function(e) {
 +					if($('#newcalendar_dialog').find($(e.target)).length === 0) {
 +						$('#newcalendar_dialog').parent().remove();
 +						$("#newCalendar").css('display', '');
 +						$('body').unbind('click', bodyListener);
 +					}
 +				};
 +				$('body').bind('click', bodyListener);
 +				
 +				$('#newCalendar').after(div);
 +				$('#newCalendar').css('display', 'none');
 +			},
 +			edit:function(object, calendarid){
 +				var li = $(document.createElement('li'))
 +					.load(OC.filePath('calendar', 'ajax/calendar', 'edit.form.php'), {calendarid: calendarid},
 +						function(){Calendar.UI.Calendar.colorPicker(this)});
 +				
 +				var bodyListener = function(e) {
 +					if($('#editcalendar_dialog').find($(e.target)).length === 0) {
 +						$(object).closest('li').before(li).show();
 +						$('#editcalendar_dialog').parent().remove();
 +						$('body').unbind('click', bodyListener);
 +					}
 +				};
 +				$('body').bind('click', bodyListener);
 +				
 +				$(object).closest('li').after(li).hide();
 +			},
 +			deleteCalendar:function(calid){
 +				var check = confirm("Do you really want to delete this calendar?");
 +				if(check == false){
 +					return false;
 +				}else{
 +					$.post(OC.filePath('calendar', 'ajax/calendar', 'delete.php'), { calendarid: calid},
 +					  function(data) {
 +						if (data.status == 'success'){
 +							var url = 'ajax/events.php?calendar_id='+calid;
 +							$('#fullcalendar').fullCalendar('removeEventSource', url);
 +							$('#navigation-list li[data-id="'+calid+'"]').fadeOut(400,function(){
 +								$('#navigation-list li[data-id="'+calid+'"]').remove();
 +							});
 +							$('#fullcalendar').fullCalendar('refetchEvents');
 +						}
 +					  });
 +				}
 +			},
 +			submit:function(button, calendarid){
 +				var displayname = $.trim($("#displayname_"+calendarid).val());
 +				var active = $("#active_"+calendarid).attr("checked") ? 1 : 0;
 +				
 +				var description = $("#description_"+calendarid).val();
 +				var calendarcolor = $("#calendarcolor_"+calendarid).val();
 +				if(displayname == ''){
 +					$("#displayname_"+calendarid).css('background-color', '#FF2626');
 +					$("#displayname_"+calendarid).focus(function(){
 +						$("#displayname_"+calendarid).css('background-color', '#F8F8F8');
 +					});
 +				}
 +
 +				var url;
 +				if (calendarid == 'new'){
 +					url = OC.filePath('calendar', 'ajax/calendar', 'new.php');
 +				}else{
 +					url = OC.filePath('calendar', 'ajax/calendar', 'update.php');
 +				}
 +				$.post(url, { id: calendarid, name: displayname, active: active, description: description, color: calendarcolor },
 +					function(data){
 +						if(data.status == 'success'){
 +							if(active) {
 +								$('#fullcalendar').fullCalendar('removeEventSource', data.eventSource.url);
 +								$('#fullcalendar').fullCalendar('addEventSource', data.eventSource);
 +							}
 +							if (calendarid == 'new'){
 +								$('#newcalendar_dialog').parent().remove();
 +								$("#newCalendar").css('display', '');
 +								var li = $(document.createElement('li')).append(data.page);
 +								$("#navigation-list").append(li);
 +								$('#caldav_url_entry').appendTo("#navigation-list");
 +							}
 +							else {
 +								$('#editcalendar_dialog').parent().remove();
 +								$('#navigation-list li[data-id="'+calendarid+'"]').html(data.page).show();
 +							}
 +						}else{
 +							$("#displayname_"+calendarid).css('background-color', '#FF2626');
 +							$("#displayname_"+calendarid).focus(function(){
 +								$("#displayname_"+calendarid).css('background-color', '#F8F8F8');
 +							});
 +						}
 +					}, 'json');
 +			},
 +			cancel:function(button, calendarid){
 +				$('#newcalendar_dialog').parent().remove();
 +				$("#newCalendar").css('display', '');
 +			},
 +			colorPicker:function(container){
 +				// based on jquery-colorpicker at jquery.webspirited.com
 +				var obj = $('.colorpicker', container);
 +				var picker = $('<div class="calendar-colorpicker"></div>');
 +				//build an array of colors
 +				var colors = {};
 +				$(obj).children('option').each(function(i, elm) {
 +					colors[i] = {};
 +					colors[i].color = $(elm).val();
 +					colors[i].label = $(elm).text();
 +				});
 +				for (var i in colors) {
 +					picker.append('<span class="calendar-colorpicker-color ' + (colors[i].color == $(obj).children(":selected").val() ? ' active' : '') + '" rel="' + colors[i].label + '" style="background-color: ' + colors[i].color + ';"></span>');
 +				}
 +				picker.delegate(".calendar-colorpicker-color", "click", function() {
 +					$(obj).val($(this).attr('rel'));
 +					$(obj).change();
 +					picker.children('.calendar-colorpicker-color.active').removeClass('active');
 +					$(this).addClass('active');
 +				});
 +				$(obj).after(picker);
 +				$(obj).css({
 +					position: 'absolute',
 +					left: -10000
 +				});
 +			}
 +		},
 +		Share:{
 +			init:function(){
 +				if(typeof OC.Share !== typeof undefined){
 +					var itemShares = [OC.Share.SHARE_TYPE_USER, OC.Share.SHARE_TYPE_GROUP];
 +					$('#sharewith').autocomplete({minLength: 1, source: function(search, response) {
 +						$.get(OC.filePath('core', 'ajax', 'share.php'), { fetch: 'getShareWith', search: search.term, itemShares: itemShares }, function(result) {
 +							if (result.status == 'success' && result.data.length > 0) {
 +								response(result.data);
 +							}
 +						});
 +					},
 +					focus: function(event, focused) {
 +						event.preventDefault();
 +					},
 +					select: function(event, selected) {
 +						var itemType = 'event';
 +						var itemSource = $('#sharewith').data('item-source');
 +						var shareType = selected.item.value.shareType;
 +						var shareWith = selected.item.value.shareWith;
 +						$(this).val(shareWith);
 +						// Default permissions are Read and Share
 +						var permissions = OC.PERMISSION_READ | OC.PERMISSION_SHARE;
 +						OC.Share.share(itemType, itemSource, shareType, shareWith, permissions, function(data) {
 +							var newitem = '<li data-item-type="event"'
 +								+ 'data-share-with="'+escapeHTML(shareWith)+'" '
 +								+ 'data-permissions="'+escapeHTML(permissions)+'" '
 +								+ 'data-share-type="'+escapeHTML(shareType)+'">'
 +								+ escapeHTML(shareWith)
 +								+ (shareType === OC.Share.SHARE_TYPE_GROUP ? ' ('+t('core', 'group')+')' : '')
 +								+ '<span class="shareactions">'
 +								+ '<label><input class="update" type="checkbox" checked="checked">'+t('core', 'can edit')+'</label>'
 +								+ '<label><input class="share" type="checkbox" checked="checked">'+t('core', 'can share')+'</label>'
 +								+ '<img class="svg action delete" title="Unshare"src="'+ OC.imagePath('core', 'actions/delete.svg') +'"></span></li>';
 +							$('.sharedby.eventlist').append(newitem);
 +							$('#sharedWithNobody').remove();
 +							$('#sharewith').val('');
 +						});
 +						return false;
 +					}
 +					});
 +	
 +					$('.shareactions > input:checkbox').change(function() {
 +						var container = $(this).parents('li').first();
 +						var permissions = parseInt(container.data('permissions'));
 +						var itemType = container.data('item-type');
 +						var shareType = container.data('share-type');
 +						var itemSource = container.data('item');
 +						var shareWith = container.data('share-with');
 +						var permission = null;
 +						if($(this).hasClass('update')) {
 +							permission = OC.PERMISSION_UPDATE;
 +							permission = OC.PERMISSION_DELETE;
 +						} else if($(this).hasClass('share')) {
 +							permission = OC.PERMISSION_SHARE;
 +						}
 +						// This is probably not the right way, but it works :-P
 +						if($(this).is(':checked')) {
 +							permissions += permission;
 +						} else {
 +							permissions -= permission;
 +						}
 +						
 +						container.data('permissions',permissions);
 +						
 +						OC.Share.setPermissions(itemType, itemSource, shareType, shareWith, permissions);
 +					});
 +	
 +					$('.shareactions > .delete').click(function() {
 +						var container = $(this).parents('li').first();
 +						var itemType = container.data('item-type');
 +						var shareType = container.data('share-type');
 +						var itemSource = container.data('item');
 +						var shareWith = container.data('share-with');
 +						OC.Share.unshare(itemType, itemSource, shareType, shareWith, function() {
 +							container.remove();
 +						});
 +					});
 +				}
 +			}
 +		},
 +		Drop:{
 +			init:function(){
 +				if (typeof window.FileReader === 'undefined') {
 +					console.log('The drop-import feature is not supported in your browser :(');
 +					return false;
 +				}
 +				droparea = document.getElementById('fullcalendar');
 +				droparea.ondrop = function(e){
 +					e.preventDefault();
 +					Calendar.UI.Drop.drop(e);
 +				}
 +				console.log('Drop initialized successfully');
 +			},
 +			drop:function(e){
 +				var files = e.dataTransfer.files;
 +				for(var i = 0;i < files.length;i++){
 +					var file = files[i];
 +					var reader = new FileReader();
 +					reader.onload = function(event){
 +						Calendar.UI.Drop.doImport(event.target.result);
 +						$('#fullcalendar').fullCalendar('refetchEvents');
 +					}
 +					reader.readAsDataURL(file);
 +				}
 +			},
 +			doImport:function(data){
 +				$.post(OC.filePath('calendar', 'ajax/import', 'dropimport.php'), {'data':data},function(result) {
 +					if(result.status == 'success'){
 +						$('#fullcalendar').fullCalendar('addEventSource', result.eventSource);
 +						$('#notification').html(result.message);
 +						$('#notification').slideDown();
 +						window.setTimeout(function(){$('#notification').slideUp();}, 5000);
 +						return true;
 +					}else{
 +						$('#notification').html(result.message);
 +						$('#notification').slideDown();
 +						window.setTimeout(function(){$('#notification').slideUp();}, 5000);
 +					}
 +				});
 +			}
 +		}
 +	},
 +	Settings:{
 +		//
 +	},
 +
 +}
 +$.fullCalendar.views.list = ListView;
 +function ListView(element, calendar) {
 +	var t = this;
 +
 +	// imports
 +	jQuery.fullCalendar.views.month.call(t, element, calendar);
 +	var opt = t.opt;
 +	var trigger = t.trigger;
 +	var eventElementHandlers = t.eventElementHandlers;
 +	var reportEventElement = t.reportEventElement;
 +	var formatDate = calendar.formatDate;
 +	var formatDates = calendar.formatDates;
 +	var addDays = $.fullCalendar.addDays;
 +	var cloneDate = $.fullCalendar.cloneDate;
 +	function skipWeekend(date, inc, excl) {
 +		inc = inc || 1;
 +		while (!date.getDay() || (excl && date.getDay()==1 || !excl && date.getDay()==6)) {
 +			addDays(date, inc);
 +		}
 +		return date;
 +	}
 +
 +	// overrides
 +	t.name='list';
 +	t.render=render;
 +	t.renderEvents=renderEvents;
 +	t.setHeight=setHeight;
 +	t.setWidth=setWidth;
 +	t.clearEvents=clearEvents;
 +
 +	function clearEvents() {
 +		this.reportEventClear();
 +	}
 +
 +	// main
 +	function sortEvent(a, b) {
 +		return a.start - b.start;
 +	}
 +
 +	function render(date, delta) {
 +		if (!t.start){
 +			t.start = addDays(cloneDate(date, true), -7);
 +			t.end = addDays(cloneDate(date, true), 7);
 +		}
 +		if (delta) {
 +			if (delta < 0){
 +				addDays(t.start, -7);
 +				addDays(t.end, -7);
 +				if (!opt('weekends')) {
 +					skipWeekend(t.start, delta < 0 ? -1 : 1);
 +				}
 +			}else{
 +				addDays(t.start, 7);
 +				addDays(t.end, 7);
 +				if (!opt('weekends')) {
 +					skipWeekend(t.end, delta < 0 ? -1 : 1);
 +				}
 +			}
 +		}
 +		t.title = formatDates(
 +			t.start,
 +			t.end,
 +			opt('titleFormat', 'week')
 +		);
 +		t.visStart = cloneDate(t.start);
 +		t.visEnd = cloneDate(t.end);
 +	}
 +
 +	function eventsOfThisDay(events, theDate) {
 +		var start = cloneDate(theDate, true);
 +		var end = addDays(cloneDate(start), 1);
 +		var retArr = new Array();
 +		for (i in events) {
 +			var event_end = t.eventEnd(events[i]);
 +			if (events[i].start < end && event_end >= start) {
 +				retArr.push(events[i]);
 +			}
 +		}
 +		return retArr;
 +	}
 +
 +	function renderEvent(event) {
 +		if (event.allDay) { //all day event
 +			var time = opt('allDayText');
 +		}
 +		else {
 +			var time = formatDates(event.start, event.end, opt('timeFormat', 'agenda'));
 +		}
 +		var classes = ['fc-event', 'fc-list-event'];
 +		classes = classes.concat(event.className);
 +		if (event.source) {
 +			classes = classes.concat(event.source.className || []);
 +		}
 +		var html = '<tr>' +
 +			'<td> </td>' +
 +			'<td class="fc-list-time">' +
 +			time +
 +			'</td>' +
 +			'<td> </td>' +
 +			'<td class="fc-list-event">' +
 +			'<span id="list' + event.id + '"' +
 +			' class="' + classes.join(' ') + '"' +
 +			'>' +
 +			'<span class="fc-event-title">' +
 +			escapeHTML(event.title) +
 +			'</span>' +
 +			'</span>' +
 +			'</td>' +
 +			'</tr>';
 +		return html;
 +	}
 +
 +	function renderDay(date, events) {
 +		var dayRows = $('<tr>' +
 +			'<td colspan="4" class="fc-list-date">' +
 +			'<span>' +
 +			formatDate(date, opt('titleFormat', 'day')) +
 +			'</span>' +
 +			'</td>' +
 +			'</tr>');
 +		for (i in events) {
 +			var event = events[i];
 +			var eventElement = $(renderEvent(event));
 +			triggerRes = trigger('eventRender', event, event, eventElement);
 +			if (triggerRes === false) {
 +				eventElement.remove();
 +			}else{
 +				if (triggerRes && triggerRes !== true) {
 +					eventElement.remove();
 +					eventElement = $(triggerRes);
 +				}
 +				$.merge(dayRows, eventElement);
 +				eventElementHandlers(event, eventElement);
 +				reportEventElement(event, eventElement);
 +			}
 +		}
 +		return dayRows;
 +	}
 +
 +	function renderEvents(events, modifiedEventId) {
 +		events = events.sort(sortEvent);
 +
 +		var table = $('<table class="fc-list-table"></table>');
 +		var total = events.length;
 +		if (total > 0) {
 +			var date = cloneDate(t.visStart);
 +			while (date <= t.visEnd) {
 +				var dayEvents = eventsOfThisDay(events, date);
 +				if (dayEvents.length > 0) {
 +					table.append(renderDay(date, dayEvents));
 +				}
 +				date=addDays(date, 1);
 +			}
 +		}
 +
 +		this.element.html(table);
 +	}
 +}
 +$(document).ready(function(){
 +	Calendar.UI.lastView = defaultView;
 +	Calendar.UI.changeView('auto_refresh');
 +	
 +	/**
 +	* Set an interval timer to make the timeline move 
 +	*/
 +	setInterval(Calendar.Util.setTimeline,60000);	
 +	$(window).resize(_.debounce(function() {
 +		/**
 +		* When i use it instant the timeline is walking behind the facts
 +		* A little timeout will make sure that it positions correctly
 +		*/
 +		setTimeout(Calendar.Util.setTimeline,500);
 +	}));
 +	$('#fullcalendar').fullCalendar({
 +		header: false,
 +		firstDay: firstDay,
 +		editable: true,
 +		defaultView: defaultView,
 +		timeFormat: {
 +			agenda: agendatime,
 +			'': defaulttime
 +			},
 +		columnFormat: {
 +			month: t('calendar', 'ddd'),    // Mon
 +			week: t('calendar', 'ddd M/d'), // Mon 9/7
 +			day: t('calendar', 'dddd M/d')  // Monday 9/7
 +			},
 +		titleFormat: {
 +			month: t('calendar', 'MMMM yyyy'),
 +					// September 2009
 +			week: t('calendar', "MMM d[ yyyy]{ '–'[ MMM] d yyyy}"),
 +					// Sep 7 - 13 2009
 +			day: t('calendar', 'dddd, MMM d, yyyy'),
 +					// Tuesday, Sep 8, 2009
 +			},
 +		axisFormat: defaulttime,
 +		monthNames: monthNames,
 +		monthNamesShort: monthNamesShort,
 +		dayNames: dayNames,
 +		dayNamesShort: dayNamesShort,
 +		allDayText: allDayText,
 +		viewRender: function(view) {
 +			$('#datecontrol_current').html($('<p>').html(view.title).text());
 +			$( "#datecontrol_date" ).datepicker("setDate", $('#fullcalendar').fullCalendar('getDate'));
 +			if (view.name != defaultView) {
 +				$.post(OC.filePath('calendar', 'ajax', 'changeview.php'), {v:view.name});
 +				defaultView = view.name;
 +			}
 +			if(view.name === 'agendaDay') {
 +				$('td.fc-state-highlight').css('background-color', '#ffffff');
 +			} else{
 +				$('td.fc-state-highlight').css('background-color', '#ffc');
 +			}
 +			Calendar.UI.setViewActive(view.name);
 +			if (view.name == 'agendaWeek') {
 +				$('#fullcalendar').fullCalendar('option', 'aspectRatio', 0.1);
 +			}
 +			else {
 +				$('#fullcalendar').fullCalendar('option', 'aspectRatio', 1.35);
 +			}
 +			try {
 +				Calendar.Util.setTimeline();
 +			} catch(err) {
 +			}
 +		},
 +		columnFormat: {
 +		    week: 'ddd d. MMM'
 +		},
 +		selectable: true,
 +		selectHelper: true,
 +		select: Calendar.UI.newEvent,
 +		eventClick: Calendar.UI.editEvent,
 +		eventDrop: Calendar.UI.moveEvent,
 +		eventResize: Calendar.UI.resizeEvent,
 +		eventRender: function(event, element) {
 +			element.find('.fc-event-title').text($("<div/>").html(escapeHTML(event.title)).text())
 +		},
 +		loading: Calendar.UI.loading,
 +		eventSources: eventSources
 +	});
 +	$('#datecontrol_date').datepicker({
 +		changeMonth: true,
 +		changeYear: true,
 +		showButtonPanel: true,
 +		beforeShow: function(input, inst) {
 +			var calendar_holder = $('#fullcalendar');
 +			var date = calendar_holder.fullCalendar('getDate');
 +			inst.input.datepicker('setDate', date);
 +			inst.input.val(calendar_holder.fullCalendar('getView').title);
 +			return inst;
 +		},
 +		onSelect: function(value, inst) {
 +			var date = inst.input.datepicker('getDate');
 +			$('#fullcalendar').fullCalendar('gotoDate', date);
 +			
 +			var view = $('#fullcalendar').fullCalendar('getView');
 +			if(view.name == 'agendaWeek'){
 +				$("[class*='fc-col']").removeClass('activeDay');
 +				daySel=Calendar.Util.getDayOfWeek(date.getDay());
 +				$('td.fc-'+daySel).addClass('activeDay');
 +			}
 +			if (view.name == 'month') {
 +					$('td.fc-day').removeClass('activeDay');
 +					prettyDate = $.datepicker.formatDate( 'yy-mm-dd',date);
 +					$('td[data-date=' + prettyDate + ']').addClass('activeDay');
 +			}
 +		}
 +	});
 +
 +	$(OC.Tags).on('change', function(event, data) {
 +		if(data.type === 'event') {
 +			Calendar.UI.categoriesChanged(data.tags);
 +		}
 +	});
 +
 +	$('#oneweekview_radio').click(function(){
 +		Calendar.UI.changeView('agendaWeek');
 +	});
 +	$('#onemonthview_radio').click(function(){
 +		Calendar.UI.changeView('month');
 +	});
 +	$('#onedayview_radio').click(function(){
 +		Calendar.UI.changeView('agendaDay');
 +	});
 +	$('#today_input').click(function(){
 +		Calendar.UI.changeView('today');
 +	});
 +	$('#datecontrol_left').click(function(){
 +		Calendar.UI.changeView('prev');
 +	});
 +	$('#datecontrol_today').click(function(){
 +		Calendar.UI.changeView('today');
 +	});
 +	$('#datecontrol_right').click(function(){
 +		Calendar.UI.changeView('next');
 +	});
 +	$('#datecontrol_current').click(function() {
 +		$('#datecontrol_date').slideToggle(500);
 +	});
 +	$('#datecontrol_date').hide();
 +	$('#app-settings-header').on('click keydown',function(event) {
 +		if(wrongKey(event)) {
 +			return;
 +		}
 +		var bodyListener = function(e) {
 +			if($('#app-settings').find($(e.target)).length === 0) {
 +				$('#app-settings').switchClass('open', '');
 +			}
 +		};
 +		if($('#app-settings').hasClass('open')) {
 +			$('#app-settings').switchClass('open', '');
 +			$('body').unbind('click', bodyListener);
 +		} else {
 +			$('#app-settings').switchClass('', 'open');
 +			$('body').bind('click', bodyListener);
 +		}
 +	});
 +	Calendar.UI.Share.init();
 +	Calendar.UI.Drop.init();
 +	$('#fullcalendar').fullCalendar('option', 'height', $(window).height() - $('#controls').height() - $('#header').height());
 +	// Save the eventSource for shared events.
 +	for (var i in eventSources) {
 +		if (eventSources[i].url.substr(-13) === 'shared_events') {
 +			sharedEventSource = eventSources[i];
 +		}
 +	}
 +});
 +
 +var wrongKey = function(event) {
 +	return ((event.type === 'keydown' || event.type === 'keypress') 
 +		&& (event.keyCode !== 32 && event.keyCode !== 13));
 +};
diff --cc core/doc/admin/release/_sources/configuration/logging_configuration.txt
index 113d64e,0000000..4208f48
mode 100644,000000..100644
--- a/core/doc/admin/release/_sources/configuration/logging_configuration.txt
+++ b/core/doc/admin/release/_sources/configuration/logging_configuration.txt
@@@ -1,63 -1,0 +1,55 @@@
++=====================
 +Logging Configuration
 +=====================
- To get an idea of how the current status of an ownCloud system is or to
- solve issues log information is a good point to start with. ownCloud allows
- to configure the way how and which depth of information should be logged.
++
++Use your ownCloud log to review system status, or to help debug problems. You may adjust logging levels, and choose between using the ownCloud log or your syslog.
 +
 +Parameters
 +----------
- First you need to decide in which way logging should be done. You can
- choose between the two options **owncloud** and **syslog**. Then you need
- to configure the log level which directly influences how much information
- will be logged. You can choose between:
 +
- * **0**: DEBUG
- * **1**: INFO
- * **2**: WARN
- * **3**: ERROR
- * **4**: FATAL
++Logging levels range from **DEBUG**, which logs all activity, to **FATAL**, which logs only fatal errors.
 +
- The most detailed information will be written if **0** (DEBUG) is set, the
- least information will be written if **3** (ERROR) is set. Keep in mind that
- it might slow down the whole system if a too detailed logging will has been
- configured. By default the log level is set to **2** (WARN).
++* **0**: DEBUG: All activity; the most detailed logging.
++* **1**: INFO:  Activity such as user logins and file activities, plus warnings, errors, and fatal errors.
++* **2**: WARN:  Operations succeed, but with warnings of potential problems, plus errors and fatal errors.
++* **3**: ERROR: An operation fails, but other services and operations continue, plus fatal errors.
++* **4**:  FATAL: The server stops.
 +
- This parameters can be set in the :file:`config/config.php`
++By default the log level is set to **2** (WARN). Use **DEBUG** when you have a problem to diagnose, and then reset your log level to a less-verbose level as **DEBUG** outputs a lot of information, and can affect your server performance.
++
++Logging level parameters are set in the :file:`config/config.php` file, or on the Admin page of your ownCloud Web GUI.
 +
 +ownCloud
 +~~~~~~~~
++
 +All log information will be written to a separate log file which can be
- viewed using the log menu in the admin menu of ownCloud. By default a log
++viewed using the log viewer on your Admin page. By default, a log
 +file named **owncloud.log** will be created in the directory which has
- been configured by the **datadirectory** parameter.
++been configured by the **datadirectory** parameter in :file:`config/config.php`.
 +
- The desired date format can optionally be defined using the **logdateformat**.
- By default the `PHP date function`_ parameter "*c*" is used and therefore the
++The desired date format can optionally be defined using the **logdateformat** parameter in :file:`config/config.php`.
++By default the `PHP date function`_ parameter "*c*" is used, and therefore the
 +date/time is written in the format "*2013-01-10T15:20:25+02:00*". By using the
- date format in the example the date/time format will be written in the format
++date format in the example below, the date/time format will be written in the format
 +"*January 10, 2013 15:20:25*".
 +
 +.. code-block:: php
 +
-   <?php
- 
 +    "log_type" => "owncloud",
 +    "logfile" => "owncloud.log",
 +    "loglevel" => "3",
 +    "logdateformat" => "F d, Y H:i:s",
 +
 +syslog
 +~~~~~~
- All log information will be send to the default syslog daemon of a system.
 +
- .. code-block:: php
++All log information will be sent to your default syslog daemon.
 +
-   <?php
++.. code-block:: php
 +
 +    "log_type" => "syslog",
 +    "logfile" => "",
 +    "loglevel" => "3",
 +
 +
 +.. _PHP date function: http://www.php.net/manual/en/function.date.php
- 
diff --cc core/doc/admin/release/configuration/logging_configuration.html
index c278d25,0000000..6bf055d
mode 100644,000000..100644
--- a/core/doc/admin/release/configuration/logging_configuration.html
+++ b/core/doc/admin/release/configuration/logging_configuration.html
@@@ -1,242 -1,0 +1,230 @@@
 +
 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 +  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 +
 +
 +<html xmlns="http://www.w3.org/1999/xhtml">
 +  <head>
 +    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 +    
 +    <title>Logging Configuration — ownCloud Administrators Manual 7.0 documentation</title>
 +    
 +    <link rel="stylesheet" href="../_static/style.css" type="text/css" />
 +    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 +    <link rel="stylesheet" href="../_static/style.css" type="text/css" />
 +    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 +    
 +    <script type="text/javascript">
 +      var DOCUMENTATION_OPTIONS = {
 +        URL_ROOT:    '../',
 +        VERSION:     '7.0',
 +        COLLAPSE_INDEX: false,
 +        FILE_SUFFIX: '.html',
 +        HAS_SOURCE:  true
 +      };
 +    </script>
 +    <script type="text/javascript" src="../_static/jquery.js"></script>
 +    <script type="text/javascript" src="../_static/underscore.js"></script>
 +    <script type="text/javascript" src="../_static/doctools.js"></script>
 +    <script type="text/javascript" src="../_static/bootstrap.js"></script>
 +    <link rel="top" title="ownCloud Administrators Manual 7.0 documentation" href="../index.html" />
 +    <link rel="up" title="Configuration" href="index.html" />
 +    <link rel="next" title="Using the occ Command" href="occ_command.html" />
 +    <link rel="prev" title="Language Configuration" href="language_configuration.html" />
 +<script type="text/javascript">
 +(function () {
 +  /**
 +   * Patch TOC list.
 +   *
 +   * Will mutate the underlying span to have a correct ul for nav.
 +   *
 +   * @param $span: Span containing nested UL's to mutate.
 +   * @param minLevel: Starting level for nested lists. (1: global, 2: local).
 +   */
 +  var patchToc = function ($ul, minLevel) {
 +    var findA;
 +
 +    // Find all a "internal" tags, traversing recursively.
 +    findA = function ($elem, level) {
 +      var level = level || 0,
 +        $items = $elem.find("> li > a.internal, > ul, > li > ul");
 +
 +      // Iterate everything in order.
 +      $items.each(function (index, item) {
 +        var $item = $(item),
 +          tag = item.tagName.toLowerCase(),
 +          pad = 15 + ((level - minLevel) * 10);
 +
 +        if (tag === 'a' && level >= minLevel) {
 +          // Add to existing padding.
 +          $item.css('padding-left', pad + "px");
 +          console.log(level, $item, 'padding-left', pad + "px");
 +        } else if (tag === 'ul') {
 +          // Recurse.
 +          findA($item, level + 1);
 +        }
 +      });
 +    };
 +
 +    console.log("HERE");
 +    findA($ul);
 +  };
 +
 +  $(document).ready(function () {
 +    // Add styling, structure to TOC's.
 +    $(".dropdown-menu").each(function () {
 +      $(this).find("ul").each(function (index, item){
 +        var $item = $(item);
 +        $item.addClass('unstyled');
 +      });
 +      $(this).find("li").each(function () {
 +        $(this).parent().append(this);
 +      });
 +    });
 +
 +    // Patch in level.
 +    patchToc($("ul.globaltoc"), 2);
 +    patchToc($("ul.localtoc"), 2);
 +
 +    // Enable dropdown.
 +    $('.dropdown-toggle').dropdown();
 +  });
 +}());
 +</script>
 +
 +  </head>
 +  <body>
 +  
 +
 +<div class="container">
 +  <div class="content">
 +    <div class="page-header">
 +      <h1><a href="../contents.html">ownCloud Administrators Manual</a></h1>
 +
 +    </div>
 +    
 +			<div class="row">
 +				<div class="span3">
 +					<div class="sidebar">
 +						<div class="well">
 +							<div class="menu-support-container">
 +								<ul id="menu-support" class="menu">
 +									<ul>
 +										<li><a href="../contents.html">Table of Contents</a></li>
 +									</ul>
 +                  <ul>
 +<li class="toctree-l1"><a class="reference internal" href="../index.html">Introduction</a></li>
 +</ul>
 +<ul class="current">
 +<li class="toctree-l1"><a class="reference internal" href="../videos.html">ownCloud Videos</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../whats_new_admin.html">What’s New for Admins in ownCloud 7</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../release_notes.html">ownCloud 7.0 Release Notes</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../installation/index.html">Installation</a></li>
 +<li class="toctree-l1 current"><a class="reference internal" href="index.html">Configuration</a><ul class="current">
 +<li class="toctree-l2"><a class="reference internal" href="activity_configuration.html">Configuring the Activity App</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="antivirus_configuration.html">Configuring the ClamAV Antivirus Scanner</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="automatic_configuration.html">Automatic Configuration Setup</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="background_jobs_configuration.html">Defining Background Jobs</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="big_file_upload_configuration.html">Uploading big files > 512MB (as set by default)</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="collaborative_documents_configuration.html">Configuring the Collaborative Documents App</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="config_sample_php_parameters.html">Config.php Parameters</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="custom_client_configuration.html">Custom Client Configuration</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="database_configuration.html">Database Configuration</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="email_configuration.html">Email Configuration</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="encryption_configuration.html">Encryption Configuration</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="external_storage_configuration_gui.html">Configuring External Storage (GUI)</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="external_storage_configuration.html">Configuring External Storage (Configuration File)</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="external_sites.html">Linking External Sites</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="file_sharing_configuration.html">File Sharing</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="files_locking_enabling.html">Files Locking App Configuration</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="harden_server.html">Hardening and Security Guidance</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="js_css_asset_management_configuration.html">JavaScript and CSS Asset Management</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="knowledgebase_configuration.html">Knowledge Base Configuration</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="language_configuration.html">Language Configuration</a></li>
 +<li class="toctree-l2 current"><a class="current reference internal" href="">Logging Configuration</a><ul>
 +<li class="toctree-l3"><a class="reference internal" href="#parameters">Parameters</a></li>
 +</ul>
 +</li>
 +<li class="toctree-l2"><a class="reference internal" href="occ_command.html">Using the occ Command</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="performance_tips.html">Performance Tips</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="previews_configuration.html">Previews Configuration</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="reverse_proxy_configuration.html">Reverse Proxy Configuration</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="search_configuration.html">Enabling Full-Text Search</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="server_to_server_configuration.html">Configuring Server-to-Server Sharing</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="serving_static_files_configuration.html">Serving Static Files for Better Performance</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="thirdparty_php_configuration.html">Using Third Party PHP Components</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="user_auth_ftp_smb_imap.html">User Authentication with IMAP, SMB, and FTP</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="user_auth_ldap.html">User Authentication with LDAP</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="user_auth_ldap_cleanup.html">LDAP User Cleanup</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="user_configuration.html">User Management</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="reset_admin_password.html">Resetting a Lost Admin Password</a></li>
 +</ul>
 +</li>
 +<li class="toctree-l1"><a class="reference internal" href="../maintenance/index.html">Maintenance</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../issues/index.html">Issues and Troubleshooting</a></li>
 +</ul>
 +
 +								</ul>
 +							</div>
 +						</div>
 +					</div>
 +				</div>
 +        
 +
 +				<div class="span9">
 +					<div class="page-content">
 +						
 +  <div class="section" id="logging-configuration">
 +<h1>Logging Configuration<a class="headerlink" href="#logging-configuration" title="Permalink to this headline">¶</a></h1>
- <p>To get an idea of how the current status of an ownCloud system is or to
- solve issues log information is a good point to start with. ownCloud allows
- to configure the way how and which depth of information should be logged.</p>
++<p>Use your ownCloud log to review system status, or to help debug problems. You may adjust logging levels, and choose between using the ownCloud log or your syslog.</p>
 +<div class="section" id="parameters">
 +<h2>Parameters<a class="headerlink" href="#parameters" title="Permalink to this headline">¶</a></h2>
- <p>First you need to decide in which way logging should be done. You can
- choose between the two options <strong>owncloud</strong> and <strong>syslog</strong>. Then you need
- to configure the log level which directly influences how much information
- will be logged. You can choose between:</p>
++<p>Logging levels range from <strong>DEBUG</strong>, which logs all activity, to <strong>FATAL</strong>, which logs only fatal errors.</p>
 +<ul class="simple">
- <li><strong>0</strong>: DEBUG</li>
- <li><strong>1</strong>: INFO</li>
- <li><strong>2</strong>: WARN</li>
- <li><strong>3</strong>: ERROR</li>
- <li><strong>4</strong>: FATAL</li>
++<li><strong>0</strong>: DEBUG: All activity; the most detailed logging.</li>
++<li><strong>1</strong>: INFO:  Activity such as user logins and file activities, plus warnings, errors, and fatal errors.</li>
++<li><strong>2</strong>: WARN:  Operations succeed, but with warnings of potential problems, plus errors and fatal errors.</li>
++<li><strong>3</strong>: ERROR: An operation fails, but other services and operations continue, plus fatal errors.</li>
++<li><strong>4</strong>:  FATAL: The server stops.</li>
 +</ul>
- <p>The most detailed information will be written if <strong>0</strong> (DEBUG) is set, the
- least information will be written if <strong>3</strong> (ERROR) is set. Keep in mind that
- it might slow down the whole system if a too detailed logging will has been
- configured. By default the log level is set to <strong>2</strong> (WARN).</p>
- <p>This parameters can be set in the <tt class="file docutils literal"><span class="pre">config/config.php</span></tt></p>
++<p>By default the log level is set to <strong>2</strong> (WARN). Use <strong>DEBUG</strong> when you have a problem to diagnose, and then reset your log level to a less-verbose level as <strong>DEBUG</strong> outputs a lot of information, and can affect your server performance.</p>
++<p>Logging level parameters are set in the <tt class="file docutils literal"><span class="pre">config/config.php</span></tt> file, or on the Admin page of your ownCloud Web GUI.</p>
 +<div class="section" id="owncloud">
 +<h3>ownCloud<a class="headerlink" href="#owncloud" title="Permalink to this headline">¶</a></h3>
 +<p>All log information will be written to a separate log file which can be
- viewed using the log menu in the admin menu of ownCloud. By default a log
++viewed using the log viewer on your Admin page. By default, a log
 +file named <strong>owncloud.log</strong> will be created in the directory which has
- been configured by the <strong>datadirectory</strong> parameter.</p>
- <p>The desired date format can optionally be defined using the <strong>logdateformat</strong>.
- By default the <a class="reference external" href="http://www.php.net/manual/en/function.date.php">PHP date function</a> parameter “<em>c</em>” is used and therefore the
++been configured by the <strong>datadirectory</strong> parameter in <tt class="file docutils literal"><span class="pre">config/config.php</span></tt>.</p>
++<p>The desired date format can optionally be defined using the <strong>logdateformat</strong> parameter in <tt class="file docutils literal"><span class="pre">config/config.php</span></tt>.
++By default the <a class="reference external" href="http://www.php.net/manual/en/function.date.php">PHP date function</a> parameter “<em>c</em>” is used, and therefore the
 +date/time is written in the format “<em>2013-01-10T15:20:25+02:00</em>”. By using the
- date format in the example the date/time format will be written in the format
++date format in the example below, the date/time format will be written in the format
 +“<em>January 10, 2013 15:20:25</em>”.</p>
- <div class="highlight-php"><div class="highlight"><pre><span class="cp"><?php</span>
- 
-   <span class="s2">"log_type"</span> <span class="o">=></span> <span class="s2">"owncloud"</span><span class="p">,</span>
-   <span class="s2">"logfile"</span> <span class="o">=></span> <span class="s2">"owncloud.log"</span><span class="p">,</span>
-   <span class="s2">"loglevel"</span> <span class="o">=></span> <span class="s2">"3"</span><span class="p">,</span>
-   <span class="s2">"logdateformat"</span> <span class="o">=></span> <span class="s2">"F d, Y H:i:s"</span><span class="p">,</span>
++<div class="highlight-php"><div class="highlight"><pre><span class="x">"log_type" => "owncloud",</span>
++<span class="x">"logfile" => "owncloud.log",</span>
++<span class="x">"loglevel" => "3",</span>
++<span class="x">"logdateformat" => "F d, Y H:i:s",</span>
 +</pre></div>
 +</div>
 +</div>
 +<div class="section" id="syslog">
 +<h3>syslog<a class="headerlink" href="#syslog" title="Permalink to this headline">¶</a></h3>
- <p>All log information will be send to the default syslog daemon of a system.</p>
- <div class="highlight-php"><div class="highlight"><pre><span class="cp"><?php</span>
- 
-   <span class="s2">"log_type"</span> <span class="o">=></span> <span class="s2">"syslog"</span><span class="p">,</span>
-   <span class="s2">"logfile"</span> <span class="o">=></span> <span class="s2">""</span><span class="p">,</span>
-   <span class="s2">"loglevel"</span> <span class="o">=></span> <span class="s2">"3"</span><span class="p">,</span>
++<p>All log information will be sent to your default syslog daemon.</p>
++<div class="highlight-php"><div class="highlight"><pre><span class="x">"log_type" => "syslog",</span>
++<span class="x">"logfile" => "",</span>
++<span class="x">"loglevel" => "3",</span>
 +</pre></div>
 +</div>
 +</div>
 +</div>
 +</div>
 +
 +
 +					</div>
 +				</div>
 +			</div>
 +    
 +  </div>
 +</div>
 +  </body>
 +</html>
diff --cc core/doc/user/_sources/pim/contacts.txt
index c9fb40d,0000000..3a66aff
mode 100644,000000..100644
--- a/core/doc/user/_sources/pim/contacts.txt
+++ b/core/doc/user/_sources/pim/contacts.txt
@@@ -1,338 -1,0 +1,340 @@@
 +Using the Contacts App
 +======================
 +
 +The ownCloud Contacts app is similar to other mobile contact applications, but 
 +with more functionality.  When you first access the Contacts app, a default 
 +address book becomes available.
 +
 +.. figure:: ../images/contacts_empty.png
 +
 +  **Contacts app (empty)**
 +
 +In the Apps Information field for the Contacts app, you can choose to create a
 +new contact or a new group.  This field also enables you to filter your contacts
 +based on grouped or ungrouped contacts.
 +
 +Adding Contacts
 +---------------
 +You can add contacts using one of the following methods:
 +
 +* Import contacts using a Variant Call Format (VCF) file
 +
 +* Add contacts manually
 +
 +Importing Contacts
 +~~~~~~~~~~~~~~~~~~
 +
 +The fastest way to add contacts is through the use of a Variant Call Format
 +(VCF) file.
 +
 +To import contacts using a VCF file:
 +
 +1. At the bottom of the Contacts app information field, locate the gear button.
 +
 +  .. figure:: ../images/contact_bottombar.png
 +
 +     **Contact settings gear button**
 +
 +2. Click the gear button. The Contacts app upload field opens. 
 +
 +  .. figure:: ../images/contact_uploadbutton.png
 +
 +   **Contacts app upload field**
 +
 +3. Choose an address book to which you want to import contacts by clicking the
 +checkbox next to the address book.
 +
 +4. Select one of the options from the Import pulldown menu.  These options
 +include the following:
 +
 +  - Automatic format -- Any VCF file. ownCloud determines the file format and 
 +    imports accordingly.
 +	
 +  - Gmail CSV -- The comma-separated values file from your Gmail account.
 +  
 +  - Outlook CSV -- The comma-separated values file from your Outlook account.
 +  
 +  - Thunderbird CSV -- The comma-separated values file from your Thunderbird 
 +    account.
 +	
 +  - Yahoo CSV -- The comma-separated values file from your Yahoo account.
 +  
 +  - PHPLdapAdmin Idif Export -- The export record from your LDAP configuration.
 +  
 +  - Gmail VCard -- The VCard files from your Gmail account.
 +  
 +  - Standard VCard -- The VCard files from your Standard account.
 +	
 +  - Yahoo VCard  -- The VCard files from your Yahoo account.
 +   
 +5. Click the upload arrow to the right of the import option that you select. 
 +
 +  An Upload File window opens.
 +  
 +6. Navigate to the appropriate file on your system and select it for upload.
 +
 +  .. note:: You can upload files individually or, by selecting multiple files 
 +    using the CTRL button and selecting them, you can upload multiple files at
 +    one time.
 +
 +7. Once you have selected the appropriate files, click the `Open`` button.
 +
 +  .. figure:: ../images/contact_vcfpick.jpg
 +
 +    **Selecting VCF files**
 +
 +    The interface automatically places your contacts into ownCloud.
 +
 +
 +Creating Contacts Manually
 +~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +The Contacts app enables you to create contacts manually.  
 +
 +To create a new contact:
 +
 +1. Click the ``+New contact`` option in the Contacts information field.
 +
 +   An empty new contact configuration opens in the Application View field.
 +  
 +  .. figure:: ../images/contact_new.png
 +  
 +2. Specify the new contact information as follows:
 +
 +  - Name -- The name of the contact.  This field provides the option of 
 +    specifying added information for the user by clicking the pen button to the
 +    right of the Name field.
 +	
 +  - Organization -- The organization for the contact.
 +  
 +  - Email -- The email address for the contact. This field defaults to the work
 +    email address for the contact.  However, you can specify a different email 
 +    designation by clicking the ``Work`` designation to the left of the email
 +    field.
 +	
 +  - Phone -- The phone number for the contact. This field defaults to the home
 +    phone number for the contact.  However, you can specify a different phone 
 +    designation by clicking the ``Home`` designation to the left of the phone
 +    field.
 +	
 +  - Address -- The address for the contact. This field defaults to the work
 +    address for the contact.  However, you can specify a different address 
 +    designation by clicking the ``Work`` designation to the left of the address
 +    field.
 +	
 +  - Notes -- Any notes you want to add about the contact.
 +  
 +  .. note:: The Email, Phone, and Address fields provide the option of
 +    specifying a contact method as "preferred."
 +  
 +Editing Contact Information
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +The Contacts app enables you to edit or remove contact information.
 +
 +To edit contact information:
 +
 +1. Navigate to the specific contact that you want to modify.
 +
 +2. Select the information in the field that you want to edit.
 +
 +3. Make your modifications.
 +
 +  Changes that you make to any contact information are implemented immediately.
 +  
 +Removing Contact Information
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +The Contacts app enables you to remove contact information.
 +
 +To remove contact information:
 +
 +1. Navigate to the specific contact that you want to modify.
 +
 +2. Locate the contact information field that you want to remove.
 +
 +3. Click the trash bin to the right of the contact information.
 +
 +  Changes that you make to any contact information are implemented immediately.
 +
 +
 +Defining a Contact Avatar
 +~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +By default, new contacts receive a letter avatar (picture) of "U" (for "User").
 +
 +.. figure:: ../images/contact_picture_default.png
 +
 +  **Contact picture (default)**
 +
 +When you specify the name of a contact, the avatar reflects the name by adopting
 +the first letter of the name you provide.  For example, if you were to specify
 +the name of "Frederick," the avatar would dynamically change to "F" for that
 +contact.  If you provide multiple contacts with the same name, or with names
 +that start with the same first letter, the avatar uses the same letter but
 +changes color to indicate the difference.
 + 
 +.. figure:: ../images/contact_picture.png
 +
 +  **Contact picture (dynamic change)**
 +
 +Customizing an Avatar
 +~~~~~~~~~~~~~~~~~~~~~
 +
 +In addition to dynamically altering the avatar for each contact, the Contacts 
 +app enables you to customize the avatar. You can specify an avatar in one of the
 +two following ways:
 +
 +- Upload new image -- By selecting this option, ownCloud opens a File Upload 
 +  window.  You can choose a new image by navigating to the image, selecting it, 
 +  and clicking ``Open``.
 +  
 +- Select image from Files -- By selecting this option, ownCloud opens the Files
 +  dialog on the ownCloud server.  You can choose an image by navigating to the image
 +  in the ownCloud directory, selecting it, and clicking ``Choose.``
 +
 +Cropping an Avatar Image
 +~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +After you have selected an image for your contact, the Contacts app enables you
 +to crop the picture.
 +
 +.. figure:: ../images/contact_crop.jpg
 +
 +   **Cropping contact image**
 +
 +To crop the image:
 +
 +1. Move the image crop box to the desired location and resize the box any way 
 +   you like.
 +
 +2. Click ``Crop Picture`` in the crop image dialog box.
 +
 +  The Contacts app crops the image and replaces whatever image was originally 
 +  used for the contact.
 +
 +Managing Address Books
 +----------------------
 +
 +Clicking on the settings (gear) button at the bottom of the Apps Information 
 +field provides access to the Contact app settings. This field shows all 
 +available address books, certain options for each address book, and enables you
 +to create new address books.
 +
 +.. figure:: ../images/contacts_settings.png
 +
 +   **Contacts settings**
 +
 +The Contacts settings enables you to share, export, edit, and delete address 
 +books.
 +
 +.. note:: Hover your cursor over each icon to see a brief pop-up description.
 +
 +Adding an Address Book
 +----------------------
 +
 +To add an address book:
 +
 +1. Click the ``+ Add Address Book`` option in the Contacts settings field.
 +
 +  A field opens requesting you to enter a display name for the new address book.
 +  
 +  .. figure:: ../images/contact_address_book_add.png
 +
 +    **Adding an address book**
 +
 +
 +2. Specify a display name for the address book.
 +
 +3. Click the checkbox icon to create the new address book.
 +
 +
 +Synchronizing Address Books
 +---------------------------
 +
 +One of the most important features in any contact application is the ability to 
 +keep it in sync.  The ownCloud Contacts app enables you to sync your address
 +books to external devices that use the Android or Apple iOS operating systems.
 +
 +
 +Synchronizing With Android
 +~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +To synchronize with an Android device:
 +
 +1) Install CardDAV- Sync free from the Google play store by visiting `this link <https://play.google.com/store/apps/details?id=org.dmfs.carddav.sync>`_.
 +   This app supports auto-configuration.
 +  
 +  .. note:: Following the installing, visit carddavs://example.org/remote.php/carddav/ to auto-configure the app.
 +
 +3) Enter your login details.
 +
 +4) After the app has checked your login details, select the ``Sync from server to phone only`` option.
 +
 +.. figure:: ../images/contact_syncopt.jpg
 +
 +Synchronizing With Apple iOS
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +To synchronize with an Apple iOS device:
 +
 +1. Open the settings application.
 +
 +2. Select Mail > Contacts > Calendars.
 +
 +3. Select ``Add Account``.
 +
 +4. Select ``other`` as the account type.
 +
 +5. Select ``Add CardDAV account``.
 +
 +6. For ``server``, enter http://example.org/remote.php/carddav/principals/username
 +
 +7. Specify your username and password.
 +
 +8. Select Next.
 +
 +9. If your server does not support SSL, a warning is displayed. Select ``Continue``.
 +
 +10. If the iPhone is unable to verify the account information, perform the following:
 +
 +  a. Click ``OK``.
 +  
 +  b. Select ``advanced settings``.
 +
 +  c. Make sure ``Use SSL`` is set to "OFF".
 +
 +  d. Change the port to ``80``.
 +  
 +  e. Return to "account information" and click ``Save``.
 +
 +  Your contacts appear in the address book of your iPhone.
 +
 +
 +Using Other Synchronization Options
 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 +
 +ownCloud provides the following alternative synchronization options:
 +
 +- For Android devices, you can use an official Android app.  You can find this
 +  app `here <https://owncloud.org/install/>`_.
 +  
 +- For iOS (iPhone and iPad) devices, you can use their official app.  You can
 +  find this app `here <https://owncloud.org/install/>`_.
 +
 +Special CardDAV URLs
 +-------------------
 +
 +Additionally, the Contacts app is providing an URL for special functions:
 +
 +**Export an address book as a vCard file**
 +
 +  https://ADDRESS/remote.php/caldav/addressbooks/USERNAME/ADDRESSBOOK?export
 +
 +Troubleshooting
 +---------------
 +
- Are you having problems using the app? Have a look at the :doc:`troubleshooting` guide.
++Are you having problems using the app? Have a look at the :doc:`troubleshooting`
++and `Troubleshooting Contacts & Calendar`_ guides.
 +
++.. _Troubleshooting Contacts & Calendar: https://doc.owncloud.org/server/7.0/admin_manual/issues/index.html#troubleshooting-contacts-calendar
diff --cc core/doc/user/_sources/pim/sync_ios.txt
index 562d707,0000000..ec7277e
mode 100644,000000..100644
--- a/core/doc/user/_sources/pim/sync_ios.txt
+++ b/core/doc/user/_sources/pim/sync_ios.txt
@@@ -1,53 -1,0 +1,55 @@@
 +iOS - Synchronize iPhone/iPad
 +=============================
 +
 +Calendar
 +--------
 +
 +#. Open the settings application.
 +#. Select Mail, Contacts, Calendars.
 +#. Select Add Account.
 +#. Select Other as account type.
 +#. Select Add CalDAV account.
 +#. For server, type ``ADDRESS/remote.php/caldav/principals/username``
 +#. Enter your user name and password.
 +#. Select Next.
 +#. If your server does not support SSL, a warning will be displayed.
 +   Select Continue.
 +#. If the iPhone is unable to verify the account information perform the
 +   following steps:
 +
 +   -  Select OK.
 +   -  Select advanced settings.
 +   -  Make sure Use SSL is set to OFF.
 +   -  Change port to 80.
 +   -  Go back to account information and hit Save.
 +
 +Your calendar will now be visible in the Calendar application
 +
 +
 +Address book
 +------------
 +
 +#. Open the settings application.
 +#. Select Mail, Contacts, Calendars.
 +#. Select Add Account.
 +#. Select Other as account type.
 +#. Select Add CardDAV account.
 +#. For server, type ``ADDRESS/remote.php/carddav/principals/username``
 +#. Enter your user name and password.
 +#. Select Next.
 +#. If your server does not support SSL, a warning will be displayed.
 +   Select Continue.
 +#. If the iPhone is unable to verify the account information perform the
 +   following:
 +
 +   -  Select OK.
 +   -  Select advanced settings.
 +   -  Make sure Use SSL is set to OFF.
 +   -  Change port to 80.
 +   -  Go back to account information and hit Save.
 +
- Now should now find your contacts in the address book of your
- iPhone.
- If it's still not working, have a look at the :doc:`troubleshooting` guide.
++Now should now find your contacts in the address book of your iPhone.
++If it's still not working, have a look at the :doc:`troubleshooting`
++and `Troubleshooting Contacts & Calendar`_ guides.
++
++.. _Troubleshooting Contacts & Calendar: https://doc.owncloud.org/server/7.0/admin_manual/issues/index.html#troubleshooting-contacts-calendar
diff --cc core/doc/user/_sources/pim/sync_osx.txt
index fecc23b,0000000..7707c45
mode 100644,000000..100644
--- a/core/doc/user/_sources/pim/sync_osx.txt
+++ b/core/doc/user/_sources/pim/sync_osx.txt
@@@ -1,35 -1,0 +1,36 @@@
 +Synchronizing with OS X
 +=======================
 +
 +To use ownCloud with iCal you will need to use the following URL::
 +
 +    http://ADDRESS/remote.php/caldav/principals/username/
 +
 +The setup is basically the same as with iOS using the path **ADDRESS/remote.php/caldav/principals/username/** to sync with ownCloud. For OS X 10.7 Lion and 10.8 Mountain Lion everything works fine, but OS X 10.6 (Snow Leopard) and older needs some fiddling to work. A user contributed the following:
 +
 +#. Make sure, addressbook is not running. If it is, select the windows and press Command + Q to terminate it.
 +#. Navigate to **/Users/YOUR\_USERNAME/Library/Application Support/AddressBook/Sources**. If you have all ready some kind of addressbook setup, it is likely you will see some folders named like this **BEA92826-FBF3-4E53-B5C6-ED7C2B454430**. Note down what folders there are now and leave the window open.
 +#. Open addressbook and try to add a new CardDav addressbook. At this point, it does not matter what information you enter. It will come up with the same error message you mentioned before when you click "Create". Ignore it and click "Create" again. A non-functional addressbook will be added.
 +#. Close addressbook again using Command + Q
 +#. Go back to the folder window from step 2. You will now see a newly created folder with another long string as its name.
 +#. Navigate to the newly created folder and edit the **Configuration.plist** with your favorite text editor.
 +#. Search for a section looking like this::
 +
 +    <key>servername</key> <string>http://:0(null)</string> <key>username</key> <string>Whatever_you_entered_before</string>
 +
 +8. Make it look like this. Please note that the :80 after **YOUR_DOMAIN** is important::
 +
 +    <key>servername</key <string>http://YOUR_DOMAIN:80/owncloud/remote.php/carddav/principals/username</string> <key>username</key <string>username</string>
 +
 +9. Save the file and open addressbook again. It will not work yet.
 +
 +10. Open the preferences for your ownCloud CardDAV-Account and enter your password.
 +
 +11. You may have to restart addressbook once more. After this, it should work.
 +
- If it's still not working, have a look at the :doc:`troubleshooting` guide.
++If it's still not working, have a look at the :doc:`troubleshooting`
++and `Troubleshooting Contacts & Calendar`_ guides.
 +
 +There is also an easy `HOWTO`_ in the forum.
 +
- 
 +.. _HOWTO: http://forum.owncloud.org/viewtopic.php?f=3&t=132
++.. _Troubleshooting Contacts & Calendar: https://doc.owncloud.org/server/7.0/admin_manual/issues/index.html#troubleshooting-contacts-calendar
diff --cc core/doc/user/pim/contacts.html
index f5824a3,0000000..795a9c9
mode 100644,000000..100644
--- a/core/doc/user/pim/contacts.html
+++ b/core/doc/user/pim/contacts.html
@@@ -1,483 -1,0 +1,484 @@@
 +
 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 +  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 +
 +
 +<html xmlns="http://www.w3.org/1999/xhtml">
 +  <head>
 +    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 +    
 +    <title>Using the Contacts App — ownCloud User Manual 7.0 documentation</title>
 +    
 +    <link rel="stylesheet" href="../_static/style.css" type="text/css" />
 +    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 +    <link rel="stylesheet" href="../_static/style.css" type="text/css" />
 +    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 +    
 +    <script type="text/javascript">
 +      var DOCUMENTATION_OPTIONS = {
 +        URL_ROOT:    '../',
 +        VERSION:     '7.0',
 +        COLLAPSE_INDEX: false,
 +        FILE_SUFFIX: '.html',
 +        HAS_SOURCE:  true
 +      };
 +    </script>
 +    <script type="text/javascript" src="../_static/jquery.js"></script>
 +    <script type="text/javascript" src="../_static/underscore.js"></script>
 +    <script type="text/javascript" src="../_static/doctools.js"></script>
 +    <script type="text/javascript" src="../_static/bootstrap.js"></script>
 +    <link rel="top" title="ownCloud User Manual 7.0 documentation" href="../index.html" />
 +    <link rel="up" title="Contacts & Calendar" href="index.html" />
 +    <link rel="next" title="Using the Calendar App" href="calendar.html" />
 +    <link rel="prev" title="Contacts & Calendar" href="index.html" />
 +<script type="text/javascript">
 +(function () {
 +  /**
 +   * Patch TOC list.
 +   *
 +   * Will mutate the underlying span to have a correct ul for nav.
 +   *
 +   * @param $span: Span containing nested UL's to mutate.
 +   * @param minLevel: Starting level for nested lists. (1: global, 2: local).
 +   */
 +  var patchToc = function ($ul, minLevel) {
 +    var findA;
 +
 +    // Find all a "internal" tags, traversing recursively.
 +    findA = function ($elem, level) {
 +      var level = level || 0,
 +        $items = $elem.find("> li > a.internal, > ul, > li > ul");
 +
 +      // Iterate everything in order.
 +      $items.each(function (index, item) {
 +        var $item = $(item),
 +          tag = item.tagName.toLowerCase(),
 +          pad = 15 + ((level - minLevel) * 10);
 +
 +        if (tag === 'a' && level >= minLevel) {
 +          // Add to existing padding.
 +          $item.css('padding-left', pad + "px");
 +          console.log(level, $item, 'padding-left', pad + "px");
 +        } else if (tag === 'ul') {
 +          // Recurse.
 +          findA($item, level + 1);
 +        }
 +      });
 +    };
 +
 +    console.log("HERE");
 +    findA($ul);
 +  };
 +
 +  $(document).ready(function () {
 +    // Add styling, structure to TOC's.
 +    $(".dropdown-menu").each(function () {
 +      $(this).find("ul").each(function (index, item){
 +        var $item = $(item);
 +        $item.addClass('unstyled');
 +      });
 +      $(this).find("li").each(function () {
 +        $(this).parent().append(this);
 +      });
 +    });
 +
 +    // Patch in level.
 +    patchToc($("ul.globaltoc"), 2);
 +    patchToc($("ul.localtoc"), 2);
 +
 +    // Enable dropdown.
 +    $('.dropdown-toggle').dropdown();
 +  });
 +}());
 +</script>
 +
 +  </head>
 +  <body>
 +  
 +
 +<div class="container">
 +  <div class="content">
 +    <div class="page-header">
 +      <h1><a href="../contents.html">ownCloud User Manual</a></h1>
 +
 +    </div>
 +    
 +			<div class="row">
 +				<div class="span3">
 +					<div class="sidebar">
 +						<div class="well">
 +							<div class="menu-support-container">
 +								<ul id="menu-support" class="menu">
 +									<ul>
 +										<li><a href="../contents.html">Table of Contents</a></li>
 +									</ul>
 +                  <ul>
 +<li class="toctree-l1"><a class="reference internal" href="../index.html">ownCloud 7.0 User Documentation</a></li>
 +</ul>
 +<ul class="current">
 +<li class="toctree-l1"><a class="reference internal" href="../whats_new.html">What’s New for Users in ownCloud 7</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../webinterface.html">The ownCloud Web Interface</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../files/index.html">Files & Synchronization</a></li>
 +<li class="toctree-l1 current"><a class="reference internal" href="index.html">Contacts & Calendar</a><ul class="current">
 +<li class="toctree-l2 current"><a class="current reference internal" href="">Using the Contacts App</a><ul>
 +<li class="toctree-l3"><a class="reference internal" href="#adding-contacts">Adding Contacts</a></li>
 +<li class="toctree-l3"><a class="reference internal" href="#managing-address-books">Managing Address Books</a></li>
 +<li class="toctree-l3"><a class="reference internal" href="#adding-an-address-book">Adding an Address Book</a></li>
 +<li class="toctree-l3"><a class="reference internal" href="#synchronizing-address-books">Synchronizing Address Books</a></li>
 +<li class="toctree-l3"><a class="reference internal" href="#special-carddav-urls">Special CardDAV URLs</a></li>
 +<li class="toctree-l3"><a class="reference internal" href="#troubleshooting">Troubleshooting</a></li>
 +</ul>
 +</li>
 +<li class="toctree-l2"><a class="reference internal" href="calendar.html">Using the Calendar App</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="sync_ios.html">iOS - Synchronize iPhone/iPad</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="sync_osx.html">Synchronizing with OS X</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="sync_thunderbird.html">Thunderbird - Synchronize Addressbook</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="sync_kde.html">Synchronizing with KDE SC</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
 +</ul>
 +</li>
 +<li class="toctree-l1"><a class="reference internal" href="../documents.html">Collaborative Document Editing</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../bookmarks.html">Using the Bookmarks App</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../userpreferences.html">Setting Your Preferences</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../external_storage/google_drive.html">Configuring External Storage</a></li>
 +</ul>
 +
 +								</ul>
 +							</div>
 +						</div>
 +					</div>
 +				</div>
 +        
 +
 +				<div class="span9">
 +					<div class="page-content">
 +						
 +  <div class="section" id="using-the-contacts-app">
 +<h1>Using the Contacts App<a class="headerlink" href="#using-the-contacts-app" title="Permalink to this headline">¶</a></h1>
 +<p>The ownCloud Contacts app is similar to other mobile contact applications, but
 +with more functionality.  When you first access the Contacts app, a default
 +address book becomes available.</p>
 +<div class="figure">
 +<img alt="../_images/contacts_empty.png" src="../_images/contacts_empty.png" />
 +<p class="caption"><strong>Contacts app (empty)</strong></p>
 +</div>
 +<p>In the Apps Information field for the Contacts app, you can choose to create a
 +new contact or a new group.  This field also enables you to filter your contacts
 +based on grouped or ungrouped contacts.</p>
 +<div class="section" id="adding-contacts">
 +<h2>Adding Contacts<a class="headerlink" href="#adding-contacts" title="Permalink to this headline">¶</a></h2>
 +<p>You can add contacts using one of the following methods:</p>
 +<ul class="simple">
 +<li>Import contacts using a Variant Call Format (VCF) file</li>
 +<li>Add contacts manually</li>
 +</ul>
 +<div class="section" id="importing-contacts">
 +<h3>Importing Contacts<a class="headerlink" href="#importing-contacts" title="Permalink to this headline">¶</a></h3>
 +<p>The fastest way to add contacts is through the use of a Variant Call Format
 +(VCF) file.</p>
 +<p>To import contacts using a VCF file:</p>
 +<ol class="arabic simple">
 +<li>At the bottom of the Contacts app information field, locate the gear button.</li>
 +</ol>
 +<blockquote>
 +<div><div class="figure">
 +<img alt="../_images/contact_bottombar.png" src="../_images/contact_bottombar.png" />
 +<p class="caption"><strong>Contact settings gear button</strong></p>
 +</div>
 +</div></blockquote>
 +<ol class="arabic simple" start="2">
 +<li>Click the gear button. The Contacts app upload field opens.</li>
 +</ol>
 +<blockquote>
 +<div><div class="figure">
 +<img alt="../_images/contact_uploadbutton.png" src="../_images/contact_uploadbutton.png" />
 +<p class="caption"><strong>Contacts app upload field</strong></p>
 +</div>
 +</div></blockquote>
 +<p>3. Choose an address book to which you want to import contacts by clicking the
 +checkbox next to the address book.</p>
 +<p>4. Select one of the options from the Import pulldown menu.  These options
 +include the following:</p>
 +<blockquote>
 +<div><ul class="simple">
 +<li>Automatic format – Any VCF file. ownCloud determines the file format and
 +imports accordingly.</li>
 +<li>Gmail CSV – The comma-separated values file from your Gmail account.</li>
 +<li>Outlook CSV – The comma-separated values file from your Outlook account.</li>
 +<li>Thunderbird CSV – The comma-separated values file from your Thunderbird
 +account.</li>
 +<li>Yahoo CSV – The comma-separated values file from your Yahoo account.</li>
 +<li>PHPLdapAdmin Idif Export – The export record from your LDAP configuration.</li>
 +<li>Gmail VCard – The VCard files from your Gmail account.</li>
 +<li>Standard VCard – The VCard files from your Standard account.</li>
 +<li>Yahoo VCard  – The VCard files from your Yahoo account.</li>
 +</ul>
 +</div></blockquote>
 +<ol class="arabic simple" start="5">
 +<li>Click the upload arrow to the right of the import option that you select.</li>
 +</ol>
 +<blockquote>
 +<div>An Upload File window opens.</div></blockquote>
 +<ol class="arabic simple" start="6">
 +<li>Navigate to the appropriate file on your system and select it for upload.</li>
 +</ol>
 +<blockquote>
 +<div><div class="admonition note">
 +<p class="first admonition-title">Note</p>
 +<p class="last">You can upload files individually or, by selecting multiple files
 +using the CTRL button and selecting them, you can upload multiple files at
 +one time.</p>
 +</div>
 +</div></blockquote>
 +<ol class="arabic simple" start="7">
 +<li>Once you have selected the appropriate files, click the <cite>Open`</cite> button.</li>
 +</ol>
 +<blockquote>
 +<div><div class="figure">
 +<img alt="../_images/contact_vcfpick.jpg" src="../_images/contact_vcfpick.jpg" />
 +<p class="caption"><strong>Selecting VCF files</strong></p>
 +<div class="legend">
 +The interface automatically places your contacts into ownCloud.</div>
 +</div>
 +</div></blockquote>
 +</div>
 +<div class="section" id="creating-contacts-manually">
 +<h3>Creating Contacts Manually<a class="headerlink" href="#creating-contacts-manually" title="Permalink to this headline">¶</a></h3>
 +<p>The Contacts app enables you to create contacts manually.</p>
 +<p>To create a new contact:</p>
 +<ol class="arabic">
 +<li><p class="first">Click the <tt class="docutils literal"><span class="pre">+New</span> <span class="pre">contact</span></tt> option in the Contacts information field.</p>
 +<p>An empty new contact configuration opens in the Application View field.</p>
 +</li>
 +</ol>
 +<blockquote>
 +<div><div class="figure">
 +<img alt="../_images/contact_new.png" src="../_images/contact_new.png" />
 +</div>
 +</div></blockquote>
 +<ol class="arabic simple" start="2">
 +<li>Specify the new contact information as follows:</li>
 +</ol>
 +<blockquote>
 +<div><ul class="simple">
 +<li>Name – The name of the contact.  This field provides the option of
 +specifying added information for the user by clicking the pen button to the
 +right of the Name field.</li>
 +<li>Organization – The organization for the contact.</li>
 +<li>Email – The email address for the contact. This field defaults to the work
 +email address for the contact.  However, you can specify a different email
 +designation by clicking the <tt class="docutils literal"><span class="pre">Work</span></tt> designation to the left of the email
 +field.</li>
 +<li>Phone – The phone number for the contact. This field defaults to the home
 +phone number for the contact.  However, you can specify a different phone
 +designation by clicking the <tt class="docutils literal"><span class="pre">Home</span></tt> designation to the left of the phone
 +field.</li>
 +<li>Address – The address for the contact. This field defaults to the work
 +address for the contact.  However, you can specify a different address
 +designation by clicking the <tt class="docutils literal"><span class="pre">Work</span></tt> designation to the left of the address
 +field.</li>
 +<li>Notes – Any notes you want to add about the contact.</li>
 +</ul>
 +<div class="admonition note">
 +<p class="first admonition-title">Note</p>
 +<p class="last">The Email, Phone, and Address fields provide the option of
 +specifying a contact method as “preferred.”</p>
 +</div>
 +</div></blockquote>
 +</div>
 +<div class="section" id="editing-contact-information">
 +<h3>Editing Contact Information<a class="headerlink" href="#editing-contact-information" title="Permalink to this headline">¶</a></h3>
 +<p>The Contacts app enables you to edit or remove contact information.</p>
 +<p>To edit contact information:</p>
 +<ol class="arabic simple">
 +<li>Navigate to the specific contact that you want to modify.</li>
 +<li>Select the information in the field that you want to edit.</li>
 +<li>Make your modifications.</li>
 +</ol>
 +<blockquote>
 +<div>Changes that you make to any contact information are implemented immediately.</div></blockquote>
 +</div>
 +<div class="section" id="removing-contact-information">
 +<h3>Removing Contact Information<a class="headerlink" href="#removing-contact-information" title="Permalink to this headline">¶</a></h3>
 +<p>The Contacts app enables you to remove contact information.</p>
 +<p>To remove contact information:</p>
 +<ol class="arabic simple">
 +<li>Navigate to the specific contact that you want to modify.</li>
 +<li>Locate the contact information field that you want to remove.</li>
 +<li>Click the trash bin to the right of the contact information.</li>
 +</ol>
 +<blockquote>
 +<div>Changes that you make to any contact information are implemented immediately.</div></blockquote>
 +</div>
 +<div class="section" id="defining-a-contact-avatar">
 +<h3>Defining a Contact Avatar<a class="headerlink" href="#defining-a-contact-avatar" title="Permalink to this headline">¶</a></h3>
 +<p>By default, new contacts receive a letter avatar (picture) of “U” (for “User”).</p>
 +<div class="figure">
 +<img alt="../_images/contact_picture_default.png" src="../_images/contact_picture_default.png" />
 +<p class="caption"><strong>Contact picture (default)</strong></p>
 +</div>
 +<p>When you specify the name of a contact, the avatar reflects the name by adopting
 +the first letter of the name you provide.  For example, if you were to specify
 +the name of “Frederick,” the avatar would dynamically change to “F” for that
 +contact.  If you provide multiple contacts with the same name, or with names
 +that start with the same first letter, the avatar uses the same letter but
 +changes color to indicate the difference.</p>
 +<div class="figure">
 +<img alt="../_images/contact_picture.png" src="../_images/contact_picture.png" />
 +<p class="caption"><strong>Contact picture (dynamic change)</strong></p>
 +</div>
 +</div>
 +<div class="section" id="customizing-an-avatar">
 +<h3>Customizing an Avatar<a class="headerlink" href="#customizing-an-avatar" title="Permalink to this headline">¶</a></h3>
 +<p>In addition to dynamically altering the avatar for each contact, the Contacts
 +app enables you to customize the avatar. You can specify an avatar in one of the
 +two following ways:</p>
 +<ul class="simple">
 +<li>Upload new image – By selecting this option, ownCloud opens a File Upload
 +window.  You can choose a new image by navigating to the image, selecting it,
 +and clicking <tt class="docutils literal"><span class="pre">Open</span></tt>.</li>
 +<li>Select image from Files – By selecting this option, ownCloud opens the Files
 +dialog on the ownCloud server.  You can choose an image by navigating to the image
 +in the ownCloud directory, selecting it, and clicking <tt class="docutils literal"><span class="pre">Choose.</span></tt></li>
 +</ul>
 +</div>
 +<div class="section" id="cropping-an-avatar-image">
 +<h3>Cropping an Avatar Image<a class="headerlink" href="#cropping-an-avatar-image" title="Permalink to this headline">¶</a></h3>
 +<p>After you have selected an image for your contact, the Contacts app enables you
 +to crop the picture.</p>
 +<div class="figure">
 +<img alt="../_images/contact_crop.jpg" src="../_images/contact_crop.jpg" />
 +<p class="caption"><strong>Cropping contact image</strong></p>
 +</div>
 +<p>To crop the image:</p>
 +<ol class="arabic simple">
 +<li>Move the image crop box to the desired location and resize the box any way
 +you like.</li>
 +<li>Click <tt class="docutils literal"><span class="pre">Crop</span> <span class="pre">Picture</span></tt> in the crop image dialog box.</li>
 +</ol>
 +<blockquote>
 +<div>The Contacts app crops the image and replaces whatever image was originally
 +used for the contact.</div></blockquote>
 +</div>
 +</div>
 +<div class="section" id="managing-address-books">
 +<h2>Managing Address Books<a class="headerlink" href="#managing-address-books" title="Permalink to this headline">¶</a></h2>
 +<p>Clicking on the settings (gear) button at the bottom of the Apps Information
 +field provides access to the Contact app settings. This field shows all
 +available address books, certain options for each address book, and enables you
 +to create new address books.</p>
 +<div class="figure">
 +<img alt="../_images/contacts_settings.png" src="../_images/contacts_settings.png" />
 +<p class="caption"><strong>Contacts settings</strong></p>
 +</div>
 +<p>The Contacts settings enables you to share, export, edit, and delete address
 +books.</p>
 +<div class="admonition note">
 +<p class="first admonition-title">Note</p>
 +<p class="last">Hover your cursor over each icon to see a brief pop-up description.</p>
 +</div>
 +</div>
 +<div class="section" id="adding-an-address-book">
 +<h2>Adding an Address Book<a class="headerlink" href="#adding-an-address-book" title="Permalink to this headline">¶</a></h2>
 +<p>To add an address book:</p>
 +<ol class="arabic simple">
 +<li>Click the <tt class="docutils literal"><span class="pre">+</span> <span class="pre">Add</span> <span class="pre">Address</span> <span class="pre">Book</span></tt> option in the Contacts settings field.</li>
 +</ol>
 +<blockquote>
 +<div><p>A field opens requesting you to enter a display name for the new address book.</p>
 +<div class="figure">
 +<img alt="../_images/contact_address_book_add.png" src="../_images/contact_address_book_add.png" />
 +<p class="caption"><strong>Adding an address book</strong></p>
 +</div>
 +</div></blockquote>
 +<ol class="arabic simple" start="2">
 +<li>Specify a display name for the address book.</li>
 +<li>Click the checkbox icon to create the new address book.</li>
 +</ol>
 +</div>
 +<div class="section" id="synchronizing-address-books">
 +<h2>Synchronizing Address Books<a class="headerlink" href="#synchronizing-address-books" title="Permalink to this headline">¶</a></h2>
 +<p>One of the most important features in any contact application is the ability to
 +keep it in sync.  The ownCloud Contacts app enables you to sync your address
 +books to external devices that use the Android or Apple iOS operating systems.</p>
 +<div class="section" id="synchronizing-with-android">
 +<h3>Synchronizing With Android<a class="headerlink" href="#synchronizing-with-android" title="Permalink to this headline">¶</a></h3>
 +<p>To synchronize with an Android device:</p>
 +<ol class="arabic simple">
 +<li>Install CardDAV- Sync free from the Google play store by visiting <a class="reference external" href="https://play.google.com/store/apps/details?id=org.dmfs.carddav.sync">this link</a>.
 +This app supports auto-configuration.</li>
 +</ol>
 +<blockquote>
 +<div><div class="admonition note">
 +<p class="first admonition-title">Note</p>
 +<p class="last">Following the installing, visit carddavs://example.org/remote.php/carddav/ to auto-configure the app.</p>
 +</div>
 +</div></blockquote>
 +<ol class="arabic simple" start="3">
 +<li>Enter your login details.</li>
 +<li>After the app has checked your login details, select the <tt class="docutils literal"><span class="pre">Sync</span> <span class="pre">from</span> <span class="pre">server</span> <span class="pre">to</span> <span class="pre">phone</span> <span class="pre">only</span></tt> option.</li>
 +</ol>
 +<div class="figure">
 +<img alt="../_images/contact_syncopt.jpg" src="../_images/contact_syncopt.jpg" />
 +</div>
 +</div>
 +<div class="section" id="synchronizing-with-apple-ios">
 +<h3>Synchronizing With Apple iOS<a class="headerlink" href="#synchronizing-with-apple-ios" title="Permalink to this headline">¶</a></h3>
 +<p>To synchronize with an Apple iOS device:</p>
 +<ol class="arabic simple">
 +<li>Open the settings application.</li>
 +<li>Select Mail > Contacts > Calendars.</li>
 +<li>Select <tt class="docutils literal"><span class="pre">Add</span> <span class="pre">Account</span></tt>.</li>
 +<li>Select <tt class="docutils literal"><span class="pre">other</span></tt> as the account type.</li>
 +<li>Select <tt class="docutils literal"><span class="pre">Add</span> <span class="pre">CardDAV</span> <span class="pre">account</span></tt>.</li>
 +<li>For <tt class="docutils literal"><span class="pre">server</span></tt>, enter <a class="reference external" href="http://example.org/remote.php/carddav/principals/username">http://example.org/remote.php/carddav/principals/username</a></li>
 +<li>Specify your username and password.</li>
 +<li>Select Next.</li>
 +<li>If your server does not support SSL, a warning is displayed. Select <tt class="docutils literal"><span class="pre">Continue</span></tt>.</li>
 +<li>If the iPhone is unable to verify the account information, perform the following:</li>
 +</ol>
 +<blockquote>
 +<div><ol class="loweralpha simple">
 +<li>Click <tt class="docutils literal"><span class="pre">OK</span></tt>.</li>
 +<li>Select <tt class="docutils literal"><span class="pre">advanced</span> <span class="pre">settings</span></tt>.</li>
 +<li>Make sure <tt class="docutils literal"><span class="pre">Use</span> <span class="pre">SSL</span></tt> is set to “OFF”.</li>
 +<li>Change the port to <tt class="docutils literal"><span class="pre">80</span></tt>.</li>
 +<li>Return to “account information” and click <tt class="docutils literal"><span class="pre">Save</span></tt>.</li>
 +</ol>
 +<p>Your contacts appear in the address book of your iPhone.</p>
 +</div></blockquote>
 +</div>
 +<div class="section" id="using-other-synchronization-options">
 +<h3>Using Other Synchronization Options<a class="headerlink" href="#using-other-synchronization-options" title="Permalink to this headline">¶</a></h3>
 +<p>ownCloud provides the following alternative synchronization options:</p>
 +<ul class="simple">
 +<li>For Android devices, you can use an official Android app.  You can find this
 +app <a class="reference external" href="https://owncloud.org/install/">here</a>.</li>
 +<li>For iOS (iPhone and iPad) devices, you can use their official app.  You can
 +find this app <a class="reference external" href="https://owncloud.org/install/">here</a>.</li>
 +</ul>
 +</div>
 +</div>
 +<div class="section" id="special-carddav-urls">
 +<h2>Special CardDAV URLs<a class="headerlink" href="#special-carddav-urls" title="Permalink to this headline">¶</a></h2>
 +<p>Additionally, the Contacts app is providing an URL for special functions:</p>
 +<p><strong>Export an address book as a vCard file</strong></p>
 +<blockquote>
 +<div><a class="reference external" href="https://ADDRESS/remote.php/caldav/addressbooks/USERNAME/ADDRESSBOOK?export">https://ADDRESS/remote.php/caldav/addressbooks/USERNAME/ADDRESSBOOK?export</a></div></blockquote>
 +</div>
 +<div class="section" id="troubleshooting">
 +<h2>Troubleshooting<a class="headerlink" href="#troubleshooting" title="Permalink to this headline">¶</a></h2>
- <p>Are you having problems using the app? Have a look at the <a class="reference internal" href="troubleshooting.html"><em>Troubleshooting</em></a> guide.</p>
++<p>Are you having problems using the app? Have a look at the <a class="reference internal" href="troubleshooting.html"><em>Troubleshooting</em></a>
++and <a class="reference external" href="https://doc.owncloud.org/server/7.0/admin_manual/issues/index.html#troubleshooting-contacts-calendar">Troubleshooting Contacts & Calendar</a> guides.</p>
 +</div>
 +</div>
 +
 +
 +					</div>
 +				</div>
 +			</div>
 +    
 +  </div>
 +</div>
 +  </body>
 +</html>
diff --cc core/doc/user/pim/sync_ios.html
index 5fa3c63,0000000..5215137
mode 100644,000000..100644
--- a/core/doc/user/pim/sync_ios.html
+++ b/core/doc/user/pim/sync_ios.html
@@@ -1,216 -1,0 +1,216 @@@
 +
 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 +  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 +
 +
 +<html xmlns="http://www.w3.org/1999/xhtml">
 +  <head>
 +    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 +    
 +    <title>iOS - Synchronize iPhone/iPad — ownCloud User Manual 7.0 documentation</title>
 +    
 +    <link rel="stylesheet" href="../_static/style.css" type="text/css" />
 +    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 +    <link rel="stylesheet" href="../_static/style.css" type="text/css" />
 +    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 +    
 +    <script type="text/javascript">
 +      var DOCUMENTATION_OPTIONS = {
 +        URL_ROOT:    '../',
 +        VERSION:     '7.0',
 +        COLLAPSE_INDEX: false,
 +        FILE_SUFFIX: '.html',
 +        HAS_SOURCE:  true
 +      };
 +    </script>
 +    <script type="text/javascript" src="../_static/jquery.js"></script>
 +    <script type="text/javascript" src="../_static/underscore.js"></script>
 +    <script type="text/javascript" src="../_static/doctools.js"></script>
 +    <script type="text/javascript" src="../_static/bootstrap.js"></script>
 +    <link rel="top" title="ownCloud User Manual 7.0 documentation" href="../index.html" />
 +    <link rel="up" title="Contacts & Calendar" href="index.html" />
 +    <link rel="next" title="Synchronizing with OS X" href="sync_osx.html" />
 +    <link rel="prev" title="Using the Calendar App" href="calendar.html" />
 +<script type="text/javascript">
 +(function () {
 +  /**
 +   * Patch TOC list.
 +   *
 +   * Will mutate the underlying span to have a correct ul for nav.
 +   *
 +   * @param $span: Span containing nested UL's to mutate.
 +   * @param minLevel: Starting level for nested lists. (1: global, 2: local).
 +   */
 +  var patchToc = function ($ul, minLevel) {
 +    var findA;
 +
 +    // Find all a "internal" tags, traversing recursively.
 +    findA = function ($elem, level) {
 +      var level = level || 0,
 +        $items = $elem.find("> li > a.internal, > ul, > li > ul");
 +
 +      // Iterate everything in order.
 +      $items.each(function (index, item) {
 +        var $item = $(item),
 +          tag = item.tagName.toLowerCase(),
 +          pad = 15 + ((level - minLevel) * 10);
 +
 +        if (tag === 'a' && level >= minLevel) {
 +          // Add to existing padding.
 +          $item.css('padding-left', pad + "px");
 +          console.log(level, $item, 'padding-left', pad + "px");
 +        } else if (tag === 'ul') {
 +          // Recurse.
 +          findA($item, level + 1);
 +        }
 +      });
 +    };
 +
 +    console.log("HERE");
 +    findA($ul);
 +  };
 +
 +  $(document).ready(function () {
 +    // Add styling, structure to TOC's.
 +    $(".dropdown-menu").each(function () {
 +      $(this).find("ul").each(function (index, item){
 +        var $item = $(item);
 +        $item.addClass('unstyled');
 +      });
 +      $(this).find("li").each(function () {
 +        $(this).parent().append(this);
 +      });
 +    });
 +
 +    // Patch in level.
 +    patchToc($("ul.globaltoc"), 2);
 +    patchToc($("ul.localtoc"), 2);
 +
 +    // Enable dropdown.
 +    $('.dropdown-toggle').dropdown();
 +  });
 +}());
 +</script>
 +
 +  </head>
 +  <body>
 +  
 +
 +<div class="container">
 +  <div class="content">
 +    <div class="page-header">
 +      <h1><a href="../contents.html">ownCloud User Manual</a></h1>
 +
 +    </div>
 +    
 +			<div class="row">
 +				<div class="span3">
 +					<div class="sidebar">
 +						<div class="well">
 +							<div class="menu-support-container">
 +								<ul id="menu-support" class="menu">
 +									<ul>
 +										<li><a href="../contents.html">Table of Contents</a></li>
 +									</ul>
 +                  <ul>
 +<li class="toctree-l1"><a class="reference internal" href="../index.html">ownCloud 7.0 User Documentation</a></li>
 +</ul>
 +<ul class="current">
 +<li class="toctree-l1"><a class="reference internal" href="../whats_new.html">What’s New for Users in ownCloud 7</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../webinterface.html">The ownCloud Web Interface</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../files/index.html">Files & Synchronization</a></li>
 +<li class="toctree-l1 current"><a class="reference internal" href="index.html">Contacts & Calendar</a><ul class="current">
 +<li class="toctree-l2"><a class="reference internal" href="contacts.html">Using the Contacts App</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="calendar.html">Using the Calendar App</a></li>
 +<li class="toctree-l2 current"><a class="current reference internal" href="">iOS - Synchronize iPhone/iPad</a><ul>
 +<li class="toctree-l3"><a class="reference internal" href="#calendar">Calendar</a></li>
 +<li class="toctree-l3"><a class="reference internal" href="#address-book">Address book</a></li>
 +</ul>
 +</li>
 +<li class="toctree-l2"><a class="reference internal" href="sync_osx.html">Synchronizing with OS X</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="sync_thunderbird.html">Thunderbird - Synchronize Addressbook</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="sync_kde.html">Synchronizing with KDE SC</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
 +</ul>
 +</li>
 +<li class="toctree-l1"><a class="reference internal" href="../documents.html">Collaborative Document Editing</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../bookmarks.html">Using the Bookmarks App</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../userpreferences.html">Setting Your Preferences</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../external_storage/google_drive.html">Configuring External Storage</a></li>
 +</ul>
 +
 +								</ul>
 +							</div>
 +						</div>
 +					</div>
 +				</div>
 +        
 +
 +				<div class="span9">
 +					<div class="page-content">
 +						
 +  <div class="section" id="ios-synchronize-iphone-ipad">
 +<h1>iOS - Synchronize iPhone/iPad<a class="headerlink" href="#ios-synchronize-iphone-ipad" title="Permalink to this headline">¶</a></h1>
 +<div class="section" id="calendar">
 +<h2>Calendar<a class="headerlink" href="#calendar" title="Permalink to this headline">¶</a></h2>
 +<ol class="arabic simple">
 +<li>Open the settings application.</li>
 +<li>Select Mail, Contacts, Calendars.</li>
 +<li>Select Add Account.</li>
 +<li>Select Other as account type.</li>
 +<li>Select Add CalDAV account.</li>
 +<li>For server, type <tt class="docutils literal"><span class="pre">ADDRESS/remote.php/caldav/principals/username</span></tt></li>
 +<li>Enter your user name and password.</li>
 +<li>Select Next.</li>
 +<li>If your server does not support SSL, a warning will be displayed.
 +Select Continue.</li>
 +<li>If the iPhone is unable to verify the account information perform the
 +following steps:<ul>
 +<li>Select OK.</li>
 +<li>Select advanced settings.</li>
 +<li>Make sure Use SSL is set to OFF.</li>
 +<li>Change port to 80.</li>
 +<li>Go back to account information and hit Save.</li>
 +</ul>
 +</li>
 +</ol>
 +<p>Your calendar will now be visible in the Calendar application</p>
 +</div>
 +<div class="section" id="address-book">
 +<h2>Address book<a class="headerlink" href="#address-book" title="Permalink to this headline">¶</a></h2>
 +<ol class="arabic simple">
 +<li>Open the settings application.</li>
 +<li>Select Mail, Contacts, Calendars.</li>
 +<li>Select Add Account.</li>
 +<li>Select Other as account type.</li>
 +<li>Select Add CardDAV account.</li>
 +<li>For server, type <tt class="docutils literal"><span class="pre">ADDRESS/remote.php/carddav/principals/username</span></tt></li>
 +<li>Enter your user name and password.</li>
 +<li>Select Next.</li>
 +<li>If your server does not support SSL, a warning will be displayed.
 +Select Continue.</li>
 +<li>If the iPhone is unable to verify the account information perform the
 +following:<ul>
 +<li>Select OK.</li>
 +<li>Select advanced settings.</li>
 +<li>Make sure Use SSL is set to OFF.</li>
 +<li>Change port to 80.</li>
 +<li>Go back to account information and hit Save.</li>
 +</ul>
 +</li>
 +</ol>
- <p>Now should now find your contacts in the address book of your
- iPhone.
- If it’s still not working, have a look at the <a class="reference internal" href="troubleshooting.html"><em>Troubleshooting</em></a> guide.</p>
++<p>Now should now find your contacts in the address book of your iPhone.
++If it’s still not working, have a look at the <a class="reference internal" href="troubleshooting.html"><em>Troubleshooting</em></a>
++and <a class="reference external" href="https://doc.owncloud.org/server/7.0/admin_manual/issues/index.html#troubleshooting-contacts-calendar">Troubleshooting Contacts & Calendar</a> guides.</p>
 +</div>
 +</div>
 +
 +
 +					</div>
 +				</div>
 +			</div>
 +    
 +  </div>
 +</div>
 +  </body>
 +</html>
diff --cc core/doc/user/pim/sync_osx.html
index 74b69e8,0000000..82e950c
mode 100644,000000..100644
--- a/core/doc/user/pim/sync_osx.html
+++ b/core/doc/user/pim/sync_osx.html
@@@ -1,196 -1,0 +1,197 @@@
 +
 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 +  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 +
 +
 +<html xmlns="http://www.w3.org/1999/xhtml">
 +  <head>
 +    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 +    
 +    <title>Synchronizing with OS X — ownCloud User Manual 7.0 documentation</title>
 +    
 +    <link rel="stylesheet" href="../_static/style.css" type="text/css" />
 +    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
 +    <link rel="stylesheet" href="../_static/style.css" type="text/css" />
 +    <link rel="stylesheet" href="../_static/bootstrap-sphinx.css" type="text/css" />
 +    
 +    <script type="text/javascript">
 +      var DOCUMENTATION_OPTIONS = {
 +        URL_ROOT:    '../',
 +        VERSION:     '7.0',
 +        COLLAPSE_INDEX: false,
 +        FILE_SUFFIX: '.html',
 +        HAS_SOURCE:  true
 +      };
 +    </script>
 +    <script type="text/javascript" src="../_static/jquery.js"></script>
 +    <script type="text/javascript" src="../_static/underscore.js"></script>
 +    <script type="text/javascript" src="../_static/doctools.js"></script>
 +    <script type="text/javascript" src="../_static/bootstrap.js"></script>
 +    <link rel="top" title="ownCloud User Manual 7.0 documentation" href="../index.html" />
 +    <link rel="up" title="Contacts & Calendar" href="index.html" />
 +    <link rel="next" title="Thunderbird - Synchronize Addressbook" href="sync_thunderbird.html" />
 +    <link rel="prev" title="iOS - Synchronize iPhone/iPad" href="sync_ios.html" />
 +<script type="text/javascript">
 +(function () {
 +  /**
 +   * Patch TOC list.
 +   *
 +   * Will mutate the underlying span to have a correct ul for nav.
 +   *
 +   * @param $span: Span containing nested UL's to mutate.
 +   * @param minLevel: Starting level for nested lists. (1: global, 2: local).
 +   */
 +  var patchToc = function ($ul, minLevel) {
 +    var findA;
 +
 +    // Find all a "internal" tags, traversing recursively.
 +    findA = function ($elem, level) {
 +      var level = level || 0,
 +        $items = $elem.find("> li > a.internal, > ul, > li > ul");
 +
 +      // Iterate everything in order.
 +      $items.each(function (index, item) {
 +        var $item = $(item),
 +          tag = item.tagName.toLowerCase(),
 +          pad = 15 + ((level - minLevel) * 10);
 +
 +        if (tag === 'a' && level >= minLevel) {
 +          // Add to existing padding.
 +          $item.css('padding-left', pad + "px");
 +          console.log(level, $item, 'padding-left', pad + "px");
 +        } else if (tag === 'ul') {
 +          // Recurse.
 +          findA($item, level + 1);
 +        }
 +      });
 +    };
 +
 +    console.log("HERE");
 +    findA($ul);
 +  };
 +
 +  $(document).ready(function () {
 +    // Add styling, structure to TOC's.
 +    $(".dropdown-menu").each(function () {
 +      $(this).find("ul").each(function (index, item){
 +        var $item = $(item);
 +        $item.addClass('unstyled');
 +      });
 +      $(this).find("li").each(function () {
 +        $(this).parent().append(this);
 +      });
 +    });
 +
 +    // Patch in level.
 +    patchToc($("ul.globaltoc"), 2);
 +    patchToc($("ul.localtoc"), 2);
 +
 +    // Enable dropdown.
 +    $('.dropdown-toggle').dropdown();
 +  });
 +}());
 +</script>
 +
 +  </head>
 +  <body>
 +  
 +
 +<div class="container">
 +  <div class="content">
 +    <div class="page-header">
 +      <h1><a href="../contents.html">ownCloud User Manual</a></h1>
 +
 +    </div>
 +    
 +			<div class="row">
 +				<div class="span3">
 +					<div class="sidebar">
 +						<div class="well">
 +							<div class="menu-support-container">
 +								<ul id="menu-support" class="menu">
 +									<ul>
 +										<li><a href="../contents.html">Table of Contents</a></li>
 +									</ul>
 +                  <ul>
 +<li class="toctree-l1"><a class="reference internal" href="../index.html">ownCloud 7.0 User Documentation</a></li>
 +</ul>
 +<ul class="current">
 +<li class="toctree-l1"><a class="reference internal" href="../whats_new.html">What’s New for Users in ownCloud 7</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../webinterface.html">The ownCloud Web Interface</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../files/index.html">Files & Synchronization</a></li>
 +<li class="toctree-l1 current"><a class="reference internal" href="index.html">Contacts & Calendar</a><ul class="current">
 +<li class="toctree-l2"><a class="reference internal" href="contacts.html">Using the Contacts App</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="calendar.html">Using the Calendar App</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="sync_ios.html">iOS - Synchronize iPhone/iPad</a></li>
 +<li class="toctree-l2 current"><a class="current reference internal" href="">Synchronizing with OS X</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="sync_thunderbird.html">Thunderbird - Synchronize Addressbook</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="sync_kde.html">Synchronizing with KDE SC</a></li>
 +<li class="toctree-l2"><a class="reference internal" href="troubleshooting.html">Troubleshooting</a></li>
 +</ul>
 +</li>
 +<li class="toctree-l1"><a class="reference internal" href="../documents.html">Collaborative Document Editing</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../bookmarks.html">Using the Bookmarks App</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../userpreferences.html">Setting Your Preferences</a></li>
 +<li class="toctree-l1"><a class="reference internal" href="../external_storage/google_drive.html">Configuring External Storage</a></li>
 +</ul>
 +
 +								</ul>
 +							</div>
 +						</div>
 +					</div>
 +				</div>
 +        
 +
 +				<div class="span9">
 +					<div class="page-content">
 +						
 +  <div class="section" id="synchronizing-with-os-x">
 +<h1>Synchronizing with OS X<a class="headerlink" href="#synchronizing-with-os-x" title="Permalink to this headline">¶</a></h1>
 +<p>To use ownCloud with iCal you will need to use the following URL:</p>
 +<div class="highlight-python"><pre>http://ADDRESS/remote.php/caldav/principals/username/</pre>
 +</div>
 +<p>The setup is basically the same as with iOS using the path <strong>ADDRESS/remote.php/caldav/principals/username/</strong> to sync with ownCloud. For OS X 10.7 Lion and 10.8 Mountain Lion everything works fine, but OS X 10.6 (Snow Leopard) and older needs some fiddling to work. A user contributed the following:</p>
 +<ol class="arabic">
 +<li><p class="first">Make sure, addressbook is not running. If it is, select the windows and press Command + Q to terminate it.</p>
 +</li>
 +<li><p class="first">Navigate to <strong>/Users/YOUR_USERNAME/Library/Application Support/AddressBook/Sources</strong>. If you have all ready some kind of addressbook setup, it is likely you will see some folders named like this <strong>BEA92826-FBF3-4E53-B5C6-ED7C2B454430</strong>. Note down what folders there are now and leave the window open.</p>
 +</li>
 +<li><p class="first">Open addressbook and try to add a new CardDav addressbook. At this point, it does not matter what information you enter. It will come up with the same error message you mentioned before when you click “Create”. Ignore it and click “Create” again. A non-functional addressbook will be added.</p>
 +</li>
 +<li><p class="first">Close addressbook again using Command + Q</p>
 +</li>
 +<li><p class="first">Go back to the folder window from step 2. You will now see a newly created folder with another long string as its name.</p>
 +</li>
 +<li><p class="first">Navigate to the newly created folder and edit the <strong>Configuration.plist</strong> with your favorite text editor.</p>
 +</li>
 +<li><p class="first">Search for a section looking like this:</p>
 +<div class="highlight-python"><pre><key>servername</key> <string>http://:0(null)</string> <key>username</key> <string>Whatever_you_entered_before</string></pre>
 +</div>
 +</li>
 +</ol>
 +<ol class="arabic" start="8">
 +<li><p class="first">Make it look like this. Please note that the :80 after <strong>YOUR_DOMAIN</strong> is important:</p>
 +<div class="highlight-python"><pre><key>servername</key <string>http://YOUR_DOMAIN:80/owncloud/remote.php/carddav/principals/username</string> <key>username</key <string>username</string></pre>
 +</div>
 +</li>
 +<li><p class="first">Save the file and open addressbook again. It will not work yet.</p>
 +</li>
 +<li><p class="first">Open the preferences for your ownCloud CardDAV-Account and enter your password.</p>
 +</li>
 +<li><p class="first">You may have to restart addressbook once more. After this, it should work.</p>
 +</li>
 +</ol>
- <p>If it’s still not working, have a look at the <a class="reference internal" href="troubleshooting.html"><em>Troubleshooting</em></a> guide.</p>
++<p>If it’s still not working, have a look at the <a class="reference internal" href="troubleshooting.html"><em>Troubleshooting</em></a>
++and <a class="reference external" href="https://doc.owncloud.org/server/7.0/admin_manual/issues/index.html#troubleshooting-contacts-calendar">Troubleshooting Contacts & Calendar</a> guides.</p>
 +<p>There is also an easy <a class="reference external" href="http://forum.owncloud.org/viewtopic.php?f=3&t=132">HOWTO</a> in the forum.</p>
 +</div>
 +
 +
 +					</div>
 +				</div>
 +			</div>
 +    
 +  </div>
 +</div>
 +  </body>
 +</html>
diff --cc version.php
index 597952b,77c0d96..9232c29
--- a/version.php
+++ b/version.php
@@@ -1,6 -1,19 +1,6 @@@
 -<?php
 -
 -// We only can count up. The 4. digit is only for the internal patchlevel to trigger DB upgrades
 -// between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel
 -// when updating major/minor version number.
 -$OC_Version=array(7, 0, 9, 1);
 -
 -// The human readable string
 -$OC_VersionString='7.0.9 RC1';
 -
 -// The ownCloud edition
 -$OC_Edition='';
 -
 -// The ownCloud channel
 -$OC_Channel='git';
 -
 -// The build number
 -$OC_Build='';
 -
 +<?php 
- $OC_Version = array(7,0,8,2);
- $OC_VersionString = '7.0.8';
++$OC_Version = array(7,0,9,1);
++$OC_VersionString = '7.0.9 RC1';
 +$OC_Edition = '';
- $OC_Channel = 'stable';
- $OC_Build = '2015-08-08T00:32:39+00:00 ebe5c0576443c93fe75478d6df725475dde3dec7';
++$OC_Channel = 'testing';
++$OC_Build = '2015-08-27T09:46:23+00:00 c67435189e8133173c09f52c771449072fcf1283';

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list