Merge branch 'master' of gitorious.org:owncloud/owncloud into ace-editor

This commit is contained in:
Tom Needham 2012-01-13 16:55:55 +00:00
commit ffd47ef4d7
451 changed files with 32729 additions and 7365 deletions

View File

@ -0,0 +1,2 @@
http://thenounproject.com/noun/calendar/#icon-No404
Creative Commons BY 3.0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 398 B

After

Width:  |  Height:  |  Size: 423 B

14
apps/calendar/img/icon.svg Executable file
View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="88px" height="100px" viewBox="0 0 88 100" enable-background="new 0 0 88 100" xml:space="preserve">
<path d="M0,32v59.906C0,96.377,3.582,100,8,100h72c4.418,0,8-3.623,8-8.094V32H0z M22,94H6V78h16V94z M22,74H6V58h16V74z M22,54H6
V38h16V54z M42,94H26V78h16V94z M42,74H26V58h16V74z M42,54H26V38h16V54z M62,94H46V78h16V94z M62,74H46V58h16V74z M62,54H46V38h16
V54z M82,94H66V78h16V94z M82,74H66V58h16V74z M82,54H66V38h16V54z"/>
<path d="M80,12H67V3c0-1.657-1.344-3-3-3c-1.657,0-3,1.343-3,3v9H27V3c0-1.657-1.344-3-3-3c-1.657,0-3,1.343-3,3v9H8
c-4.418,0-8,3.623-8,8.093V27v0v1h88v-1v0v-6.907C88,15.623,84.418,12,80,12z M24,26c-3.313,0-6-2.687-6-6
c0-2.219,1.209-4.152,3-5.19V20c0,1.657,1.343,3,3,3c1.656,0,3-1.343,3-3v-5.191c1.792,1.038,3,2.972,3,5.191
C30,23.313,27.314,26,24,26z M64,26c-3.313,0-6-2.687-6-6c0-2.219,1.209-4.152,3-5.19V20c0,1.657,1.343,3,3,3c1.656,0,3-1.343,3-3
v-5.191c1.792,1.038,3,2.972,3,5.191C70,23.313,67.314,26,64,26z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,16 +1,19 @@
function importdialog(directory, filename){ Calendar_Import={
$("body").append("<div id=\"importdialogholder\"></div>"); importdialog: function(filename){
$("#importdialogholder").load(OC.filePath('calendar', 'ajax', 'importdialog.php?filename=' + filename + '&path=' + directory)); var path = $('#dir').val();
} $('body').append('<div id="calendar_import"></div>');
$('#calendar_import').load(OC.filePath('calendar', 'ajax', 'importdialog.php'), {filename:filename, path:path}, Calendar_Import.initdialog());
$(document).ready(function(){ },
$('tr[data-file$=".ics"]').attr("data-mime", "text/calendar"); initdialog: function(){
$('tr[data-file$=".vcs"]').attr("data-mime", "text/calendar");
$('tr[data-file$=".ical"]').attr("data-mime", "text/calendar"); },
if(typeof FileActions!=='undefined'){ getimportstatus: function(){
FileActions.register('text/calendar','Import to Calendar','',function(filename){
importdialog($('#dir').val(),filename);
});
FileActions.setDefault('text/calendar','Import to Calendar');
} }
}
$(document).ready(function(){
if(typeof FileActions !== 'undefined'){
FileActions.register('text/calendar','importcal', '', Calendar_Import.importdialog);
FileActions.setDefault('text/calendar','importcal');
};
}); });

86
apps/calendar/l10n/ar.php Normal file
View File

@ -0,0 +1,86 @@
<?php $TRANSLATIONS = array(
"Timezone changed" => "تم تغيير المنطقة الزمنية",
"Invalid request" => "طلب غير مفهوم",
"Calendar" => "الجدول الزمني",
"Wrong calendar" => "جدول زمني خاطئ",
"Birthday" => "عيد ميلاد",
"Business" => "عمل",
"Call" => "إتصال",
"Clients" => "الزبائن",
"Deliverer" => "المرسل",
"Holidays" => "عطلة",
"Ideas" => "أفكار",
"Journey" => "رحلة",
"Jubilee" => "يوبيل",
"Meeting" => "إجتماع",
"Other" => "شيء آخر",
"Personal" => "شخصي",
"Projects" => "مشاريع",
"Questions" => "اسئلة",
"Work" => "العمل",
"Does not repeat" => "لا يعاد",
"Daily" => "يومي",
"Weekly" => "أسبوعي",
"Every Weekday" => "كل نهاية الأسبوع",
"Bi-Weekly" => "كل اسبوعين",
"Monthly" => "شهري",
"Yearly" => "سنوي",
"Not an array" => "ليس صفيف",
"All day" => "كل النهار",
"Missing fields" => "خانات خالية من المعلومات",
"Title" => "عنوان",
"From Date" => "من تاريخ",
"From Time" => "إلى تاريخ",
"To Date" => "إلى يوم",
"To Time" => "إلى وقت",
"The event ends before it starts" => "هذا الحدث ينتهي قبل أن يبدأ",
"There was a database fail" => "خطأ في قاعدة البيانات",
"Week" => "إسبوع",
"Month" => "شهر",
"List" => "قائمة",
"Today" => "اليوم",
"Calendars" => "الجداول الزمنية",
"There was a fail, while parsing the file." => "لم يتم قراءة الملف بنجاح.",
"Choose active calendars" => "إختر الجدول الزمني الرئيسي",
"New Calendar" => "جدول زمني جديد",
"CalDav Link" => "وصلة CalDav",
"Download" => "تحميل",
"Edit" => "تعديل",
"Delete" => "حذف",
"New calendar" => "جدول زمني جديد",
"Edit calendar" => "عادل الجدول الزمني",
"Displayname" => "الاسم المرئي",
"Active" => "حالي",
"Calendar color" => "لون الجدول الزمني",
"Save" => "إحفظ",
"Submit" => "أرسل",
"Cancel" => "إلغاء",
"Edit an event" => "عادل حدث",
"Export" => "تصدير المعلومات",
"Title of the Event" => "عنوان الحدث",
"Category" => "فئة",
"Select category" => "اختر الفئة",
"All Day Event" => "حدث في يوم كامل",
"From" => "من",
"To" => "إلى",
"Advanced options" => "خيارات متقدمة",
"Repeat" => "إعادة",
"Location" => "مكان",
"Location of the Event" => "مكان الحدث",
"Description" => "مواصفات",
"Description of the Event" => "وصف الحدث",
"Import Ical File" => "إدخال ملف Ical",
"How to import the new calendar?" => "كيفية إدخال ملف جدول زمني ؟",
"Import into an existing calendar" => "إدخال معلومات إلى جدول زمني حالي",
"Import into a new calendar" => "إدخال معلومات إلى جدول زمني جديد",
"Please choose the calendar" => "الرجاء إختر الجدول الزمني",
"Import" => "إدخال",
"Back" => "الرجوع",
"Please fill out the form" => "الرجاء إملء الخانات",
"Create a new event" => "إضافة حدث جديد",
"Timezone" => "المنطقة الزمنية",
"Timeformat" => "شكل الوقت",
"24h" => "24 ساعة",
"12h" => "12 ساعة",
"Calendar CalDAV syncing address:" => "عنوان لتحديث ال CalDAV الجدول الزمني"
);

136
apps/calendar/l10n/eo.php Normal file
View File

@ -0,0 +1,136 @@
<?php $TRANSLATIONS = array(
"New Timezone:" => "Nova horzono:",
"Timezone changed" => "La horozono estas ŝanĝita",
"Invalid request" => "Nevalida peto",
"Calendar" => "Kalendaro",
"Wrong calendar" => "Malĝusta kalendaro",
"Birthday" => "Naskiĝotago",
"Business" => "Negoco",
"Call" => "Voko",
"Clients" => "Klientoj",
"Deliverer" => "Livero",
"Holidays" => "Ferioj",
"Ideas" => "Ideoj",
"Journey" => "Vojaĝo",
"Jubilee" => "Jubileo",
"Meeting" => "Rendevuo",
"Other" => "Alia",
"Personal" => "Persona",
"Projects" => "Projektoj",
"Questions" => "Demandoj",
"Work" => "Laboro",
"Does not repeat" => "Ĉi tio ne ripetiĝas",
"Daily" => "Tage",
"Weekly" => "Semajne",
"Every Weekday" => "Tage",
"Bi-Weekly" => "Semajnduope",
"Monthly" => "Monate",
"Yearly" => "Jare",
"never" => "neniam",
"by occurrences" => "laŭ aperoj",
"by date" => "laŭ dato",
"by monthday" => "laŭ monattago",
"by weekday" => "laŭ semajntago",
"Monday" => "lundo",
"Tuesday" => "mardo",
"Wednesday" => "merkredo",
"Thursday" => "ĵaŭdo",
"Friday" => "vendredo",
"Saturday" => "sabato",
"Sunday" => "dimanĉo",
"events week of month" => "la monatsemajno de la okazaĵo",
"first" => "unua",
"second" => "dua",
"third" => "tria",
"fourth" => "kvara",
"fifth" => "kvina",
"last" => "lasta",
"January" => "Januaro",
"February" => "Februaro",
"March" => "Marto",
"April" => "Aprilo",
"May" => "Majo",
"June" => "Junio",
"July" => "Julio",
"August" => "Aŭgusto",
"September" => "Septembro",
"October" => "Oktobro",
"November" => "Novembro",
"December" => "Decembro",
"by events date" => "laŭ okazaĵdato",
"by yearday(s)" => "laŭ jartago(j)",
"by weeknumber(s)" => "laŭ semajnnumero(j)",
"by day and month" => "laŭ tago kaj monato",
"Not an array" => "Ĉi tio ne estas tabeltipa",
"Date" => "Dato",
"Cal." => "Kal.",
"All day" => "La tuta tago",
"Missing fields" => "Mankas iuj kampoj",
"Title" => "Titolo",
"From Date" => "ekde la dato",
"From Time" => "ekde la horo",
"To Date" => "ĝis la dato",
"To Time" => "ĝis la horo",
"The event ends before it starts" => "La okazaĵo finas antaŭ komenci",
"There was a database fail" => "Datumbaza malsukceso okazis",
"Week" => "Semajno",
"Month" => "Monato",
"List" => "Listo",
"Today" => "Hodiaŭ",
"Calendars" => "Kalendaroj",
"There was a fail, while parsing the file." => "Malsukceso okazis dum analizo de la dosiero.",
"Choose active calendars" => "Elektu aktivajn kalendarojn",
"New Calendar" => "Nova kalendaro",
"CalDav Link" => "CalDav-a ligilo",
"Download" => "Elŝuti",
"Edit" => "Redakti",
"Delete" => "Forigi",
"New calendar" => "Nova kalendaro",
"Edit calendar" => "Redakti la kalendaron",
"Displayname" => "Montrota nomo",
"Active" => "Aktiva",
"Calendar color" => "Kalendarokoloro",
"Save" => "Konservi",
"Submit" => "Sendi",
"Cancel" => "Nuligi",
"Edit an event" => "Redakti okazaĵon",
"Export" => "Elporti",
"Title of the Event" => "Okazaĵotitolo",
"Category" => "Kategorio",
"Select category" => "Elekti kategorion",
"All Day Event" => "La tuta tago",
"From" => "Ekde",
"To" => "Ĝis",
"Advanced options" => "Altnivela agordo",
"Repeat" => "Ripeti",
"Advanced" => "Altnivelo",
"Select weekdays" => "Elekti semajntagojn",
"Select days" => "Elekti tagojn",
"and the events day of year." => "kaj la jartago de la okazaĵo.",
"and the events day of month." => "kaj la monattago de la okazaĵo.",
"Select months" => "Elekti monatojn",
"Select weeks" => "Elekti semajnojn",
"and the events week of year." => "kaj la jarsemajno de la okazaĵo.",
"Interval" => "Intervalo",
"End" => "Fino",
"occurrences" => "aperoj",
"Location" => "Loko",
"Location of the Event" => "Okazaĵoloko",
"Description" => "Priskribo",
"Description of the Event" => "Okazaĵopriskribo",
"Import Ical File" => "Enporti Ical-dosieron",
"How to import the new calendar?" => "Kiel enporti la novan kalendaron?",
"Import into an existing calendar" => "Enporti en estantan kalendaron",
"Import into a new calendar" => "Enporti en novan kalendaron",
"Please choose the calendar" => "Bonvolu elekti kalendaron",
"Import" => "Enporti",
"Back" => "Antaŭeniri",
"Please fill out the form" => "Bonvolu plenigi la formularon",
"Create a new event" => "Krei okazaĵon",
"Timezone" => "Horozono",
"Check always for changes of the timezone" => "Ĉiam kontroli ĉu la horzono ŝanĝiĝis",
"Timeformat" => "Tempoformo",
"24h" => "24h",
"12h" => "12h",
"Calendar CalDAV syncing address:" => "Adreso de kalendarosinkronigo per CalDAV:"
);

86
apps/calendar/l10n/eu.php Normal file
View File

@ -0,0 +1,86 @@
<?php $TRANSLATIONS = array(
"Timezone changed" => "Ordu-zona aldatuta",
"Invalid request" => "Baligabeko eskaera",
"Calendar" => "Egutegia",
"Wrong calendar" => "Egutegi okerra",
"Birthday" => "Jaioteguna",
"Business" => "Negozioa",
"Call" => "Deia",
"Clients" => "Bezeroak",
"Deliverer" => "Banatzailea",
"Holidays" => "Oporrak",
"Ideas" => "Ideiak",
"Journey" => "Bidaia",
"Jubilee" => "Urteurrena",
"Meeting" => "Bilera",
"Other" => "Bestelakoa",
"Personal" => "Pertsonala",
"Projects" => "Proiektuak",
"Questions" => "Galderak",
"Work" => "Lana",
"Does not repeat" => "Ez da errepikatzen",
"Daily" => "Egunero",
"Weekly" => "Astero",
"Every Weekday" => "Asteko egun guztietan",
"Bi-Weekly" => "Bi-Astero",
"Monthly" => "Hilabetero",
"Yearly" => "Urtero",
"Not an array" => "Ez da bektore bat",
"All day" => "Egun guztia",
"Missing fields" => "Eremuak faltan",
"Title" => "Izenburua",
"From Date" => "Hasierako Data",
"From Time" => "Hasierako Ordua",
"To Date" => "Bukaerako Data",
"To Time" => "Bukaerako Ordua",
"The event ends before it starts" => "Gertaera hasi baino lehen bukatzen da",
"There was a database fail" => "Datu baseak huts egin du",
"Week" => "Astea",
"Month" => "Hilabetea",
"List" => "Zerrenda",
"Today" => "Gaur",
"Calendars" => "Egutegiak",
"There was a fail, while parsing the file." => "Huts bat egon da, fitxategia aztertzen zen bitartea.",
"Choose active calendars" => "Aukeratu egutegi aktiboak",
"New Calendar" => "Egutegi berria",
"CalDav Link" => "CalDav Lotura",
"Download" => "Deskargatu",
"Edit" => "Editatu",
"Delete" => "Ezabatu",
"New calendar" => "Egutegi berria",
"Edit calendar" => "Editatu egutegia",
"Displayname" => "Bistaratzeko izena",
"Active" => "Aktiboa",
"Calendar color" => "Egutegiaren kolorea",
"Save" => "Gorde",
"Submit" => "Bidali",
"Cancel" => "Ezeztatu",
"Edit an event" => "Editatu gertaera",
"Export" => "Exportatu",
"Title of the Event" => "Gertaeraren izenburua",
"Category" => "Kategoria",
"Select category" => "Aukeratu kategoria",
"All Day Event" => "Egun osoko gertaera",
"From" => "Hasiera",
"To" => "Bukaera",
"Advanced options" => "Aukera aurreratuak",
"Repeat" => "Errepikatu",
"Location" => "Kokalekua",
"Location of the Event" => "Gertaeraren kokalekua",
"Description" => "Deskribapena",
"Description of the Event" => "Gertaeraren deskribapena",
"Import Ical File" => "inportatu ical fitxategia",
"How to import the new calendar?" => "Nola inportatu egutegi berria?",
"Import into an existing calendar" => "inportatu existitzen den egutegi batera",
"Import into a new calendar" => "inportatu egutegi berri batera",
"Please choose the calendar" => "Mesedez aukeratu egutegia",
"Import" => "Importatu",
"Back" => "Atzera",
"Please fill out the form" => "Mesedez inprimakia bete",
"Create a new event" => "Sortu gertaera berria",
"Timezone" => "Ordu-zona",
"Timeformat" => "Ordu formatua",
"24h" => "24h",
"12h" => "12h",
"Calendar CalDAV syncing address:" => "Egutegiaren CalDAV sinkronizazio helbidea"
);

67
apps/calendar/l10n/he.php Normal file
View File

@ -0,0 +1,67 @@
<?php $TRANSLATIONS = array(
"Timezone changed" => "אזור זמן השתנה",
"Invalid request" => "בקשה לא חוקית",
"Calendar" => "ח שנה",
"Wrong calendar" => "לוח שנה לא נכון",
"Birthday" => "יום הולדת",
"Business" => "עסקים",
"Call" => "שיחה",
"Clients" => "לקוחות",
"Deliverer" => "משלוח",
"Holidays" => "חגים",
"Ideas" => "רעיונות",
"Journey" => "מסע",
"Jubilee" => "יובל",
"Meeting" => "פגישה",
"Other" => "אחר",
"Personal" => "אישי",
"Projects" => "פרוייקטים",
"Questions" => "שאלות",
"Work" => "עבודה",
"Does not repeat" => "ללא חזרה",
"Daily" => "יומי",
"Weekly" => "שבועי",
"Every Weekday" => "כל יום עבודה",
"Bi-Weekly" => "דו שבועי",
"Monthly" => "חודשי",
"Yearly" => "שנתי",
"Not an array" => "לא מערך",
"All day" => "היום",
"Title" => "כותרת",
"Week" => "שבוע",
"Month" => "חודש",
"List" => "רשימה",
"Today" => "היום",
"Calendars" => "לוחות שנה",
"There was a fail, while parsing the file." => "אירעה שגיאה בעת פענוח הקובץ.",
"Choose active calendars" => "בחר לוחות שנה פעילים",
"New Calendar" => "לוח שנה חדש",
"CalDav Link" => "קישור CalDav",
"Download" => "הורדה",
"Edit" => "עריכה",
"Delete" => "מחיקה",
"New calendar" => "לוח שנה חדש",
"Edit calendar" => "עריכת לוח שנה",
"Displayname" => "שם תצוגה",
"Active" => "פעיל",
"Calendar color" => "צבע לוח שנה",
"Save" => "שמירה",
"Submit" => "שליחה",
"Cancel" => "ביטול",
"Edit an event" => "עריכת אירוע",
"Export" => "יצוא",
"Title of the Event" => "כותרת האירוע",
"Category" => "קטגוריה",
"Select category" => "בחר קטגוריה",
"All Day Event" => "אירוע של כל היום",
"From" => "מאת",
"To" => "עבור",
"Repeat" => "חזרה",
"Location" => "מיקום",
"Location of the Event" => "מיקום האירוע",
"Description" => "תיאור",
"Description of the Event" => "תיאור האירוע",
"Import" => "יבוא",
"Create a new event" => "יצירת אירוע חדש",
"Timezone" => "אזור זמן"
);

86
apps/calendar/l10n/hr.php Normal file
View File

@ -0,0 +1,86 @@
<?php $TRANSLATIONS = array(
"Timezone changed" => "Vremenska zona promijenjena",
"Invalid request" => "Neispravan zahtjev",
"Calendar" => "Kalendar",
"Wrong calendar" => "Pogrešan kalendar",
"Birthday" => "Rođendan",
"Business" => "Poslovno",
"Call" => "Poziv",
"Clients" => "Klijenti",
"Deliverer" => "Dostavljač",
"Holidays" => "Odmori",
"Ideas" => "Ideje",
"Journey" => "Putovanje",
"Jubilee" => "Obljetnica",
"Meeting" => "Sastanak",
"Other" => "Ostalo",
"Personal" => "Osobno",
"Projects" => "Projekti",
"Questions" => "Pitanja",
"Work" => "Posao",
"Does not repeat" => "Ne ponavlja se",
"Daily" => "Dnevno",
"Weekly" => "Tjedno",
"Every Weekday" => "Svakog radnog dana",
"Bi-Weekly" => "Dvotjedno",
"Monthly" => "Mjesečno",
"Yearly" => "Godišnje",
"Not an array" => "Nije niz",
"All day" => "Cijeli dan",
"Missing fields" => "Nedostaju polja",
"Title" => "Naslov",
"From Date" => "Datum Od",
"From Time" => "Vrijeme Od",
"To Date" => "Datum Do",
"To Time" => "Vrijeme Do",
"The event ends before it starts" => "Događaj završava prije nego počinje",
"There was a database fail" => "Pogreška u bazi podataka",
"Week" => "Tjedan",
"Month" => "Mjesec",
"List" => "Lista",
"Today" => "Danas",
"Calendars" => "Kalendari",
"There was a fail, while parsing the file." => "Pogreška pri čitanju datoteke.",
"Choose active calendars" => "Odaberite aktive kalendare",
"New Calendar" => "Novi Kalendar",
"CalDav Link" => "CalDav Poveznica",
"Download" => "Spremi lokalno",
"Edit" => "Uredi",
"Delete" => "Briši",
"New calendar" => "Novi kalendar",
"Edit calendar" => "Uredi kalendar",
"Displayname" => "Naziv",
"Active" => "Aktivan",
"Calendar color" => "Boja kalendara",
"Save" => "Spremi",
"Submit" => "Potvrdi",
"Cancel" => "Odustani",
"Edit an event" => "Uredi događaj",
"Export" => "Izvoz",
"Title of the Event" => "Naslov Događaja",
"Category" => "Kategorija",
"Select category" => "Odabir kategorije",
"All Day Event" => "Cjelodnevni događaj",
"From" => "Od",
"To" => "Za",
"Advanced options" => "Napredne mogućnosti",
"Repeat" => "Ponavljanje",
"Location" => "Lokacija",
"Location of the Event" => "Lokacija Događaja",
"Description" => "Opis",
"Description of the Event" => "Opis događaja",
"Import Ical File" => "Uvoz Ical datoteke",
"How to import the new calendar?" => "Kako uvesti novi kalendar?",
"Import into an existing calendar" => "Uvoz u postojeći kalendar",
"Import into a new calendar" => "Uvoz u novi kalendar",
"Please choose the calendar" => "Odaberite kalendar",
"Import" => "Uvoz",
"Back" => "Natrag",
"Please fill out the form" => "Molimo popunite obrazac",
"Create a new event" => "Unesi novi događaj",
"Timezone" => "Vremenska zona",
"Timeformat" => "Format vremena",
"24h" => "24h",
"12h" => "12h",
"Calendar CalDAV syncing address:" => "Adresa za CalDAV sinkronizaciju kalendara"
);

View File

@ -0,0 +1,84 @@
<?php $TRANSLATIONS = array(
"Timezone changed" => "Időzóna megváltozott",
"Invalid request" => "Érvénytelen kérés",
"Calendar" => "Naptár",
"Wrong calendar" => "Hibás naptár",
"Birthday" => "Születésap",
"Business" => "Üzlet",
"Call" => "Hívás",
"Clients" => "Kliensek",
"Deliverer" => "Szállító",
"Holidays" => "Ünnepek",
"Ideas" => "Ötletek",
"Journey" => "Utazás",
"Jubilee" => "Évforduló",
"Meeting" => "Találkozó",
"Other" => "Egyéb",
"Personal" => "Személyes",
"Projects" => "Projektek",
"Questions" => "Kérdések",
"Work" => "Munka",
"Does not repeat" => "Nem ismétlődik",
"Daily" => "Napi",
"Weekly" => "Heti",
"Every Weekday" => "Minden hétköznap",
"Bi-Weekly" => "Kéthetente",
"Monthly" => "Havi",
"Yearly" => "Évi",
"Not an array" => "Nem egy tömb",
"All day" => "Egész nap",
"Missing fields" => "Hiányzó mezők",
"Title" => "Cím",
"From Date" => "Napjától",
"From Time" => "Időtől",
"To Date" => "Napig",
"To Time" => "Ideig",
"The event ends before it starts" => "Az esemény véget ér a kezdés előtt.",
"There was a database fail" => "Adatbázis hiba történt",
"Week" => "Hét",
"Month" => "Hónap",
"List" => "Lista",
"Today" => "Ma",
"Calendars" => "Naptárak",
"There was a fail, while parsing the file." => "Probléma volt a fájl elemzése közben.",
"Choose active calendars" => "Aktív naptár kiválasztása",
"New Calendar" => "Új naptár",
"CalDav Link" => "CalDAV link",
"Download" => "Letöltés",
"Edit" => "Szerkesztés",
"Delete" => "Törlés",
"New calendar" => "Új naptár",
"Edit calendar" => "Naptár szerkesztése",
"Displayname" => "Megjelenítési név",
"Active" => "Aktív",
"Calendar color" => "Naptár szín",
"Save" => "Mentés",
"Submit" => "Beküldés",
"Cancel" => "Mégse",
"Edit an event" => "Esemény szerkesztése",
"Export" => "Export",
"Title of the Event" => "Az esemény címe",
"Category" => "Kategória",
"Select category" => "Kategória kiválasztása",
"All Day Event" => "Egész napos esemény",
"Advanced options" => "Haladó beállítások",
"Repeat" => "Ismétlés",
"Location" => "Hely",
"Location of the Event" => "Az esemény helyszíne",
"Description" => "Leírás",
"Description of the Event" => "Az esemény leírása",
"Import Ical File" => "Ical fájl importálása",
"How to import the new calendar?" => "Hogyan legyen importálva az új naptár?",
"Import into an existing calendar" => "Létező naptárba importálás",
"Import into a new calendar" => "Új naptárba importálás",
"Please choose the calendar" => "Válassz naptárat",
"Import" => "Importálás",
"Back" => "Vissza",
"Please fill out the form" => "Töltsd ki az űrlapot",
"Create a new event" => "Új esemény létrehozása",
"Timezone" => "Időzóna",
"Timeformat" => "Időformátum",
"24h" => "24h",
"12h" => "12h",
"Calendar CalDAV syncing address:" => "Naptár CalDAV szinkronizálási cím:"
);

11
apps/calendar/l10n/hy.php Normal file
View File

@ -0,0 +1,11 @@
<?php $TRANSLATIONS = array(
"Calendar" => "Օրացույց",
"Other" => "Այլ",
"Month" => "Ամիս",
"Today" => "Այսօր",
"Download" => "Բեռնել",
"Delete" => "Ջնջել",
"Save" => "Պահպանել",
"Submit" => "Հաստատել",
"Description" => "Նկարագրություն"
);

27
apps/calendar/l10n/ia.php Normal file
View File

@ -0,0 +1,27 @@
<?php $TRANSLATIONS = array(
"Calendar" => "Calendario",
"Projects" => "Projectos",
"Work" => "Travalio",
"All day" => "Omne die",
"Title" => "Titulo",
"Week" => "Septimana",
"Month" => "Mense",
"List" => "Lista",
"Today" => "Hodie",
"Calendars" => "Calendarios",
"Choose active calendars" => "Selectionar calendarios active",
"New Calendar" => "Nove calendario",
"Download" => "Discarga",
"Edit" => "Modificar",
"Delete" => "Deler",
"Edit calendar" => "Modificar calendario",
"Active" => "Active",
"Calendar color" => "Color de calendario",
"Save" => "Salveguardar",
"Submit" => "Inviar",
"Cancel" => "Cancellar",
"Select category" => "Selectionar categoria",
"From" => "Ab",
"To" => "A",
"Description" => "Description"
);

View File

@ -0,0 +1,86 @@
<?php $TRANSLATIONS = array(
"Timezone changed" => "タイムゾーンが変更されました",
"Invalid request" => "無効なリクエストです",
"Calendar" => "カレンダー",
"Wrong calendar" => "誤ったカレンダーです",
"Birthday" => "誕生日",
"Business" => "ビジネス",
"Call" => "電話をかける",
"Clients" => "顧客",
"Deliverer" => "運送会社",
"Holidays" => "休日",
"Ideas" => "アイデア",
"Journey" => "旅行",
"Jubilee" => "記念祭",
"Meeting" => "ミーティング",
"Other" => "その他",
"Personal" => "個人",
"Projects" => "プロジェクト",
"Questions" => "質問事項",
"Work" => "仕事",
"Does not repeat" => "繰り返さない",
"Daily" => "毎日",
"Weekly" => "毎週",
"Every Weekday" => "毎平日",
"Bi-Weekly" => "2週間ごと",
"Monthly" => "毎月",
"Yearly" => "毎年",
"Not an array" => "配列ではありません",
"All day" => "終日",
"Missing fields" => "項目がありません",
"Title" => "タイトル",
"From Date" => "開始日",
"From Time" => "開始時間",
"To Date" => "終了日",
"To Time" => "終了時間",
"The event ends before it starts" => "イベント終了時間が開始時間より先です",
"There was a database fail" => "データベースフェイルがありました",
"Week" => "",
"Month" => "",
"List" => "リスト",
"Today" => "今日",
"Calendars" => "カレンダー",
"There was a fail, while parsing the file." => "ファイルを構文解析する際に失敗しました",
"Choose active calendars" => "アクティブなカレンダーを選択してください",
"New Calendar" => "新しくカレンダーを作成する",
"CalDav Link" => "CalDavへのリンク",
"Download" => "ダウンロード",
"Edit" => "編集",
"Delete" => "削除",
"New calendar" => "新しくカレンダーを作成する",
"Edit calendar" => "カレンダーを編集",
"Displayname" => "表示名",
"Active" => "アクティブ",
"Calendar color" => "カレンダーの色",
"Save" => "保存",
"Submit" => "完了",
"Cancel" => "キャンセル",
"Edit an event" => "イベントを編集",
"Export" => "エクスポート",
"Title of the Event" => "イベントのタイトル",
"Category" => "カテゴリー",
"Select category" => "カテゴリーを選択してください",
"All Day Event" => "終日イベント",
"From" => "開始",
"To" => "終了",
"Advanced options" => "詳細設定",
"Repeat" => "繰り返す",
"Location" => "場所",
"Location of the Event" => "イベントの場所",
"Description" => "メモ",
"Description of the Event" => "イベントのメモ",
"Import Ical File" => "iCalファイルのインポート",
"How to import the new calendar?" => "新しいカレンダーのインポート方法は?",
"Import into an existing calendar" => "既存カレンダーにインポートします",
"Import into a new calendar" => "新しいカレンダーにインポートします",
"Please choose the calendar" => "カレンダーを選択してください",
"Import" => "インポート",
"Back" => "戻る",
"Please fill out the form" => "フォームに入力してください",
"Create a new event" => "新しいイベントを作成する",
"Timezone" => "タイムゾーン",
"Timeformat" => "時刻のフォーマット",
"24h" => "24時間制",
"12h" => "12時間制",
"Calendar CalDAV syncing address:" => "カレンダーのCalDAVシンクアドレス"
);

View File

@ -0,0 +1,77 @@
<?php $TRANSLATIONS = array(
"Timezone changed" => "Laiko zona pakeista",
"Invalid request" => "Klaidinga užklausa",
"Calendar" => "Kalendorius",
"Wrong calendar" => "Ne tas kalendorius",
"Birthday" => "Gimtadienis",
"Business" => "Verslas",
"Call" => "Skambučiai",
"Clients" => "Klientai",
"Holidays" => "Išeiginės",
"Ideas" => "Idėjos",
"Journey" => "Kelionė",
"Jubilee" => "Jubiliejus",
"Meeting" => "Susitikimas",
"Does not repeat" => "Nekartoti",
"Daily" => "Kasdien",
"Weekly" => "Kiekvieną savaitę",
"Every Weekday" => "Kiekvieną savaitės dieną",
"Bi-Weekly" => "Kas dvi savaites",
"Monthly" => "Kiekvieną mėnesį",
"Yearly" => "Kiekvienais metais",
"Not an array" => "Ne masyvas",
"All day" => "Visa diena",
"Missing fields" => "Trūkstami laukai",
"Title" => "Pavadinimas",
"To Date" => "Iki datos",
"To Time" => "Iki laiko",
"The event ends before it starts" => "Įvykis baigiasi anksčiau nei jis prasideda",
"There was a database fail" => "Įvyko duomenų bazės klaida",
"Week" => "Savaitė",
"Month" => "Mėnuo",
"List" => "Sąrašas",
"Today" => "Šiandien",
"Calendars" => "Kalendoriai",
"There was a fail, while parsing the file." => "Apdorojant failą įvyko klaida.",
"Choose active calendars" => "Pasirinkite naudojamus kalendorius",
"New Calendar" => "Naujas kalendorius",
"CalDav Link" => "CalDav adresas",
"Download" => "Atsisiųsti",
"Edit" => "Keisti",
"Delete" => "Trinti",
"New calendar" => "Naujas kalendorius",
"Edit calendar" => "Taisyti kalendorių",
"Displayname" => "Pavadinimas",
"Active" => "Naudojamas",
"Save" => "Išsaugoti",
"Submit" => "Išsaugoti",
"Cancel" => "Atšaukti",
"Edit an event" => "Taisyti įvykį",
"Export" => "Eksportuoti",
"Title of the Event" => "Įvykio pavadinimas",
"Category" => "Kategorija",
"Select category" => "Pasirinkite kategoriją",
"All Day Event" => "Visos dienos įvykis",
"From" => "Nuo",
"To" => "Iki",
"Advanced options" => "Papildomi nustatymai",
"Repeat" => "Kartoti",
"Location" => "Vieta",
"Location of the Event" => "Įvykio vieta",
"Description" => "Aprašymas",
"Description of the Event" => "Įvykio aprašymas",
"Import Ical File" => "Importuoti Ical failą",
"How to import the new calendar?" => "Kaip importuoti naują kalendorių?",
"Import into an existing calendar" => "Importuoti į esantį katalogą",
"Import into a new calendar" => "Importuoti į naują kalendorių",
"Please choose the calendar" => "Pasirinkite kalendorių",
"Import" => "Importuoti",
"Back" => "Atgal",
"Please fill out the form" => "Užpildykite formą",
"Create a new event" => "Sukurti naują įvykį",
"Timezone" => "Laiko juosta",
"Timeformat" => "Laiko formatas",
"24h" => "24val",
"12h" => "12val",
"Calendar CalDAV syncing address:" => "CalDAV kalendoriaus synchronizavimo adresas:"
);

View File

@ -2,7 +2,7 @@
"Authentication error" => "Foute aanvraag", "Authentication error" => "Foute aanvraag",
"Timezone changed" => "U kunt maar een venster tegelijk openen.", "Timezone changed" => "U kunt maar een venster tegelijk openen.",
"Invalid request" => "Ongeldige aanvraag", "Invalid request" => "Ongeldige aanvraag",
"Calendar" => "Weergavenaam", "Calendar" => "Kalender",
"Does not repeat" => "Wordt niet herhaald", "Does not repeat" => "Wordt niet herhaald",
"Daily" => "Dagelijks", "Daily" => "Dagelijks",
"Weekly" => "Wekelijks", "Weekly" => "Wekelijks",

View File

@ -0,0 +1,65 @@
<?php $TRANSLATIONS = array(
"Timezone changed" => "Endra tidssone",
"Invalid request" => "Ugyldig førespurnad",
"Calendar" => "Kalender",
"Wrong calendar" => "Feil kalender",
"Birthday" => "Bursdag",
"Business" => "Forretning",
"Call" => "Telefonsamtale",
"Clients" => "Klientar",
"Deliverer" => "Forsending",
"Holidays" => "Høgtid",
"Ideas" => "Idear",
"Journey" => "Reise",
"Jubilee" => "Jubileum",
"Meeting" => "Møte",
"Other" => "Anna",
"Personal" => "Personleg",
"Projects" => "Prosjekt",
"Questions" => "Spørsmål",
"Work" => "Arbeid",
"Does not repeat" => "Ikkje gjenta",
"Daily" => "Kvar dag",
"Weekly" => "Kvar veke",
"Every Weekday" => "Kvar vekedag",
"Bi-Weekly" => "Annakvar veke",
"Monthly" => "Kvar månad",
"Yearly" => "Kvart år",
"Not an array" => "Ikkje ein matrise",
"All day" => "Heile dagen",
"Title" => "Tittel",
"Week" => "Veke",
"Month" => "Månad",
"List" => "Liste",
"Today" => "I dag",
"Calendars" => "Kalendarar",
"There was a fail, while parsing the file." => "Feil ved tolking av fila.",
"Choose active calendars" => "Vel aktive kalendarar",
"New Calendar" => "Ny kalender",
"CalDav Link" => "CalDav-lenkje",
"Download" => "Last ned",
"Edit" => "Endra",
"Delete" => "Slett",
"New calendar" => "Ny kalender",
"Edit calendar" => "Endra kalendarar",
"Displayname" => "Visingsnamn",
"Active" => "Aktiv",
"Calendar color" => "Kalenderfarge",
"Save" => "Lagra",
"Submit" => "Lagra",
"Cancel" => "Avbryt",
"Edit an event" => "Endra ein hending",
"Title of the Event" => "Tittel på hendinga",
"Category" => "Kategori",
"Select category" => "Vel kategori",
"All Day Event" => "Heildagshending",
"From" => "Frå",
"To" => "Til",
"Repeat" => "Gjenta",
"Location" => "Stad",
"Location of the Event" => "Stad for hendinga",
"Description" => "Skildring",
"Description of the Event" => "Skildring av hendinga",
"Create a new event" => "Opprett ei ny hending",
"Timezone" => "Tidssone"
);

View File

@ -0,0 +1,86 @@
<?php $TRANSLATIONS = array(
"Timezone changed" => "Časové pásmo zmenené",
"Invalid request" => "Neplatná požiadavka",
"Calendar" => "Kalendár",
"Wrong calendar" => "Zlý kalendár",
"Birthday" => "Narodeniny",
"Business" => "Podnikanie",
"Call" => "Hovor",
"Clients" => "Klienti",
"Deliverer" => "Doručovateľ",
"Holidays" => "Prázdniny",
"Ideas" => "Nápady",
"Journey" => "Cesta",
"Jubilee" => "Jubileá",
"Meeting" => "Stretnutia",
"Other" => "Ostatné",
"Personal" => "Osobné",
"Projects" => "Projekty",
"Questions" => "Otázky",
"Work" => "Práca",
"Does not repeat" => "Neopakovať",
"Daily" => "Denne",
"Weekly" => "Týždenne",
"Every Weekday" => "Každý výkend",
"Bi-Weekly" => "Každý druhý týždeň",
"Monthly" => "Mesačne",
"Yearly" => "Ročne",
"Not an array" => "Nie je pole",
"All day" => "Celý deň",
"Missing fields" => "Nevyplnené položky",
"Title" => "Nadpis",
"From Date" => "Od Dátumu",
"From Time" => "Od Času",
"To Date" => "Do Dátumu",
"To Time" => "Do Času",
"The event ends before it starts" => "Udalosť končí ešte pred tým než začne",
"There was a database fail" => "Nastala chyba databázy",
"Week" => "Týždeň",
"Month" => "Mesiac",
"List" => "Zoznam",
"Today" => "Dnes",
"Calendars" => "Kalendáre",
"There was a fail, while parsing the file." => "Nastala chyba počas parsovania súboru.",
"Choose active calendars" => "Zvoľte aktívne kalendáre",
"New Calendar" => "Nový kalendár",
"CalDav Link" => "CalDav odkaz",
"Download" => "Stiahnuť",
"Edit" => "Upraviť",
"Delete" => "Odstrániť",
"New calendar" => "Nový kalendár",
"Edit calendar" => "Upraviť kalendár",
"Displayname" => "Zobrazené meno",
"Active" => "Aktívne",
"Calendar color" => "Farba kalendáru",
"Save" => "Uložiť",
"Submit" => "Odoslať",
"Cancel" => "Zrušiť",
"Edit an event" => "Upraviť udalosť",
"Export" => "Exportovať",
"Title of the Event" => "Nadpis Udalosti",
"Category" => "Kategória",
"Select category" => "Vybrať kategóriu",
"All Day Event" => "Celodenná udalosť",
"From" => "Od",
"To" => "Do",
"Advanced options" => "Pokročilé možnosti",
"Repeat" => "Opakovať",
"Location" => "Poloha",
"Location of the Event" => "Poloha Udalosti",
"Description" => "Popis",
"Description of the Event" => "Popis Udalosti",
"Import Ical File" => "Importovať Ical súbor",
"How to import the new calendar?" => "Ako importovať nový kalendár?",
"Import into an existing calendar" => "Importovať do existujúceho kalendára",
"Import into a new calendar" => "Importovať do nového kalendára",
"Please choose the calendar" => "Prosím zvoľte kalendár",
"Import" => "Importovať",
"Back" => "Späť",
"Please fill out the form" => "Prosím vyplňte formulár",
"Create a new event" => "Vytvoriť udalosť",
"Timezone" => "Časová zóna",
"Timeformat" => "Formát času",
"24h" => "24h",
"12h" => "12h",
"Calendar CalDAV syncing address:" => "Synchronizačná adresa kalendára CalDAV: "
);

86
apps/calendar/l10n/sl.php Normal file
View File

@ -0,0 +1,86 @@
<?php $TRANSLATIONS = array(
"Timezone changed" => "Časovna Cona spremenjena",
"Invalid request" => "Neveljavna zahteva",
"Calendar" => "Kolendar",
"Wrong calendar" => "Napačen Kolendar",
"Birthday" => "Rojstni Dan",
"Business" => "Poslovno",
"Call" => "Pokliči",
"Clients" => "Stranke",
"Deliverer" => "Dobavitelj",
"Holidays" => "Dopust",
"Ideas" => "Ideje",
"Journey" => "Potovanje",
"Jubilee" => "Obletnica",
"Meeting" => "Sestanek",
"Other" => "Ostalo",
"Personal" => "Osebno",
"Projects" => "Projekt",
"Questions" => "Vprašanja",
"Work" => "Delo",
"Does not repeat" => "Se ne ponavlja",
"Daily" => "Dnevno",
"Weekly" => "Tedensko",
"Every Weekday" => "Vsak dan v tednu",
"Bi-Weekly" => "Dvakrat Tedensko",
"Monthly" => "Mesečno",
"Yearly" => "Letno",
"Not an array" => "Not an array",
"All day" => "Cel dan",
"Missing fields" => "Mankajoča polja",
"Title" => "Naslov",
"From Date" => "od Datum",
"From Time" => "od Čas",
"To Date" => "do Datum",
"To Time" => "do Čas",
"The event ends before it starts" => "Dogodek se konča preden se začne",
"There was a database fail" => "Napaka v podatkovni bazi. Kontaktirajte Administratorja",
"Week" => "Teden",
"Month" => "Mesec",
"List" => "Seznam",
"Today" => "Danes",
"Calendars" => "Kolendarji",
"There was a fail, while parsing the file." => "Pri razčlenjevanju datoteke je prišlo do napake.",
"Choose active calendars" => "Izberi aktivni Kolendar",
"New Calendar" => "Nov Kolendar",
"CalDav Link" => "CalDav Povezava",
"Download" => "Naloži dol",
"Edit" => "Uredi",
"Delete" => "Izbriši",
"New calendar" => "Nov Kolendar",
"Edit calendar" => "Uredi Kolendar",
"Displayname" => "Prikazano Ime",
"Active" => "Aktivno",
"Calendar color" => "Barva Kolendarja",
"Save" => "Shrani",
"Submit" => "Potrdi",
"Cancel" => "Prekliči",
"Edit an event" => "Uredi Dogodek",
"Export" => "Izvozi",
"Title of the Event" => "Naslov",
"Category" => "Kategorija",
"Select category" => "Izberi Kategorijo",
"All Day Event" => "Celodnevni Dogodek",
"From" => "Od",
"To" => "Za",
"Advanced options" => "Napredne Možnosti",
"Repeat" => "Ponovi",
"Location" => "Lokacija",
"Location of the Event" => "Lokacija dogodka",
"Description" => "Opis",
"Description of the Event" => "Opis Dogodka",
"Import Ical File" => "Uvozi iCal datoteko",
"How to import the new calendar?" => "Koko uvozim nov kolendar?",
"Import into an existing calendar" => "Uvozi v obstoječi kolendar",
"Import into a new calendar" => "Uvozi v nov Kolendar",
"Please choose the calendar" => "Izberi kolendar",
"Import" => "Uvozi",
"Back" => "Nazaj",
"Please fill out the form" => "Prosim izpolnite obrazec",
"Create a new event" => "Ustvari nov dogodek",
"Timezone" => "Časovna Cona",
"Timeformat" => "Časovni format",
"24h" => "24ur",
"12h" => "12ur",
"Calendar CalDAV syncing address:" => "Kolendarjev CalDAV sinhronizacijski naslov"
);

86
apps/calendar/l10n/tr.php Normal file
View File

@ -0,0 +1,86 @@
<?php $TRANSLATIONS = array(
"Timezone changed" => "Zaman dilimi değiştirildi",
"Invalid request" => "Geçersiz istek",
"Calendar" => "Takvim",
"Wrong calendar" => "Yanlış takvim",
"Birthday" => "Doğum günü",
"Business" => "İş",
"Call" => "Arama",
"Clients" => "Müşteriler",
"Deliverer" => "Teslimatçı",
"Holidays" => "Tatil günleri",
"Ideas" => "Fikirler",
"Journey" => "Seyahat",
"Jubilee" => "Yıl dönümü",
"Meeting" => "Toplantı",
"Other" => "Diğer",
"Personal" => "Kişisel",
"Projects" => "Projeler",
"Questions" => "Sorular",
"Work" => "İş",
"Does not repeat" => "Tekrar etmiyor",
"Daily" => "Günlük",
"Weekly" => "Haftalı",
"Every Weekday" => "Haftaiçi Her gün",
"Bi-Weekly" => "İki haftada bir",
"Monthly" => "Aylık",
"Yearly" => "Yıllı",
"Not an array" => "Bir dizi değil",
"All day" => "Tüm gün",
"Missing fields" => "Eksik alanlar",
"Title" => "Başlık",
"From Date" => "Bu Tarihten",
"From Time" => "Bu Saatten",
"To Date" => "Bu Tarihe",
"To Time" => "Bu Saate",
"The event ends before it starts" => "Olay başlamadan önce bitiyor",
"There was a database fail" => "Bir veritabanı başarısızlığı oluştu",
"Week" => "Hafta",
"Month" => "Ay",
"List" => "Liste",
"Today" => "Bugün",
"Calendars" => "Takvimler",
"There was a fail, while parsing the file." => "Dosya okunurken başarısızlık oldu.",
"Choose active calendars" => "Aktif takvimleri seçin",
"New Calendar" => "Yeni Takvim",
"CalDav Link" => "CalDav Bağlantısı",
"Download" => "İndir",
"Edit" => "Düzenle",
"Delete" => "Sil",
"New calendar" => "Yeni takvim",
"Edit calendar" => "Takvimi düzenle",
"Displayname" => "Görünümadı",
"Active" => "Aktif",
"Calendar color" => "Takvim rengi",
"Save" => "Kaydet",
"Submit" => "Gönder",
"Cancel" => "İptal",
"Edit an event" => "Bir olay düzenle",
"Export" => "Dışa aktar",
"Title of the Event" => "Olayın Başlığı",
"Category" => "Kategori",
"Select category" => "Kategori seçin",
"All Day Event" => "Tüm Gün Olay",
"From" => "Kimden",
"To" => "Kime",
"Advanced options" => "Gelişmiş opsiyonlar",
"Repeat" => "Tekrar",
"Location" => "Konum",
"Location of the Event" => "Olayın Konumu",
"Description" => "ıklama",
"Description of the Event" => "Olayın Açıklaması",
"Import Ical File" => "Ical Dosyası Al",
"How to import the new calendar?" => "Yeni takvim nasıl alınsın?",
"Import into an existing calendar" => "Mevcut bir takvimin içine al",
"Import into a new calendar" => "Yeni bir takvim içine al",
"Please choose the calendar" => "Lütfen takvimi seçin",
"Import" => "İçe Al",
"Back" => "Geri",
"Please fill out the form" => "Lütfen formu doldurun",
"Create a new event" => "Yeni olay oluştur",
"Timezone" => "Zaman dilimi",
"Timeformat" => "Saat biçimi",
"24h" => "24s",
"12h" => "12s",
"Calendar CalDAV syncing address:" => "CalDAV Takvim senkron adresi:"
);

View File

@ -151,11 +151,11 @@ class OC_Calendar_Calendar{
$calendar = self::find($id); $calendar = self::find($id);
// Keep old stuff // Keep old stuff
if(is_null($name)) $name = $calendar['name']; if(is_null($name)) $name = $calendar['displayname'];
if(is_null($components)) $components = $calendar['components']; if(is_null($components)) $components = $calendar['components'];
if(is_null($timezone)) $timezone = $calendar['timezone']; if(is_null($timezone)) $timezone = $calendar['timezone'];
if(is_null($order)) $order = $calendar['calendarorder']; if(is_null($order)) $order = $calendar['calendarorder'];
if(is_null($color)) $color = $calendar['color']; if(is_null($color)) $color = $calendar['calendarcolor'];
$stmt = OC_DB::prepare( 'UPDATE *PREFIX*calendar_calendars SET displayname=?,calendarorder=?,calendarcolor=?,timezone=?,components=?,ctag=ctag+1 WHERE id=?' ); $stmt = OC_DB::prepare( 'UPDATE *PREFIX*calendar_calendars SET displayname=?,calendarorder=?,calendarcolor=?,timezone=?,components=?,ctag=ctag+1 WHERE id=?' );
$result = $stmt->execute(array($name,$order,$color,$timezone,$components,$id)); $result = $stmt->execute(array($name,$order,$color,$timezone,$components,$id));

View File

@ -10,10 +10,17 @@
require_once ("../../../lib/base.php"); require_once ("../../../lib/base.php");
OC_JSON::checkLoggedIn(); OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('contacts'); OC_JSON::checkAppEnabled('contacts');
$l=new OC_L10N('contacts');
$bookid = $_POST['bookid']; $bookid = $_POST['bookid'];
OC_Contacts_Addressbook::setActive($bookid, $_POST['active']); if(!OC_Contacts_Addressbook::setActive($bookid, $_POST['active'])) {
OC_JSON::error(array('data' => array('message' => $l->t('Error (de)activating addressbook.'))));
OC_Log::write('contacts','ajax/activation.php: Error activating addressbook: '.$bookid, OC_Log::ERROR);
exit();
}
$book = OC_Contacts_App::getAddressbook($bookid); $book = OC_Contacts_App::getAddressbook($bookid);
/* is there an OC_JSON::error() ? */ /* is there an OC_JSON::error() ? */
OC_JSON::success(array( OC_JSON::success(array(
'active' => OC_Contacts_Addressbook::isActive($bookid), 'active' => OC_Contacts_Addressbook::isActive($bookid),

View File

@ -26,6 +26,7 @@ require_once('../../../lib/base.php');
// Check if we are a user // Check if we are a user
OC_JSON::checkLoggedIn(); OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('contacts'); OC_JSON::checkAppEnabled('contacts');
$l=new OC_L10N('contacts');
$aid = $_POST['id']; $aid = $_POST['id'];
$addressbook = OC_Contacts_App::getAddressbook( $aid ); $addressbook = OC_Contacts_App::getAddressbook( $aid );
@ -54,12 +55,31 @@ foreach( $add as $propname){
$value = $values[$propname]; $value = $values[$propname];
if( isset( $parameters[$propname] ) && count( $parameters[$propname] )){ if( isset( $parameters[$propname] ) && count( $parameters[$propname] )){
$prop_parameters = $parameters[$propname]; $prop_parameters = $parameters[$propname];
} } else {
else{
$prop_parameters = array(); $prop_parameters = array();
} }
$vcard->addProperty($propname, $value, $prop_parameters); $vcard->addProperty($propname, $value); //, $prop_parameters);
$line = count($vcard->children) - 1;
foreach ($prop_parameters as $key=>$element) {
if(is_array($element) && strtoupper($key) == 'TYPE') {
// FIXME: Maybe this doesn't only apply for TYPE?
// And it probably shouldn't be done here anyways :-/
foreach($element as $e){
if($e != '' && !is_null($e)){
$vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key,$e);
}
}
} else {
$vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key,$element);
}
}
} }
$id = OC_Contacts_VCard::add($aid,$vcard->serialize()); $id = OC_Contacts_VCard::add($aid,$vcard->serialize());
if(!$id) {
OC_JSON::error(array('data' => array('message' => $l->t('There was an error adding the contact.'))));
OC_Log::write('contacts','ajax/addcard.php: Recieved non-positive ID on adding card: '.$name, OC_Log::ERROR);
exit();
}
// NOTE: Why is this in OC_Contacts_App?
OC_Contacts_App::renderDetails($id, $vcard); OC_Contacts_App::renderDetails($id, $vcard);

View File

@ -26,13 +26,33 @@ require_once('../../../lib/base.php');
// Check if we are a user // Check if we are a user
OC_JSON::checkLoggedIn(); OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('contacts'); OC_JSON::checkAppEnabled('contacts');
$l=new OC_L10N('contacts');
$id = $_POST['id']; $id = $_POST['id'];
$vcard = OC_Contacts_App::getContactVCard( $id ); $vcard = OC_Contacts_App::getContactVCard( $id );
$name = $_POST['name']; $name = $_POST['name'];
$value = $_POST['value']; $value = $_POST['value'];
$parameters = isset($_POST['parameters'])?$_POST['parameters']:array(); if(!is_array($value)){
$value = trim($value);
if(!$value && in_array($name, array('TEL', 'EMAIL', 'ORG'))) {
OC_JSON::error(array('data' => array('message' => $l->t('Cannot add empty property.'))));
exit();
}
} elseif($name === 'ADR') { // only add if non-empty elements.
$empty = true;
foreach($value as $part) {
if(trim($part) != '') {
$empty = false;
break;
}
}
if($empty) {
OC_JSON::error(array('data' => array('message' => $l->t('At least one of the address fields has to be filled out.'))));
exit();
}
}
$parameters = isset($_POST['parameters']) ? $_POST['parameters'] : array();
$property = $vcard->addProperty($name, $value); //, $parameters); $property = $vcard->addProperty($name, $value); //, $parameters);
@ -41,17 +61,23 @@ $line = count($vcard->children) - 1;
// Apparently Sabre_VObject_Parameter doesn't do well with multiple values or I don't know how to do it. Tanghus. // Apparently Sabre_VObject_Parameter doesn't do well with multiple values or I don't know how to do it. Tanghus.
foreach ($parameters as $key=>$element) { foreach ($parameters as $key=>$element) {
if(is_array($element) && strtoupper($key) == 'TYPE') { if(is_array($element) && strtoupper($key) == 'TYPE') {
// FIXME: Maybe this doesn't only apply for TYPE? // NOTE: Maybe this doesn't only apply for TYPE?
// And it probably shouldn't be done here anyways :-/ // And it probably shouldn't be done here anyways :-/
foreach($element as $e){ foreach($element as $e){
if($e != '' && !is_null($e)){ if($e != '' && !is_null($e)){
$vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key,$e); $vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key,$e);
} }
} }
} else {
$vcard->children[$line]->parameters[] = new Sabre_VObject_Parameter($key,$element);
} }
} }
OC_Contacts_VCard::edit($id,$vcard->serialize()); if(!OC_Contacts_VCard::edit($id,$vcard->serialize())) {
OC_JSON::error(array('data' => array('message' => $l->t('Error adding contact property.'))));
OC_Log::write('contacts','ajax/addproperty.php: Error updating contact property: '.$name, OC_Log::ERROR);
exit();
}
$adr_types = OC_Contacts_App::getTypesOfProperty('ADR'); $adr_types = OC_Contacts_App::getTypesOfProperty('ADR');
$phone_types = OC_Contacts_App::getTypesOfProperty('TEL'); $phone_types = OC_Contacts_App::getTypesOfProperty('TEL');

View File

@ -1,6 +1,6 @@
<?php <?php
/** /**
* Copyright (c) 2011 Thomas Tanghus <thomas@tanghus.net> * Copyright (c) 2011-2012 Thomas Tanghus <thomas@tanghus.net>
* Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl> * Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl>
* This file is licensed under the Affero General Public License version 3 or * This file is licensed under the Affero General Public License version 3 or
* later. * later.
@ -16,7 +16,17 @@ OC_JSON::checkAppEnabled('contacts');
$userid = OC_User::getUser(); $userid = OC_User::getUser();
$bookid = OC_Contacts_Addressbook::add($userid, $_POST['name'], null); $bookid = OC_Contacts_Addressbook::add($userid, $_POST['name'], null);
OC_Contacts_Addressbook::setActive($bookid, 1); if(!$bookid) {
OC_JSON::error(array('data' => array('message' => $l->t('Error adding addressbook.'))));
OC_Log::write('contacts','ajax/createaddressbook.php: Error adding addressbook: '.$_POST['name'], OC_Log::ERROR);
exit();
}
if(!OC_Contacts_Addressbook::setActive($bookid, 1)) {
OC_JSON::error(array('data' => array('message' => $l->t('Error activating addressbook.'))));
OC_Log::write('contacts','ajax/createaddressbook.php: Error activating addressbook: '.$bookid, OC_Log::ERROR);
//exit();
}
$addressbook = OC_Contacts_App::getAddressbook($bookid); $addressbook = OC_Contacts_App::getAddressbook($bookid);
$tmpl = new OC_Template('contacts', 'part.chooseaddressbook.rowfields'); $tmpl = new OC_Template('contacts', 'part.chooseaddressbook.rowfields');
$tmpl->assign('addressbook', $addressbook); $tmpl->assign('addressbook', $addressbook);

View File

@ -26,6 +26,7 @@ require_once('../../../lib/base.php');
// Check if we are a user // Check if we are a user
OC_JSON::checkLoggedIn(); OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('contacts'); OC_JSON::checkAppEnabled('contacts');
$l10n = new OC_L10N('contacts');
$id = $_GET['id']; $id = $_GET['id'];
$checksum = $_GET['checksum']; $checksum = $_GET['checksum'];
@ -35,5 +36,10 @@ $line = OC_Contacts_App::getPropertyLineByChecksum($vcard, $checksum);
unset($vcard->children[$line]); unset($vcard->children[$line]);
OC_Contacts_VCard::edit($id,$vcard->serialize()); if(!OC_Contacts_VCard::edit($id,$vcard->serialize())) {
OC_JSON::error(array('data' => array('message' => $l->t('Error deleting contact property.'))));
OC_Log::write('contacts','ajax/deleteproperty.php: Error deleting contact property', OC_Log::ERROR);
exit();
}
OC_JSON::success(array('data' => array( 'id' => $id ))); OC_JSON::success(array('data' => array( 'id' => $id )));

View File

@ -0,0 +1,16 @@
<?php
/**
* Copyright (c) 2011 Thomas Tanghus <thomas@tanghus.net>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
require_once('../../../lib/base.php');
$l10n = new OC_L10N('contacts');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('contacts');
$output = new OC_TEMPLATE("contacts", "part.messagebox");
$output -> printpage();
?>

View File

@ -72,9 +72,14 @@ foreach($missingparameters as $i){
} }
// Do checksum and be happy // Do checksum and be happy
// NOTE: This checksum is not used..?
$checksum = md5($vcard->children[$line]->serialize()); $checksum = md5($vcard->children[$line]->serialize());
OC_Contacts_VCard::edit($id,$vcard->serialize()); if(!OC_Contacts_VCard::edit($id,$vcard->serialize())) {
OC_JSON::error(array('data' => array('message' => $l->t('Error updating contact property.'))));
OC_Log::write('contacts','ajax/setproperty.php: Error updating contact property: '.$value, OC_Log::ERROR);
exit();
}
$adr_types = OC_Contacts_App::getTypesOfProperty('ADR'); $adr_types = OC_Contacts_App::getTypesOfProperty('ADR');
$phone_types = OC_Contacts_App::getTypesOfProperty('TEL'); $phone_types = OC_Contacts_App::getTypesOfProperty('TEL');

View File

@ -1,6 +1,6 @@
<?php <?php
/** /**
* Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl> * Copyright (c) 2011-2012 Thomas Tanghus <thomas@tanghus.net>
* This file is licensed under the Affero General Public License version 3 or * This file is licensed under the Affero General Public License version 3 or
* later. * later.
* See the COPYING-README file. * See the COPYING-README file.
@ -15,8 +15,19 @@ OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('contacts'); OC_JSON::checkAppEnabled('contacts');
$bookid = $_POST['id']; $bookid = $_POST['id'];
OC_Contacts_Addressbook::edit($bookid, $_POST['name'], null);
OC_Contacts_Addressbook::setActive($bookid, $_POST['active']); if(!OC_Contacts_Addressbook::edit($bookid, $_POST['name'], null)) {
OC_JSON::error(array('data' => array('message' => $l->t('Error updating addressbook.'))));
OC_Log::write('contacts','ajax/updateaddressbook.php: Error adding addressbook: ', OC_Log::ERROR);
//exit();
}
if(!OC_Contacts_Addressbook::setActive($bookid, $_POST['active'])) {
OC_JSON::error(array('data' => array('message' => $l->t('Error (de)activating addressbook.'))));
OC_Log::write('contacts','ajax/updateaddressbook.php: Error (de)activating addressbook: '.$bookid, OC_Log::ERROR);
//exit();
}
$addressbook = OC_Contacts_App::getAddressbook($bookid); $addressbook = OC_Contacts_App::getAddressbook($bookid);
$tmpl = new OC_Template('contacts', 'part.chooseaddressbook.rowfields'); $tmpl = new OC_Template('contacts', 'part.chooseaddressbook.rowfields');
$tmpl->assign('addressbook', $addressbook); $tmpl->assign('addressbook', $addressbook);

View File

@ -1,4 +1,5 @@
<?php <?php
$l=new OC_L10N('contacts');
OC::$CLASSPATH['OC_Contacts_App'] = 'apps/contacts/lib/app.php'; OC::$CLASSPATH['OC_Contacts_App'] = 'apps/contacts/lib/app.php';
OC::$CLASSPATH['OC_Contacts_Addressbook'] = 'apps/contacts/lib/addressbook.php'; OC::$CLASSPATH['OC_Contacts_Addressbook'] = 'apps/contacts/lib/addressbook.php';
@ -17,7 +18,8 @@ OC_App::addNavigationEntry( array(
'order' => 10, 'order' => 10,
'href' => OC_Helper::linkTo( 'contacts', 'index.php' ), 'href' => OC_Helper::linkTo( 'contacts', 'index.php' ),
'icon' => OC_Helper::imagePath( 'settings', 'users.svg' ), 'icon' => OC_Helper::imagePath( 'settings', 'users.svg' ),
'name' => 'Contacts' )); 'name' => $l->t('Contacts') ));
OC_APP::registerPersonal('contacts','settings'); OC_APP::registerPersonal('contacts','settings');
require_once('apps/contacts/lib/search.php');

View File

@ -1,270 +0,0 @@
/* -------------------------------------------------------------------------------------------------
ownCloud changes: search for OWNCLOUD
Based on formtastic style sheet
This stylesheet forms part of the Formtastic Rails Plugin
(c) 2008-2011 Justin French
--------------------------------------------------------------------------------------------------*/
/* NORMALIZE AND RESET - obviously inspired by Yahoo's reset.css, but scoped to just .formtastic
--------------------------------------------------------------------------------------------------*/
.formtastic,
.formtastic ul,
.formtastic ol,
.formtastic li,
.formtastic fieldset,
.formtastic legend,
/*.formtastic input,
.formtastic textarea,
.formtastic select, COMMENTED BY OWNCLOUD */
.formtastic p {
margin:0;
padding:0;
}
.formtastic fieldset {
border:0;
}
.formtastic em,
.formtastic strong {
font-style:normal;
font-weight:normal;
}
.formtastic ol,
.formtastic ul {
list-style:none;
}
.formtastic abbr,
.formtastic acronym {
border:0;
font-variant:normal;
}
/*.formtastic input,
.formtastic textarea {
font-family:sans-serif;
font-size:inherit;
font-weight:inherit;
}
.formtastic input,
.formtastic textarea,
.formtastic select {
font-size:100%;
} COMMENTED BY OWNCLOUD */
.formtastic legend {
white-space:normal;
color:#000;
}
/* SEMANTIC ERRORS
--------------------------------------------------------------------------------------------------*/
.formtastic .errors {
color:#cc0000;
margin:0.5em 0 1.5em 25%;
list-style:square;
}
.formtastic .errors li {
padding:0;
border:none;
display:list-item;
}
/* BUTTONS
--------------------------------------------------------------------------------------------------*/
.formtastic .buttons {
overflow:hidden; /* clear containing floats */
padding-left:25%;
}
.formtastic .button {
float:left;
padding-right:0.5em;
border:none; /* ADDED BY OWNCLOUD */
}
/* INPUTS
--------------------------------------------------------------------------------------------------*/
.formtastic .inputs {
padding:0.5em 0; /* padding and negative margin juggling is for Firefox */
margin-top:-0.5em;
margin-bottom:1em;
}
.formtastic .input {
}
/* LEFT ALIGNED LABELS
--------------------------------------------------------------------------------------------------*/
.formtastic .input .label {
display:block;
width:25%;
float:left;
padding-top:.2em;
}
.formtastic .fragments .label,
.formtastic .choices .label {
position:absolute;
width:95%;
left:0px;
}
.formtastic .fragments .label label,
.formtastic .choices .label label {
position:absolute;
}
/* NESTED FIELDSETS AND LEGENDS (radio, check boxes and date/time inputs use nested fieldsets)
--------------------------------------------------------------------------------------------------*/
.formtastic .choices {
position:relative;
}
.formtastic .choices-group {
float:left;
width:74%;
margin:0;
padding:0 0 0 25%;
}
.formtastic .choice {
padding:0;
border:0;
}
/* INLINE HINTS
--------------------------------------------------------------------------------------------------*/
.formtastic .input .inline-hints {
color:#666;
margin:0.5em 0 0 25%;
}
/* INLINE ERRORS
--------------------------------------------------------------------------------------------------*/
.formtastic .inline-errors {
color:#cc0000;
margin:0.5em 0 0 25%;
}
.formtastic .errors {
color:#cc0000;
margin:0.5em 0 0 25%;
list-style:square;
}
.formtastic .errors li {
padding:0;
border:none;
display:list-item;
}
/* STRING, NUMERIC, PASSWORD, EMAIL, URL, PHONE, SEARCH (ETC) OVERRIDES
--------------------------------------------------------------------------------------------------*/
.formtastic .stringish input {
width:72%;
}
.formtastic .stringish input[size] {
width:auto;
max-width:72%;
}
/* TEXTAREA OVERRIDES
--------------------------------------------------------------------------------------------------*/
.formtastic .text textarea {
width:72%;
}
.formtastic .text textarea[cols] {
width:auto;
max-width:72%;
}
/* HIDDEN OVERRIDES
--------------------------------------------------------------------------------------------------*/
.formtastic .hidden {
display:none;
}
/* BOOLEAN LABELS
--------------------------------------------------------------------------------------------------*/
.formtastic .boolean label {
padding-left:25%;
display:block;
}
/* CHOICE GROUPS
--------------------------------------------------------------------------------------------------*/
.formtastic .choices-group {
margin-bottom:-0.5em;
}
.formtastic .choice {
margin:0.1em 0 0.5em 0;
}
.formtastic .choice label {
float:none;
width:100%;
line-height:100%;
padding-top:0;
margin-bottom:0.6em;
}
/* ADJUSTMENTS FOR INPUTS INSIDE LABELS (boolean input, radio input, check_boxes input)
--------------------------------------------------------------------------------------------------*/
.formtastic .choice label input,
.formtastic .boolean label input {
margin:0 0.3em 0 0.1em;
line-height:100%;
}
/* FRAGMENTED INPUTS (DATE/TIME/DATETIME)
--------------------------------------------------------------------------------------------------*/
.formtastic .fragments {
position:relative;
}
.formtastic .fragments-group {
float:left;
width:74%;
margin:0;
padding:0 0 0 25%;
}
.formtastic .fragment {
float:left;
width:auto;
margin:0 .3em 0 0;
padding:0;
border:0;
}
.formtastic .fragment label {
display:none;
}
.formtastic .fragment label input {
display:inline;
margin:0;
padding:0;
}

View File

@ -4,13 +4,51 @@
#contacts_details_name { font-weight:bold;font-size:1.1em;margin-left:25%;} #contacts_details_name { font-weight:bold;font-size:1.1em;margin-left:25%;}
#contacts_details_photo { margin:.5em 0em .5em 25%; } #contacts_details_photo { margin:.5em 0em .5em 25%; }
#contacts_deletecard {position:absolute;top:15px;right:0;} #contacts_deletecard {position:absolute;top:15px;right:25px;}
#contacts_downloadcard {position:absolute;top:15px;right:50px;}
#contacts_details_list { list-style:none; } #contacts_details_list { list-style:none; }
#contacts_details_list li { overflow:visible; } #contacts_details_list li { overflow:visible; }
#contacts_details_list li p.contacts_property_name { width:25%; float:left;text-align:right;padding-right:0.3em;color:#666; } #contacts_details_list li p.contacts_property_name { width:25%; float:left;text-align:right;padding-right:0.3em;color:#666; }
#contacts_details_list li p.contacts_property_data, #contacts_details_list li ul.contacts_property_data { width:72%;float:left; } #contacts_details_list li p.contacts_property_data, #contacts_details_list li ul.contacts_property_data { width:72%;float:left; clear: right; }
#contacts_setproperty_button { margin-left:25%; } #contacts_setproperty_button { margin-left:25%; }
dl.form
{
width: 100%;
float: left;
clear: right;
margin: 1em;
padding: 0;
}
.form dt
{
display: table-cell;
clear: left;
float: left;
min-width: 10em;
margin: 0;
padding-top: 0.5em;
padding-right: 1em;
font-weight: bold;
text-align:right;
vertical-align: text-bottom;
bottom: 0px;
}
.form dd
{
display: table-cell;
clear: right;
float: left;
min-width: 20em;
margin: 0;
padding: 0;
white-space: nowrap;
top: 0px;
}
.form input { position: relative; width: 20em; }
.contacts_property_data ul, ol.contacts_property_data { list-style:none; } .contacts_property_data ul, ol.contacts_property_data { list-style:none; }
.contacts_property_data li { overflow: hidden; } .contacts_property_data li { overflow: hidden; }
.contacts_property_data li label { width:20%; float:left; text-align:right;padding-right:0.3em; } .contacts_property_data li label { width:20%; float:left; text-align:right;padding-right:0.3em; }

View File

@ -1,6 +1,6 @@
<?php <?php
/** /**
* Copyright (c) 2011 Georg Ehrke <ownclouddev at georgswebsite dot de> * Copyright (c) 2011-2012 Thomas Tanghus <thomas@tanghus.net>
* This file is licensed under the Affero General Public License version 3 or * This file is licensed under the Affero General Public License version 3 or
* later. * later.
* See the COPYING-README file. * See the COPYING-README file.
@ -20,9 +20,9 @@ if(isset($book)){
$cardobjects = OC_Contacts_VCard::all($book); $cardobjects = OC_Contacts_VCard::all($book);
header('Content-Type: text/directory'); header('Content-Type: text/directory');
header('Content-Disposition: inline; filename=' . str_replace(' ', '_', $addressbook['displayname']) . '.vcf'); header('Content-Disposition: inline; filename=' . str_replace(' ', '_', $addressbook['displayname']) . '.vcf');
for($i = 0;$i <= count($cardobjects); $i++){
echo $cardobjects[$i]['carddata']; foreach($cardobjects as $card) {
//echo '\r\n'; echo $card['carddata'];
} }
}elseif(isset($contact)){ }elseif(isset($contact)){
$data = OC_Contacts_App::getContactObject($contact); $data = OC_Contacts_App::getContactObject($contact);
@ -33,7 +33,7 @@ if(isset($book)){
exit; exit;
} }
header('Content-Type: text/directory'); header('Content-Type: text/directory');
header('Content-Disposition: inline; filename=' . $data['fullname'] . '.vcf'); header('Content-Disposition: inline; filename=' . str_replace(' ', '_', $data['fullname']) . '.vcf');
echo $data['carddata']; echo $data['carddata'];
} }
?> ?>

View File

@ -44,26 +44,24 @@ OC_App::setActiveNavigationEntry( 'contacts_index' );
$id = isset( $_GET['id'] ) ? $_GET['id'] : null; $id = isset( $_GET['id'] ) ? $_GET['id'] : null;
$details = array(); $details = array();
// FIXME: This cannot work..?
if(is_null($id) && count($contacts) > 0) { if(is_null($id) && count($contacts) > 0) {
$id = $contacts[0]['id']; $id = $contacts[0]['id'];
} }
$vcard = null;
$details = null;
if(!is_null($id)) { if(!is_null($id)) {
$vcard = OC_Contacts_App::getContactVCard($id); $vcard = OC_Contacts_App::getContactVCard($id);
$details = OC_Contacts_VCard::structureContact($vcard); if(!is_null($vcard)) {
$details = OC_Contacts_VCard::structureContact($vcard);
}
} }
// if( !is_null($id)/* || count($contacts)*/){
// if(is_null($id)) $id = $contacts[0]['id'];
// $vcard = OC_Contacts_App::getContactVCard($id);
// $details = OC_Contacts_VCard::structureContact($vcard);
// }
// Include Style and Script // Include Style and Script
OC_Util::addScript('contacts','interface'); OC_Util::addScript('contacts','interface');
OC_Util::addStyle('contacts','styles'); OC_Util::addScript('contacts','jquery.inview');
OC_Util::addStyle('contacts','formtastic');
OC_Util::addScript('', 'jquery.multiselect'); OC_Util::addScript('', 'jquery.multiselect');
OC_Util::addStyle('', 'jquery.multiselect'); OC_Util::addStyle('contacts','styles');
//OC_Util::addStyle('contacts','formtastic');
$property_types = OC_Contacts_App::getAddPropertyOptions(); $property_types = OC_Contacts_App::getAddPropertyOptions();
$adr_types = OC_Contacts_App::getTypesOfProperty('ADR'); $adr_types = OC_Contacts_App::getTypesOfProperty('ADR');

View File

@ -18,9 +18,6 @@
* You should have received a copy of the GNU Affero General Public * You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>. * License along with this library. If not, see <http://www.gnu.org/licenses/>.
* *
* TODO:
* If you add a contact, its thumbnail doesnt show in the list. But when you add another one it shows up, but not for the second contact added.
* Place a new contact in correct alphabetic order
*/ */
@ -31,6 +28,30 @@ Contacts={
$('#carddav_url').show(); $('#carddav_url').show();
$('#carddav_url_close').show(); $('#carddav_url_close').show();
}, },
messageBox:function(title, msg) {
if($('#messagebox').dialog('isOpen') == true){
// NOTE: Do we ever get here?
$('#messagebox').dialog('moveToTop');
}else{
$('#dialog_holder').load(OC.filePath('contacts', 'ajax', 'messagebox.php'), function(){
$('#messagebox').dialog(
{
autoOpen: true,
title: title,
buttons: [{
text: "Ok",
click: function() { $(this).dialog("close"); }
}],
close: function(event, ui) {
$(this).dialog('destroy').remove();
},
open: function(event, ui) {
$('#messagebox_msg').html(msg);
}
});
});
}
},
Addressbooks:{ Addressbooks:{
overview:function(){ overview:function(){
if($('#chooseaddressbook_dialog').dialog('isOpen') == true){ if($('#chooseaddressbook_dialog').dialog('isOpen') == true){
@ -85,7 +106,8 @@ Contacts={
Contacts.UI.Contacts.update(); Contacts.UI.Contacts.update();
Contacts.UI.Addressbooks.overview(); Contacts.UI.Addressbooks.overview();
} else { } else {
alert('Error: ' + data.message); Contacts.UI.messageBox(t('contacts', 'Error'), data.message);
//alert('Error: ' + data.message);
} }
}); });
} }
@ -114,37 +136,29 @@ Contacts={
} }
}, },
Contacts:{ Contacts:{
/**
* Reload the contacts list.
*/
update:function(){ update:function(){
$.getJSON('ajax/contacts.php',{},function(jsondata){ $.getJSON('ajax/contacts.php',{},function(jsondata){
if(jsondata.status == 'success'){ if(jsondata.status == 'success'){
$('#contacts').html(jsondata.data.page); $('#contacts').html(jsondata.data.page);
} }
else{ else{
alert(jsondata.data.message); Contacts.UI.messageBox(t('contacts', 'Error'),jsondata.data.message);
//alert(jsondata.data.message);
} }
}); });
/* setTimeout(Contacts.UI.Contacts.lazyupdate, 500);
var contactlist = $('#contacts');
var contacts = contactlist.children('li').get();
//alert(contacts);
contacts.sort(function(a, b) {
var compA = $(a).text().toUpperCase();
var compB = $(b).text().toUpperCase();
return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
})
$.each(contacts, function(idx, itm) { contactlist.append(itm); });
*/
setTimeout(Contacts.UI.Contacts.lazyupdate(), 500);
}, },
/**
* Add thumbnails to the contact list as they become visible in the viewport.
*/
lazyupdate:function(){ lazyupdate:function(){
//alert('lazyupdate');
$('#contacts li').live('inview', function(){ $('#contacts li').live('inview', function(){
if (!$(this).find('a').attr('style')) { if (!$(this).find('a').attr('style')) {
//alert($(this).data('id') + ' has background: ' + $(this).attr('style'));
$(this).find('a').css('background','url(thumbnail.php?id='+$(this).data('id')+') no-repeat'); $(this).find('a').css('background','url(thumbnail.php?id='+$(this).data('id')+') no-repeat');
}/* else { }
alert($(this).data('id') + ' has style ' + $(this).attr('style').match('url'));
}*/
}); });
} }
} }
@ -155,6 +169,10 @@ $(document).ready(function(){
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Event handlers * Event handlers
*-----------------------------------------------------------------------*/ *-----------------------------------------------------------------------*/
/**
* Load the details view for a contact.
*/
$('#leftcontent li').live('click',function(){ $('#leftcontent li').live('click',function(){
var id = $(this).data('id'); var id = $(this).data('id');
var oldid = $('#rightcontent').data('id'); var oldid = $('#rightcontent').data('id');
@ -168,13 +186,18 @@ $(document).ready(function(){
$('#leftcontent li[data-id="'+jsondata.data.id+'"]').addClass('active'); $('#leftcontent li[data-id="'+jsondata.data.id+'"]').addClass('active');
} }
else{ else{
alert(jsondata.data.message); Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
//alert(jsondata.data.message);
} }
}); });
return false; return false;
}); });
/**
* Delete currently selected contact (and clear form?)
*/
$('#contacts_deletecard').live('click',function(){ $('#contacts_deletecard').live('click',function(){
$('#contacts_deletecard').tipsy('hide');
var id = $('#rightcontent').data('id'); var id = $('#rightcontent').data('id');
$.getJSON('ajax/deletecard.php',{'id':id},function(jsondata){ $.getJSON('ajax/deletecard.php',{'id':id},function(jsondata){
if(jsondata.status == 'success'){ if(jsondata.status == 'success'){
@ -183,12 +206,17 @@ $(document).ready(function(){
$('#rightcontent').empty(); $('#rightcontent').empty();
} }
else{ else{
alert(jsondata.data.message); Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
//alert(jsondata.data.message);
} }
}); });
return false; return false;
}); });
/**
* Add a property to the contact.
* NOTE: Where does 'contacts_addproperty' exist?
*/
$('#contacts_addproperty').live('click',function(){ $('#contacts_addproperty').live('click',function(){
var id = $('#rightcontent').data('id'); var id = $('#rightcontent').data('id');
$.getJSON('ajax/showaddproperty.php',{'id':id},function(jsondata){ $.getJSON('ajax/showaddproperty.php',{'id':id},function(jsondata){
@ -197,12 +225,16 @@ $(document).ready(function(){
$('#contacts_addproperty').hide(); $('#contacts_addproperty').hide();
} }
else{ else{
alert(jsondata.data.message); Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
alert('From handler: '+jsondata.data.message);
} }
}); });
return false; return false;
}); });
/**
* Change the inputs based on which type of property is selected for addition.
*/
$('#contacts_addpropertyform [name="name"]').live('change',function(){ $('#contacts_addpropertyform [name="name"]').live('change',function(){
$('#contacts_addpropertyform #contacts_addresspart').remove(); $('#contacts_addpropertyform #contacts_addresspart').remove();
$('#contacts_addpropertyform #contacts_phonepart').remove(); $('#contacts_addpropertyform #contacts_phonepart').remove();
@ -226,17 +258,23 @@ $(document).ready(function(){
$('#contacts_addpropertyform').before(jsondata.data.page); $('#contacts_addpropertyform').before(jsondata.data.page);
} }
else{ else{
alert(jsondata.data.message); Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
} }
}, 'json'); }, 'json');
return false; return false;
}); });
/**
* Show the Addressbook chooser
*/
$('#chooseaddressbook').click(function(){ $('#chooseaddressbook').click(function(){
Contacts.UI.Addressbooks.overview(); Contacts.UI.Addressbooks.overview();
return false; return false;
}); });
/**
* Open blank form to add new contact.
*/
$('#contacts_newcontact').click(function(){ $('#contacts_newcontact').click(function(){
$.getJSON('ajax/showaddcard.php',{},function(jsondata){ $.getJSON('ajax/showaddcard.php',{},function(jsondata){
if(jsondata.status == 'success'){ if(jsondata.status == 'success'){
@ -245,27 +283,46 @@ $(document).ready(function(){
.find('select').chosen(); .find('select').chosen();
} }
else{ else{
alert(jsondata.data.message); Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
//alert(jsondata.data.message);
} }
}); });
return false; return false;
}); });
/**
* Add and insert a new contact into the list.
*/
$('#contacts_addcardform input[type="submit"]').live('click',function(){ $('#contacts_addcardform input[type="submit"]').live('click',function(){
$.post('ajax/addcard.php',$('#contacts_addcardform').serialize(),function(jsondata){ $.post('ajax/addcard.php',$('#contacts_addcardform').serialize(),function(jsondata){
if(jsondata.status == 'success'){ if(jsondata.status == 'success'){
$('#rightcontent').data('id',jsondata.data.id); $('#rightcontent').data('id',jsondata.data.id);
$('#rightcontent').html(jsondata.data.page); $('#rightcontent').html(jsondata.data.page);
$('#leftcontent .active').removeClass('active'); $('#leftcontent .active').removeClass('active');
$('#leftcontent ul').append('<li data-id="'+jsondata.data.id+'" class="active"><a href="index.php?id='+jsondata.data.id+'">'+jsondata.data.name+'</a></li>'); var item = '<li data-id="'+jsondata.data.id+'" class="active"><a href="index.php?id='+jsondata.data.id+'" style="background: url(thumbnail.php?id='+jsondata.data.id+') no-repeat scroll 0% 0% transparent;">'+jsondata.data.name+'</a></li>';
var added = false;
$('#leftcontent ul li').each(function(){
if ($(this).text().toLowerCase() > jsondata.data.name.toLowerCase()) {
$(this).before(item).fadeIn('fast');
added = true;
return false;
}
});
if(!added) {
$('#leftcontent ul').append(item);
}
} }
else{ else{
alert(jsondata.data.message); Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
//alert(jsondata.data.message);
} }
}, 'json'); }, 'json');
return false; return false;
}); });
/**
* Show inputs for editing a property.
*/
$('.contacts_property [data-use="edit"]').live('click',function(){ $('.contacts_property [data-use="edit"]').live('click',function(){
var id = $('#rightcontent').data('id'); var id = $('#rightcontent').data('id');
var checksum = $(this).parents('.contacts_property').first().data('checksum'); var checksum = $(this).parents('.contacts_property').first().data('checksum');
@ -275,19 +332,24 @@ $(document).ready(function(){
.find('select').chosen(); .find('select').chosen();
} }
else{ else{
alert(jsondata.data.message); Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
//alert(jsondata.data.message);
} }
}); });
return false; return false;
}); });
/**
* Save the edited property
*/
$('#contacts_setpropertyform input[type="submit"]').live('click',function(){ $('#contacts_setpropertyform input[type="submit"]').live('click',function(){
$.post('ajax/setproperty.php',$(this).parents('form').first().serialize(),function(jsondata){ $.post('ajax/setproperty.php',$(this).parents('form').first().serialize(),function(jsondata){
if(jsondata.status == 'success'){ if(jsondata.status == 'success'){
$('.contacts_property[data-checksum="'+jsondata.data.oldchecksum+'"]').replaceWith(jsondata.data.page); $('.contacts_property[data-checksum="'+jsondata.data.oldchecksum+'"]').replaceWith(jsondata.data.page);
} }
else{ else{
alert(jsondata.data.message); Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
//alert(jsondata.data.message);
} }
},'json'); },'json');
return false; return false;
@ -301,7 +363,8 @@ $(document).ready(function(){
$('.contacts_property[data-checksum="'+checksum+'"]').remove(); $('.contacts_property[data-checksum="'+checksum+'"]').remove();
} }
else{ else{
alert(jsondata.data.message); Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
//alert(jsondata.data.message);
} }
}); });
return false; return false;
@ -338,4 +401,7 @@ $(document).ready(function(){
// element has gone out of viewport // element has gone out of viewport
} }
}); });
$('.button').tipsy();
//Contacts.UI.messageBox('Hello','Sailor');
}); });

36
apps/contacts/l10n/ar.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "هذا ليس دفتر عناوينك.",
"Contact could not be found." => "لم يتم العثور على الشخص.",
"vCard could not be read." => "لم يتم قراءة ال vCard بنجاح.",
"Information about vCard is incorrect. Please reload the page." => "المعلومات الموجودة في ال vCard غير صحيحة. الرجاء إعادة تحديث الصفحة.",
"Address" => "عنوان",
"Telephone" => "الهاتف",
"Email" => "البريد الالكتروني",
"Organization" => "المؤسسة",
"Work" => "الوظيفة",
"Home" => "البيت",
"Mobile" => "الهاتف المحمول",
"Text" => "معلومات إضافية",
"Voice" => "صوت",
"Fax" => "الفاكس",
"Video" => "الفيديو",
"Pager" => "الرنان",
"This is not your contact." => ".هذا ليس من معارفي",
"This card is not RFC compatible." => "هذا الكرت ليس متلائم مع نظام ال RFC.",
"This card does not contain a photo." => "لا يحتوي هذا الكرت على صورة.",
"Add Contact" => "أضف شخص ",
"Group" => "مجموعة",
"Name" => "الاسم",
"PO Box" => "العنوان البريدي",
"Extended" => "إضافة",
"Street" => "شارع",
"City" => "المدينة",
"Region" => "المنطقة",
"Zipcode" => "رقم المنطقة",
"Country" => "البلد",
"Create Contact" => "أضف شخص ",
"Edit" => "تعديل",
"Delete" => "حذف",
"Birthday" => "تاريخ الميلاد",
"Phone" => "الهاتف"
);

36
apps/contacts/l10n/ca.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Aquesta no és la vostra llibreta d'adreces",
"Contact could not be found." => "No s'ha trobat el contacte.",
"vCard could not be read." => "No s'ha pogut llegir la vCard",
"Information about vCard is incorrect. Please reload the page." => "La informació de la vCard és incorrecta. Carregueu la pàgina de nou.",
"Address" => "Adreça",
"Telephone" => "Telèfon",
"Email" => "Correu electrònic",
"Organization" => "Organització",
"Work" => "Feina",
"Home" => "Casa",
"Mobile" => "Mòbil",
"Text" => "Text",
"Voice" => "Veu",
"Fax" => "Fax",
"Video" => "Vídeo",
"Pager" => "Paginador",
"This is not your contact." => "Aquest contacte no és vostre.",
"This card is not RFC compatible." => "Aquesta targeta no és compatible amb RFC.",
"This card does not contain a photo." => "Aquesta targeta no conté foto.",
"Add Contact" => "Afegeix un contacte",
"Group" => "Grup",
"Name" => "Nom",
"PO Box" => "Adreça Postal",
"Extended" => "Addicional",
"Street" => "Carrer",
"City" => "Ciutat",
"Region" => "Comarca",
"Zipcode" => "Codi postal",
"Country" => "País",
"Create Contact" => "Crea un contacte",
"Edit" => "Edita",
"Delete" => "Elimina",
"Birthday" => "Aniversari",
"Phone" => "Telèfon"
);

View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Toto není Váš adresář.",
"Contact could not be found." => "Kontakt nebyl nalezen.",
"vCard could not be read." => "vCard nelze přečíst.",
"Information about vCard is incorrect. Please reload the page." => "Informace o vCard je nesprávná. Obnovte stránku, prosím.",
"Address" => "Adresa",
"Telephone" => "Telefon",
"Email" => "Email",
"Organization" => "Organizace",
"Work" => "Pracovní",
"Home" => "Domácí",
"Mobile" => "Mobil",
"Text" => "Text",
"Voice" => "Hlas",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Pager",
"This is not your contact." => "Toto není Váš kontakt.",
"This card is not RFC compatible." => "Tato karta není kompatibilní s RFC.",
"This card does not contain a photo." => "Tato karta neobsahuje foto",
"Add Contact" => "Přidat kontakt",
"Group" => "Skupina",
"Name" => "Jméno",
"PO Box" => "PO box",
"Extended" => "Rozšířené",
"Street" => "Ulice",
"City" => "Město",
"Region" => "Kraj",
"Zipcode" => "PSČ",
"Country" => "Země",
"Create Contact" => "Vytvořit kontakt",
"Edit" => "Editovat",
"Delete" => "Odstranit",
"Birthday" => "Narozeniny",
"Phone" => "Telefon"
);

View File

@ -1,22 +1,26 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"You need to log in." => "Du skal logge ind.",
"This is not your addressbook." => "Dette er ikke din adressebog.", "This is not your addressbook." => "Dette er ikke din adressebog.",
"Contact could not be found." => "Kontakt kunne ikke findes.", "Contact could not be found." => "Kontaktperson kunne ikke findes.",
"This is not your contact." => "Dette er ikke din kontakt.",
"vCard could not be read." => "Kunne ikke læse vCard.", "vCard could not be read." => "Kunne ikke læse vCard.",
"Information about vCard is incorrect. Please reload the page." => "Informationen om vCard er forkert. Genindlæs siden.", "Information about vCard is incorrect. Please reload the page." => "Informationen om vCard er forkert. Genindlæs siden.",
"This card is not RFC compatible." => "Dette kort er ikke RFC-kompatibelt.",
"This card does not contain a photo." => "Dette kort indeholder ikke et foto.",
"Add Contact" => "Tilføj kontakt",
"Group" => "Gruppe",
"Name" => "Navn",
"Create Contact" => "Ny Kontakt",
"Address" => "Adresse", "Address" => "Adresse",
"Telephone" => "Telefon", "Telephone" => "Telefon",
"Email" => "Email", "Email" => "Email",
"Organization" => "Organisation", "Organization" => "Organisation",
"Work" => "Arbejde", "Work" => "Arbejde",
"Home" => "Hjem", "Home" => "Hjemme",
"Mobile" => "Mobil",
"Text" => "SMS",
"Voice" => "Telefonsvarer",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Personsøger",
"This is not your contact." => "Dette er ikke din kontaktperson.",
"This card is not RFC compatible." => "Dette kort er ikke RFC-kompatibelt.",
"This card does not contain a photo." => "Dette kort indeholder ikke et foto.",
"Add Contact" => "Tilføj kontaktperson",
"Group" => "Gruppe",
"Name" => "Navn",
"PO Box" => "Postboks", "PO Box" => "Postboks",
"Extended" => "Udvidet", "Extended" => "Udvidet",
"Street" => "Vej", "Street" => "Vej",
@ -24,15 +28,9 @@
"Region" => "Region", "Region" => "Region",
"Zipcode" => "Postnummer", "Zipcode" => "Postnummer",
"Country" => "Land", "Country" => "Land",
"Mobile" => "Mobil", "Create Contact" => "Ny kontaktperson",
"Text" => "SMS", "Edit" => "Rediger",
"Voice" => "Telefonsvarer",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Personsøger",
"Delete" => "Slet", "Delete" => "Slet",
"Add Property" => "Tilføj Egenskab",
"Birthday" => "Fødselsdag", "Birthday" => "Fødselsdag",
"Phone" => "Telefon", "Phone" => "Telefon"
"Edit" => "Redigér"
); );

View File

@ -1,9 +1,36 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"This is not your addressbook." => "Dies ist nicht dein Adressbuch.",
"Contact could not be found." => "Kontakt konnte nicht gefunden werden.",
"vCard could not be read." => "vCard konnte nicht gelesen werden.",
"Information about vCard is incorrect. Please reload the page." => "Die Information der vCard ist fehlerhaft. Bitte aktualisiere die Seite.",
"Address" => "Adresse",
"Telephone" => "Telefon",
"Email" => "Email",
"Organization" => "Organisation",
"Work" => "Arbeit",
"Home" => "Zuhause",
"Mobile" => "Mobil", "Mobile" => "Mobil",
"Text" => "Text", "Text" => "Text",
"Voice" => "Anruf",
"Fax" => "Fax", "Fax" => "Fax",
"Video" => "Video", "Video" => "Video",
"Pager" => "Pager", "Pager" => "Pager",
"This is not your contact." => "Dies ist nicht dein Kontakt.",
"This card is not RFC compatible." => "Diese Karte ist nicht RFC-kompatibel.",
"This card does not contain a photo." => "Diese Karte enthält kein Foto.",
"Add Contact" => "Kontakt hinzufügen",
"Group" => "Gruppe",
"Name" => "Name",
"PO Box" => "Postfach",
"Extended" => "Erweitert",
"Street" => "Straße",
"City" => "Stadt",
"Region" => "Region",
"Zipcode" => "Postleitzahl",
"Country" => "Land",
"Create Contact" => "Kontakt erstellen",
"Edit" => "Bearbeiten",
"Delete" => "Löschen",
"Birthday" => "Geburtstag", "Birthday" => "Geburtstag",
"Edit" => "Bearbeiten" "Phone" => "Telefon"
); );

36
apps/contacts/l10n/el.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Αυτό δεν είναι βιβλίο διευθύνσεων σας.",
"Contact could not be found." => "Η επαφή δεν μπρόρεσε να βρεθεί.",
"vCard could not be read." => "Η vCard δεν μπορεί να διαβαστεί.",
"Information about vCard is incorrect. Please reload the page." => "Οι πληροφορίες σχετικά με vCard είναι εσφαλμένες. Παρακαλώ επαναφορτώστε τη σελίδα.",
"Address" => "Διεύθυνση",
"Telephone" => "Τηλέφωνο",
"Email" => "Email",
"Organization" => "Οργανισμός",
"Work" => "Εργασία",
"Home" => "Σπίτι",
"Mobile" => "Κινητό",
"Text" => "Κείμενο",
"Voice" => "Φωνή",
"Fax" => "Φαξ",
"Video" => "Βίντεο",
"Pager" => "Βομβητής",
"This is not your contact." => "Αυτή δεν είναι επαφή σας.",
"This card is not RFC compatible." => "Αυτή η κάρτα δεν είναι RFC συμβατή.",
"This card does not contain a photo." => "Αυτή η κάρτα δεν περιέχει φωτογραφία.",
"Add Contact" => "Προσθήκη επαφής",
"Group" => "Ομάδα",
"Name" => "Όνομα",
"PO Box" => "Ταχ. Θυρίδα",
"Extended" => "Εκτεταμένη",
"Street" => "Οδός",
"City" => "Πόλη",
"Region" => "Περιοχή",
"Zipcode" => "Τ.Κ.",
"Country" => "Χώρα",
"Create Contact" => "Δημιουργία επαφής",
"Edit" => "Επεξεργασία",
"Delete" => "Διαγραφή",
"Birthday" => "Γενέθλια",
"Phone" => "Τηλέφωνο"
);

36
apps/contacts/l10n/eo.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Ĉi tiu ne estas via adresaro.",
"Contact could not be found." => "Ne eblis trovi la kontakton.",
"vCard could not be read." => "Ne eblis legi vCard-on.",
"Information about vCard is incorrect. Please reload the page." => "Informo pri vCard estas malĝusta. Bonvolu reŝargi la paĝon.",
"Address" => "Adreso",
"Telephone" => "Telefono",
"Email" => "Retpoŝtadreso",
"Organization" => "Organizaĵo",
"Work" => "Laboro",
"Home" => "Hejmo",
"Mobile" => "Poŝtelefono",
"Text" => "Teksto",
"Voice" => "Voĉo",
"Fax" => "Fakso",
"Video" => "Videaĵo",
"Pager" => "Televokilo",
"This is not your contact." => "Tiu ĉi ne estas via kontakto.",
"This card is not RFC compatible." => "Ĉi tiu karto ne kongruas kun RFC.",
"This card does not contain a photo." => "Ĉi tiu karto ne havas foton.",
"Add Contact" => "Aldoni kontakton",
"Group" => "Grupo",
"Name" => "Nomo",
"PO Box" => "Abonkesto",
"Extended" => "Etendita",
"Street" => "Strato",
"City" => "Urbo",
"Region" => "Regiono",
"Zipcode" => "Poŝtokodo",
"Country" => "Lando",
"Create Contact" => "Krei kontakton",
"Edit" => "Redakti",
"Delete" => "Forigi",
"Birthday" => "Naskiĝotago",
"Phone" => "Telefono"
);

36
apps/contacts/l10n/es.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Esta no es tu agenda de contactos.",
"Contact could not be found." => "No se pudo encontrar el contacto.",
"vCard could not be read." => "No se pudo leer el vCard.",
"Information about vCard is incorrect. Please reload the page." => "La información sobre el vCard es incorrecta. Por favor vuelve a cargar la página.",
"Address" => "Dirección",
"Telephone" => "Teléfono",
"Email" => "Correo electrónico",
"Organization" => "Organización",
"Work" => "Trabajo",
"Home" => "Particular",
"Mobile" => "Móvil",
"Text" => "Texto",
"Voice" => "Voz",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Localizador",
"This is not your contact." => "Este no es tu contacto.",
"This card is not RFC compatible." => "Esta tarjeta no es compatible con RFC.",
"This card does not contain a photo." => "Esta tarjeta no contiene ninguna foto.",
"Add Contact" => "Agregar contacto",
"Group" => "Grupo",
"Name" => "Nombre",
"PO Box" => "Código postal",
"Extended" => "Extendido",
"Street" => "Calle",
"City" => "Ciudad",
"Region" => "Región",
"Zipcode" => "Código Postal",
"Country" => "País",
"Create Contact" => "Crear contacto",
"Edit" => "Editar",
"Delete" => "Borrar",
"Birthday" => "Cumpleaños",
"Phone" => "Teléfono"
);

View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "See pole sinu aadressiraamat.",
"Contact could not be found." => "Kontakti ei leitud.",
"vCard could not be read." => "Visiitkaardi lugemine ebaõnnestus,",
"Information about vCard is incorrect. Please reload the page." => "Visiitkaardi info pole korrektne. Palun lae leht uuesti.",
"Address" => "Aadress",
"Telephone" => "Telefon",
"Email" => "E-post",
"Organization" => "Organisatsioon",
"Work" => "Töö",
"Home" => "Kodu",
"Mobile" => "Mobiil",
"Text" => "Tekst",
"Voice" => "Hääl",
"Fax" => "Faks",
"Video" => "Video",
"Pager" => "Piipar",
"This is not your contact." => "See pole sinu kontakt.",
"This card is not RFC compatible." => "See kaart ei ühildu RFC-ga.",
"This card does not contain a photo." => "Sellel kaardil pole fotot.",
"Add Contact" => "Lisa kontakt",
"Group" => "Grupp",
"Name" => "Nimi",
"PO Box" => "Postkontori postkast",
"Extended" => "Laiendatud",
"Street" => "Tänav",
"City" => "Linn",
"Region" => "Piirkond",
"Zipcode" => "Postiindeks",
"Country" => "Riik",
"Create Contact" => "Lisa kontakt",
"Edit" => "Muuda",
"Delete" => "Kustuta",
"Birthday" => "Sünnipäev",
"Phone" => "Telefon"
);

36
apps/contacts/l10n/eu.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Hau ez da zure helbide liburua.",
"Contact could not be found." => "Ezin izan da kontaktua aurkitu.",
"vCard could not be read." => "Ezin izan da vCard-a irakurri.",
"Information about vCard is incorrect. Please reload the page." => "vCard-aren inguruko informazioa okerra da. Mesedez birkargatu orrialdea.",
"Address" => "Helbidea",
"Telephone" => "Telefonoa",
"Email" => "Eposta",
"Organization" => "Erakundea",
"Work" => "Lana",
"Home" => "Etxea",
"Mobile" => "Mugikorra",
"Text" => "Testua",
"Voice" => "Ahotsa",
"Fax" => "Fax-a",
"Video" => "Bideoa",
"Pager" => "Bilagailua",
"This is not your contact." => "Hau ez da zure kontaktua.",
"This card is not RFC compatible." => "Txartel hau ez da RFC bateragarria.",
"This card does not contain a photo." => "Txartel honek ez dauka argazkirik.",
"Add Contact" => "Gehitu Kontaktua",
"Group" => "Taldea",
"Name" => "Izena",
"PO Box" => "Posta kutxa",
"Extended" => "Hedatua",
"Street" => "Kalea",
"City" => "Hiria",
"Region" => "Eskualdea",
"Zipcode" => "Posta Kodea",
"Country" => "Herrialdea",
"Create Contact" => "Sortu Kontaktua",
"Edit" => "Editatu",
"Delete" => "Ezabatu",
"Birthday" => "Jaioteguna",
"Phone" => "Telefonoa"
);

36
apps/contacts/l10n/fr.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Ce n'est pas votre carnet d'adresses.",
"Contact could not be found." => "Ce contact n'a pas été trouvé.",
"vCard could not be read." => "Cette vCard n'a pas pu être lue.",
"Information about vCard is incorrect. Please reload the page." => "Les informations relatives à cette vCard sont incorrectes. Veuillez recharger la page.",
"Address" => "Adresse",
"Telephone" => "Téléphone",
"Email" => "Email",
"Organization" => "Société",
"Work" => "Travail",
"Home" => "Maison",
"Mobile" => "Mobile",
"Text" => "Texte",
"Voice" => "Voix",
"Fax" => "Fax",
"Video" => "Vidéo",
"Pager" => "Bipeur",
"This is not your contact." => "Ce n'est pas votre contact.",
"This card is not RFC compatible." => "Cette fiche n'est pas compatible RFC.",
"This card does not contain a photo." => "Cette fiche ne contient pas de photo.",
"Add Contact" => "Ajouter un Contact",
"Group" => "Groupe",
"Name" => "Nom",
"PO Box" => "Boîte postale",
"Extended" => "Étendu",
"Street" => "Rue",
"City" => "Ville",
"Region" => "Région",
"Zipcode" => "Code postal",
"Country" => "Pays",
"Create Contact" => "Créer le Contact",
"Edit" => "Modifier",
"Delete" => "Effacer",
"Birthday" => "Anniversaire",
"Phone" => "Téléphone"
);

36
apps/contacts/l10n/he.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "זהו אינו ספר הכתובות שלך",
"Contact could not be found." => "לא ניתן לאתר איש קשר",
"vCard could not be read." => "לא ניתן לקרוא vCard.",
"Information about vCard is incorrect. Please reload the page." => "המידע אודות vCard אינו נכון. נא לטעון מחדש את הדף.",
"Address" => "כתובת",
"Telephone" => "טלפון",
"Email" => "דואר אלקטרוני",
"Organization" => "ארגון",
"Work" => "עבודה",
"Home" => "בית",
"Mobile" => "נייד",
"Text" => "טקסט",
"Voice" => "קולי",
"Fax" => "פקס",
"Video" => "וידאו",
"Pager" => "זימונית",
"This is not your contact." => "זהו אינו איש קשר שלך",
"This card is not RFC compatible." => "כרטיס זה אינו תואם ל־RFC",
"This card does not contain a photo." => "כרטיס זה אינו כולל תמונה",
"Add Contact" => "הוספת איש קשר",
"Group" => "קבוצה",
"Name" => "שם",
"PO Box" => "תא דואר",
"Extended" => "מורחב",
"Street" => "רחוב",
"City" => "עיר",
"Region" => "אזור",
"Zipcode" => "מיקוד",
"Country" => "מדינה",
"Create Contact" => "יצירת איש קשר",
"Edit" => "עריכה",
"Delete" => "מחיקה",
"Birthday" => "יום הולדת",
"Phone" => "טלפון"
);

36
apps/contacts/l10n/hr.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Ovo nije vaš adresar.",
"Contact could not be found." => "Kontakt ne postoji.",
"vCard could not be read." => "Nemoguće pročitati vCard.",
"Information about vCard is incorrect. Please reload the page." => "Informacija o vCard je neispravna. Osvježite stranicu.",
"Address" => "Adresa",
"Telephone" => "Telefon",
"Email" => "E-mail",
"Organization" => "Organizacija",
"Work" => "Posao",
"Home" => "Kuća",
"Mobile" => "Mobitel",
"Text" => "Tekst",
"Voice" => "Glasovno",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Pager",
"This is not your contact." => "Ovo nije vaš kontakt.",
"This card is not RFC compatible." => "Ova kartica nije sukladna prema RFC direktivama.",
"This card does not contain a photo." => "Ova kartica ne sadrži fotografiju.",
"Add Contact" => "Dodaj kontakt",
"Group" => "Grupa",
"Name" => "Naziv",
"PO Box" => "Poštanski Pretinac",
"Extended" => "Prošireno",
"Street" => "Ulica",
"City" => "Grad",
"Region" => "Regija",
"Zipcode" => "Poštanski broj",
"Country" => "Država",
"Create Contact" => "Izradi Kontakt",
"Edit" => "Uredi",
"Delete" => "Obriši",
"Birthday" => "Rođendan",
"Phone" => "Telefon"
);

View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Ez nem a te címjegyzéked.",
"Contact could not be found." => "Kapcsolat nem található.",
"vCard could not be read." => "A vCard-ot nem lehet olvasni.",
"Information about vCard is incorrect. Please reload the page." => "A vCardról szóló információ helytelen. Töltsd újra az oldalt.",
"Address" => "Cím",
"Telephone" => "Telefonszám",
"Email" => "E-mail",
"Organization" => "Organizáció",
"Work" => "Munka",
"Home" => "Otthon",
"Mobile" => "Mobiltelefonszám",
"Text" => "Szöveg",
"Voice" => "Hang",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Lapozó",
"This is not your contact." => "Nem a te kapcsolatod.",
"This card is not RFC compatible." => "A kártya nem RFC kompatibilis.",
"This card does not contain a photo." => "A kártya nem tartlmaz fényképet.",
"Add Contact" => "Kontakt hozzáadása",
"Group" => "Csoport",
"Name" => "Név",
"PO Box" => "Postafiók",
"Extended" => "Kiterjesztett",
"Street" => "Utca",
"City" => "Helység",
"Region" => "Megye",
"Zipcode" => "Irányítószám",
"Country" => "Ország",
"Create Contact" => "Kontakt létrehozása",
"Edit" => "Szerkesztés",
"Delete" => "Törlés",
"Birthday" => "Születésnap",
"Phone" => "Telefonszám"
);

32
apps/contacts/l10n/ia.php Normal file
View File

@ -0,0 +1,32 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Iste non es tu libro de adresses",
"Contact could not be found." => "Contacto non poterea esser legite",
"vCard could not be read." => "vCard non poterea esser legite.",
"Address" => "Adresse",
"Telephone" => "Telephono",
"Email" => "E-posta",
"Organization" => "Organisation",
"Work" => "Travalio",
"Home" => "Domo",
"Text" => "Texto",
"Voice" => "Voce",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Pager",
"This is not your contact." => "Iste non es tu contacto",
"This card is not RFC compatible." => "Iste carta non es compatibile con RFC",
"Add Contact" => "Adder contacto",
"Group" => "Gruppo",
"Name" => "Nomine",
"PO Box" => "Cassa postal",
"Street" => "Strata",
"City" => "Citate",
"Region" => "Region",
"Zipcode" => "Codice postal",
"Country" => "Pais",
"Create Contact" => "Crear contacto",
"Edit" => "Modificar",
"Delete" => "Deler",
"Birthday" => "Anniversario",
"Phone" => "Phono"
);

View File

@ -1,38 +1,36 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"You need to log in." => "Bisogna effettuare il login.",
"This is not your addressbook." => "Questa non è la tua rubrica.", "This is not your addressbook." => "Questa non è la tua rubrica.",
"Contact could not be found." => "Il contatto non può essere trovato", "Contact could not be found." => "Il contatto non può essere trovato",
"This is not your contact." => "Questo non è un tuo contatto.",
"vCard could not be read." => "La vCard non può essere letta", "vCard could not be read." => "La vCard non può essere letta",
"Information about vCard is incorrect. Please reload the page." => "Informazioni sulla vCard incorrette. Ricaricare la pagina.", "Information about vCard is incorrect. Please reload the page." => "Informazioni sulla vCard incorrette. Ricaricare la pagina.",
"This card is not RFC compatible." => "Questa card non è compatibile con il protocollo RFC.",
"This card does not contain a photo." => "Questa card non contiene una foto.",
"Add Contact" => "Aggiungi contatto",
"Group" => "Gruppo",
"Name" => "Nome",
"Create Contact" => "Crea contatto",
"Address" => "Indirizzo", "Address" => "Indirizzo",
"Telephone" => "Telefono", "Telephone" => "Telefono",
"Email" => "Email", "Email" => "Email",
"Organization" => "Organizzazione", "Organization" => "Organizzazione",
"Work" => "Lavoro", "Work" => "Lavoro",
"Home" => "Casa", "Home" => "Casa",
"PO Box" => "PO Box", "Mobile" => "Cellulare",
"Text" => "Testo",
"Voice" => "Voce",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Cercapersone",
"This is not your contact." => "Questo non è un tuo contatto.",
"This card is not RFC compatible." => "Questa card non è compatibile con il protocollo RFC.",
"This card does not contain a photo." => "Questa card non contiene una foto.",
"Add Contact" => "Aggiungi contatto",
"Group" => "Gruppo",
"Name" => "Nome",
"PO Box" => "Casella postale",
"Extended" => "Estendi", "Extended" => "Estendi",
"Street" => "Via", "Street" => "Via",
"City" => "Città", "City" => "Città",
"Region" => "Regione", "Region" => "Regione",
"Zipcode" => "CAP", "Zipcode" => "CAP",
"Country" => "Stato", "Country" => "Stato",
"Mobile" => "Cellulare", "Create Contact" => "Crea contatto",
"Text" => "Testo", "Edit" => "Modifica",
"Voice" => "Voce",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Pager",
"Delete" => "Cancella", "Delete" => "Cancella",
"Add Property" => "Aggiungi proprietà",
"Birthday" => "Compleanno", "Birthday" => "Compleanno",
"Phone" => "Telefono", "Phone" => "Telefono"
"Edit" => "Modifica"
); );

View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "これはあなたの電話帳ではありません。",
"Contact could not be found." => "連絡先を見つける事ができません。",
"vCard could not be read." => "vCardの読み込みに失敗しました。",
"Information about vCard is incorrect. Please reload the page." => "vCardの情報に誤りがあります。ページをリロードして下さい。",
"Address" => "住所",
"Telephone" => "電話番号",
"Email" => "メールアドレス",
"Organization" => "所属",
"Work" => "勤務先",
"Home" => "住居",
"Mobile" => "携帯電話",
"Text" => "TTY TDD",
"Voice" => "音声番号",
"Fax" => "FAX",
"Video" => "テレビ電話",
"Pager" => "ポケベル",
"This is not your contact." => "あなたの連絡先ではありません。",
"This card is not RFC compatible." => "このカードはRFCに準拠していません。",
"This card does not contain a photo." => "このカードは写真を含んでおりません。",
"Add Contact" => "連絡先の追加",
"Group" => "グループ",
"Name" => "氏名",
"PO Box" => "私書箱",
"Extended" => "拡張番地",
"Street" => "街路番地",
"City" => "都市",
"Region" => "地域",
"Zipcode" => "郵便番号",
"Country" => "国名",
"Create Contact" => "追加",
"Edit" => "編集",
"Delete" => "削除",
"Birthday" => "生年月日",
"Phone" => "電話番号"
);

36
apps/contacts/l10n/lb.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Dat do ass net däin Adressbuch.",
"Contact could not be found." => "Konnt den Kontakt net fannen.",
"vCard could not be read." => "vCard konnt net gelies ginn.",
"Information about vCard is incorrect. Please reload the page." => "Informatioun iwwert vCard ass net richteg. Lued d'Säit wegl nei.",
"Address" => "Adress",
"Telephone" => "Telefon's Nummer",
"Email" => "Email",
"Organization" => "Firma",
"Work" => "Aarbecht",
"Home" => "Doheem",
"Mobile" => "GSM",
"Text" => "SMS",
"Voice" => "Voice",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Pager",
"This is not your contact." => "Dat do ass net däin Kontakt.",
"This card is not RFC compatible." => "Déi do Kaart ass net RFC kompatibel.",
"This card does not contain a photo." => "Déi do Kaart huet keng Foto.",
"Add Contact" => "Kontakt bäisetzen",
"Group" => "Grupp",
"Name" => "Numm",
"PO Box" => "Postleetzuel",
"Extended" => "Erweidert",
"Street" => "Strooss",
"City" => "Staat",
"Region" => "Regioun",
"Zipcode" => "Postleetzuel",
"Country" => "Land",
"Create Contact" => "Kontakt erstellen",
"Edit" => "Editéieren",
"Delete" => "Läschen",
"Birthday" => "Gebuertsdag",
"Phone" => "Telefon"
);

View File

@ -0,0 +1,33 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Tai ne jūsų adresų knygelė.",
"Contact could not be found." => "Kontaktas nerastas",
"vCard could not be read." => "Nenuskaitoma vCard.",
"Information about vCard is incorrect. Please reload the page." => "Informacija apie vCard yra neteisinga. ",
"Address" => "Adresas",
"Telephone" => "Telefonas",
"Email" => "El. paštas",
"Organization" => "Organizacija",
"Work" => "Darbo",
"Home" => "Namų",
"Mobile" => "Mobilusis",
"Text" => "Tekstas",
"Voice" => "Balso",
"Fax" => "Faksas",
"Video" => "Vaizdo",
"Pager" => "Pranešimų gaviklis",
"This is not your contact." => "Tai ne jūsų kontaktas",
"Add Contact" => "Pridėti kontaktą",
"Group" => "Grupė",
"Name" => "Vardas",
"PO Box" => "Pašto dėžutė",
"Street" => "Gatvė",
"City" => "Miestas",
"Region" => "Regionas",
"Zipcode" => "Pašto indeksas",
"Country" => "Šalis",
"Create Contact" => "Sukurti kontaktą",
"Edit" => "Keisti",
"Delete" => "Trinti",
"Birthday" => "Gimtadienis",
"Phone" => "Telefonas"
);

53
apps/contacts/l10n/nl.php Normal file
View File

@ -0,0 +1,53 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Dit is niet uw adresboek.",
"Contact could not be found." => "Contact kon niet worden gevonden.",
"vCard could not be read." => "vCard kon niet worden gelezen.",
"Information about vCard is incorrect. Please reload the page." => "Informatie over de vCard is onjuist. Herlaad de pagina.",
"Address" => "Adres",
"Telephone" => "Telefoon",
"Email" => "E-mail",
"Organization" => "Organisatie",
"Work" => "Werk",
"Home" => "Thuis",
"Mobile" => "Mobiel",
"Text" => "Tekst",
"Voice" => "Stem",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Pieper",
"This is not your contact." => "Dit is niet uw contactpersoon.",
"This card is not RFC compatible." => "Deze kaart is niet RFC compatibel.",
"This card does not contain a photo." => "Deze contact bevat geen foto.",
"Add Contact" => "Contact toevoegen",
"Address Books" => "Adresboeken",
"Group" => "Groep",
"Name" => "Naam",
"Number" => "Nummer",
"Type" => "Type",
"PO Box" => "Postbus",
"Extended" => "Uitgebreide",
"Street" => "Straat",
"City" => "Stad",
"Region" => "Regio",
"Zipcode" => "Postcode",
"Country" => "Land",
"Create Contact" => "Contact aanmaken",
"Choose active Address Books" => "Kies actief Adresboek",
"New Address Book" => "Nieuw Adresboek",
"CardDav Link" => "CardDav Link",
"Download" => "Download",
"Edit" => "Bewerken",
"Delete" => "Verwijderen",
"Delete contact" => "Verwijder contact",
"Add" => "Voeg toe",
"Edit Address Book" => "Bewerk Adresboek",
"Displayname" => "Weergavenaam",
"Active" => "Actief",
"Save" => "Opslaan",
"Submit" => "Opslaan",
"Cancel" => "Anuleren",
"Birthday" => "Verjaardag",
"Preferred" => "Voorkeur",
"Phone" => "Telefoon",
"Update" => "Vernieuwe"
);

View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Dette er ikkje di adressebok.",
"Contact could not be found." => "Fann ikkje kontakten.",
"vCard could not be read." => "Klarte ikkje å lesa vCard-et.",
"Information about vCard is incorrect. Please reload the page." => "Informasjonen om vCard-et er feil, ver venleg og last sida på nytt.",
"Address" => "Adresse",
"Telephone" => "Telefonnummer",
"Email" => "Epost",
"Organization" => "Organisasjon",
"Work" => "Arbeid",
"Home" => "Heime",
"Mobile" => "Mobil",
"Text" => "Tekst",
"Voice" => "Tale",
"Fax" => "Faks",
"Video" => "Video",
"Pager" => "Personsøkjar",
"This is not your contact." => "Dette er ikkje din kontakt.",
"This card is not RFC compatible." => "Dette kortet er ikkje RFC-kompatibelt",
"This card does not contain a photo." => "Dette kortet har ingen bilete.",
"Add Contact" => "Legg til kontakt",
"Group" => "Gruppe",
"Name" => "Namn",
"PO Box" => "Postboks",
"Extended" => "Utvida",
"Street" => "Gate",
"City" => "Stad",
"Region" => "Region/fylke",
"Zipcode" => "Postnummer",
"Country" => "Land",
"Create Contact" => "Opprett kontakt",
"Edit" => "Endra",
"Delete" => "Slett",
"Birthday" => "Bursdag",
"Phone" => "Telefonnummer"
);

36
apps/contacts/l10n/pl.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "To nie jest twoja książka adresowa.",
"Contact could not be found." => "Kontakt nie znaleziony.",
"vCard could not be read." => "Nie można odczytać vCard.",
"Information about vCard is incorrect. Please reload the page." => "Informacje o vCard są nieprawidłowe. Proszę odświeżyć stronę.",
"Address" => "Adres",
"Telephone" => "Telefon",
"Email" => "E-mail",
"Organization" => "Organizacja",
"Work" => "Praca",
"Home" => "Dom",
"Mobile" => "Komórka",
"Text" => "Tekst",
"Voice" => "Połączenie głosowe",
"Fax" => "Faks",
"Video" => "Połączenie wideo",
"Pager" => "Pager",
"This is not your contact." => "To nie jest twój kontakt.",
"This card is not RFC compatible." => "Ta karta nie jest zgodna ze specyfikacją RFC.",
"This card does not contain a photo." => "Ta karta nie zawiera zdjęć.",
"Add Contact" => "Dodaj kontakt",
"Group" => "Grupa",
"Name" => "Nazwisko",
"PO Box" => "PO Box",
"Extended" => "Rozszerzony",
"Street" => "Ulica",
"City" => "Miasto",
"Region" => "Region",
"Zipcode" => "Kod pocztowy",
"Country" => "Kraj",
"Create Contact" => "Utwórz kontakt",
"Edit" => "Edytuj",
"Delete" => "Usuń",
"Birthday" => "Urodziny",
"Phone" => "Telefon"
);

View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Este não é o seu agenda de endereços.",
"Contact could not be found." => "Contato não pôde ser encontrado.",
"vCard could not be read." => "vCard não pôde ser lida.",
"Information about vCard is incorrect. Please reload the page." => "Informações sobre vCard é incorreta. Por favor, recarregue a página.",
"Address" => "Endereço",
"Telephone" => "Telefone",
"Email" => "E-mail",
"Organization" => "Organização",
"Work" => "Trabalho",
"Home" => "Home",
"Mobile" => "Móvel",
"Text" => "Texto",
"Voice" => "Voz",
"Fax" => "Fax",
"Video" => "Vídeo",
"Pager" => "Pager",
"This is not your contact." => "Este não é o seu contato.",
"This card is not RFC compatible." => "Este cartão não é compatível com RFC.",
"This card does not contain a photo." => "Este cartão não contém uma foto.",
"Add Contact" => "Adicionar Contato",
"Group" => "Grupo",
"Name" => "Nome",
"PO Box" => "Caixa Postal",
"Extended" => "Estendido",
"Street" => "Rua",
"City" => "Cidade",
"Region" => "Região",
"Zipcode" => "CEP",
"Country" => "País",
"Create Contact" => "Criar Contato",
"Edit" => "Editar",
"Delete" => "Excluir",
"Birthday" => "Aniversário",
"Phone" => "Telefone"
);

View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Esta não é a sua lista de contactos",
"Contact could not be found." => "O contacto não foi encontrado",
"vCard could not be read." => "o vCard não pode ser lido",
"Information about vCard is incorrect. Please reload the page." => "A informação sobre o vCard está incorreta. Por favor refresque a página",
"Address" => "Morada",
"Telephone" => "Telefone",
"Email" => "Email",
"Organization" => "Organização",
"Work" => "Trabalho",
"Home" => "Casa",
"Mobile" => "Telemovel",
"Text" => "Texto",
"Voice" => "Voz",
"Fax" => "Fax",
"Video" => "Vídeo",
"Pager" => "Pager",
"This is not your contact." => "Este não é o seu contacto",
"This card is not RFC compatible." => "Este cartão não é compativel com RFC",
"This card does not contain a photo." => "Este cartão não possui foto",
"Add Contact" => "Adicionar Contacto",
"Group" => "Grupo",
"Name" => "Nome",
"PO Box" => "Apartado",
"Extended" => "Extendido",
"Street" => "Rua",
"City" => "Cidade",
"Region" => "Região",
"Zipcode" => "Código Postal",
"Country" => "País",
"Create Contact" => "Criar Contacto",
"Edit" => "Editar",
"Delete" => "Apagar",
"Birthday" => "Aniversário",
"Phone" => "Telefone"
);

36
apps/contacts/l10n/ro.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Nu se găsește în agendă.",
"Contact could not be found." => "Contactul nu a putut fi găsit.",
"vCard could not be read." => "vCard nu poate fi citit.",
"Information about vCard is incorrect. Please reload the page." => "Informațiile despre vCard sunt incorecte. Reîncărcați pagina.",
"Address" => "Adresă",
"Telephone" => "Telefon",
"Email" => "Email",
"Organization" => "Organizație",
"Work" => "Servici",
"Home" => "Acasă",
"Mobile" => "Mobil",
"Text" => "Text",
"Voice" => "Voce",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Pager",
"This is not your contact." => "Nu este contactul tău",
"This card is not RFC compatible." => "Nu este compatibil RFC",
"This card does not contain a photo." => "Nu conține o fotografie",
"Add Contact" => "Adaugă contact",
"Group" => "Grup",
"Name" => "Nume",
"PO Box" => "CP",
"Extended" => "Extins",
"Street" => "Stradă",
"City" => "Oraș",
"Region" => "Regiune",
"Zipcode" => "Cod poștal",
"Country" => "Țară",
"Create Contact" => "Crează contact",
"Edit" => "Editează",
"Delete" => "Șterge",
"Birthday" => "Zi de naștere",
"Phone" => "Telefon"
);

36
apps/contacts/l10n/ru.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Это не ваша адресная книга.",
"Contact could not be found." => "Контакт не найден.",
"vCard could not be read." => "Не удалось прочесть vCard.",
"Information about vCard is incorrect. Please reload the page." => "Информация о vCard некорректна. Пожалуйста, обновите страницу.",
"Address" => "Адрес",
"Telephone" => "Телефон",
"Email" => "Ящик эл. почты",
"Organization" => "Организация",
"Work" => "Рабочий",
"Home" => "Домашний",
"Mobile" => "Мобильный",
"Text" => "Текст",
"Voice" => "Голос",
"Fax" => "Факс",
"Video" => "Видео",
"Pager" => "Пейджер",
"This is not your contact." => "Это не контакт.",
"This card is not RFC compatible." => "Эта карточка не соответствует RFC.",
"This card does not contain a photo." => "Эта карточка не содержит фотографии.",
"Add Contact" => "Добавить Контакт",
"Group" => "Группа",
"Name" => "Имя",
"PO Box" => "АО",
"Extended" => "Расширенный",
"Street" => "Улица",
"City" => "Город",
"Region" => "Область",
"Zipcode" => "Почтовый индекс",
"Country" => "Страна",
"Create Contact" => "Создать Контакт",
"Edit" => "Редактировать",
"Delete" => "Удалить",
"Birthday" => "День рождения",
"Phone" => "Телефон"
);

View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Toto nie je váš adresár.",
"Contact could not be found." => "Kontakt nebol nájdený.",
"vCard could not be read." => "vCard nemôže byť prečítaná.",
"Information about vCard is incorrect. Please reload the page." => "Informácie o vCard sú neplatné. Prosím obnovte stránku.",
"Address" => "Adresa",
"Telephone" => "Telefón",
"Email" => "E-mail",
"Organization" => "Organizácia",
"Work" => "Práca",
"Home" => "Domov",
"Mobile" => "Mobil",
"Text" => "SMS",
"Voice" => "Odkazová schránka",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Pager",
"This is not your contact." => "Toto nie je váš kontakt.",
"This card is not RFC compatible." => "Táto karta nie je kompatibilná s RFC.",
"This card does not contain a photo." => "Táto karta neobsahuje fotografiu.",
"Add Contact" => "Pridať Kontakt.",
"Group" => "Skupina",
"Name" => "Meno",
"PO Box" => "PO Box",
"Extended" => "Rozšírené",
"Street" => "Ulica",
"City" => "Mesto",
"Region" => "Región",
"Zipcode" => "PSČ",
"Country" => "Krajina",
"Create Contact" => "Vytvoriť Kontakt.",
"Edit" => "Upraviť",
"Delete" => "Odstrániť",
"Birthday" => "Narodeniny",
"Phone" => "Telefón"
);

36
apps/contacts/l10n/sl.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "To ni vaš adresar.",
"Contact could not be found." => "Kontakta ni bilo mogoče najti.",
"vCard could not be read." => "vVizitko (vCard) ni bilo mogoče prebrati.",
"Information about vCard is incorrect. Please reload the page." => "Informacije o vVizitki (vCard) niso pravilne, Prosimo ponovno naložite okno.",
"Address" => "Naslov",
"Telephone" => "Telefon",
"Email" => "Email",
"Organization" => "Organizacija",
"Work" => "Delo",
"Home" => "Doma",
"Mobile" => "Mobitel",
"Text" => "Tekst",
"Voice" => "Glas- Voice",
"Fax" => "Faks",
"Video" => "Video",
"Pager" => "Pager",
"This is not your contact." => "To ni vaš kontakt",
"This card is not RFC compatible." => "Ta karta ni RFC kopatibilna.",
"This card does not contain a photo." => "Ta karta ne vsebuje slike.",
"Add Contact" => "Dodaj Kontakt",
"Group" => "Skupina",
"Name" => "Ime",
"PO Box" => "PO Box",
"Extended" => "Razširjeno.",
"Street" => "Ulica",
"City" => "Mesto",
"Region" => "Regija",
"Zipcode" => "Poštna št.",
"Country" => "Dežela",
"Create Contact" => "Ustvari Kontakt",
"Edit" => "Uredi",
"Delete" => "Izbriši",
"Birthday" => "Rojstni Dan",
"Phone" => "Telefon"
);

36
apps/contacts/l10n/sr.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Ово није ваш адресар.",
"Contact could not be found." => "Контакт се не може наћи.",
"vCard could not be read." => "вКарта се не може читати.",
"Information about vCard is incorrect. Please reload the page." => "Подаци о вКарти су неисправни. Поново учитајте страницу.",
"Address" => "Адреса",
"Telephone" => "Телефон",
"Email" => "Е-маил",
"Organization" => "Организација",
"Work" => "Посао",
"Home" => "Кућа",
"Mobile" => "Мобилни",
"Text" => "Текст",
"Voice" => "Глас",
"Fax" => "Факс",
"Video" => "Видео",
"Pager" => "Пејџер",
"This is not your contact." => "Ово није ваш контакт.",
"This card is not RFC compatible." => "Ова карта није сагласна са РФЦ-ом.",
"This card does not contain a photo." => "Ова карта не садржи фотографију.",
"Add Contact" => "Додај контакт",
"Group" => "Група",
"Name" => "Име",
"PO Box" => "Поштански број",
"Extended" => "Прошири",
"Street" => "Улица",
"City" => "Град",
"Region" => "Регија",
"Zipcode" => "Зип код",
"Country" => "Земља",
"Create Contact" => "Направи контакт",
"Edit" => "Уреди",
"Delete" => "Обриши",
"Birthday" => "Рођендан",
"Phone" => "Телефон"
);

View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Ovo nije vaš adresar.",
"Contact could not be found." => "Kontakt se ne može naći.",
"vCard could not be read." => "vKarta se ne može čitati.",
"Information about vCard is incorrect. Please reload the page." => "Podaci o vKarti su neispravni. Ponovo učitajte stranicu.",
"Address" => "Adresa",
"Telephone" => "Telefon",
"Email" => "E-mail",
"Organization" => "Organizacija",
"Work" => "Posao",
"Home" => "Kuća",
"Mobile" => "Mobilni",
"Text" => "Tekst",
"Voice" => "Glas",
"Fax" => "Faks",
"Video" => "Video",
"Pager" => "Pejdžer",
"This is not your contact." => "Ovo nije vaš kontakt.",
"This card is not RFC compatible." => "Ova karta nije saglasna sa RFC-om.",
"This card does not contain a photo." => "Ova karta ne sadrži fotografiju.",
"Add Contact" => "Dodaj kontakt",
"Group" => "Grupa",
"Name" => "Ime",
"PO Box" => "Poštanski broj",
"Extended" => "Proširi",
"Street" => "Ulica",
"City" => "Grad",
"Region" => "Regija",
"Zipcode" => "Zip kod",
"Country" => "Zemlja",
"Create Contact" => "Napravi kontakt",
"Edit" => "Uredi",
"Delete" => "Obriši",
"Birthday" => "Rođendan",
"Phone" => "Telefon"
);

36
apps/contacts/l10n/sv.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Det här är inte din adressbok.",
"Contact could not be found." => "Kontakt kunde inte hittas.",
"vCard could not be read." => "vCard kunde inte läsas in.",
"Information about vCard is incorrect. Please reload the page." => "Information om vCard är felaktigt. Vänligen ladda om sidan.",
"Address" => "Adress",
"Telephone" => "Telefon",
"Email" => "E-post",
"Organization" => "Organisation",
"Work" => "Arbete",
"Home" => "Hem",
"Mobile" => "Mobil",
"Text" => "Text",
"Voice" => "Röst",
"Fax" => "Fax",
"Video" => "Video",
"Pager" => "Personsökare",
"This is not your contact." => "Det här är inte din kontakt.",
"This card is not RFC compatible." => "Detta kort är inte RFC-kompatibelt.",
"This card does not contain a photo." => "Detta kort innehåller inte något foto.",
"Add Contact" => "Lägg till kontakt",
"Group" => "Grupp",
"Name" => "Namn",
"PO Box" => "Postbox",
"Extended" => "Utökad",
"Street" => "Gata",
"City" => "Stad",
"Region" => "Län",
"Zipcode" => "Postnummer",
"Country" => "Land",
"Create Contact" => "Skapa kontakt",
"Edit" => "Redigera",
"Delete" => "Radera",
"Birthday" => "Födelsedag",
"Phone" => "Telefon"
);

36
apps/contacts/l10n/tr.php Normal file
View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "Bu sizin adres defteriniz değil.",
"Contact could not be found." => "Kişi bulunamadı.",
"vCard could not be read." => "vCard okunamadı.",
"Information about vCard is incorrect. Please reload the page." => "vCard bilgileri doğru değil. Lütfen sayfayı yenileyin.",
"Address" => "Adres",
"Telephone" => "Telefon",
"Email" => "Eposta",
"Organization" => "Organizasyon",
"Work" => "İş",
"Home" => "Ev",
"Mobile" => "Mobil",
"Text" => "Metin",
"Voice" => "Ses",
"Fax" => "Faks",
"Video" => "Video",
"Pager" => "Sayfalayıcı",
"This is not your contact." => "Bu sizin kişiniz değil.",
"This card is not RFC compatible." => "Bu kart RFC uyumlu değil.",
"This card does not contain a photo." => "Bu kart resim içermiyor.",
"Add Contact" => "Kişi Ekle",
"Group" => "Grup",
"Name" => "Ad",
"PO Box" => "Posta Kutusu",
"Extended" => "Uzatılmış",
"Street" => "Sokak",
"City" => "Şehir",
"Region" => "Bölge",
"Zipcode" => "Posta kodu",
"Country" => "Ülke",
"Create Contact" => "Kişi Oluştur",
"Edit" => "Düzenle",
"Delete" => "Sil",
"Birthday" => "Doğum günü",
"Phone" => "Telefon"
);

View File

@ -0,0 +1,21 @@
../appinfo/app.php
../ajax/activation.php
../ajax/addbook.php
../ajax/addcard.php
../ajax/addproperty.php
../ajax/createaddressbook.php
../ajax/deletebook.php
../ajax/deleteproperty.php
../ajax/getdetails.php
../ajax/setproperty.php
../ajax/updateaddressbook.php
../lib/app.php
../templates/index.php
../templates/part.addcardform.php
../templates/part.chooseaddressbook.php
../templates/part.chooseaddressbook.rowfields.php
../templates/part.details.php
../templates/part.editaddressbook.php
../templates/part.property.php
../templates/part.setpropertyform.php
../templates/settings.php

View File

@ -0,0 +1,36 @@
<?php $TRANSLATIONS = array(
"This is not your addressbook." => "这不是您的地址簿。",
"Contact could not be found." => "无法找到联系人。",
"vCard could not be read." => "vCard 无法读取。",
"Information about vCard is incorrect. Please reload the page." => "vCard 的信息不正确。请重新加载页面。",
"Address" => "地址",
"Telephone" => "电话",
"Email" => "电子邮件",
"Organization" => "组织",
"Work" => "工作",
"Home" => "家庭",
"Mobile" => "移动电话",
"Text" => "文本",
"Voice" => "语音",
"Fax" => "传真",
"Video" => "视频",
"Pager" => "传呼机",
"This is not your contact." => "这不是您的联系人。",
"This card is not RFC compatible." => "这张名片和RFC 标准不兼容。",
"This card does not contain a photo." => "这张名片不包含照片。",
"Add Contact" => "添加联系人",
"Group" => "分组",
"Name" => "名称",
"PO Box" => "邮箱",
"Extended" => "扩展",
"Street" => "街道",
"City" => "城市",
"Region" => "地区",
"Zipcode" => "邮编",
"Country" => "国家",
"Create Contact" => "创建联系人",
"Edit" => "编辑",
"Delete" => "删除",
"Birthday" => "生日",
"Phone" => "电话"
);

View File

@ -203,15 +203,6 @@ class OC_Contacts_Addressbook{
while( $row = $result->fetchRow()){ while( $row = $result->fetchRow()){
$addressbooks[] = $row; $addressbooks[] = $row;
} }
/*
foreach( $active as $aid ){
$stmt = OC_DB::prepare( 'SELECT * FROM *PREFIX*contacts_addressbooks WHERE id = ? ORDER BY displayname' );
$result = $stmt->execute(array($aid,));
while( $row = $result->fetchRow()){
$addressbooks[] = $row;
}
}*/
return $addressbooks; return $addressbooks;
} }
@ -240,6 +231,7 @@ class OC_Contacts_Addressbook{
unset($openaddressbooks[array_search($id, $openaddressbooks)]); unset($openaddressbooks[array_search($id, $openaddressbooks)]);
} }
} }
// NOTE: Ugly hack...
$openaddressbooks = self::cleanArray($openaddressbooks, false); $openaddressbooks = self::cleanArray($openaddressbooks, false);
sort($openaddressbooks, SORT_NUMERIC); sort($openaddressbooks, SORT_NUMERIC);
// FIXME: I alway end up with a ';' prepending when imploding the array..? // FIXME: I alway end up with a ';' prepending when imploding the array..?
@ -264,6 +256,7 @@ class OC_Contacts_Addressbook{
* @return boolean * @return boolean
*/ */
public static function delete($id){ public static function delete($id){
// FIXME: There's no error checking at all.
self::setActive($id, false); self::setActive($id, false);
$stmt = OC_DB::prepare( 'DELETE FROM *PREFIX*contacts_addressbooks WHERE id = ?' ); $stmt = OC_DB::prepare( 'DELETE FROM *PREFIX*contacts_addressbooks WHERE id = ?' );
$stmt->execute(array($id)); $stmt->execute(array($id));

View File

@ -56,15 +56,14 @@ class OC_Contacts_App{
return $card; return $card;
} }
/**
* @brief Gets the VCard as text
* @returns The card or null if the card could not be parsed.
*/
public static function getContactVCard($id){ public static function getContactVCard($id){
$card = self::getContactObject( $id ); $card = self::getContactObject( $id );
$vcard = OC_VObject::parse($card['carddata']); $vcard = OC_VObject::parse($card['carddata']);
// Check if the card is valid
if(is_null($vcard)){
OC_JSON::error(array('data' => array( 'message' => self::$l10n->t('vCard could not be read.'))));
exit();
}
return $vcard; return $vcard;
} }
@ -73,6 +72,7 @@ class OC_Contacts_App{
for($i=0;$i<count($vcard->children);$i++){ for($i=0;$i<count($vcard->children);$i++){
if(md5($vcard->children[$i]->serialize()) == $checksum ){ if(md5($vcard->children[$i]->serialize()) == $checksum ){
$line = $i; $line = $i;
break;
} }
} }
if(is_null($line)){ if(is_null($line)){

View File

@ -0,0 +1,29 @@
<?php
class OC_Search_Provider_Contacts extends OC_Search_Provider{
function search($query){
$addressbooks = OC_Contacts_Addressbook::all(OC_User::getUser(), 1);
// if(count($calendars)==0 || !OC_App::isEnabled('contacts')){
// //return false;
// }
// NOTE: Does the following do anything
$results=array();
$searchquery=array();
if(substr_count($query, ' ') > 0){
$searchquery = explode(' ', $query);
}else{
$searchquery[] = $query;
}
$l = new OC_l10n('contacts');
foreach($addressbooks as $addressbook){
$vcards = OC_Contacts_VCard::all($addressbook['id']);
foreach($vcards as $vcard){
if(substr_count(strtolower($vcard['fullname']), strtolower($query)) > 0){
$link = OC_Helper::linkTo('apps/contacts', 'index.php?id='.urlencode($vcard['id']));
$results[]=new OC_Search_Result($vcard['fullname'],'', $link,$l->t('Contact'));//$name,$text,$link,$type
}
}
}
return $results;
}
}
new OC_Search_Provider_Contacts();

View File

@ -111,16 +111,29 @@ class OC_Contacts_VCard{
if(is_null($uid)){ if(is_null($uid)){
$card->setUID(); $card->setUID();
$uid = $card->getAsString('UID'); $uid = $card->getAsString('UID');
$data = $card->serialize(); //$data = $card->serialize();
}; };
$uri = $uid.'.vcf'; $uri = $uid.'.vcf';
// Add product ID.
$prodid = trim($card->getAsString('PRODID'));
if(!$prodid) {
$appinfo = $info=OC_App::getAppInfo('contacts');
$prodid = 'PRODID:-//ownCloud//NONSGML '.$appinfo['name'].' '.$appinfo['version'].'//EN';
$card->setString('PRODID', $prodid);
}
// VCARD must have a version // VCARD must have a version
$version = $card->getAsString('VERSION'); $version = $card->getAsString('VERSION');
// Add version if needed // Add version if needed
if(is_null($version)){ if(!$version){
$card->add(new Sabre_VObject_Property('VERSION','3.0')); $card->add(new Sabre_VObject_Property('VERSION','3.0'));
$data = $card->serialize(); //$data = $card->serialize();
} }/* else {
OC_Log::write('contacts','OC_Contacts_VCard::add. Version already set as: '.$version,OC_Log::DEBUG);
}*/
$now = new DateTime;
$card->setString('REV', $now->format(DateTime::W3C));
$data = $card->serialize();
} }
else{ else{
// that's hard. Creating a UID and not saving it // that's hard. Creating a UID and not saving it
@ -130,10 +143,11 @@ class OC_Contacts_VCard{
$stmt = OC_DB::prepare( 'INSERT INTO *PREFIX*contacts_cards (addressbookid,fullname,carddata,uri,lastmodified) VALUES(?,?,?,?,?)' ); $stmt = OC_DB::prepare( 'INSERT INTO *PREFIX*contacts_cards (addressbookid,fullname,carddata,uri,lastmodified) VALUES(?,?,?,?,?)' );
$result = $stmt->execute(array($id,$fn,$data,$uri,time())); $result = $stmt->execute(array($id,$fn,$data,$uri,time()));
$newid = OC_DB::insertid('*PREFIX*contacts_cards');
OC_Contacts_Addressbook::touch($id); OC_Contacts_Addressbook::touch($id);
return OC_DB::insertid('*PREFIX*contacts_cards'); return $newid;
} }
/** /**
@ -150,6 +164,7 @@ class OC_Contacts_VCard{
foreach($card->children as $property){ foreach($card->children as $property){
if($property->name == 'FN'){ if($property->name == 'FN'){
$fn = $property->value; $fn = $property->value;
break;
} }
} }
} }
@ -177,9 +192,15 @@ class OC_Contacts_VCard{
foreach($card->children as $property){ foreach($card->children as $property){
if($property->name == 'FN'){ if($property->name == 'FN'){
$fn = $property->value; $fn = $property->value;
break;
} }
} }
} else {
return false;
} }
$now = new DateTime;
$card->setString('REV', $now->format(DateTime::W3C));
$data = $card->serialize();
$stmt = OC_DB::prepare( 'UPDATE *PREFIX*contacts_cards SET fullname = ?,carddata = ?, lastmodified = ? WHERE id = ?' ); $stmt = OC_DB::prepare( 'UPDATE *PREFIX*contacts_cards SET fullname = ?,carddata = ?, lastmodified = ? WHERE id = ?' );
$result = $stmt->execute(array($fn,$data,time(),$id)); $result = $stmt->execute(array($fn,$data,time(),$id));
@ -205,9 +226,13 @@ class OC_Contacts_VCard{
foreach($card->children as $property){ foreach($card->children as $property){
if($property->name == 'FN'){ if($property->name == 'FN'){
$fn = $property->value; $fn = $property->value;
break;
} }
} }
} }
$now = new DateTime;
$card->setString('REV', $now->format(DateTime::W3C));
$data = $card->serialize();
$stmt = OC_DB::prepare( 'UPDATE *PREFIX*contacts_cards SET fullname = ?,carddata = ?, lastmodified = ? WHERE id = ?' ); $stmt = OC_DB::prepare( 'UPDATE *PREFIX*contacts_cards SET fullname = ?,carddata = ?, lastmodified = ? WHERE id = ?' );
$result = $stmt->execute(array($fn,$data,time(),$oldcard['id'])); $result = $stmt->execute(array($fn,$data,time(),$oldcard['id']));
@ -223,6 +248,7 @@ class OC_Contacts_VCard{
* @return boolean * @return boolean
*/ */
public static function delete($id){ public static function delete($id){
// FIXME: Add error checking.
$stmt = OC_DB::prepare( 'DELETE FROM *PREFIX*contacts_cards WHERE id = ?' ); $stmt = OC_DB::prepare( 'DELETE FROM *PREFIX*contacts_cards WHERE id = ?' );
$stmt->execute(array($id)); $stmt->execute(array($id));
@ -244,6 +270,7 @@ class OC_Contacts_VCard{
* @return boolean * @return boolean
*/ */
public static function deleteFromDAVData($aid,$uri){ public static function deleteFromDAVData($aid,$uri){
// FIXME: Add error checking. Deleting a card gives an Kontact/Akonadi error.
$stmt = OC_DB::prepare( 'DELETE FROM *PREFIX*contacts_cards WHERE addressbookid = ? AND uri=?' ); $stmt = OC_DB::prepare( 'DELETE FROM *PREFIX*contacts_cards WHERE addressbookid = ? AND uri=?' );
$stmt->execute(array($aid,$uri)); $stmt->execute(array($aid,$uri));

View File

@ -1,17 +1,10 @@
<?php // Include Style and Script
//OC_Util::addScript('contacts','interface'); // this line caused entry duplication, cause contacts/index.php already inlcudes it
OC_Util::addScript('contacts','jquery.inview');
OC_Util::addStyle('contacts','styles');
OC_Util::addStyle('contacts','formtastic');
?>
<script type='text/javascript'> <script type='text/javascript'>
var totalurl = '<?php echo OC_Helper::linkTo('contacts', 'carddav.php', null, true); ?>/addressbooks'; var totalurl = '<?php echo OC_Helper::linkTo('contacts', 'carddav.php', null, true); ?>/addressbooks';
</script> </script>
<div id="controls"> <div id="controls">
<form> <form>
<input type="button" id="contacts_newcontact" value="<?php echo $l->t('Add Contact'); ?>"> <input type="button" id="contacts_newcontact" value="<?php echo $l->t('Add Contact'); ?>">
<input type="button" id="chooseaddressbook" value="<?php echo $l->t('Address Books'); ?>"> <input type="button" id="chooseaddressbook" value="<?php echo $l->t('Addressbooks'); ?>">
</form> </form>
</div> </div>
<div id="leftcontent" class="leftcontent"> <div id="leftcontent" class="leftcontent">
@ -31,7 +24,4 @@ OC_Util::addStyle('contacts','formtastic');
</div> </div>
<!-- Dialogs --> <!-- Dialogs -->
<div id="dialog_holder"></div> <div id="dialog_holder"></div>
<div id="parsingfail_dialog" title="Parsing Fail">
<?php echo $l->t("There was a fail, while parsing the file."); ?>
</div>
<!-- End of Dialogs --> <!-- End of Dialogs -->

View File

@ -3,99 +3,108 @@
<input type="hidden" name="id" value="<?php echo $_['addressbooks'][0]['id']; ?>"> <input type="hidden" name="id" value="<?php echo $_['addressbooks'][0]['id']; ?>">
<?php else: ?> <?php else: ?>
<fieldset class="inputs"> <fieldset class="inputs">
<ol> <dl class="form">
<li class="input stringish"> <dt>
<label class="label" for="id"><?php echo $l->t('Group'); ?></label> <label class="label" for="id"><?php echo $l->t('Addressbook'); ?></label>
</dt>
<dd>
<select name="id" size="1"> <select name="id" size="1">
<?php echo html_select_options($_['addressbooks'], null, array('value'=>'id', 'label'=>'displayname')); ?> <?php echo html_select_options($_['addressbooks'], null, array('value'=>'id', 'label'=>'displayname')); ?>
</select> </select>
</li> </dd>
</ol> </dl>
</fieldset> </fieldset>
<?php endif; ?> <?php endif; ?>
<fieldset class="inputs"> <fieldset class="inputs">
<ol> <dl class="form">
<li class="input stringish"> <dt>
<label class="label" for="fn"><?php echo $l->t('Name'); ?></label> <label class="label" for="fn"><?php echo $l->t('Name'); ?></label>
</dd>
<dd>
<input id="fn" type="text" name="fn" value=""><br> <input id="fn" type="text" name="fn" value=""><br>
</li> </dd>
<li class="input stringish"> <dt>
<label class="label" for="org"><?php echo $l->t('Organization'); ?></label> <label class="label" for="org"><?php echo $l->t('Organization'); ?></label>
</dt>
<dd>
<input id="org" type="text" name="value[ORG]" value=""> <input id="org" type="text" name="value[ORG]" value="">
</li> </dd>
</ol> </dl>
</fieldset> </fieldset>
<fieldset class="inputs"> <fieldset class="inputs">
<ol> <dl class="form">
<li class="input stringish"> <dt>
<label class="label" for="email"><?php echo $l->t('Email'); ?></label> <label class="label" for="email"><?php echo $l->t('Email'); ?></label>
</dt>
<dd>
<input id="email" type="text" name="value[EMAIL]" value=""> <input id="email" type="text" name="value[EMAIL]" value="">
</li> </dd>
<li class="input"> <dt>
<fieldset class="fragments"> <label for="tel"><?php echo $l->t('Telephone'); ?></label>
<legend class="label"> </dt>
<label for="tel"><?php echo $l->t('Telephone'); ?></label> <dd>
</legend> <input type="phone" id="tel" name="value[TEL]" value="">
<ol class="fragments-group"> <select id="TEL" name="parameters[TEL][TYPE][]" multiple="multiple">
<li class="fragment"> <?php echo html_select_options($_['phone_types'], 'CELL') ?>
<label for="tel"><?php echo $l->t('Number'); ?></label> </select>
<input type="phone" id="tel" name="value[TEL]" value=""> </dd>
</li> </dl>
<li class="fragment">
<label for="tel_type"><?php echo $l->t('Type'); ?></label>
<select id="TEL" name="parameters[TEL][TYPE][]" multiple="multiple">
<?php echo html_select_options($_['phone_types'], 'CELL') ?>
</select>
</li>
</ol>
</fieldset>
</li>
</ol>
</fieldset> </fieldset>
<fieldset class="inputs"> <fieldset class="inputs">
<legend><?php echo $l->t('Address'); ?></legend> <legend><?php echo $l->t('Address'); ?></legend>
<ol> <dl class="form">
<li class="input"> <dt>
<label class="label" for="adr_type"><?php echo $l->t('Type'); ?></label> <label class="label" for="adr_type"><?php echo $l->t('Type'); ?></label>
</dt>
<dd>
<select id="adr_type" name="parameters[ADR][TYPE]" size="1"> <select id="adr_type" name="parameters[ADR][TYPE]" size="1">
<?php echo html_select_options($_['adr_types'], 'HOME') ?> <?php echo html_select_options($_['adr_types'], 'HOME') ?>
</select> </select>
</li> </dd>
<li class="input stringish"> <dt>
<label class="label" for="adr_pobox"><?php echo $l->t('PO Box'); ?></label> <label class="label" for="adr_pobox"><?php echo $l->t('PO Box'); ?></label>
</dt>
<dd>
<input type="text" id="adr_pobox" name="value[ADR][0]" value=""> <input type="text" id="adr_pobox" name="value[ADR][0]" value="">
</li> </dd>
<li class="input stringish"> <dd>
<dt>
<label class="label" for="adr_extended"><?php echo $l->t('Extended'); ?></label> <label class="label" for="adr_extended"><?php echo $l->t('Extended'); ?></label>
</dt>
<dd>
<input type="text" id="adr_extended" name="value[ADR][1]" value=""> <input type="text" id="adr_extended" name="value[ADR][1]" value="">
</li> </dd>
<li class="input stringish"> <dt>
<label class="label" for="adr_street"><?php echo $l->t('Street'); ?></label> <label class="label" for="adr_street"><?php echo $l->t('Street'); ?></label>
</dt>
<dd>
<input type="text" id="adr_street" name="value[ADR][2]" value=""> <input type="text" id="adr_street" name="value[ADR][2]" value="">
</li> </dd>
<li class="input stringish"> <dt>
<label class="label" for="adr_city"><?php echo $l->t('City'); ?></label> <label class="label" for="adr_city"><?php echo $l->t('City'); ?></label>
</dt>
<dd>
<input type="text" id="adr_city" name="value[ADR][3]" value=""> <input type="text" id="adr_city" name="value[ADR][3]" value="">
</li> </dd>
<li class="input stringish"> <dt>
<label class="label" for="adr_region"><?php echo $l->t('Region'); ?></label> <label class="label" for="adr_region"><?php echo $l->t('Region'); ?></label>
</dt>
<dd>
<input type="text" id="adr_region" name="value[ADR][4]" value=""> <input type="text" id="adr_region" name="value[ADR][4]" value="">
</li> </dd>
<li class="input stringish"> <dt>
<label class="label" for="adr_zipcode"><?php echo $l->t('Zipcode'); ?></label> <label class="label" for="adr_zipcode"><?php echo $l->t('Zipcode'); ?></label>
</dtl>
<dd>
<input type="text" id="adr_zipcode" name="value[ADR][5]" value=""> <input type="text" id="adr_zipcode" name="value[ADR][5]" value="">
</li> </dd>
<li class="input stringish"> <dt>
<label class="label" for="adr_country"><?php echo $l->t('Country'); ?></label> <label class="label" for="adr_country"><?php echo $l->t('Country'); ?></label>
</dt>
<dd>
<input type="text" id="adr_country" name="value[ADR][6]" value=""> <input type="text" id="adr_country" name="value[ADR][6]" value="">
</li> </dd>
</ol> </dl>
</fieldset>
<fieldset class="buttons">
<ol>
<li class="commit button">
<input class="create" type="submit" name="submit" value="<?php echo $l->t('Create Contact'); ?>">
</li>
</ol>
</fieldset> </fieldset>
<input class="create" type="submit" name="submit" value="<?php echo $l->t('Create Contact'); ?>">
</form> </form>

View File

@ -1,5 +1,5 @@
<?php <?php
// FIXME: Make this readable.
echo "<td width=\"20px\"><input id=\"active_" . $_['addressbook']["id"] . "\" type=\"checkbox\" onClick=\"Contacts.UI.Addressbooks.activation(this, " . $_['addressbook']["id"] . ")\"" . (OC_Contacts_Addressbook::isActive($_['addressbook']["id"]) ? ' checked="checked"' : '') . "></td>"; echo "<td width=\"20px\"><input id=\"active_" . $_['addressbook']["id"] . "\" type=\"checkbox\" onClick=\"Contacts.UI.Addressbooks.activation(this, " . $_['addressbook']["id"] . ")\"" . (OC_Contacts_Addressbook::isActive($_['addressbook']["id"]) ? ' checked="checked"' : '') . "></td>";
echo "<td><label for=\"active_" . $_['addressbook']["id"] . "\">" . $_['addressbook']["displayname"] . "</label></td>"; echo "<td><label for=\"active_" . $_['addressbook']["id"] . "\">" . $_['addressbook']["displayname"] . "</label></td>";
echo "<td width=\"20px\"><a href=\"#\" onclick=\"Contacts.UI.showCardDAVUrl('" . OC_User::getUser() . "', '" . $_['addressbook']["uri"] . "');\" title=\"" . $l->t("CardDav Link") . "\" class=\"action\"><img class=\"svg action\" src=\"../../core/img/actions/public.svg\"></a></td><td width=\"20px\"><a href=\"export.php?bookid=" . $_['addressbook']["id"] . "\" title=\"" . $l->t("Download") . "\" class=\"action\"><img class=\"svg action\" src=\"../../core/img/actions/download.svg\"></a></td><td width=\"20px\"><a href=\"#\" title=\"" . $l->t("Edit") . "\" class=\"action\" onclick=\"Contacts.UI.Addressbooks.editAddressbook(this, " . $_['addressbook']["id"] . ");\"><img class=\"svg action\" src=\"../../core/img/actions/rename.svg\"></a></td><td width=\"20px\"><a href=\"#\" onclick=\"Contacts.UI.Addressbooks.deleteAddressbook('" . $_['addressbook']["id"] . "');\" title=\"" . $l->t("Delete") . "\" class=\"action\"><img class=\"svg action\" src=\"../../core/img/actions/delete.svg\"></a></td>"; echo "<td width=\"20px\"><a href=\"#\" onclick=\"Contacts.UI.showCardDAVUrl('" . OC_User::getUser() . "', '" . $_['addressbook']["uri"] . "');\" title=\"" . $l->t("CardDav Link") . "\" class=\"action\"><img class=\"svg action\" src=\"../../core/img/actions/public.svg\"></a></td><td width=\"20px\"><a href=\"export.php?bookid=" . $_['addressbook']["id"] . "\" title=\"" . $l->t("Download") . "\" class=\"action\"><img class=\"svg action\" src=\"../../core/img/actions/download.svg\"></a></td><td width=\"20px\"><a href=\"#\" title=\"" . $l->t("Edit") . "\" class=\"action\" onclick=\"Contacts.UI.Addressbooks.editAddressbook(this, " . $_['addressbook']["id"] . ");\"><img class=\"svg action\" src=\"../../core/img/actions/rename.svg\"></a></td><td width=\"20px\"><a href=\"#\" onclick=\"Contacts.UI.Addressbooks.deleteAddressbook('" . $_['addressbook']["id"] . "');\" title=\"" . $l->t("Delete") . "\" class=\"action\"><img class=\"svg action\" src=\"../../core/img/actions/delete.svg\"></a></td>";

View File

@ -1,5 +1,6 @@
<?php if(array_key_exists('FN',$_['details'])): ?> <?php if(array_key_exists('FN',$_['details'])): ?>
<?php echo $this->inc('part.property.FN', array('property' => $_['details']['FN'][0])); ?> <?php echo $this->inc('part.property.FN', array('property' => $_['details']['FN'][0])); ?>
<a href="export?contactid=<?php echo $_['id']; ?>"><img class="svg action" id="contacts_downloadcard" src="<?php echo image_path('', 'actions/download.svg'); ?>" title="<?php echo $l->t('Download contact');?>" /></a>
<img class="svg action" id="contacts_deletecard" src="<?php echo image_path('', 'actions/delete.svg'); ?>" title="<?php echo $l->t('Delete contact');?>" /> <img class="svg action" id="contacts_deletecard" src="<?php echo image_path('', 'actions/delete.svg'); ?>" title="<?php echo $l->t('Delete contact');?>" />
<?php if(isset($_['details']['PHOTO'])): // Emails first ?> <?php if(isset($_['details']['PHOTO'])): // Emails first ?>
@ -86,3 +87,9 @@
</li> </li>
</ul> </ul>
<?php endif; ?> <?php endif; ?>
<script language="Javascript">
/* Re-tipsify ;-)*/
$('#contacts_deletecard').tipsy({gravity: 'ne'});
$('#contacts_downloadcard').tipsy({gravity: 'ne'});
$('.button').tipsy();
</script>

View File

@ -6,7 +6,7 @@
* See the COPYING-README file. * See the COPYING-README file.
*/ */
?> ?>
<td id="<?php echo $_['new'] ? 'new' : 'edit' ?>addressbook_dialog" title="<?php echo $_['new'] ? $l->t("New Address Book") : $l->t("Edit Address Book"); ?>" colspan="6"> <td id="<?php echo $_['new'] ? 'new' : 'edit' ?>addressbook_dialog" title="<?php echo $_['new'] ? $l->t("New Addressbook") : $l->t("Edit Addressbook"); ?>" colspan="6">
<table width="100%" style="border: 0;"> <table width="100%" style="border: 0;">
<tr> <tr>
<th><?php echo $l->t('Displayname') ?></th> <th><?php echo $l->t('Displayname') ?></th>

View File

@ -0,0 +1,7 @@
<div id="messagebox">
<table width="100%" style="border: 0;">
<tr>
<th id="messagebox_msg"></th>
</tr>
</table>
</di>

View File

@ -1,7 +1,7 @@
<form id="mediaform"> <form id="mediaform">
<fieldset class="personalblock"> <fieldset class="personalblock">
<strong>Contacts</strong><br /> <strong><?php echo $l->t('Contacts'); ?></strong><br />
CardDAV syncing address: <?php echo $l->t('CardDAV syncing address:'); ?>
<?php echo OC_Helper::linkTo('apps/contacts', 'carddav.php', null, true); ?><br /> <?php echo OC_Helper::linkTo('apps/contacts', 'carddav.php', null, true); ?><br />
</fieldset> </fieldset>
</form> </form>

View File

@ -46,8 +46,8 @@ $l10n = new OC_L10N('contacts');
$card = OC_Contacts_VCard::find( $id ); $card = OC_Contacts_VCard::find( $id );
if( $card === false ){ if( $card === false ){
OC_Log::write('contacts','thumbnail.php. Contact could not be found.',OC_Log::ERROR); OC_Log::write('contacts','thumbnail.php. Contact could not be found: '.$id,OC_Log::ERROR);
//echo $l10n->t('Contact could not be found.'); getStandardImage();
exit(); exit();
} }
@ -55,7 +55,6 @@ if( $card === false ){
$addressbook = OC_Contacts_Addressbook::find( $card['addressbookid'] ); $addressbook = OC_Contacts_Addressbook::find( $card['addressbookid'] );
if( $addressbook === false || $addressbook['userid'] != OC_USER::getUser()){ if( $addressbook === false || $addressbook['userid'] != OC_USER::getUser()){
OC_Log::write('contacts','thumbnail.php. Wrong contact/addressbook - WTF?',OC_Log::ERROR); OC_Log::write('contacts','thumbnail.php. Wrong contact/addressbook - WTF?',OC_Log::ERROR);
//echo $l10n->t('This is not your contact.'); // This is a weird error, why would it come up? (Better feedback for users?)
exit(); exit();
} }

View File

@ -1,4 +1,4 @@
<? <?php
/** /**
* ownCloud - gallery application * ownCloud - gallery application
@ -23,17 +23,34 @@
require_once('../../../lib/base.php'); require_once('../../../lib/base.php');
require_once(OC::$CLASSPATH['OC_Gallery_Album']); require_once(OC::$CLASSPATH['OC_Gallery_Album']);
OC_JSON::checkLoggedIn(); require_once(OC::$CLASSPATH['OC_Gallery_Scanner']);
OC_JSON::checkAppEnabled('gallery'); OC_JSON::checkAppEnabled('gallery');
function handleRename($oldname, $newname) { function handleRename($oldname, $newname) {
OC_JSON::checkLoggedIn();
OC_Gallery_Album::rename($oldname, $newname, OC_User::getUser()); OC_Gallery_Album::rename($oldname, $newname, OC_User::getUser());
} }
function handleRemove($name) { function handleRemove($name) {
OC_JSON::checkLoggedIn();
OC_Gallery_Album::remove(OC_User::getUser(), $name); OC_Gallery_Album::remove(OC_User::getUser(), $name);
} }
function handleGetThumbnails($albumname)
{
OC_JSON::checkLoggedIn();
$photo = new OC_Image();
$photo->loadFromFile(OC::$CONFIG_DATADIRECTORY.'/../gallery/'.$albumname.'.png');
$photo->show();
}
function handleGalleryScanning()
{
OC_JSON::checkLoggedIn();
OC_Gallery_Scanner::cleanup();
OC_JSON::success(array('albums' => OC_Gallery_Scanner::scan('/')));
}
if ($_GET['operation']) { if ($_GET['operation']) {
switch($_GET['operation']) { switch($_GET['operation']) {
case "rename": case "rename":
@ -43,8 +60,14 @@ if ($_GET['operation']) {
case "remove": case "remove":
handleRemove($_GET['name']); handleRemove($_GET['name']);
OC_JSON::success(); OC_JSON::success();
break; break;
default: case "get_covers":
handleGetThumbnails($_GET['albumname']);
break;
case "scan":
handleGalleryScanning();
break;
default:
OC_JSON::error(array('cause' => "Unknown operation")); OC_JSON::error(array('cause' => "Unknown operation"));
} }
} }

View File

@ -1,99 +0,0 @@
<?php
/**
* ownCloud - gallery application
*
* @author Bartek Przybylski
* @copyright 2012 Bartek Przybylski bart.p.pl@gmail.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
require_once('../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('gallery');
function CroppedThumbnail($imgSrc,$thumbnail_width,$thumbnail_height, $tgtImg, $shift) {
//getting the image dimensions
list($width_orig, $height_orig) = getimagesize($imgSrc);
switch (strtolower(substr($imgSrc, strrpos($imgSrc, '.')+1))) {
case "jpeg":
case "jpg":
case "tiff":
$myImage = imagecreatefromjpeg($imgSrc);
break;
case "png":
$myImage = imagecreatefrompng($imgSrc);
break;
default:
exit();
}
if(!$myImage) exit();
$ratio_orig = $width_orig/$height_orig;
if ($thumbnail_width/$thumbnail_height > $ratio_orig) {
$new_height = $thumbnail_width/$ratio_orig;
$new_width = $thumbnail_width;
} else {
$new_width = $thumbnail_height*$ratio_orig;
$new_height = $thumbnail_height;
}
$x_mid = $new_width/2; //horizontal middle
$y_mid = $new_height/2; //vertical middle
$process = imagecreatetruecolor(round($new_width), round($new_height));
imagecopyresampled($process, $myImage, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);
imagecopyresampled($tgtImg, $process, $shift, 0, ($x_mid-($thumbnail_width/2)), ($y_mid-($thumbnail_height/2)), $thumbnail_width, $thumbnail_height, $thumbnail_width, $thumbnail_height);
imagedestroy($process);
imagedestroy($myImage);
}
$box_size = 200;
$album_name= $_GET['album_name'];
$result = OC_Gallery_Photo::findForAlbum(OC_User::getUser(), $album_name);
$numOfItems = min($result->numRows(),10);
if ($numOfItems){
$targetImg = imagecreatetruecolor($numOfItems*$box_size, $box_size);
}
else{
$targetImg = imagecreatetruecolor($box_size, $box_size);
}
$counter = 0;
while (($i = $result->fetchRow()) && $counter < $numOfItems) {
$imagePath = OC_Filesystem::getLocalFile($i['file_path']);
if(file_exists($imagePath))
{
CroppedThumbnail($imagePath, $box_size, $box_size, $targetImg, $counter*$box_size);
$counter++;
}
}
header('Content-Type: image/png');
$offset = 3600 * 24;
// calc the string in GMT not localtime and add the offset
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
header('Cache-Control: max-age='.$offset.', must-revalidate');
header('Pragma: public');
imagepng($targetImg);
imagedestroy($targetImg);
?>

View File

@ -1,31 +0,0 @@
<?php
/**
* ownCloud - gallery application
*
* @author Bartek Przybylski
* @copyright 2012 Bartek Przybylski bart.p.pl@gmail.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
require_once('../../../lib/base.php');
OC_JSON::checkLoggedIn();
OC_JSON::checkAppEnabled('gallery');
OC_Gallery_Scanner::cleanUp();
OC_JSON::success(array('albums' => OC_Gallery_Scanner::scan('/')));
?>

View File

@ -1,9 +1,9 @@
div#gallery_list { margin: 90pt 20pt; } div#gallery_list { margin: 90pt 20pt; }
div#gallery_list.leftcontent { padding-top: 15px; margin: 0; text-align: center; } div#gallery_list.leftcontent { padding-top: 15pt; margin: 0; height: 80%; text-align: center; overflow: scroll; }
div#gallery_album_box { width: 200px; text-align: center; border: 0; display: inline-block; margin: 5pt; vertical-align: top; padding: 10px; border: solid 1px black; position: relative; overflow: hidden; color: #999; } div#gallery_album_box { width: 200px; text-align: center; border: 0; display: inline-block; margin: 5pt; vertical-align: top; padding: 10px; position: relative; overflow: hidden; color: #999; }
div#gallery_album_box:hover { color: black; } div#gallery_album_box:hover { color: black; }
.leftcontent div#gallery_album_box { margin: 5px; } .leftcontent div#gallery_album_box { margin: 5px; }
div#gallery_album_box h1 { font-size: 12pt; font-family: Verdana; } div#gallery_album_box h1 { font-size: 9pt; font-family: Verdana; }
div#gallery_album_cover { width: 199px; height: 199px; border: solid 1pt #999; padding: 0; } div#gallery_album_cover { width: 199px; height: 199px; border: solid 1pt #999; padding: 0; }
div#gallery_control_overlay { border: 0; position:absolute; right: 10pt; background-color: #333; opacity: 0.5; visibility:hidden; padding: 0 5pt; } div#gallery_control_overlay { border: 0; position:absolute; right: 10pt; background-color: #333; opacity: 0.5; visibility:hidden; padding: 0 5pt; }
div#gallery_control_overlay a { color:white; } div#gallery_control_overlay a { color:white; }

View File

@ -33,7 +33,7 @@ function createNewAlbum() {
function scanForAlbums() { function scanForAlbums() {
$("#notification").fadeIn(); $("#notification").fadeIn();
$("#notification").slideDown(); $("#notification").slideDown();
$.getJSON('ajax/scanForAlbums.php', function(r) { $.getJSON('ajax/galleryOp.php?operation=scan', function(r) {
$("#notification").fadeOut(); $("#notification").fadeOut();
$("#notification").slideUp(); $("#notification").slideUp();
if (r.status == 'success') { if (r.status == 'success') {

View File

@ -63,7 +63,7 @@ Albums={
var local = $(displayTemplate.replace(/\*NAME\*/g, a.name)); var local = $(displayTemplate.replace(/\*NAME\*/g, a.name));
$("#gallery_album_cover", local).css('background-repeat', 'no-repeat'); $("#gallery_album_cover", local).css('background-repeat', 'no-repeat');
$("#gallery_album_cover", local).css('background-position', '0'); $("#gallery_album_cover", local).css('background-position', '0');
$("#gallery_album_cover", local).css('background-image','url("ajax/getCovers.php?album_name='+a.name+'")'); $("#gallery_album_cover", local).css('background-image','url("ajax/galleryOp.php?operation=get_covers&albumname='+a.name+'")');
local.mouseover(function(e) { local.mouseover(function(e) {
$("#gallery_control_overlay", this).css('visibility','visible'); $("#gallery_control_overlay", this).css('visibility','visible');
}); });

View File

@ -132,7 +132,7 @@ Collection={
}, },
showArtist:function(artist){ showArtist:function(artist){
var tr=Collection.parent.find('tr[data-artist="'+artist+'"]'); var tr=Collection.parent.find('tr[data-artist="'+artist+'"]');
var nextRow=tr.next(); var lastRow=tr;
var artist=tr.data('artistData'); var artist=tr.data('artistData');
var first=true; var first=true;
$.each(artist.albums,function(j,album){ $.each(artist.albums,function(j,album){
@ -185,9 +185,10 @@ Collection={
newRow.attr('data-artist',artist.name); newRow.attr('data-artist',artist.name);
newRow.data('albumData',album); newRow.data('albumData',album);
if(!first){ if(!first){
nextRow.before(newRow); lastRow.after(newRow);
} }
first=false; first=false;
lastRow=newRow;
}); });
}); });
tr.removeClass('collapsed'); tr.removeClass('collapsed');
@ -215,11 +216,11 @@ Collection={
}, },
showAlbum:function(artist,album){ showAlbum:function(artist,album){
var tr = Collection.parent.find('tr[data-artist="'+artist+'"][data-album="'+album+'"]'); var tr = Collection.parent.find('tr[data-artist="'+artist+'"][data-album="'+album+'"]');
var lastRow=tr;
var albumData=tr.data('albumData'); var albumData=tr.data('albumData');
tr.find('td.album a.expander').data('expanded',true); tr.find('td.album a.expander').data('expanded',true);
tr.find('td.album a.expander').addClass('expanded'); tr.find('td.album a.expander').addClass('expanded');
tr.find('td.album a.expander').text('v'); tr.find('td.album a.expander').text('v');
var nextRow=tr.next();
$.each(albumData.songs,function(i,song){ $.each(albumData.songs,function(i,song){
if(i>0){ if(i>0){
var newRow=tr.clone(); var newRow=tr.clone();
@ -230,9 +231,17 @@ Collection={
var newRow=tr; var newRow=tr;
} }
newRow.find('td.title a').text(song.name); newRow.find('td.title a').text(song.name);
newRow.find('td.title a').click(function(event){
event.preventDefault();
PlayList.add(song);
PlayList.play(0);
Collection.parent.find('tr').removeClass('active');
$('tr[data-title="'+song.name+'"]').addClass('active');
});
if(i>0){ if(i>0){
nextRow.before(newRow); lastRow.after(newRow);
} }
lastRow=newRow;
}); });
}, },
hideAlbum:function(artist,album){ hideAlbum:function(artist,album){

View File

@ -26,18 +26,25 @@ $(document).ready(function(){
button.tipsy({gravity:'n', fade:true, delayIn: 400, live:true}); button.tipsy({gravity:'n', fade:true, delayIn: 400, live:true});
} }
Collection.display(); Collection.display();
Collection.load(function(){
var urlVars=getUrlVars();
if(urlVars.artist){
var song=Collection.find(urlVars.artist,urlVars.album,urlVars.song);
PlayList.add(song);
PlayList.play(0);
}
})
}); });
function getUrlVars(){ function getUrlVars(){
var vars = [], hash; var vars = {}, hash;
var hashes = window.location.href.slice(window.location.href.indexOf('#') + 1).split('&'); var hashes = window.location.hash.substr(1).split('&');
for(var i = 0; i < hashes.length; i++) for(var i = 0; i < hashes.length; i++){
{
hash = hashes[i].split('='); hash = hashes[i].split('=');
vars.push(hash[0]); vars[hash[0]] = decodeURIComponent(hash[1]).replace(/\+/g,' ');
vars[hash[0]] = hash[1].replace(/\+/g,' ');
} }
return vars; return vars;
} }

13
apps/media/l10n/ar.php Normal file
View File

@ -0,0 +1,13 @@
<?php $TRANSLATIONS = array(
"Music" => "الموسيقى",
"Play" => "إلعب",
"Pause" => "تجميد",
"Previous" => "السابق",
"Next" => "التالي",
"Mute" => "إلغاء الصوت",
"Unmute" => "تشغيل الصوت",
"Rescan Collection" => "إعادة البحث عن ملفات الموسيقى",
"Artist" => "الفنان",
"Album" => "الألبوم",
"Title" => "العنوان"
);

View File

@ -6,7 +6,6 @@
"Next" => "Следваща", "Next" => "Следваща",
"Mute" => "Отнеми", "Mute" => "Отнеми",
"Unmute" => "Върни", "Unmute" => "Върни",
"Songs scanned" => "Сканирани песни",
"Rescan Collection" => "Повторно сканиране", "Rescan Collection" => "Повторно сканиране",
"Artist" => "Артист", "Artist" => "Артист",
"Album" => "Албум", "Album" => "Албум",

View File

@ -6,8 +6,7 @@
"Next" => "Següent", "Next" => "Següent",
"Mute" => "Mut", "Mute" => "Mut",
"Unmute" => "Activa el so", "Unmute" => "Activa el so",
"Songs scanned" => "Cançons escanejades", "Rescan Collection" => "Explora de nou la col·lecció",
"Rescan Collection" => "Escaneja de nou la col·lecció",
"Artist" => "Artista", "Artist" => "Artista",
"Album" => "Àlbum", "Album" => "Àlbum",
"Title" => "Títol" "Title" => "Títol"

View File

@ -1,12 +1,11 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Music" => "hudba", "Music" => "Hudba",
"Play" => "Přehrát", "Play" => "Přehrát",
"Pause" => "Pauza", "Pause" => "Pauza",
"Previous" => "Předchozí", "Previous" => "Předchozí",
"Next" => "Další", "Next" => "Další",
"Mute" => "Ztišit", "Mute" => "Ztišit",
"Unmute" => "Zesílit", "Unmute" => "Zesílit",
"Songs scanned" => "Skladby jsou prohledány",
"Rescan Collection" => "Znovu prohledat ", "Rescan Collection" => "Znovu prohledat ",
"Artist" => "Umělec", "Artist" => "Umělec",
"Album" => "Album", "Album" => "Album",

View File

@ -1,7 +1,11 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Music" => "Musik", "Music" => "Musik",
"Play" => "Afspil",
"Pause" => "Pause", "Pause" => "Pause",
"Songs scanned" => "Sange skannet", "Previous" => "Forrige",
"Next" => "Næste",
"Mute" => "Lydløs",
"Unmute" => "Lyd til",
"Rescan Collection" => "Genskan Samling", "Rescan Collection" => "Genskan Samling",
"Artist" => "Kunstner", "Artist" => "Kunstner",
"Album" => "Album", "Album" => "Album",

View File

@ -1,8 +1,12 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Music" => "Musik", "Music" => "Musik",
"Play" => "Abspielen",
"Pause" => "Pause", "Pause" => "Pause",
"Songs scanned" => "Lieder gescannt", "Previous" => "Vorheriges",
"Rescan Collection" => "Sammlung scannen", "Next" => "Nächstes",
"Mute" => "Ton aus",
"Unmute" => "Ton an",
"Rescan Collection" => "Sammlung noch einmal scannen",
"Artist" => "Künstler", "Artist" => "Künstler",
"Album" => "Album", "Album" => "Album",
"Title" => "Titel" "Title" => "Titel"

View File

@ -6,7 +6,6 @@
"Next" => "Επόμενο", "Next" => "Επόμενο",
"Mute" => "Σίγαση", "Mute" => "Σίγαση",
"Unmute" => "Επαναφορά ήχου", "Unmute" => "Επαναφορά ήχου",
"Songs scanned" => "Σαρωμένα τραγούγια",
"Rescan Collection" => "Επανασάρωση συλλογής", "Rescan Collection" => "Επανασάρωση συλλογής",
"Artist" => "Καλλιτέχνης", "Artist" => "Καλλιτέχνης",
"Album" => "Άλμπουμ", "Album" => "Άλμπουμ",

13
apps/media/l10n/eo.php Normal file
View File

@ -0,0 +1,13 @@
<?php $TRANSLATIONS = array(
"Music" => "Muziko",
"Play" => "Ludi",
"Pause" => "Paŭzi",
"Previous" => "Maljena",
"Next" => "Jena",
"Mute" => "Silentigi",
"Unmute" => "Malsilentigi",
"Rescan Collection" => "Reskani la aron",
"Artist" => "Verkinto",
"Album" => "Albumo",
"Title" => "Titolo"
);

View File

@ -6,7 +6,6 @@
"Next" => "Siguiente", "Next" => "Siguiente",
"Mute" => "Silenciar", "Mute" => "Silenciar",
"Unmute" => "Sonar", "Unmute" => "Sonar",
"Songs scanned" => "Canciones encontradas",
"Rescan Collection" => "Buscar música nueva", "Rescan Collection" => "Buscar música nueva",
"Artist" => "Artista", "Artist" => "Artista",
"Album" => "Álbum", "Album" => "Álbum",

View File

@ -6,7 +6,6 @@
"Next" => "Järgmine", "Next" => "Järgmine",
"Mute" => "Vaikseks", "Mute" => "Vaikseks",
"Unmute" => "Hääl tagasi", "Unmute" => "Hääl tagasi",
"Songs scanned" => "Skännitud lood",
"Rescan Collection" => "Skänni kollekttsiooni uuesti", "Rescan Collection" => "Skänni kollekttsiooni uuesti",
"Artist" => "Esitaja", "Artist" => "Esitaja",
"Album" => "Album", "Album" => "Album",

13
apps/media/l10n/eu.php Normal file
View File

@ -0,0 +1,13 @@
<?php $TRANSLATIONS = array(
"Music" => "Musika",
"Play" => "Erreproduzitu",
"Pause" => "Pausarazi",
"Previous" => "Aurrekoa",
"Next" => "Hurrengoa",
"Mute" => "Mututu",
"Unmute" => "Ez Mututu",
"Rescan Collection" => "Bireskaneatu Bilduma",
"Artist" => "Artista",
"Album" => "Albuma",
"Title" => "Izenburua"
);

View File

@ -1,7 +1,11 @@
<?php $TRANSLATIONS = array( <?php $TRANSLATIONS = array(
"Music" => "Musique", "Music" => "Musique",
"Play" => "Play",
"Pause" => "Pause", "Pause" => "Pause",
"Songs scanned" => "Pistes scannées", "Previous" => "Précédent",
"Next" => "Suivant",
"Mute" => "Muet",
"Unmute" => "Audible",
"Rescan Collection" => "Réanalyser la Collection", "Rescan Collection" => "Réanalyser la Collection",
"Artist" => "Artiste", "Artist" => "Artiste",
"Album" => "Album", "Album" => "Album",

Some files were not shown because too many files have changed in this diff Show More