diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/audit/control_ru.properties b/config/alfresco/templates/webscripts/org/alfresco/repository/audit/control_ru.properties new file mode 100755 index 0000000000..32fa776c33 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/audit/control_ru.properties @@ -0,0 +1,7 @@ +# Audit Control Web Script I18N +audit.err.app.notProvided=Application name not supplied. +audit.err.app.notFound=Application not found: {0} +audit.err.path.notProvided=No path was supplied after the application name. +audit.err.action.invalid=Parameter 'action' must be either 'enable' or 'disable' +audit.err.value.classNotFound=''valueType'' not recognised: {0} +audit.err.value.convertFailed=Unable to convert ''{0}'' to type ''{1}'' \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.delete_de.properties b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.delete_de.properties new file mode 100755 index 0000000000..9771e11e7c --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.delete_de.properties @@ -0,0 +1 @@ +blog-post.msg.deleted=Blog {0} gel\u00f6scht \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.delete_es.properties b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.delete_es.properties new file mode 100755 index 0000000000..b973b94313 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.delete_es.properties @@ -0,0 +1 @@ +blog-post.msg.deleted=Blog {0} eliminado \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/discussions/posts/forum-post.delete_de.properties b/config/alfresco/templates/webscripts/org/alfresco/repository/discussions/posts/forum-post.delete_de.properties new file mode 100755 index 0000000000..27583ca1b3 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/discussions/posts/forum-post.delete_de.properties @@ -0,0 +1,2 @@ +forum-post.msg.deleted=Node {0} gel\u00f6scht +forum-post.msg.marked.removed=Node {0} als entfernt gekennzeichnet \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/discussions/posts/forum-post.delete_es.properties b/config/alfresco/templates/webscripts/org/alfresco/repository/discussions/posts/forum-post.delete_es.properties new file mode 100755 index 0000000000..6895a8500f --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/discussions/posts/forum-post.delete_es.properties @@ -0,0 +1,2 @@ +forum-post.msg.deleted=Nodo {0} eliminado +forum-post.msg.marked.removed=Nodo {0} marcado como eliminado \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/links/links-delete.post_de.properties b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links-delete.post_de.properties new file mode 100755 index 0000000000..f7ee2038bb --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links-delete.post_de.properties @@ -0,0 +1,3 @@ +links-delete.err.not.found=Keine g\u00fcltigen Link-Namen angegeben +links-delete.access.denied=Sie sind nicht berechtigt, den Link mit dem Namen '{0}' zu l\u00f6schen +links-delete.msg.deleted=Node {0} gel\u00f6scht \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/links/links-delete.post_es.properties b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links-delete.post_es.properties new file mode 100755 index 0000000000..eb3ff32d4b --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links-delete.post_es.properties @@ -0,0 +1,3 @@ +links-delete.err.not.found=No se han proporcionado nombres de enlaces v\u00e1lidos +links-delete.access.denied=No tiene permisos para eliminar el enlace con el nombre '{0}' +links-delete.msg.deleted=Nodo {0} eliminado \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.post_de.properties b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.post_de.properties new file mode 100755 index 0000000000..9ed8204759 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.post_de.properties @@ -0,0 +1,2 @@ +links.err.access.denied=Sie sind nicht berechtigt, einen Link zu erstellen +links.err.not.found=Es wurde kein Link mit diesem Namen gefunden \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.post_es.properties b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.post_es.properties new file mode 100755 index 0000000000..f780853b12 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.post_es.properties @@ -0,0 +1,2 @@ +links.err.access.denied=No tiene permisos para crear un enlace +links.err.not.found=No se ha encontrado ning\u00fan enlace con ese nombre \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.put_de.properties b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.put_de.properties new file mode 100755 index 0000000000..9ed8204759 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.put_de.properties @@ -0,0 +1,2 @@ +links.err.access.denied=Sie sind nicht berechtigt, einen Link zu erstellen +links.err.not.found=Es wurde kein Link mit diesem Namen gefunden \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.put_es.properties b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.put_es.properties new file mode 100755 index 0000000000..f780853b12 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/links/links.put_es.properties @@ -0,0 +1,2 @@ +links.err.access.denied=No tiene permisos para crear un enlace +links.err.not.found=No se ha encontrado ning\u00fan enlace con ese nombre \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/person/user-csv-upload.post_ru.properties b/config/alfresco/templates/webscripts/org/alfresco/repository/person/user-csv-upload.post_ru.properties new file mode 100755 index 0000000000..6dd733fb92 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/person/user-csv-upload.post_ru.properties @@ -0,0 +1,11 @@ +# User CSV Upload Web Script I18N +person.err.userCSV.invalidForm=\u0414\u0430\u043d\u043d\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u043d\u0435 \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u0430 \u043a\u0430\u043a \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u0430\u044f +person.err.userCSV.noFile=\u0424\u0430\u0439\u043b\u044b \u043d\u0435 \u0431\u044b\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u044b +person.err.userCSV.corruptFile=\u0414\u0430\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0431\u044b\u043b \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d \u0438\u043b\u0438 \u0443\u0441\u0435\u0447\u0435\u043d + +person.err.userCSV.general=\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 +person.err.userCSV.generalArgs=\u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430: {0} +person.err.userCSV.blankColumn=\u0421\u0442\u043e\u043b\u0431\u0435\u0446 {0} (\u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 {1}) \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043f\u0443\u0441\u0442, \u043d\u043e \u0431\u044b\u043b \u043f\u0443\u0441\u0442\u044b\u043c \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 {2} + +person.msg.userCSV.created=\u0421\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f {0} +person.msg.userCSV.existing=\u0423\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/publishing/authform.get_ru.properties b/config/alfresco/templates/webscripts/org/alfresco/repository/publishing/authform.get_ru.properties new file mode 100755 index 0000000000..c01106c14b --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/publishing/authform.get_ru.properties @@ -0,0 +1,6 @@ +authForm.title=Alfresco » \u0421\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043e\u0431 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 +authForm.heading=\u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043a\u0430\u043d\u0430\u043b\u043e\u0432 +authForm.directions=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0441\u0432\u043e\u0438 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f {0} +authForm.user=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f: +authForm.password=\u041f\u0430\u0440\u043e\u043b\u044c: +authForm.login=\u0412\u043e\u0439\u0442\u0438 diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.get.json.ftl index 60f7681fda..4fbc946c07 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.get.json.ftl @@ -9,14 +9,14 @@ "location": "${result.location}", "tags": [<#list result.tags as tag>"${tag}"<#if tag_has_next>,], "startAt": { - "iso8601": "${xmldate(result.from)}", - "legacyDate": "${result.from?string("M/d/yyyy")}", - "legacyTime": "${result.from?string("HH:mm")}" + "iso8601": "${result.from}", + "legacyDate": "${result.legacyDateFrom}", + "legacyTime": "${result.legacyTimeFrom}" }, "endAt": { - "iso8601": "${xmldate(result.to)}", - "legacyDate": "${result.to?string("M/d/yyyy")}", - "legacyTime": "${result.to?string("HH:mm")}" + "iso8601": "${result.to}", + "legacyDate": "${result.legacyDateTo}", + "legacyTime": "${result.legacyTimeTo}" }, "allday": "${result.allday?string}", diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.get_de.properties b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.get_de.properties new file mode 100755 index 0000000000..e9b4ab6fbd --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.get_de.properties @@ -0,0 +1,2 @@ +calendar.err.event.not.found=Ereignis nicht gefunden: {0} +calendar.err.invalid.json=JSON ung\u00fcltig: {0} \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.get_es.properties b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.get_es.properties new file mode 100755 index 0000000000..0587ec0c90 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.get_es.properties @@ -0,0 +1,2 @@ +calendar.err.event.not.found=No se ha podido encontrar evento: {0} +calendar.err.invalid.json=JSON no v\u00e1lido: {0} \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.post.html.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.post.html.ftl index 1418774539..ab62e3727c 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.post.html.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.post.html.ftl @@ -10,14 +10,14 @@ "desc": "${result.desc?html}", "where": "${result.where?html}", "startAt": { - "iso8601": "${xmldate(result.from)}", - "legacyDate": "${result.from?string("yyyy-MM-dd")}", - "legacyTime": "${result.from?string("HH:mm")}" + "iso8601": "${result.from}", + "legacyDate": "${result.legacyDateFrom}", + "legacyTime": "${result.legacyTimeFrom}" }, "endAt": { - "iso8601": "${xmldate(result.to)}", - "legacyDate": "${result.to?string("yyyy-MM-dd")}", - "legacyTime": "${result.to?string("HH:mm")}" + "iso8601": "${result.to}", + "legacyDate": "${result.legacyDateTo}", + "legacyTime": "${result.legacyTimeTo}" }, "allday": "${result.allday?string}", diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.post_de.properties b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.post_de.properties new file mode 100755 index 0000000000..d5f49e66eb --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.post_de.properties @@ -0,0 +1,2 @@ +calendar.err.event.not.found=Ereignis nicht gefunden: {0} +calendar.err.invalid.json=JSON ung\u00fcltig: {0} \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.post_es.properties b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.post_es.properties new file mode 100755 index 0000000000..44a769114e --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.post_es.properties @@ -0,0 +1,2 @@ +calendar.err.event.not.found=No se ha podido encontrar evento: {0} +calendar.err.invalid.json=JSON no v\u00e1lido: {0} \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put.json.ftl index 80efcb5ac7..93319da033 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put.json.ftl @@ -10,17 +10,17 @@ "description" : "${result.description?js_string}", "startAt": { - "iso8601": "${xmldate(result.dtstart)}", - "legacyDateTime": "${result.dtstart?string("yyyy-MM-dd")}T${result.dtstart?string("HH:mm")}", - "legacyDate": "${result.dtstart?string("yyyy-MM-dd")}", - "legacyTime": "${result.dtstart?string("HH:mm")}" + "iso8601": "${result.dtstart}", + "legacyDateTime": "${result.legacyDateFrom}T${result.legacyTimeFrom}", + "legacyDate": "${result.legacyDateFrom}", + "legacyTime": "${result.legacyTimeFrom}" }, "endAt": { - "iso8601": "${xmldate(result.dtend)}", - "legacyDateTime": "${result.dtend?string("yyyy-MM-dd")}T${result.dtend?string("HH:mm")}", - "legacyDate": "${result.dtend?string("yyyy-MM-dd")}", - "legacyTime": "${result.dtend?string("HH:mm")}" + "iso8601": "${result.dtend}", + "legacyDateTime": "${result.legacyDateTo}T${result.legacyTimeTo}", + "legacyDate": "${result.legacyDateTo}", + "legacyTime": "${result.legacyTimeTo}" }, "uri" : "${result.uri}", "allday" : "${result.allday?string}", diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put_de.properties b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put_de.properties new file mode 100755 index 0000000000..d5f49e66eb --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put_de.properties @@ -0,0 +1,2 @@ +calendar.err.event.not.found=Ereignis nicht gefunden: {0} +calendar.err.invalid.json=JSON ung\u00fcltig: {0} \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put_es.properties b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put_es.properties new file mode 100755 index 0000000000..44a769114e --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/event.put_es.properties @@ -0,0 +1,2 @@ +calendar.err.event.not.found=No se ha podido encontrar evento: {0} +calendar.err.invalid.json=JSON no v\u00e1lido: {0} \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/eventList.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/eventList.get.json.ftl index ca211e0037..d20ea79639 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/eventList.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/eventList.get.json.ftl @@ -6,7 +6,7 @@ <#assign prev = ""> <#list events as item> <#-- Note - use item not event start for repeating events expansion --> - <#assign date = item.start?string("M/d/yyyy")> + <#assign date = item.legacyDateFrom> <#assign event = item.event> <#if date != prev> <#assign counter = 0> @@ -18,14 +18,14 @@ "name": "${item.title}", "uri": "calendar/event/${siteId}/${event.systemName}", "startAt": { - "iso8601": "${xmldate(item.start)}", - "legacyDate": "${item.start?string("M/d/yyyy")}", - "legacyTime": "${item.start?string("HH:mm")}" + "iso8601": "$(item.start}", + "legacyDate": "${item.legacyDateFrom}", + "legacyTime": "${item.legacyTimeFrom}" }, "endAt": { - "iso8601": "${xmldate(item.end)}", - "legacyDate": "${item.end?string("M/d/yyyy")}", - "legacyTime": "${item.end?string("HH:mm")}" + "iso8601": "${item.end}", + "legacyDate": "${item.legacyDateTo}", + "legacyTime": "${item.legacyTimeTo}" }, "tags": [<#list item.tags as tag>"${tag}"<#if tag_has_next>,], diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/userevents.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/userevents.get.json.ftl index 04e9114ed6..a9f6346db5 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/userevents.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/calendar/userevents.get.json.ftl @@ -10,15 +10,15 @@ "title": "${event.title}", "where": "${event.where}", "description": "${event.description}", - "url": "page/site/${event.siteName}/calendar?date=${event.start?string("yyyy-MM-dd")}", + "url": "page/site/${event.siteName}/calendar?date=${event.legacyDateFrom}", "startAt": { - "iso8601": "${xmldate(event.start)}", - "legacyTime": "${event.start?string("HH:mm")}" + "iso8601": "${event.start}", + "legacyTime": "${event.legacyTimeFrom}" }, "endAt": { - "iso8601": "${xmldate(event.end)}", - "legacyTime": "${event.end?string("HH:mm")}" + "iso8601": "${event.end}", + "legacyTime": "${event.legacyTimeTo}" }, "site": "${event.siteName}", diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/move.post_de.properties b/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/move.post_de.properties index 87a5f1aadb..39c80c9d90 100755 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/move.post_de.properties +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/move.post_de.properties @@ -1,2 +1,3 @@ page-moved=Diese Seite wurde verschoben nach -page-moved-here=hier. \ No newline at end of file +page-moved-here=hier. +page-not-found=Die Wiki-Seite wurde nicht gefunden \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/move.post_es.properties b/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/move.post_es.properties index 51c738ab92..713ad3e02c 100755 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/move.post_es.properties +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/move.post_es.properties @@ -1,2 +1,3 @@ page-moved=La p\u00e1gina se ha movido a -page-moved-here=aqu\u00ed \ No newline at end of file +page-moved-here=aqu\u00ed +page-not-found=La p\u00e1gina Wiki no se ha podido encontrar \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/move.post_ru.properties b/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/move.post_ru.properties new file mode 100755 index 0000000000..de9396c137 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/move.post_ru.properties @@ -0,0 +1,2 @@ +page-moved=\u042d\u0442\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0430 +page-moved-here=\u0441\u044e\u0434\u0430 \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/page.get_de.properties b/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/page.get_de.properties new file mode 100755 index 0000000000..993ba4f6dc --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/page.get_de.properties @@ -0,0 +1 @@ +page-not-found=Die Wiki-Seite wurde nicht gefunden \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/page.get_es.properties b/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/page.get_es.properties new file mode 100755 index 0000000000..8a1cf5ebdf --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/wiki/page.get_es.properties @@ -0,0 +1 @@ +page-not-found=La p\u00e1gina Wiki no se ha podido encontrar \ No newline at end of file diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarListingWebScript.java b/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarListingWebScript.java index e5e7823553..3821c6baf7 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarListingWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarListingWebScript.java @@ -18,6 +18,7 @@ */ package org.alfresco.repo.web.scripts.calendar; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Comparator; @@ -28,6 +29,7 @@ import java.util.Map; import org.alfresco.service.cmr.calendar.CalendarEntry; import org.alfresco.service.cmr.calendar.CalendarRecurrenceHelper; +import org.alfresco.util.ISO8601DateFormat; /** * This class provides functionality common across the webscripts @@ -55,14 +57,14 @@ public abstract class AbstractCalendarListingWebScript extends AbstractCalendarW public int compare(Map resultA, Map resultB) { - Date startA = (Date)resultA.get(RESULT_START); - Date startB = (Date)resultB.get(RESULT_START); + Date startA = ISO8601DateFormat.parse((String)resultA.get(RESULT_START)); + Date startB = ISO8601DateFormat.parse((String)resultB.get(RESULT_START)); int cmp = startA.compareTo(startB); if (cmp == 0) { - Date endA = (Date)resultA.get(RESULT_END); - Date endB = (Date)resultB.get(RESULT_END); + Date endA = ISO8601DateFormat.parse((String)resultA.get(RESULT_END)); + Date endB = ISO8601DateFormat.parse((String)resultB.get(RESULT_END)); cmp = endA.compareTo(endB); if (cmp == 0) { @@ -173,7 +175,15 @@ public abstract class AbstractCalendarListingWebScript extends AbstractCalendarW private void updateRepeatingStartEnd(Date newStart, long duration, Map result) { Date newEnd = new Date(newStart.getTime() + duration); - result.put(RESULT_START, newStart); - result.put(RESULT_END, newEnd); + result.put(RESULT_START, ISO8601DateFormat.format(newStart)); + result.put(RESULT_END, ISO8601DateFormat.format(newEnd)); + String legacyDateFormat = "M/d/yyyy"; + SimpleDateFormat ldf = new SimpleDateFormat(legacyDateFormat); + String legacyTimeFormat ="HH:mm"; + SimpleDateFormat ltf = new SimpleDateFormat(legacyTimeFormat); + result.put("legacyDateFrom", ldf.format(newStart)); + result.put("legacyTimeFrom", ltf.format(newStart)); + result.put("legacyDateTo", ldf.format(newEnd)); + result.put("legacyTimeTo", ltf.format(newEnd)); } } diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarWebScript.java b/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarWebScript.java index 6a62e8189c..73fda8f906 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarWebScript.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/AbstractCalendarWebScript.java @@ -34,6 +34,7 @@ import org.alfresco.repo.calendar.CalendarModel; import org.alfresco.repo.content.MimetypeMap; import org.alfresco.service.cmr.activities.ActivityService; import org.alfresco.service.cmr.calendar.CalendarEntry; +import org.alfresco.service.cmr.calendar.CalendarEntryDTO; import org.alfresco.service.cmr.calendar.CalendarService; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; @@ -45,6 +46,11 @@ import org.alfresco.util.ISO8601DateFormat; import org.alfresco.util.ScriptPagingDetails; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.joda.time.DateTime; +import org.joda.time.DateTimeZone; +import org.joda.time.format.DateTimeFormat; +import org.joda.time.format.DateTimeFormatter; +import org.joda.time.format.ISODateTimeFormat; import org.json.JSONException; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; @@ -258,8 +264,19 @@ public abstract class AbstractCalendarWebScript extends DeclarativeWebScript else if (json.containsKey("allday")) { // Old style all-day event - entry.setStart(parseDate(getOrNull(json, "from"))); - entry.setEnd(parseDate(getOrNull(json, "to"))); + Date start = parseDate(getOrNull(json, "from")); + Date end = parseDate(getOrNull(json, "to")); + // Store it as UTC midnight to midnight + // Reset the time part to ensure that + String isoStartAt = ISO8601DateFormat.format(start); + String isoEndAt = ISO8601DateFormat.format(end); + String utcMidnight = "T00:00:00Z"; + isoStartAt = isoStartAt.substring(0, 10) + utcMidnight; + isoEndAt = isoEndAt.substring(0, 10) + utcMidnight; + entry.setStart(ISO8601DateFormat.parse(isoStartAt)); + entry.setEnd(ISO8601DateFormat.parse(isoEndAt)); + + } else { @@ -484,6 +501,45 @@ public abstract class AbstractCalendarWebScript extends DeclarativeWebScript return executeImpl(site, eventName, req, json, status, cache); } + + /** + * Remove the time zone for a given date if the + * Calendar Entry is an all day event + * @return ISO 8601 formatted date String + */ + protected String removeTimeZoneIfIsAllDay(Date date, Boolean isAllDay){ + return removeTimeZoneIfIsAllDay(date, isAllDay, null); + } + + + /** + * Remove the time zone for a given date if the + * Calendar Entry is an all day event + * @return ISO 8601 formatted date String if datePattern is null + */ + protected String removeTimeZoneIfIsAllDay(Date date, Boolean isAllDay, String datePattern){ + + DateTime dt; + if(isAllDay){ + dt= new DateTime(date, DateTimeZone.UTC); + }else{ + dt = new DateTime(date); + } + DateTimeFormatter fmt; + if(datePattern==null){ + if(isAllDay){ + fmt = DateTimeFormat.forPattern("yyyy-MM-dd'T00:00:00.000'"); + }else{ + fmt = ISODateTimeFormat.dateTime(); + } + + }else{ + //For Legacy Dates and Times. + fmt = DateTimeFormat.forPattern(datePattern); + } + return dt.toString(fmt); + } + protected abstract Map executeImpl(SiteInfo site, String eventName, WebScriptRequest req, JSONObject json, Status status, Cache cache); diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntriesListGet.java b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntriesListGet.java index 4f3094bced..2f35cde67c 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntriesListGet.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntriesListGet.java @@ -31,6 +31,7 @@ import org.alfresco.query.PagingRequest; import org.alfresco.query.PagingResults; import org.alfresco.repo.calendar.CalendarModel; import org.alfresco.service.cmr.calendar.CalendarEntry; +import org.alfresco.service.cmr.calendar.CalendarEntryDTO; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.site.SiteInfo; import org.json.simple.JSONObject; @@ -87,8 +88,17 @@ public class CalendarEntriesListGet extends AbstractCalendarListingWebScript result.put(RESULT_EVENT, entry); result.put(RESULT_NAME, entry.getSystemName()); result.put(RESULT_TITLE, entry.getTitle()); - result.put(RESULT_START, entry.getStart()); - result.put(RESULT_END, entry.getEnd()); + boolean isAllDay = CalendarEntryDTO.isAllDay(entry); + result.put(RESULT_START, removeTimeZoneIfIsAllDay(entry.getStart(),isAllDay)); + result.put(RESULT_END, removeTimeZoneIfIsAllDay(entry.getEnd(),isAllDay)); + + String legacyDateFormat = "M/d/yyyy"; + String legacyTimeFormat ="HH:mm"; + result.put("legacyDateFrom", removeTimeZoneIfIsAllDay(entry.getStart(), isAllDay, legacyDateFormat)); + result.put("legacyTimeFrom", removeTimeZoneIfIsAllDay(entry.getStart(), isAllDay, legacyTimeFormat)); + result.put("legacyDateTo", removeTimeZoneIfIsAllDay(entry.getEnd(), isAllDay, legacyDateFormat)); + result.put("legacyTimeTo", removeTimeZoneIfIsAllDay(entry.getEnd(), isAllDay, legacyTimeFormat)); + result.put("fromDate", entry.getStart()); result.put("tags", entry.getTags()); @@ -125,7 +135,7 @@ public class CalendarEntriesListGet extends AbstractCalendarListingWebScript // If they asked for repeating events to be expanded, then do so if (resortNeeded) { - Collections.sort(results, getEventDetailsSorter()); + Collections.sort(results, getEventDetailsSorter()); } // All done diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryGet.java b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryGet.java index ecdaeb597c..a789dd653c 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryGet.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryGet.java @@ -71,12 +71,21 @@ public class CalendarEntryGet extends AbstractCalendarWebScript result.put("what", entry.getTitle()); result.put("description", entry.getDescription()); result.put("location", entry.getLocation()); - result.put("from", entry.getStart()); - result.put("to", entry.getEnd()); + boolean isAllDay = CalendarEntryDTO.isAllDay(entry); + result.put("from", removeTimeZoneIfIsAllDay(entry.getStart(),isAllDay)); + result.put("to", removeTimeZoneIfIsAllDay(entry.getEnd(),isAllDay)); + + String legacyDateFormat = "M/d/yyyy"; + String legacyTimeFormat ="HH:mm"; + result.put("legacyDateFrom", removeTimeZoneIfIsAllDay(entry.getStart(), isAllDay, legacyDateFormat)); + result.put("legacyTimeFrom", removeTimeZoneIfIsAllDay(entry.getStart(), isAllDay, legacyTimeFormat)); + result.put("legacyDateTo", removeTimeZoneIfIsAllDay(entry.getEnd(), isAllDay, legacyDateFormat)); + result.put("legacyTimeTo", removeTimeZoneIfIsAllDay(entry.getEnd(), isAllDay, legacyTimeFormat)); + result.put("tags", entry.getTags()); result.put("isoutlook", entry.isOutlook()); result.put("outlookuid", entry.getOutlookUID()); - result.put("allday", CalendarEntryDTO.isAllDay(entry)); + result.put("allday", isAllDay); result.put("docfolder", entry.getSharePointDocFolder()); result.put("recurrence", buildRecurrenceString(entry)); @@ -121,6 +130,10 @@ public class CalendarEntryGet extends AbstractCalendarWebScript Map days = CalendarRecurrenceHelper.buildLocalRecurrenceDaysOfTheWeek(I18NUtil.getLocale()); + // Get our weeks names, in the current locale + Map weeks = + CalendarRecurrenceHelper.buildLocalRecurrenceWeekNames(I18NUtil.getLocale()); + // Turn the string into a useful map Map params = CalendarRecurrenceHelper.extractRecurrenceRule(event); @@ -173,8 +186,8 @@ public class CalendarEntryGet extends AbstractCalendarWebScript } else if (params.get("BYSETPOS") != null) { - text.append("Occurs the "); - text.append(days.get(params.get("BYSETPOS"))); + text.append(weeks.get((Integer.parseInt(params.get("BYSETPOS")))) + " "); + text.append(days.get(params.get("BYDAY"))); } text.append(" of every " + interval + " month(s) "); } @@ -188,7 +201,8 @@ public class CalendarEntryGet extends AbstractCalendarWebScript else { text.append("Occurs the "); - text.append(days.get(params.get("BYSETPOS"))); + text.append(weeks.get((Integer.parseInt(params.get("BYSETPOS")))) + " "); + text.append(days.get(params.get("BYDAY")) + " "); text.append(" of " + params.get("BYMONTH") + " month "); } } diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPost.java b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPost.java index 5a32bfed43..4de9d255f5 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPost.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPost.java @@ -19,6 +19,7 @@ package org.alfresco.repo.web.scripts.calendar; import java.text.MessageFormat; +import java.text.SimpleDateFormat; import java.util.HashMap; import java.util.Map; import java.util.ResourceBundle; @@ -91,8 +92,17 @@ public class CalendarEntryPost extends AbstractCalendarWebScript result.put("name", entry.getTitle()); result.put("desc", entry.getDescription()); result.put("where", entry.getLocation()); - result.put("from", entry.getStart()); - result.put("to", entry.getEnd()); + + result.put("from", removeTimeZoneIfIsAllDay(entry.getStart(),isAllDay)); + result.put("to", removeTimeZoneIfIsAllDay(entry.getEnd(),isAllDay)); + + String legacyDateFormat = "yyyy-MM-dd"; + String legacyTimeFormat ="HH:mm"; + result.put("legacyDateFrom", removeTimeZoneIfIsAllDay(entry.getStart(), isAllDay, legacyDateFormat)); + result.put("legacyTimeFrom", removeTimeZoneIfIsAllDay(entry.getStart(), isAllDay, legacyTimeFormat)); + result.put("legacyDateTo", removeTimeZoneIfIsAllDay(entry.getEnd(), isAllDay, legacyDateFormat)); + result.put("legacyTimeTo", removeTimeZoneIfIsAllDay(entry.getEnd(), isAllDay, legacyTimeFormat)); + result.put("uri", "calendar/event/" + site.getShortName() + "/" + entry.getSystemName() + dateOpt); diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPut.java b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPut.java index 8a8ed3e018..a52a0bb81a 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPut.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarEntryPut.java @@ -159,8 +159,16 @@ public class CalendarEntryPut extends AbstractCalendarWebScript result.put("summary", entry.getTitle()); result.put("description", entry.getDescription()); result.put("location", entry.getLocation()); - result.put("dtstart", entry.getStart()); - result.put("dtend", entry.getEnd()); + result.put("dtstart", removeTimeZoneIfIsAllDay(entry.getStart(),isAllDay)); + result.put("dtend", removeTimeZoneIfIsAllDay(entry.getEnd(),isAllDay)); + + String legacyDateFormat = "yyyy-MM-dd"; + String legacyTimeFormat ="HH:mm"; + result.put("legacyDateFrom", removeTimeZoneIfIsAllDay(entry.getStart(), isAllDay, legacyDateFormat)); + result.put("legacyTimeFrom", removeTimeZoneIfIsAllDay(entry.getStart(), isAllDay, legacyTimeFormat)); + result.put("legacyDateTo", removeTimeZoneIfIsAllDay(entry.getEnd(), isAllDay, legacyDateFormat)); + result.put("legacyTimeTo", removeTimeZoneIfIsAllDay(entry.getEnd(), isAllDay, legacyTimeFormat)); + result.put("uri", "calendar/event/" + site.getShortName() + "/" + entry.getSystemName() + dateOpt); diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarRestApiTest.java b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarRestApiTest.java index 4bd205a9d8..87931c8acc 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/CalendarRestApiTest.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/CalendarRestApiTest.java @@ -251,6 +251,57 @@ public class CalendarRestApiTest extends BaseWebScriptTest return createEntry(name, where, description, json, expectedStatus); } + /** + * Creates an all day event for the 29th in a +1hr time zone + */ + private JSONObject createAllDayEntryDifferentTimeZone(String name, String where, String description, + int expectedStatus) throws Exception + { + String date = "2011-06-29"; // A wednesday + String start = "00:00"; + String end = "00:00"; + + JSONObject json = new JSONObject(); + json.put("startAt", date + "T" + start + ":00+04:00"); + json.put("endAt", date + "T" + end + ":00+04:00"); + json.put("allday", Boolean.TRUE); + return createEntry(name, where, description, json, expectedStatus); + } + + /** + * Creates an all day event for the 29th + */ + private JSONObject createAllDayEntry(String name, String where, String description, + int expectedStatus) throws Exception + { + String date = "2011-06-29"; // A wednesday + String start = "00:00"; + String end = "00:00"; + + JSONObject json = new JSONObject(); + json.put("startAt", date + "T" + start + ":00+01:00"); + json.put("endAt", date + "T" + end + ":00+01:00"); + json.put("allday", Boolean.TRUE); + return createEntry(name, where, description, json, expectedStatus); + } + + /** + * Creates an all day event that starts on the 27th and ends on the 29th + */ + private JSONObject createMultiAllDayEntry(String name, String where, String description, + int expectedStatus) throws Exception + { + String startDate = "2011-06-27"; // A wednesday + String endDate = "2011-06-29"; + String time = "00:00"; + + JSONObject json = new JSONObject(); + json.put("startAt", startDate + "T" + time + ":00+00:00"); + json.put("endAt", endDate + "T" + time + ":00+00:00"); + json.put("allday", Boolean.TRUE); + return createEntry(name, where, description, json, expectedStatus); + } + /** * Creates an event, with the date properties manually set */ @@ -550,6 +601,135 @@ public class CalendarRestApiTest extends BaseWebScriptTest assertEquals(true, entry.has("error")); } + + /** + * Creating, editing, fetching and deleting an entry + */ + public void testCreateAllDayEntry() throws Exception + { + JSONObject entry; + String name; + + + // Won't be there to start with + entry = getEntry(EVENT_TITLE_ONE, Status.STATUS_OK); + assertEquals(true, entry.has("error")); + + + // Create all day event + entry = createAllDayEntry(EVENT_TITLE_ONE, "Where", "Thing", Status.STATUS_OK); + name = getNameFromEntry(entry); + + assertEquals(EVENT_TITLE_ONE, entry.getString("name")); + assertEquals("Where", entry.getString("where")); + assertEquals("Thing", entry.getString("desc")); + assertEquals("2011-06-29", entry.getJSONObject("startAt").getString("legacyDate")); // Different format! + assertEquals("2011-06-29", entry.getJSONObject("endAt").getString("legacyDate")); // Different format! + assertEquals("00:00", entry.getJSONObject("startAt").getString("legacyTime")); + assertEquals("00:00", entry.getJSONObject("endAt").getString("legacyTime")); + assertEquals("true", entry.getString("allday")); + // No isoutlook on create/edit + + + // Fetch + entry = getEntry(name, Status.STATUS_OK); + + assertEquals("Error found " + entry.toString(), false, entry.has("error")); + assertEquals(EVENT_TITLE_ONE, entry.getString("what")); + assertEquals(name, entry.getString("name")); + assertEquals("Where", entry.getString("location")); // Not where... + assertEquals("Thing", entry.getString("description")); // Not desc... + + assertEquals("false", entry.getString("isoutlook")); + assertEquals("6/29/2011", entry.getJSONObject("startAt").getString("legacyDate")); + assertEquals("6/29/2011", entry.getJSONObject("endAt").getString("legacyDate")); + assertEquals("00:00", entry.getJSONObject("startAt").getString("legacyTime")); + assertEquals("00:00", entry.getJSONObject("endAt").getString("legacyTime")); + assertEquals("true", entry.getString("allday")); + + // Check the new style dates too, + assertEquals("2011-06-29T00:00:00.000", entry.getJSONObject("startAt").get("iso8601")); + assertEquals("2011-06-29T00:00:00.000", entry.getJSONObject("endAt").get("iso8601")); + + + + + // Create all day event in different time zone + entry = createAllDayEntryDifferentTimeZone(EVENT_TITLE_ONE, "Where", "Thing", Status.STATUS_OK); + name = getNameFromEntry(entry); + + assertEquals(EVENT_TITLE_ONE, entry.getString("name")); + assertEquals("Where", entry.getString("where")); + assertEquals("Thing", entry.getString("desc")); + assertEquals("2011-06-29", entry.getJSONObject("startAt").getString("legacyDate")); // Different format! + assertEquals("2011-06-29", entry.getJSONObject("endAt").getString("legacyDate")); // Different format! + assertEquals("00:00", entry.getJSONObject("startAt").getString("legacyTime")); + assertEquals("00:00", entry.getJSONObject("endAt").getString("legacyTime")); + assertEquals("true", entry.getString("allday")); + // No isoutlook on create/edit + + + // Fetch + entry = getEntry(name, Status.STATUS_OK); + + assertEquals("Error found " + entry.toString(), false, entry.has("error")); + assertEquals(EVENT_TITLE_ONE, entry.getString("what")); + assertEquals(name, entry.getString("name")); + assertEquals("Where", entry.getString("location")); // Not where... + assertEquals("Thing", entry.getString("description")); // Not desc... + + assertEquals("false", entry.getString("isoutlook")); + assertEquals("6/29/2011", entry.getJSONObject("startAt").getString("legacyDate")); + assertEquals("6/29/2011", entry.getJSONObject("endAt").getString("legacyDate")); + assertEquals("00:00", entry.getJSONObject("startAt").getString("legacyTime")); + assertEquals("00:00", entry.getJSONObject("endAt").getString("legacyTime")); + assertEquals("true", entry.getString("allday")); + + // Check the new style dates too + assertEquals("2011-06-29T00:00:00.000", entry.getJSONObject("startAt").get("iso8601")); + assertEquals("2011-06-29T00:00:00.000", entry.getJSONObject("endAt").get("iso8601")); + + + + // Create Multi all day event + entry = createMultiAllDayEntry(EVENT_TITLE_ONE, "Where", "Thing", Status.STATUS_OK); + name = getNameFromEntry(entry); + + assertEquals(EVENT_TITLE_ONE, entry.getString("name")); + assertEquals("Where", entry.getString("where")); + assertEquals("Thing", entry.getString("desc")); + assertEquals("2011-06-27", entry.getJSONObject("startAt").getString("legacyDate")); // Different format! + assertEquals("2011-06-29", entry.getJSONObject("endAt").getString("legacyDate")); // Different format! + assertEquals("00:00", entry.getJSONObject("startAt").getString("legacyTime")); + assertEquals("00:00", entry.getJSONObject("endAt").getString("legacyTime")); + assertEquals("true", entry.getString("allday")); + // No isoutlook on create/edit + + + // Fetch + entry = getEntry(name, Status.STATUS_OK); + + assertEquals("Error found " + entry.toString(), false, entry.has("error")); + assertEquals(EVENT_TITLE_ONE, entry.getString("what")); + assertEquals(name, entry.getString("name")); + assertEquals("Where", entry.getString("location")); // Not where... + assertEquals("Thing", entry.getString("description")); // Not desc... + + assertEquals("false", entry.getString("isoutlook")); + assertEquals("6/27/2011", entry.getJSONObject("startAt").getString("legacyDate")); + assertEquals("6/29/2011", entry.getJSONObject("endAt").getString("legacyDate")); + assertEquals("00:00", entry.getJSONObject("startAt").getString("legacyTime")); + assertEquals("00:00", entry.getJSONObject("endAt").getString("legacyTime")); + assertEquals("true", entry.getString("allday")); + + // Check the new style dates too + assertEquals("2011-06-27T00:00:00.000", entry.getJSONObject("startAt").get("iso8601")); + assertEquals("2011-06-29T00:00:00.000", entry.getJSONObject("endAt").get("iso8601")); + + } + + + /** * When fetching an event, we get permission details. * This test ensures they are correct @@ -825,18 +1005,6 @@ public class CalendarRestApiTest extends BaseWebScriptTest assertEquals("00:00", entry.getJSONObject("startAt").getString("legacyTime")); assertEquals("00:00", entry.getJSONObject("endAt").getString("legacyTime")); assertEquals("true", entry.getString("allday")); - - - // All-day ISO8601 with offset - json = new JSONObject(); - json.put("startAt", "2011-06-21T00:00:00+01:00"); - json.put("endAt", "2011-06-21T00:00:00+01:00"); - json.put("allday", Boolean.TRUE); - - assertEquals("2011-06-21", entry.getJSONObject("startAt").getString("legacyDate")); - assertEquals("2011-06-21", entry.getJSONObject("endAt").getString("legacyDate")); - assertEquals("true", entry.getString("allday")); - // All-day ISO8601 with timezone json = new JSONObject(); diff --git a/source/java/org/alfresco/repo/web/scripts/calendar/UserCalendarEntriesGet.java b/source/java/org/alfresco/repo/web/scripts/calendar/UserCalendarEntriesGet.java index f6e03fad37..0d52c33193 100644 --- a/source/java/org/alfresco/repo/web/scripts/calendar/UserCalendarEntriesGet.java +++ b/source/java/org/alfresco/repo/web/scripts/calendar/UserCalendarEntriesGet.java @@ -18,6 +18,7 @@ */ package org.alfresco.repo.web.scripts.calendar; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; @@ -158,13 +159,24 @@ public class UserCalendarEntriesGet extends AbstractCalendarListingWebScript { // Build the object Map result = new HashMap(); + boolean isAllDay = CalendarEntryDTO.isAllDay(entry); result.put(RESULT_EVENT, entry); result.put(RESULT_NAME, entry.getSystemName()); result.put(RESULT_TITLE, entry.getTitle()); result.put("description", entry.getDescription()); result.put("where", entry.getLocation()); - result.put(RESULT_START, entry.getStart()); - result.put(RESULT_END, entry.getEnd()); + result.put(RESULT_START, removeTimeZoneIfIsAllDay(entry.getStart(),isAllDay)); + result.put(RESULT_END, removeTimeZoneIfIsAllDay(entry.getEnd(),isAllDay)); + + String legacyDateFormat = "yyyy-MM-dd"; + String legacyTimeFormat ="HH:mm"; + result.put("legacyDateFrom", removeTimeZoneIfIsAllDay(entry.getStart(), isAllDay, legacyDateFormat)); + result.put("legacyTimeFrom", removeTimeZoneIfIsAllDay(entry.getStart(), isAllDay, legacyTimeFormat)); + result.put("legacyDateTo", removeTimeZoneIfIsAllDay(entry.getEnd(), isAllDay, legacyDateFormat)); + result.put("legacyTimeTo", removeTimeZoneIfIsAllDay(entry.getEnd(), isAllDay, legacyTimeFormat)); + + + result.put("duration", buildDuration(entry)); result.put("tags", entry.getTags()); result.put("isoutlook", entry.isOutlook());