Added Translation
This commit is contained in:
parent
e70894c048
commit
010bd521bc
@ -1,7 +1,33 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="e7c9c2bb-66f1-4e37-904c-d33d8c113bde" name="Default" comment="" />
|
<list default="true" id="e7c9c2bb-66f1-4e37-904c-d33d8c113bde" name="Default" comment="">
|
||||||
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/backend/.htaccess" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Makefile" afterPath="$PROJECT_DIR$/Makefile" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/build.xml" afterPath="$PROJECT_DIR$/build.xml" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/changelog.txt" afterPath="$PROJECT_DIR$/changelog.txt" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/config.php" afterPath="$PROJECT_DIR$/config.php" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/ABOUT.js" afterPath="$PROJECT_DIR$/js/ABOUT.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/data/Actions.js" afterPath="$PROJECT_DIR$/js/data/Actions.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/data/ResponseHandler.js" afterPath="$PROJECT_DIR$/js/data/ResponseHandler.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/data/timezones.js" afterPath="$PROJECT_DIR$/js/data/timezones.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/dialogs/ImportContentPanel.js" afterPath="$PROJECT_DIR$/js/dialogs/ImportContentPanel.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/dialogs/ImportPanel.js" afterPath="$PROJECT_DIR$/js/dialogs/ImportPanel.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/plugin.calendarimporter.js" afterPath="$PROJECT_DIR$/js/plugin.calendarimporter.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/settings/SettingsCalSyncWidget.js" afterPath="$PROJECT_DIR$/js/settings/SettingsCalSyncWidget.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/settings/SettingsWidget.js" afterPath="$PROJECT_DIR$/js/settings/SettingsWidget.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/settings/dialogs/CalSyncEditContentPanel.js" afterPath="$PROJECT_DIR$/js/settings/dialogs/CalSyncEditContentPanel.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/settings/dialogs/CalSyncEditPanel.js" afterPath="$PROJECT_DIR$/js/settings/dialogs/CalSyncEditPanel.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/settings/ui/CalSyncGrid.js" afterPath="$PROJECT_DIR$/js/settings/ui/CalSyncGrid.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/settings/ui/CalSyncPanel.js" afterPath="$PROJECT_DIR$/js/settings/ui/CalSyncPanel.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/ui/ContextMenu.js" afterPath="$PROJECT_DIR$/js/ui/ContextMenu.js" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/manifest.xml" afterPath="$PROJECT_DIR$/manifest.xml" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/php/download.php" afterPath="$PROJECT_DIR$/php/download.php" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/php/module.calendar.php" afterPath="$PROJECT_DIR$/php/module.calendar.php" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/php/plugin.calendarimporter.php" afterPath="$PROJECT_DIR$/php/plugin.calendarimporter.php" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/php/upload.php" afterPath="$PROJECT_DIR$/php/upload.php" />
|
||||||
|
</list>
|
||||||
<ignored path="calendarimporter.iws" />
|
<ignored path="calendarimporter.iws" />
|
||||||
<ignored path=".idea/workspace.xml" />
|
<ignored path=".idea/workspace.xml" />
|
||||||
<ignored path=".idea/dataSources.local.xml" />
|
<ignored path=".idea/dataSources.local.xml" />
|
||||||
@ -20,104 +46,70 @@
|
|||||||
<favorites_list name="calendarimporter" />
|
<favorites_list name="calendarimporter" />
|
||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<leaf>
|
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||||
<file leaf-file-name="CalSyncEditPanel.js" pinned="false" current-in-tab="false">
|
<file leaf-file-name="ContextMenu.js" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/js/settings/dialogs/CalSyncEditPanel.js">
|
<entry file="file://$PROJECT_DIR$/js/ui/ContextMenu.js">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1480">
|
|
||||||
<caret line="101" column="30" selection-start-line="101" selection-start-column="30" selection-end-line="101" selection-end-column="30" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="CalSyncGrid.js" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/settings/ui/CalSyncGrid.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="504">
|
<state relative-caret-position="504">
|
||||||
<caret line="85" column="59" selection-start-line="85" selection-start-column="59" selection-end-line="85" selection-end-column="59" />
|
<caret line="101" column="8" selection-start-line="101" selection-start-column="8" selection-end-line="104" selection-end-column="0" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="SettingsCalSyncWidget.js" pinned="false" current-in-tab="false">
|
<file leaf-file-name="plugin.calendarimporter.js" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/js/settings/SettingsCalSyncWidget.js">
|
<entry file="file://$PROJECT_DIR$/js/plugin.calendarimporter.js">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="729">
|
<state relative-caret-position="729">
|
||||||
<caret line="104" column="16" selection-start-line="104" selection-start-column="16" selection-end-line="104" selection-end-column="142" />
|
<caret line="320" column="54" selection-start-line="320" selection-start-column="31" selection-end-line="320" selection-end-column="54" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="sync.php" pinned="false" current-in-tab="false">
|
<file leaf-file-name="module.calendar.php" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/backend/sync.php">
|
<entry file="file://$PROJECT_DIR$/php/module.calendar.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="360">
|
<state relative-caret-position="301">
|
||||||
<caret line="24" column="47" selection-start-line="24" selection-start-column="47" selection-end-line="24" selection-end-column="47" />
|
<caret line="329" column="17" selection-start-line="329" selection-start-column="17" selection-end-line="329" selection-end-column="17" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#21#926#0#PHP" expanded="true" />
|
<element signature="e#6#914#0#PHP" expanded="true" />
|
||||||
|
<element signature="n#__construct#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
||||||
|
<element signature="n#execute#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
||||||
|
<element signature="n#randomstring#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
||||||
|
<element signature="n#getDurationStringFromMintues#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="changelog.txt" pinned="false" current-in-tab="true">
|
<file leaf-file-name="Makefile" pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/changelog.txt">
|
<entry file="file://$PROJECT_DIR$/Makefile">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="75">
|
<state relative-caret-position="15">
|
||||||
<caret line="5" column="19" selection-start-line="5" selection-start-column="19" selection-end-line="5" selection-end-column="19" />
|
<caret line="1" column="92" selection-start-line="1" selection-start-column="92" selection-end-line="1" selection-end-column="92" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="manifest.xml" pinned="false" current-in-tab="false">
|
<file leaf-file-name="download.php" pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/php/download.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="144">
|
||||||
|
<caret line="28" column="35" selection-start-line="28" selection-start-column="35" selection-end-line="28" selection-end-column="35" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#7#908#0#PHP" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="manifest.xml" pinned="false" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/manifest.xml">
|
<entry file="file://$PROJECT_DIR$/manifest.xml">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="135">
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
<caret line="9" column="62" selection-start-line="9" selection-start-column="62" selection-end-line="9" selection-end-column="62" />
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="functions.php" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/backend/functions.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="75">
|
|
||||||
<caret line="5" column="26" selection-start-line="5" selection-start-column="26" selection-end-line="5" selection-end-column="26" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="README.txt" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/backend/README.txt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="config.php" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/backend/config.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="CalSyncEditContentPanel.js" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/settings/dialogs/CalSyncEditContentPanel.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="63" selection-start-line="0" selection-start-column="63" selection-end-line="0" selection-end-column="63" />
|
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@ -138,21 +130,33 @@
|
|||||||
<component name="IdeDocumentHistory">
|
<component name="IdeDocumentHistory">
|
||||||
<option name="CHANGED_PATHS">
|
<option name="CHANGED_PATHS">
|
||||||
<list>
|
<list>
|
||||||
<option value="$PROJECT_DIR$/php/plugin.calendarimporter.php" />
|
|
||||||
<option value="$PROJECT_DIR$/config.php" />
|
|
||||||
<option value="$PROJECT_DIR$/js/plugin.calendarimporter.js" />
|
|
||||||
<option value="$PROJECT_DIR$/php/module.calendar.php" />
|
|
||||||
<option value="$PROJECT_DIR$/js/data/CalendarHelper.js" />
|
<option value="$PROJECT_DIR$/js/data/CalendarHelper.js" />
|
||||||
<option value="$PROJECT_DIR$/js/data/Actions.js" />
|
|
||||||
<option value="$PROJECT_DIR$/js/dialogs/ImportPanel.js" />
|
|
||||||
<option value="$PROJECT_DIR$/js/settings/dialogs/CalSyncEditContentPanel.js" />
|
|
||||||
<option value="$PROJECT_DIR$/js/settings/SettingsWidget.js" />
|
|
||||||
<option value="$PROJECT_DIR$/js/settings/SettingsCalSyncWidget.js" />
|
|
||||||
<option value="$PROJECT_DIR$/js/settings/ui/CalSyncGrid.js" />
|
|
||||||
<option value="$PROJECT_DIR$/js/settings/dialogs/CalSyncEditPanel.js" />
|
|
||||||
<option value="$PROJECT_DIR$/backend/sync.php" />
|
<option value="$PROJECT_DIR$/backend/sync.php" />
|
||||||
<option value="$PROJECT_DIR$/backend/functions.php" />
|
<option value="$PROJECT_DIR$/backend/functions.php" />
|
||||||
<option value="$PROJECT_DIR$/changelog.txt" />
|
<option value="$PROJECT_DIR$/changelog.txt" />
|
||||||
|
<option value="$PROJECT_DIR$/Makefile" />
|
||||||
|
<option value="$PROJECT_DIR$/manifest.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/php/upload.php" />
|
||||||
|
<option value="$PROJECT_DIR$/php/download.php" />
|
||||||
|
<option value="$PROJECT_DIR$/php/plugin.calendarimporter.php" />
|
||||||
|
<option value="$PROJECT_DIR$/build.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/js/ABOUT.js" />
|
||||||
|
<option value="$PROJECT_DIR$/js/ui/ContextMenu.js" />
|
||||||
|
<option value="$PROJECT_DIR$/js/settings/SettingsWidget.js" />
|
||||||
|
<option value="$PROJECT_DIR$/js/settings/SettingsCalSyncWidget.js" />
|
||||||
|
<option value="$PROJECT_DIR$/js/settings/ui/CalSyncGrid.js" />
|
||||||
|
<option value="$PROJECT_DIR$/js/settings/ui/CalSyncPanel.js" />
|
||||||
|
<option value="$PROJECT_DIR$/js/settings/dialogs/CalSyncEditPanel.js" />
|
||||||
|
<option value="$PROJECT_DIR$/js/settings/dialogs/CalSyncEditContentPanel.js" />
|
||||||
|
<option value="$PROJECT_DIR$/js/dialogs/ImportPanel.js" />
|
||||||
|
<option value="$PROJECT_DIR$/js/dialogs/ImportContentPanel.js" />
|
||||||
|
<option value="$PROJECT_DIR$/js/data/ResponseHandler.js" />
|
||||||
|
<option value="$PROJECT_DIR$/js/data/Actions.js" />
|
||||||
|
<option value="$PROJECT_DIR$/js/data/timezones.js" />
|
||||||
|
<option value="$PROJECT_DIR$/backend/.htaccess" />
|
||||||
|
<option value="$PROJECT_DIR$/config.php" />
|
||||||
|
<option value="$PROJECT_DIR$/js/plugin.calendarimporter.js" />
|
||||||
|
<option value="$PROJECT_DIR$/php/module.calendar.php" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@ -162,6 +166,9 @@
|
|||||||
<detection-done>true</detection-done>
|
<detection-done>true</detection-done>
|
||||||
<sorting>DEFINITION_ORDER</sorting>
|
<sorting>DEFINITION_ORDER</sorting>
|
||||||
</component>
|
</component>
|
||||||
|
<component name="PhpServers">
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
<component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" />
|
<component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" />
|
||||||
<component name="ProjectFrameBounds">
|
<component name="ProjectFrameBounds">
|
||||||
<option name="x" value="65" />
|
<option name="x" value="65" />
|
||||||
@ -213,6 +220,20 @@
|
|||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
||||||
</PATH_ELEMENT>
|
</PATH_ELEMENT>
|
||||||
</PATH>
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="calendarimporter" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="calendarimporter" />
|
||||||
|
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="php" />
|
||||||
|
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="calendarimporter" />
|
<option name="myItemId" value="calendarimporter" />
|
||||||
@ -245,86 +266,6 @@
|
|||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
||||||
</PATH_ELEMENT>
|
</PATH_ELEMENT>
|
||||||
</PATH>
|
</PATH>
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="calendarimporter" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="calendarimporter" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="js" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="settings" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
</PATH>
|
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="calendarimporter" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="calendarimporter" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="js" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="settings" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="ui" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
</PATH>
|
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="calendarimporter" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="calendarimporter" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="js" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="settings" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="dialogs" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
</PATH>
|
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="calendarimporter" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="calendarimporter" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="js" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="dialogs" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
</PATH>
|
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="calendarimporter" />
|
<option name="myItemId" value="calendarimporter" />
|
||||||
@ -343,20 +284,6 @@
|
|||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
||||||
</PATH_ELEMENT>
|
</PATH_ELEMENT>
|
||||||
</PATH>
|
</PATH>
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="calendarimporter" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="calendarimporter" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="backend" />
|
|
||||||
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
</PATH>
|
|
||||||
</subPane>
|
</subPane>
|
||||||
</pane>
|
</pane>
|
||||||
<pane id="Scope" />
|
<pane id="Scope" />
|
||||||
@ -386,6 +313,12 @@
|
|||||||
<method />
|
<method />
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
|
<configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
|
||||||
|
<node-interpreter>project</node-interpreter>
|
||||||
|
<node-options />
|
||||||
|
<gulpfile />
|
||||||
|
<tasks />
|
||||||
|
<arguments />
|
||||||
|
<envs />
|
||||||
<method />
|
<method />
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration default="true" type="js.build_tools.npm" factoryName="npm">
|
<configuration default="true" type="js.build_tools.npm" factoryName="npm">
|
||||||
@ -412,6 +345,9 @@
|
|||||||
<component name="ShelveChangesManager" show_recycled="false">
|
<component name="ShelveChangesManager" show_recycled="false">
|
||||||
<option name="remove_strategy" value="false" />
|
<option name="remove_strategy" value="false" />
|
||||||
</component>
|
</component>
|
||||||
|
<component name="SvnConfiguration">
|
||||||
|
<configuration />
|
||||||
|
</component>
|
||||||
<component name="TaskManager">
|
<component name="TaskManager">
|
||||||
<task active="true" id="Default" summary="Default task">
|
<task active="true" id="Default" summary="Default task">
|
||||||
<changelist id="e7c9c2bb-66f1-4e37-904c-d33d8c113bde" name="Default" comment="" />
|
<changelist id="e7c9c2bb-66f1-4e37-904c-d33d8c113bde" name="Default" comment="" />
|
||||||
@ -419,12 +355,13 @@
|
|||||||
<option name="number" value="Default" />
|
<option name="number" value="Default" />
|
||||||
<option name="presentableId" value="Default" />
|
<option name="presentableId" value="Default" />
|
||||||
<updated>1477949602474</updated>
|
<updated>1477949602474</updated>
|
||||||
<workItem from="1477949603566" duration="9042000" />
|
<workItem from="1477949603566" duration="9204000" />
|
||||||
|
<workItem from="1480441197414" duration="4152000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TimeTrackingManager">
|
<component name="TimeTrackingManager">
|
||||||
<option name="totallyTimeSpent" value="9042000" />
|
<option name="totallyTimeSpent" value="13356000" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ToolWindowManager">
|
<component name="ToolWindowManager">
|
||||||
<frame x="65" y="24" width="1792" height="999" extended-state="6" />
|
<frame x="65" y="24" width="1792" height="999" extended-state="6" />
|
||||||
@ -432,19 +369,19 @@
|
|||||||
<layout>
|
<layout>
|
||||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
||||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
|
||||||
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32900432" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32900432" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32900432" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32900432" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
|
||||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||||
</layout>
|
</layout>
|
||||||
@ -467,131 +404,17 @@
|
|||||||
<watches-manager />
|
<watches-manager />
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$PROJECT_DIR$/Makefile">
|
<entry file="file://$PROJECT_DIR$/js/settings/dialogs/CalSyncEditPanel.js">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="1515">
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
<caret line="101" column="30" selection-start-line="101" selection-start-column="30" selection-end-line="101" selection-end-column="30" />
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/php/composer.json">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/php/upload.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/data/ResponseHandler.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-456">
|
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<element signature="n#!!doc" expanded="false" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/php/module.calendar.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1057">
|
|
||||||
<caret line="467" column="64" selection-start-line="467" selection-start-column="64" selection-end-line="467" selection-end-column="64" />
|
|
||||||
<folding>
|
|
||||||
<element signature="n#__construct#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
|
||||||
<element signature="n#execute#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
|
||||||
<element signature="n#randomstring#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
|
||||||
<element signature="n#getDurationStringFromMintues#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
|
||||||
<element signature="n#exportCalendar#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
|
||||||
<element signature="n#importCalendar#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
|
||||||
<element signature="n#getAttachmentPath#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
|
||||||
<element signature="n#loadCalendar#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
|
||||||
<element signature="n#parseCalendarToArray#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/config.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="60">
|
|
||||||
<caret line="4" column="60" selection-start-line="4" selection-start-column="12" selection-end-line="4" selection-end-column="60" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/php/plugin.calendarimporter.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="569">
|
|
||||||
<caret line="82" column="40" selection-start-line="82" selection-start-column="29" selection-end-line="82" selection-end-column="40" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/dialogs/ImportContentPanel.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-171">
|
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding>
|
|
||||||
<element signature="n#!!doc" expanded="false" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/data/CalendarHelper.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/dialogs/ImportPanel.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="332">
|
|
||||||
<caret line="245" column="12" selection-start-line="245" selection-start-column="12" selection-end-line="245" selection-end-column="226" />
|
|
||||||
<folding>
|
|
||||||
<element signature="n#!!doc" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/data/Actions.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="144">
|
|
||||||
<caret line="133" column="67" selection-start-line="133" selection-start-column="22" selection-end-line="133" selection-end-column="67" />
|
|
||||||
<folding>
|
|
||||||
<element signature="n#!!doc" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/settings/SettingsWidget.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="340">
|
|
||||||
<caret line="83" column="82" selection-start-line="83" selection-start-column="82" selection-end-line="83" selection-end-column="82" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/js/plugin.calendarimporter.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-51">
|
|
||||||
<caret line="262" column="12" selection-start-line="262" selection-start-column="12" selection-end-line="262" selection-end-column="12" />
|
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/js/settings/ui/CalSyncGrid.js">
|
<entry file="file://$PROJECT_DIR$/js/settings/ui/CalSyncGrid.js">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="504">
|
<state relative-caret-position="1275">
|
||||||
<caret line="85" column="59" selection-start-line="85" selection-start-column="59" selection-end-line="85" selection-end-column="59" />
|
<caret line="85" column="59" selection-start-line="85" selection-start-column="59" selection-end-line="85" selection-end-column="59" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
@ -599,12 +422,62 @@
|
|||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/js/settings/SettingsCalSyncWidget.js">
|
<entry file="file://$PROJECT_DIR$/js/settings/SettingsCalSyncWidget.js">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="729">
|
<state relative-caret-position="1560">
|
||||||
<caret line="104" column="16" selection-start-line="104" selection-start-column="16" selection-end-line="104" selection-end-column="142" />
|
<caret line="104" column="16" selection-start-line="104" selection-start-column="16" selection-end-line="104" selection-end-column="142" />
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/backend/sync.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="60">
|
||||||
|
<caret line="24" column="47" selection-start-line="24" selection-start-column="47" selection-end-line="24" selection-end-column="47" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#21#926#0#PHP" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/changelog.txt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/manifest.xml">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/backend/functions.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="75">
|
||||||
|
<caret line="5" column="26" selection-start-line="5" selection-start-column="26" selection-end-line="5" selection-end-column="26" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/backend/README.txt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/backend/config.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/js/settings/dialogs/CalSyncEditContentPanel.js">
|
<entry file="file://$PROJECT_DIR$/js/settings/dialogs/CalSyncEditContentPanel.js">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="0">
|
||||||
@ -613,14 +486,14 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/js/settings/dialogs/CalSyncEditPanel.js">
|
<entry file="file://$PROJECT_DIR$/php/composer.json">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="1480">
|
<state relative-caret-position="0">
|
||||||
<caret line="101" column="30" selection-start-line="101" selection-start-column="30" selection-end-line="101" selection-end-column="30" />
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
<folding />
|
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/data/CalendarHelper.js" />
|
||||||
<entry file="file://$PROJECT_DIR$/backend/functions.php">
|
<entry file="file://$PROJECT_DIR$/backend/functions.php">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="75">
|
<state relative-caret-position="75">
|
||||||
@ -637,6 +510,139 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/backend/sync.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="60">
|
||||||
|
<caret line="24" column="47" selection-start-line="24" selection-start-column="47" selection-end-line="24" selection-end-column="47" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#21#926#0#PHP" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/changelog.txt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="30">
|
||||||
|
<caret line="2" column="30" selection-start-line="2" selection-start-column="30" selection-end-line="2" selection-end-column="30" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/build.xml">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="30">
|
||||||
|
<caret line="2" column="56" selection-start-line="2" selection-start-column="56" selection-end-line="2" selection-end-column="56" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/ABOUT.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="744">
|
||||||
|
<caret line="61" column="71" selection-start-line="61" selection-start-column="71" selection-end-line="61" selection-end-column="71" />
|
||||||
|
<folding>
|
||||||
|
<marker date="1480442383471" expanded="true" signature="1214:1218" ph="<" />
|
||||||
|
<marker date="1480442383471" expanded="true" signature="1244:1248" ph=">" />
|
||||||
|
<marker date="1480442383471" expanded="true" signature="2881:2885" ph="<" />
|
||||||
|
<marker date="1480442383471" expanded="true" signature="2905:2909" ph=">" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/settings/SettingsCalSyncWidget.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="945">
|
||||||
|
<caret line="63" column="55" selection-start-line="63" selection-start-column="55" selection-end-line="63" selection-end-column="55" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/settings/ui/CalSyncGrid.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="435">
|
||||||
|
<caret line="44" column="93" selection-start-line="44" selection-start-column="57" selection-end-line="44" selection-end-column="93" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/settings/ui/CalSyncPanel.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="744">
|
||||||
|
<caret line="65" column="17" selection-start-line="65" selection-start-column="17" selection-end-line="65" selection-end-column="17" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/settings/SettingsWidget.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="20" selection-end-column="3" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/settings/dialogs/CalSyncEditContentPanel.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="624">
|
||||||
|
<caret line="48" column="55" selection-start-line="48" selection-start-column="55" selection-end-line="48" selection-end-column="55" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/external/Ext.util.base64.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/settings/dialogs/CalSyncEditPanel.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="585">
|
||||||
|
<caret line="147" column="28" selection-start-line="147" selection-start-column="28" selection-end-line="147" selection-end-column="64" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/dialogs/ImportContentPanel.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="774">
|
||||||
|
<caret line="63" column="2" selection-start-line="63" selection-start-column="2" selection-end-line="63" selection-end-column="2" />
|
||||||
|
<folding>
|
||||||
|
<element signature="n#!!doc" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/dialogs/ImportPanel.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding>
|
||||||
|
<element signature="n#!!doc" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/data/ResponseHandler.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="15">
|
||||||
|
<caret line="1" column="29" selection-start-line="1" selection-start-column="29" selection-end-line="1" selection-end-column="29" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/data/timezones.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-9350">
|
||||||
|
<caret line="90" column="87" selection-start-line="90" selection-start-column="87" selection-end-line="90" selection-end-column="87" />
|
||||||
|
<folding>
|
||||||
|
<element signature="n#!!doc" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/backend/README.txt">
|
<entry file="file://$PROJECT_DIR$/backend/README.txt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="0">
|
||||||
@ -645,28 +651,111 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/backend/sync.php">
|
<entry file="file://$PROJECT_DIR$/backend/.htaccess">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="360">
|
<state relative-caret-position="0">
|
||||||
<caret line="24" column="47" selection-start-line="24" selection-start-column="47" selection-end-line="24" selection-end-column="47" />
|
<caret line="0" column="13" selection-start-line="0" selection-start-column="13" selection-end-line="0" selection-end-column="13" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/README.md">
|
||||||
|
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
||||||
|
<state split_layout="SPLIT">
|
||||||
|
<first_editor relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</first_editor>
|
||||||
|
<second_editor />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/config.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="30">
|
||||||
|
<caret line="2" column="59" selection-start-line="2" selection-start-column="54" selection-end-line="2" selection-end-column="59" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/php/plugin.calendarimporter.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-90">
|
||||||
|
<caret line="36" column="5" selection-start-line="36" selection-start-column="5" selection-end-line="36" selection-end-column="5" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/php/upload.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-314">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#21#926#0#PHP" expanded="true" />
|
<element signature="e#6#905#0#PHP" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/ui/ContextMenu.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="504">
|
||||||
|
<caret line="101" column="8" selection-start-line="101" selection-start-column="8" selection-end-line="104" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/php/download.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="144">
|
||||||
|
<caret line="28" column="35" selection-start-line="28" selection-start-column="35" selection-end-line="28" selection-end-column="35" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#7#908#0#PHP" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/data/Actions.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-1191">
|
||||||
|
<caret line="45" column="63" selection-start-line="45" selection-start-column="63" selection-end-line="45" selection-end-column="63" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/plugin.calendarimporter.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="729">
|
||||||
|
<caret line="320" column="54" selection-start-line="320" selection-start-column="31" selection-end-line="320" selection-end-column="54" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/php/module.calendar.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="301">
|
||||||
|
<caret line="329" column="17" selection-start-line="329" selection-start-column="17" selection-end-line="329" selection-end-column="17" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#6#914#0#PHP" expanded="true" />
|
||||||
|
<element signature="n#__construct#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
||||||
|
<element signature="n#execute#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
||||||
|
<element signature="n#randomstring#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
||||||
|
<element signature="n#getDurationStringFromMintues#0;n#CalendarModule#0;n#!!top" expanded="false" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/Makefile">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="15">
|
||||||
|
<caret line="1" column="92" selection-start-line="1" selection-start-column="92" selection-end-line="1" selection-end-column="92" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/manifest.xml">
|
<entry file="file://$PROJECT_DIR$/manifest.xml">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="0">
|
<state relative-caret-position="135">
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
<caret line="9" column="62" selection-start-line="9" selection-start-column="62" selection-end-line="9" selection-end-column="62" />
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/changelog.txt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="75">
|
|
||||||
<caret line="5" column="19" selection-start-line="5" selection-start-column="19" selection-end-line="5" selection-end-column="19" />
|
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
2
Makefile
2
Makefile
@ -1,2 +1,2 @@
|
|||||||
default:
|
default:
|
||||||
ant deploy; cp -r /home/osboxes/Documents/kopano-webapp-3.2.0.285/deploy/plugins/calendarimporter /usr/share/kopano-webapp/plugins/
|
rm -rf /home/osboxes/Documents/kopano-webapp-3.2.0.285/deploy/plugins/calendarimporter; ant deploy; cp -r /home/osboxes/Documents/kopano-webapp-3.2.0.285/deploy/plugins/calendarimporter /usr/share/kopano-webapp/plugins/
|
||||||
|
1
backend/.htaccess
Normal file
1
backend/.htaccess
Normal file
@ -0,0 +1 @@
|
|||||||
|
deny from all
|
83
build.xml
83
build.xml
@ -1,9 +1,10 @@
|
|||||||
<project default="all">
|
<project default="all">
|
||||||
<property environment="env"/>
|
<property environment="env"/>
|
||||||
<property name="root-folder" value="${basedir}/../../"/>
|
<property name="root-folder" value="${basedir}/../.."/>
|
||||||
<property name="tools-folder" value="${root-folder}/tools/"/>
|
<property name="tools-folder" value="${root-folder}/tools/"/>
|
||||||
<property name="target-folder" value="${root-folder}/deploy/plugins"/>
|
<property name="target-folder" value="${root-folder}/deploy/plugins"/>
|
||||||
<property name="server-folder" value="${root-folder}/server"/>
|
<property name="server-folder" value="${root-folder}/server"/>
|
||||||
|
<property name="language-folder" value="${basedir}/languages"/>
|
||||||
|
|
||||||
<import file="${tools-folder}/antutil.xml"/>
|
<import file="${tools-folder}/antutil.xml"/>
|
||||||
|
|
||||||
@ -13,7 +14,7 @@
|
|||||||
</classpath>
|
</classpath>
|
||||||
</typedef>
|
</typedef>
|
||||||
|
|
||||||
<taskdef resource="net/sf/antcontrib/antcontrib.properties">
|
<taskdef resource="net/sf/antcontrib/antlib.xml">
|
||||||
<classpath>
|
<classpath>
|
||||||
<pathelement location="${tools-folder}/lib/ant-contrib-1.0b3.jar"/>
|
<pathelement location="${tools-folder}/lib/ant-contrib-1.0b3.jar"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
@ -49,13 +50,14 @@
|
|||||||
<target name="concat">
|
<target name="concat">
|
||||||
<!-- Concatenate plugin JS file -->
|
<!-- Concatenate plugin JS file -->
|
||||||
<if>
|
<if>
|
||||||
<available file="js" type="dir" />
|
<available file="js" type="dir"/>
|
||||||
<then>
|
<then>
|
||||||
<mkdir dir="${target-folder}/${plugin-folder}/js"/>
|
<mkdir dir="${target-folder}/${plugin-folder}/js"/>
|
||||||
<echo message="Concatenating: ${plugin-debugfile}"/>
|
<echo message="Concatenating: ${plugin-debugfile}"/>
|
||||||
<zConcat outputFolder="${target-folder}/${plugin-folder}/js" outputFile="${plugin-debugfile}" prioritize="\w+">
|
<zConcat outputFolder="${target-folder}/${plugin-folder}/js" outputFile="${plugin-debugfile}"
|
||||||
|
prioritize="\w+">
|
||||||
<concatfiles>
|
<concatfiles>
|
||||||
<fileset dir="js" includes="**/*.js" />
|
<fileset dir="js" includes="**/*.js"/>
|
||||||
</concatfiles>
|
</concatfiles>
|
||||||
</zConcat>
|
</zConcat>
|
||||||
</then>
|
</then>
|
||||||
@ -63,13 +65,14 @@
|
|||||||
|
|
||||||
<!-- Concatenate plugin CSS files -->
|
<!-- Concatenate plugin CSS files -->
|
||||||
<if>
|
<if>
|
||||||
<available file="${plugin-css-folder}" type="dir" />
|
<available file="${plugin-css-folder}" type="dir"/>
|
||||||
<then>
|
<then>
|
||||||
<mkdir dir="${target-folder}/${plugin-folder}/${plugin-css-folder}"/>
|
<mkdir dir="${target-folder}/${plugin-folder}/${plugin-css-folder}"/>
|
||||||
<echo message="Concatenating: ${plugin-css-file}"/>
|
<echo message="Concatenating: ${plugin-css-file}"/>
|
||||||
<zConcat outputFolder="${target-folder}/${plugin-folder}/${plugin-css-folder}" outputFile="${plugin-css-file}">
|
<zConcat outputFolder="${target-folder}/${plugin-folder}/${plugin-css-folder}"
|
||||||
|
outputFile="${plugin-css-file}">
|
||||||
<concatfiles>
|
<concatfiles>
|
||||||
<fileset dir="${plugin-css-folder}" includes="**/*.css" />
|
<fileset dir="${plugin-css-folder}" includes="**/*.css"/>
|
||||||
</concatfiles>
|
</concatfiles>
|
||||||
</zConcat>
|
</zConcat>
|
||||||
</then>
|
</then>
|
||||||
@ -79,7 +82,7 @@
|
|||||||
<!-- Preformat the Concatenated Javascript files to improve compilation -->
|
<!-- Preformat the Concatenated Javascript files to improve compilation -->
|
||||||
<target name="preformat" depends="concat">
|
<target name="preformat" depends="concat">
|
||||||
<if>
|
<if>
|
||||||
<available file="${target-folder}/${plugin-folder}/js/${plugin-debugfile}" type="file" />
|
<available file="${target-folder}/${plugin-folder}/js/${plugin-debugfile}" type="file"/>
|
||||||
<then>
|
<then>
|
||||||
<echo message="Preformatting: ${plugin-debugfile}"/>
|
<echo message="Preformatting: ${plugin-debugfile}"/>
|
||||||
<replaceregexp byline="true">
|
<replaceregexp byline="true">
|
||||||
@ -94,10 +97,11 @@
|
|||||||
<!-- Compress JavaScript -->
|
<!-- Compress JavaScript -->
|
||||||
<target name="compress" depends="preformat">
|
<target name="compress" depends="preformat">
|
||||||
<if>
|
<if>
|
||||||
<available file="${target-folder}/${plugin-folder}/js/${plugin-debugfile}" type="file" />
|
<available file="${target-folder}/${plugin-folder}/js/${plugin-debugfile}" type="file"/>
|
||||||
<then>
|
<then>
|
||||||
<echo message="Compiling: ${plugin-debugfile}" />
|
<echo message="Compiling: ${plugin-debugfile}"/>
|
||||||
<zCompile inputFolder="${target-folder}/${plugin-folder}/js" inputFile="${plugin-debugfile}" outputFolder="${target-folder}/${plugin-folder}/js" outputFile="${plugin-file}">
|
<zCompile inputFolder="${target-folder}/${plugin-folder}/js" inputFile="${plugin-debugfile}"
|
||||||
|
outputFolder="${target-folder}/${plugin-folder}/js" outputFile="${plugin-file}">
|
||||||
<externs>
|
<externs>
|
||||||
var Ext = {};
|
var Ext = {};
|
||||||
var Zarafa = {};
|
var Zarafa = {};
|
||||||
@ -119,10 +123,10 @@
|
|||||||
<!-- syntax check all PHP files -->
|
<!-- syntax check all PHP files -->
|
||||||
<target name="validate">
|
<target name="validate">
|
||||||
<if>
|
<if>
|
||||||
<available file="php" filepath="${env.PATH}" />
|
<available file="php" filepath="${env.PATH}"/>
|
||||||
<then>
|
<then>
|
||||||
<if>
|
<if>
|
||||||
<available file="config.php" type="file" />
|
<available file="config.php" type="file"/>
|
||||||
<then>
|
<then>
|
||||||
<antcall target="syntax-check">
|
<antcall target="syntax-check">
|
||||||
<param name="file" value="config.php"/>
|
<param name="file" value="config.php"/>
|
||||||
@ -130,12 +134,12 @@
|
|||||||
</then>
|
</then>
|
||||||
</if>
|
</if>
|
||||||
<if>
|
<if>
|
||||||
<available file="php" type="dir" />
|
<available file="php" type="dir"/>
|
||||||
<then>
|
<then>
|
||||||
<foreach target="syntax-check" param="file">
|
<foreach target="syntax-check" param="file">
|
||||||
<path>
|
<path>
|
||||||
<fileset dir=".">
|
<fileset dir=".">
|
||||||
<exclude name="php/vendor/**" />
|
<exclude name="php/vendor/**"/>
|
||||||
<include name="**/*.php"/>
|
<include name="**/*.php"/>
|
||||||
</fileset>
|
</fileset>
|
||||||
</path>
|
</path>
|
||||||
@ -157,13 +161,56 @@
|
|||||||
</exec>
|
</exec>
|
||||||
</target>
|
</target>
|
||||||
|
|
||||||
|
<!-- Generate language files -->
|
||||||
|
<target name="language">
|
||||||
|
<if>
|
||||||
|
<available file="msgfmt" filepath="${env.PATH}"/>
|
||||||
|
<then>
|
||||||
|
<for param="file" parallel="true">
|
||||||
|
<fileset dir="${language-folder}">
|
||||||
|
<include name="**/LC_MESSAGES/*.po"/>
|
||||||
|
</fileset>
|
||||||
|
<sequential>
|
||||||
|
<antcall target="msgfmt">
|
||||||
|
<param name="file" value="@{file}"/>
|
||||||
|
</antcall>
|
||||||
|
</sequential>
|
||||||
|
</for>
|
||||||
|
</then>
|
||||||
|
<else>
|
||||||
|
<echo message="WARNING: msgfmt not available, not generating *.mo files for translations"/>
|
||||||
|
<!-- just copy files -->
|
||||||
|
<copy todir="${target-folder}/${plugin-folder}">
|
||||||
|
<fileset dir=".">
|
||||||
|
<include name="languages/**/*.mo"/>
|
||||||
|
<include name="languages/**/*.txt"/>
|
||||||
|
</fileset>
|
||||||
|
</copy>
|
||||||
|
</else>
|
||||||
|
</if>
|
||||||
|
</target>
|
||||||
|
|
||||||
|
<target name="msgfmt">
|
||||||
|
<propertyregex property="outfile" input="${file}" regexp=".*\/(languages\/.*)\.po"
|
||||||
|
replace="${target-folder}/${plugin-folder}/\1\.mo"/>
|
||||||
|
<echo message="Converting ${file} to ${outfile}"/>
|
||||||
|
<dirname property="outdir" file="${outfile}"/>
|
||||||
|
<mkdir dir="${outdir}"/>
|
||||||
|
<exec executable="msgfmt" failonerror="true">
|
||||||
|
<arg value="-v"/>
|
||||||
|
<arg value="-o"/>
|
||||||
|
<arg value="${outfile}"/>
|
||||||
|
<arg value="${file}"/>
|
||||||
|
</exec>
|
||||||
|
</target>
|
||||||
|
|
||||||
<!-- Install all files into the target folder -->
|
<!-- Install all files into the target folder -->
|
||||||
<target name="deploy" depends="compress, validate">
|
<target name="deploy" depends="compress, validate, language">
|
||||||
<mkdir dir="${target-folder}/${plugin-folder}"/>
|
<mkdir dir="${target-folder}/${plugin-folder}"/>
|
||||||
|
|
||||||
<!-- Copy (and validate) manifest.xml -->
|
<!-- Copy (and validate) manifest.xml -->
|
||||||
<if>
|
<if>
|
||||||
<available file="xmllint" filepath="${env.PATH}" />
|
<available file="xmllint" filepath="${env.PATH}"/>
|
||||||
<then>
|
<then>
|
||||||
<exec executable="xmllint" output="${target-folder}/${plugin-folder}/manifest.xml" failonerror="true">
|
<exec executable="xmllint" output="${target-folder}/${plugin-folder}/manifest.xml" failonerror="true">
|
||||||
<arg value="--valid"/>
|
<arg value="--valid"/>
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
calendarimporter 2.2.1:
|
||||||
|
- finally supporting Kopano Webapp 3.1.x
|
||||||
|
- translation to german added
|
||||||
|
|
||||||
calendarimporter 2.2.0:
|
calendarimporter 2.2.0:
|
||||||
- support for Kopano Webapp 3.1.1
|
- support for Kopano Webapp 3.1.1
|
||||||
- Code rework
|
- Code rework
|
||||||
|
19
config.php
19
config.php
@ -1,13 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
/** Disable the import plugin for all clients */
|
/** Disable the import plugin for all clients */
|
||||||
define('PLUGIN_CALENDARIMPORTER_USER_DEFAULT_ENABLE', true);
|
define('PLUGIN_CALENDARIMPORTER_USER_DEFAULT_ENABLE', false);
|
||||||
/** Disable the sync feature for all clients */
|
/** Disable the sync feature for all clients */
|
||||||
define('PLUGIN_CALENDARIMPORTER_USER_DEFAULT_ENABLE_SYNC', true); // not yet implemented
|
define('PLUGIN_CALENDARIMPORTER_USER_DEFAULT_ENABLE_SYNC', true);
|
||||||
|
|
||||||
/** The default calendar to import to*/
|
/** The default calendar to import to*/
|
||||||
define('PLUGIN_CALENDARIMPORTER_DEFAULT', "Kalender");
|
define('PLUGIN_CALENDARIMPORTER_DEFAULT', "Kalender");
|
||||||
define('PLUGIN_CALENDARIMPORTER_DEFAULT_TIMEZONE', "Europe/Vienna");
|
define('PLUGIN_CALENDARIMPORTER_DEFAULT_TIMEZONE', "Europe/Vienna");
|
||||||
|
|
||||||
/** Tempory path for uploaded files... */
|
/** Tempory path for uploaded files... */
|
||||||
define('PLUGIN_CALENDARIMPORTER_TMP_UPLOAD', "/var/lib/kopano-webapp/tmp/");
|
define('PLUGIN_CALENDARIMPORTER_TMP_UPLOAD', "/var/lib/kopano-webapp/tmp/");
|
||||||
?>
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* ABOUT.js zarafa calender to ics im/exporter
|
* ABOUT.js, Kopano calender to ics im/exporter
|
||||||
*
|
*
|
||||||
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
* Copyright (C) 2012-2016 Christoph Haas
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
@ -59,7 +59,7 @@ Zarafa.plugins.calendarimporter.ABOUT = ""
|
|||||||
|
|
||||||
+ "<h1>Ics-parser</h1>"
|
+ "<h1>Ics-parser</h1>"
|
||||||
|
|
||||||
+ "<p>Copyright 2002-2007 Martin Thoma <info@martin-thoma.de></p>"
|
+ "<p>Copyright 2002-2007 Martin Thoma <info@martin-thoma.de></p>"
|
||||||
|
|
||||||
+ "<p>Licensed under the MIT License.</p>"
|
+ "<p>Licensed under the MIT License.</p>"
|
||||||
|
|
||||||
|
@ -41,9 +41,9 @@ Zarafa.plugins.calendarimporter.data.Actions = {
|
|||||||
downloadICS: function (response) {
|
downloadICS: function (response) {
|
||||||
if (response.status == false) {
|
if (response.status == false) {
|
||||||
Zarafa.common.dialogs.MessageBox.show({
|
Zarafa.common.dialogs.MessageBox.show({
|
||||||
title : dgettext('plugin_files', 'Warning'),
|
title: dgettext('plugin_calendarimporter', 'Warning'),
|
||||||
msg : dgettext('plugin_files', response.message),
|
msg: response.message,
|
||||||
icon : Zarafa.common.dialogs.MessageBox.WARNING,
|
icon: Zarafa.common.dialogs.MessageBox.WARNING,
|
||||||
buttons: Zarafa.common.dialogs.MessageBox.OK
|
buttons: Zarafa.common.dialogs.MessageBox.OK
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
@ -87,10 +87,10 @@ Zarafa.plugins.calendarimporter.data.Actions = {
|
|||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
allFolders.push({
|
allFolders.push({
|
||||||
display_name : folder.get("display_name"),
|
display_name: folder.get("display_name"),
|
||||||
entryid : folder.get("entryid"),
|
entryid: folder.get("entryid"),
|
||||||
store_entryid: folder.get("store_entryid"),
|
store_entryid: folder.get("store_entryid"),
|
||||||
is_public : false
|
is_public: false
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -108,10 +108,10 @@ Zarafa.plugins.calendarimporter.data.Actions = {
|
|||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
allFolders.push({
|
allFolders.push({
|
||||||
display_name : folder.get("display_name"),
|
display_name: folder.get("display_name"),
|
||||||
entryid : folder.get("entryid"),
|
entryid: folder.get("entryid"),
|
||||||
store_entryid: folder.get("store_entryid"),
|
store_entryid: folder.get("store_entryid"),
|
||||||
is_public : true
|
is_public: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* ResponseHandler.js zarafa calender to ics im/exporter
|
* ResponseHandler.js, Kopano calender to ics im/exporter
|
||||||
*
|
*
|
||||||
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
* Copyright (C) 2012-2016 Christoph Haas
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
|
1210
js/data/timezones.js
1210
js/data/timezones.js
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* ImportContentPanel.js zarafa calender to ics im/exporter
|
* ImportContentPanel.js, Kopano calender to ics im/exporter
|
||||||
*
|
*
|
||||||
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
* Copyright (C) 2012-2016 Christoph Haas
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
@ -40,20 +40,20 @@ Zarafa.plugins.calendarimporter.dialogs.ImportContentPanel = Ext.extend(Zarafa.c
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @param config Configuration structure
|
* @param config Configuration structure
|
||||||
*/
|
*/
|
||||||
constructor : function(config) {
|
constructor: function (config) {
|
||||||
config = config || {};
|
config = config || {};
|
||||||
Ext.applyIf(config, {
|
Ext.applyIf(config, {
|
||||||
layout : 'fit',
|
layout: 'fit',
|
||||||
title : _('Import Calendar File'),
|
title: dgettext('plugin_calendarimporter', 'Import Calendar File'),
|
||||||
closeOnSave : true,
|
closeOnSave: true,
|
||||||
width : 800,
|
width: 800,
|
||||||
height : 700,
|
height: 700,
|
||||||
//Add panel
|
//Add panel
|
||||||
items : [
|
items: [
|
||||||
{
|
{
|
||||||
xtype : 'calendarimporter.importpanel',
|
xtype: 'calendarimporter.importpanel',
|
||||||
filename : config.filename,
|
filename: config.filename,
|
||||||
folder : config.folder
|
folder: config.folder
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
@ -63,4 +63,4 @@ Zarafa.plugins.calendarimporter.dialogs.ImportContentPanel = Ext.extend(Zarafa.c
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Ext.reg('calendarimporter.contentpanel' ,Zarafa.plugins.calendarimporter.dialogs.ImportContentPanel);
|
Ext.reg('calendarimporter.contentpanel', Zarafa.plugins.calendarimporter.dialogs.ImportContentPanel);
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* ImportPanel.js zarafa calender to ics im/exporter
|
* ImportPanel.js, Kopano calender to ics im/exporter
|
||||||
*
|
*
|
||||||
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
* Copyright (C) 2012-2016 Christoph Haas
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
@ -55,13 +55,13 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
store: null,
|
store: null,
|
||||||
|
|
||||||
/* selected folder */
|
/* selected folder */
|
||||||
folder : null,
|
folder: null,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @param {object} config
|
* @param {object} config
|
||||||
*/
|
*/
|
||||||
constructor : function (config) {
|
constructor: function (config) {
|
||||||
config = config || {};
|
config = config || {};
|
||||||
var self = this;
|
var self = this;
|
||||||
this.timezone = container.getSettingsModel().get("zarafa/v1/plugins/calendarimporter/default_timezone");
|
this.timezone = container.getSettingsModel().get("zarafa/v1/plugins/calendarimporter/default_timezone");
|
||||||
@ -94,20 +94,20 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Ext.apply(config, {
|
Ext.apply(config, {
|
||||||
xtype : 'calendarimporter.importpanel',
|
xtype: 'calendarimporter.importpanel',
|
||||||
ref : "importpanel",
|
ref: "importpanel",
|
||||||
id : "importpanel",
|
id: "importpanel",
|
||||||
layout : {
|
layout: {
|
||||||
type : 'form',
|
type: 'form',
|
||||||
align : 'stretch'
|
align: 'stretch'
|
||||||
},
|
},
|
||||||
anchor : '100%',
|
anchor: '100%',
|
||||||
bodyStyle : 'background-color: inherit;',
|
bodyStyle: 'background-color: inherit;',
|
||||||
defaults : {
|
defaults: {
|
||||||
border : true,
|
border: true,
|
||||||
bodyStyle : 'background-color: inherit; padding: 3px 0px 3px 0px; border-style: none none solid none;'
|
bodyStyle: 'background-color: inherit; padding: 3px 0px 3px 0px; border-style: none none solid none;'
|
||||||
},
|
},
|
||||||
items : [
|
items: [
|
||||||
this.createSelectBox(),
|
this.createSelectBox(),
|
||||||
this.createTimezoneBox(),
|
this.createTimezoneBox(),
|
||||||
this.createDaylightSavingCheckBox(),
|
this.createDaylightSavingCheckBox(),
|
||||||
@ -121,9 +121,9 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
],
|
],
|
||||||
listeners: {
|
listeners: {
|
||||||
afterrender: function (cmp) {
|
afterrender: function (cmp) {
|
||||||
this.loadMask = new Ext.LoadMask(this.getEl(), {msg:'Loading...'});
|
this.loadMask = new Ext.LoadMask(this.getEl(), {msg: dgettext('plugin_calendarimporter', 'Loading...')});
|
||||||
|
|
||||||
if(this.icsfile != null) { // if we have got the filename from an attachment
|
if (this.icsfile != null) { // if we have got the filename from an attachment
|
||||||
this.parseCalendar(this.icsfile, this.timezone, this.ignoredst);
|
this.parseCalendar(this.icsfile, this.timezone, this.ignoredst);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -139,11 +139,11 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
* posted and contains the attachments
|
* posted and contains the attachments
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
initForm : function () {
|
initForm: function () {
|
||||||
return {
|
return {
|
||||||
xtype: 'form',
|
xtype: 'form',
|
||||||
ref: 'addFormPanel',
|
ref: 'addFormPanel',
|
||||||
layout : 'column',
|
layout: 'column',
|
||||||
fileUpload: true,
|
fileUpload: true,
|
||||||
autoWidth: true,
|
autoWidth: true,
|
||||||
autoHeight: true,
|
autoHeight: true,
|
||||||
@ -162,13 +162,13 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
* Reloads the data of the grid
|
* Reloads the data of the grid
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
reloadGridStore: function(eventdata) {
|
reloadGridStore: function (eventdata) {
|
||||||
var parsedData = [];
|
var parsedData = [];
|
||||||
|
|
||||||
if(eventdata !== null) {
|
if (eventdata !== null) {
|
||||||
parsedData = new Array(eventdata.events.length);
|
parsedData = new Array(eventdata.events.length);
|
||||||
var i = 0;
|
var i = 0;
|
||||||
for(i = 0; i < eventdata.events.length; i++) {
|
for (i = 0; i < eventdata.events.length; i++) {
|
||||||
parsedData[i] = [
|
parsedData[i] = [
|
||||||
eventdata.events[i]["subject"],
|
eventdata.events[i]["subject"],
|
||||||
new Date(parseInt(eventdata.events[i]["startdate"]) * 1000),
|
new Date(parseInt(eventdata.events[i]["startdate"]) * 1000),
|
||||||
@ -197,7 +197,7 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
* posted and contains the attachments
|
* posted and contains the attachments
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
createGrid : function() {
|
createGrid: function () {
|
||||||
return {
|
return {
|
||||||
xtype: 'grid',
|
xtype: 'grid',
|
||||||
ref: 'eventgrid',
|
ref: 'eventgrid',
|
||||||
@ -206,10 +206,10 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
store: this.store,
|
store: this.store,
|
||||||
width: '100%',
|
width: '100%',
|
||||||
height: 300,
|
height: 300,
|
||||||
title: 'Select events to import',
|
title: dgettext('plugin_calendarimporter', 'Select events to import'),
|
||||||
frame: false,
|
frame: false,
|
||||||
viewConfig:{
|
viewConfig: {
|
||||||
forceFit:true
|
forceFit: true
|
||||||
},
|
},
|
||||||
colModel: new Ext.grid.ColumnModel({
|
colModel: new Ext.grid.ColumnModel({
|
||||||
defaults: {
|
defaults: {
|
||||||
@ -217,25 +217,53 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
sortable: true
|
sortable: true
|
||||||
},
|
},
|
||||||
columns: [
|
columns: [
|
||||||
{id: 'Summary', header: 'Title', width: 200, sortable: true, dataIndex: 'subject'},
|
{
|
||||||
{header: 'Start', width: 200, sortable: true, dataIndex: 'startdate', renderer : Zarafa.common.ui.grid.Renderers.datetime},
|
id: 'Summary',
|
||||||
{header: 'End', width: 200, sortable: true, dataIndex: 'enddate', renderer : Zarafa.common.ui.grid.Renderers.datetime},
|
header: dgettext('plugin_calendarimporter', 'Title'),
|
||||||
{header: 'Location', width: 150, sortable: true, dataIndex: 'location'},
|
width: 200,
|
||||||
{header: 'Description', sortable: true, dataIndex: 'body'},
|
sortable: true,
|
||||||
{header: "Priority", dataIndex: 'priority', hidden: true},
|
dataIndex: 'subject'
|
||||||
{header: "Label", dataIndex: 'label', hidden: true},
|
},
|
||||||
{header: "Busystatus", dataIndex: 'busy', hidden: true},
|
{
|
||||||
{header: "Privacystatus", dataIndex: 'class', hidden: true},
|
header: dgettext('plugin_calendarimporter', 'Start'),
|
||||||
{header: "Organizer", dataIndex: 'organizer', hidden: true},
|
width: 200,
|
||||||
{header: "Alarm", dataIndex: 'alarms', hidden: true, renderer : Zarafa.common.ui.grid.Renderers.datetime},
|
sortable: true,
|
||||||
{header: "Timezone", dataIndex: 'timezone', hidden: true}
|
dataIndex: 'startdate',
|
||||||
|
renderer: Zarafa.common.ui.grid.Renderers.datetime
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: dgettext('plugin_calendarimporter', 'End'),
|
||||||
|
width: 200,
|
||||||
|
sortable: true,
|
||||||
|
dataIndex: 'enddate',
|
||||||
|
renderer: Zarafa.common.ui.grid.Renderers.datetime
|
||||||
|
},
|
||||||
|
{
|
||||||
|
header: dgettext('plugin_calendarimporter', 'Location'),
|
||||||
|
width: 150,
|
||||||
|
sortable: true,
|
||||||
|
dataIndex: 'location'
|
||||||
|
},
|
||||||
|
{header: dgettext('plugin_calendarimporter', 'Description'), sortable: true, dataIndex: 'body'},
|
||||||
|
{header: dgettext('plugin_calendarimporter', 'Priority'), dataIndex: 'priority', hidden: true},
|
||||||
|
{header: dgettext('plugin_calendarimporter', 'Label'), dataIndex: 'label', hidden: true},
|
||||||
|
{header: dgettext('plugin_calendarimporter', 'Busystatus'), dataIndex: 'busy', hidden: true},
|
||||||
|
{header: dgettext('plugin_calendarimporter', 'Privacystatus'), dataIndex: 'class', hidden: true},
|
||||||
|
{header: dgettext('plugin_calendarimporter', 'Organizer'), dataIndex: 'organizer', hidden: true},
|
||||||
|
{
|
||||||
|
header: dgettext('plugin_calendarimporter', 'Alarm'),
|
||||||
|
dataIndex: 'alarms',
|
||||||
|
hidden: true,
|
||||||
|
renderer: Zarafa.common.ui.grid.Renderers.datetime
|
||||||
|
},
|
||||||
|
{header: dgettext('plugin_calendarimporter', 'Timezone'), dataIndex: 'timezone', hidden: true}
|
||||||
]
|
]
|
||||||
}),
|
}),
|
||||||
sm: new Ext.grid.RowSelectionModel({multiSelect:true})
|
sm: new Ext.grid.RowSelectionModel({multiSelect: true})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
createSelectBox: function() {
|
createSelectBox: function () {
|
||||||
var myStore = Zarafa.plugins.calendarimporter.data.Actions.getAllCalendarFolders(true);
|
var myStore = Zarafa.plugins.calendarimporter.data.Actions.getAllCalendarFolders(true);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -245,19 +273,19 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
name: "choosen_calendar",
|
name: "choosen_calendar",
|
||||||
value: Ext.isEmpty(this.folder) ? Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByName(container.getSettingsModel().get("zarafa/v1/plugins/calendarimporter/default_calendar")).entryid : this.folder,
|
value: Ext.isEmpty(this.folder) ? Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByName(container.getSettingsModel().get("zarafa/v1/plugins/calendarimporter/default_calendar")).entryid : this.folder,
|
||||||
width: 100,
|
width: 100,
|
||||||
fieldLabel: "Select folder",
|
fieldLabel: dgettext('plugin_calendarimporter', 'Select folder'),
|
||||||
store: myStore,
|
store: myStore,
|
||||||
mode: 'local',
|
mode: 'local',
|
||||||
labelSeperator: ":",
|
labelSeperator: ":",
|
||||||
border: false,
|
border: false,
|
||||||
anchor: "100%",
|
anchor: "100%",
|
||||||
scope: this,
|
scope: this,
|
||||||
hidden : Ext.isEmpty(this.folder) ? false : true,
|
hidden: Ext.isEmpty(this.folder) ? false : true,
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
createTimezoneBox: function() {
|
createTimezoneBox: function () {
|
||||||
return {
|
return {
|
||||||
xtype: "selectbox",
|
xtype: "selectbox",
|
||||||
ref: 'timezoneselector',
|
ref: 'timezoneselector',
|
||||||
@ -265,7 +293,7 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
name: "choosen_timezone",
|
name: "choosen_timezone",
|
||||||
value: Zarafa.plugins.calendarimporter.data.Timezones.unMap(container.getSettingsModel().get("zarafa/v1/plugins/calendarimporter/default_timezone")),
|
value: Zarafa.plugins.calendarimporter.data.Timezones.unMap(container.getSettingsModel().get("zarafa/v1/plugins/calendarimporter/default_timezone")),
|
||||||
width: 100,
|
width: 100,
|
||||||
fieldLabel: "Timezone",
|
fieldLabel: dgettext('plugin_calendarimporter', 'Timezone'),
|
||||||
store: Zarafa.plugins.calendarimporter.data.Timezones.store,
|
store: Zarafa.plugins.calendarimporter.data.Timezones.store,
|
||||||
labelSeperator: ":",
|
labelSeperator: ":",
|
||||||
mode: 'local',
|
mode: 'local',
|
||||||
@ -280,14 +308,14 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
createDaylightSavingCheckBox: function() {
|
createDaylightSavingCheckBox: function () {
|
||||||
return {
|
return {
|
||||||
xtype: "checkbox",
|
xtype: "checkbox",
|
||||||
ref: 'dstcheck',
|
ref: 'dstcheck',
|
||||||
name: "dst_check",
|
name: "dst_check",
|
||||||
width: 100,
|
width: 100,
|
||||||
fieldLabel: "Ignore DST",
|
fieldLabel: dgettext('plugin_calendarimporter', 'Ignore DST'),
|
||||||
boxLabel: 'This will ignore "Daylight saving time" offsets.',
|
boxLabel: dgettext('plugin_calendarimporter', 'This will ignore "Daylight saving time" offsets.'),
|
||||||
labelSeperator: ":",
|
labelSeperator: ":",
|
||||||
border: false,
|
border: false,
|
||||||
anchor: "100%",
|
anchor: "100%",
|
||||||
@ -300,17 +328,17 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
createUploadField: function() {
|
createUploadField: function () {
|
||||||
return {
|
return {
|
||||||
xtype: "fileuploadfield",
|
xtype: "fileuploadfield",
|
||||||
ref: 'fileuploadfield',
|
ref: 'fileuploadfield',
|
||||||
columnWidth: 1.0,
|
columnWidth: 1.0,
|
||||||
id: 'form-file',
|
id: 'form-file',
|
||||||
name: 'icsdata',
|
name: 'icsdata',
|
||||||
emptyText: 'Select an .ics calendar',
|
emptyText: dgettext('plugin_calendarimporter', 'Select an .ics calendar'),
|
||||||
border: false,
|
border: false,
|
||||||
anchor: "100%",
|
anchor: "100%",
|
||||||
height : "30",
|
height: "30",
|
||||||
scope: this,
|
scope: this,
|
||||||
allowBlank: false,
|
allowBlank: false,
|
||||||
listeners: {
|
listeners: {
|
||||||
@ -320,40 +348,40 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
createSubmitButton: function() {
|
createSubmitButton: function () {
|
||||||
return {
|
return {
|
||||||
xtype: "button",
|
xtype: "button",
|
||||||
ref: "../submitButton",
|
ref: "../submitButton",
|
||||||
disabled: true,
|
disabled: true,
|
||||||
width: 100,
|
width: 100,
|
||||||
border: false,
|
border: false,
|
||||||
text: _("Import"),
|
text: dgettext('plugin_calendarimporter', 'Import'),
|
||||||
anchor: "100%",
|
anchor: "100%",
|
||||||
handler: this.importCheckedEvents,
|
handler: this.importCheckedEvents,
|
||||||
scope: this
|
scope: this
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
createSubmitAllButton: function() {
|
createSubmitAllButton: function () {
|
||||||
return {
|
return {
|
||||||
xtype: "button",
|
xtype: "button",
|
||||||
ref: "../submitAllButton",
|
ref: "../submitAllButton",
|
||||||
disabled: true,
|
disabled: true,
|
||||||
width: 100,
|
width: 100,
|
||||||
border: false,
|
border: false,
|
||||||
text: _("Import All"),
|
text: dgettext('plugin_calendarimporter', 'Import All'),
|
||||||
anchor: "100%",
|
anchor: "100%",
|
||||||
handler: this.importAllEvents,
|
handler: this.importAllEvents,
|
||||||
scope: this
|
scope: this
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
createCancelButton: function() {
|
createCancelButton: function () {
|
||||||
return {
|
return {
|
||||||
xtype: "button",
|
xtype: "button",
|
||||||
width: 100,
|
width: 100,
|
||||||
border: false,
|
border: false,
|
||||||
text: _("Cancel"),
|
text: dgettext('plugin_calendarimporter', 'Cancel'),
|
||||||
anchor: "100%",
|
anchor: "100%",
|
||||||
handler: this.close,
|
handler: this.close,
|
||||||
scope: this
|
scope: this
|
||||||
@ -366,10 +394,10 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
* @param {Ext.data.Record} record
|
* @param {Ext.data.Record} record
|
||||||
* @param {Number} index
|
* @param {Number} index
|
||||||
*/
|
*/
|
||||||
onTimezoneSelected : function(combo, record, index) {
|
onTimezoneSelected: function (combo, record, index) {
|
||||||
this.timezone = record.data.field1;
|
this.timezone = record.data.field1;
|
||||||
|
|
||||||
if(this.icsfile != null) {
|
if (this.icsfile != null) {
|
||||||
this.parseCalendar(this.icsfile, this.timezone, this.ignoredst);
|
this.parseCalendar(this.icsfile, this.timezone, this.ignoredst);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -379,10 +407,10 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
* @param {Ext.form.CheckBox} checkbox
|
* @param {Ext.form.CheckBox} checkbox
|
||||||
* @param {boolean} checked
|
* @param {boolean} checked
|
||||||
*/
|
*/
|
||||||
onDstChecked : function(checkbox, checked) {
|
onDstChecked: function (checkbox, checked) {
|
||||||
this.ignoredst = checked;
|
this.ignoredst = checked;
|
||||||
|
|
||||||
if(this.icsfile != null) {
|
if (this.icsfile != null) {
|
||||||
this.parseCalendar(this.icsfile, this.timezone, this.ignoredst);
|
this.parseCalendar(this.icsfile, this.timezone, this.ignoredst);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -392,30 +420,30 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
* in the {@link Ext.ux.form.FileUploadField} and the dialog is closed
|
* in the {@link Ext.ux.form.FileUploadField} and the dialog is closed
|
||||||
* @param {Ext.ux.form.FileUploadField} uploadField being added a file to
|
* @param {Ext.ux.form.FileUploadField} uploadField being added a file to
|
||||||
*/
|
*/
|
||||||
onFileSelected : function(uploadField) {
|
onFileSelected: function (uploadField) {
|
||||||
var form = this.addFormPanel.getForm();
|
var form = this.addFormPanel.getForm();
|
||||||
|
|
||||||
if (form.isValid()) {
|
if (form.isValid()) {
|
||||||
form.submit({
|
form.submit({
|
||||||
waitMsg: 'Uploading and parsing calendar...',
|
waitMsg: dgettext('plugin_calendarimporter', 'Uploading and parsing calendar...'),
|
||||||
url: 'plugins/calendarimporter/php/upload.php',
|
url: 'plugins/calendarimporter/php/upload.php',
|
||||||
failure: function(file, action) {
|
failure: function (file, action) {
|
||||||
this.submitButton.disable();
|
this.submitButton.disable();
|
||||||
this.submitAllButton.disable();
|
this.submitAllButton.disable();
|
||||||
Zarafa.common.dialogs.MessageBox.show({
|
Zarafa.common.dialogs.MessageBox.show({
|
||||||
title : _('Error'),
|
title: _('Error'),
|
||||||
msg : _(action.result.error),
|
msg: _(action.result.error),
|
||||||
icon : Zarafa.common.dialogs.MessageBox.ERROR,
|
icon: Zarafa.common.dialogs.MessageBox.ERROR,
|
||||||
buttons : Zarafa.common.dialogs.MessageBox.OK
|
buttons: Zarafa.common.dialogs.MessageBox.OK
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
success: function(file, action){
|
success: function (file, action) {
|
||||||
uploadField.reset();
|
uploadField.reset();
|
||||||
this.icsfile = action.result.ics_file;
|
this.icsfile = action.result.ics_file;
|
||||||
|
|
||||||
this.parseCalendar(this.icsfile, this.timezone, this.ignoredst);
|
this.parseCalendar(this.icsfile, this.timezone, this.ignoredst);
|
||||||
},
|
},
|
||||||
scope : this
|
scope: this
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -440,16 +468,16 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
handleParsingResult: function(response) {
|
handleParsingResult: function (response) {
|
||||||
var self = this.scope;
|
var self = this.scope;
|
||||||
|
|
||||||
self.loadMask.hide();
|
self.loadMask.hide();
|
||||||
|
|
||||||
if(response["status"] == true) {
|
if (response["status"] == true) {
|
||||||
self.submitButton.enable();
|
self.submitButton.enable();
|
||||||
self.submitAllButton.enable();
|
self.submitAllButton.enable();
|
||||||
|
|
||||||
if(typeof response.parsed.calendar["X-WR-TIMEZONE"] !== "undefined") {
|
if (typeof response.parsed.calendar["X-WR-TIMEZONE"] !== "undefined") {
|
||||||
self.timezone = response.parsed.calendar["X-WR-TIMEZONE"];
|
self.timezone = response.parsed.calendar["X-WR-TIMEZONE"];
|
||||||
self.timezoneselector.setValue(Zarafa.plugins.calendarimporter.data.Timezones.unMap(this.timezone));
|
self.timezoneselector.setValue(Zarafa.plugins.calendarimporter.data.Timezones.unMap(this.timezone));
|
||||||
}
|
}
|
||||||
@ -458,10 +486,10 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
self.submitButton.disable();
|
self.submitButton.disable();
|
||||||
self.submitAllButton.disable();
|
self.submitAllButton.disable();
|
||||||
Zarafa.common.dialogs.MessageBox.show({
|
Zarafa.common.dialogs.MessageBox.show({
|
||||||
title : _('Parser Error'),
|
title: dgettext('plugin_calendarimporter', 'Parser Error'),
|
||||||
msg : _(response["message"]),
|
msg: response["message"],
|
||||||
icon : Zarafa.common.dialogs.MessageBox.ERROR,
|
icon: Zarafa.common.dialogs.MessageBox.ERROR,
|
||||||
buttons : Zarafa.common.dialogs.MessageBox.OK
|
buttons: Zarafa.common.dialogs.MessageBox.OK
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -491,20 +519,20 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
//receive existing calendar store
|
//receive existing calendar store
|
||||||
var calValue = this.calendarselector.getValue();
|
var calValue = this.calendarselector.getValue();
|
||||||
|
|
||||||
if(Ext.isEmpty(calValue)) { // no calendar choosen
|
if (Ext.isEmpty(calValue)) { // no calendar choosen
|
||||||
Zarafa.common.dialogs.MessageBox.show({
|
Zarafa.common.dialogs.MessageBox.show({
|
||||||
title : _('Error'),
|
title: dgettext('plugin_calendarimporter', 'Error'),
|
||||||
msg : _('You have to choose a calendar!'),
|
msg: dgettext('plugin_calendarimporter', 'You have to choose a calendar!'),
|
||||||
icon : Zarafa.common.dialogs.MessageBox.ERROR,
|
icon: Zarafa.common.dialogs.MessageBox.ERROR,
|
||||||
buttons : Zarafa.common.dialogs.MessageBox.OK
|
buttons: Zarafa.common.dialogs.MessageBox.OK
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
if(this.eventgrid.selModel.getCount() < 1) {
|
if (this.eventgrid.selModel.getCount() < 1) {
|
||||||
Zarafa.common.dialogs.MessageBox.show({
|
Zarafa.common.dialogs.MessageBox.show({
|
||||||
title : _('Error'),
|
title: dgettext('plugin_calendarimporter', 'Error'),
|
||||||
msg : _('You have to choose at least one event to import!'),
|
msg: dgettext('plugin_calendarimporter', 'You have to choose at least one event to import!'),
|
||||||
icon : Zarafa.common.dialogs.MessageBox.ERROR,
|
icon: Zarafa.common.dialogs.MessageBox.ERROR,
|
||||||
buttons : Zarafa.common.dialogs.MessageBox.OK
|
buttons: Zarafa.common.dialogs.MessageBox.OK
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
var calendarFolder = Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByEntryid(calValue);
|
var calendarFolder = Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByEntryid(calValue);
|
||||||
@ -513,7 +541,7 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
var uids = [];
|
var uids = [];
|
||||||
|
|
||||||
//receive Records from grid rows
|
//receive Records from grid rows
|
||||||
Ext.each(events, function(newRecord) {
|
Ext.each(events, function (newRecord) {
|
||||||
uids.push(newRecord.data.record.internal_fields.event_uid);
|
uids.push(newRecord.data.record.internal_fields.event_uid);
|
||||||
}, this);
|
}, this);
|
||||||
|
|
||||||
@ -526,9 +554,9 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
'calendarmodule',
|
'calendarmodule',
|
||||||
'import',
|
'import',
|
||||||
{
|
{
|
||||||
storeid : calendarFolder.store_entryid,
|
storeid: calendarFolder.store_entryid,
|
||||||
folderid : calendarFolder.entryid,
|
folderid: calendarFolder.entryid,
|
||||||
uids : uids,
|
uids: uids,
|
||||||
ics_filepath: this.icsfile
|
ics_filepath: this.icsfile
|
||||||
},
|
},
|
||||||
responseHandler
|
responseHandler
|
||||||
@ -550,9 +578,9 @@ Zarafa.plugins.calendarimporter.dialogs.ImportPanel = Ext.extend(Ext.Panel, {
|
|||||||
container.getNotifier().notify('info', 'Imported', 'Imported ' + response.count + ' events. Please reload your calendar!');
|
container.getNotifier().notify('info', 'Imported', 'Imported ' + response.count + ' events. Please reload your calendar!');
|
||||||
} else {
|
} else {
|
||||||
Zarafa.common.dialogs.MessageBox.show({
|
Zarafa.common.dialogs.MessageBox.show({
|
||||||
title : _('Error'),
|
title: dgettext('plugin_calendarimporter', 'Error'),
|
||||||
msg : _('Import failed: ') + response.message,
|
msg: String.format(dgettext('plugin_calendarimporter', 'Import failed: {0}'), response.message),
|
||||||
icon : Zarafa.common.dialogs.MessageBox.ERROR,
|
icon: Zarafa.common.dialogs.MessageBox.ERROR,
|
||||||
buttons: Zarafa.common.dialogs.MessageBox.OK
|
buttons: Zarafa.common.dialogs.MessageBox.OK
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* plugin.calendarimporter.js zarafa calender to ics im/exporter
|
* plugin.calendarimporter.js, Kopano calender to ics im/exporter
|
||||||
*
|
*
|
||||||
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
* Copyright (C) 2012-2016 Christoph Haas
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
@ -73,9 +73,9 @@ Zarafa.plugins.calendarimporter.ImportPlugin = Ext.extend(Zarafa.core.Plugin, {
|
|||||||
*/
|
*/
|
||||||
createItemExportInsertionPoint: function (include, btn) {
|
createItemExportInsertionPoint: function (include, btn) {
|
||||||
return {
|
return {
|
||||||
text : dgettext('plugin_files', 'Export Event'),
|
text: dgettext('plugin_calendarimporter', 'Export Event'),
|
||||||
handler: this.exportToICS.createDelegate(this, [btn]),
|
handler: this.exportToICS.createDelegate(this, [btn]),
|
||||||
scope : this,
|
scope: this,
|
||||||
iconCls: 'icon_calendarimporter_export'
|
iconCls: 'icon_calendarimporter_export'
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -97,9 +97,14 @@ Zarafa.plugins.calendarimporter.ImportPlugin = Ext.extend(Zarafa.core.Plugin, {
|
|||||||
|
|
||||||
var responseHandler = new Zarafa.plugins.calendarimporter.data.ResponseHandler({
|
var responseHandler = new Zarafa.plugins.calendarimporter.data.ResponseHandler({
|
||||||
successCallback: Zarafa.plugins.calendarimporter.data.Actions.downloadICS,
|
successCallback: Zarafa.plugins.calendarimporter.data.Actions.downloadICS,
|
||||||
scope : this
|
scope: this
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Notify user
|
||||||
|
// # TRANSLATORS: {0} will be replaced by the number of contacts that will be exported
|
||||||
|
container.getNotifier().notify('info', dgettext('plugin_contactimporter', 'Calendar Export'), String.format(dgettext('plugin_calendarimporter', 'Exporting {0} events. Please wait...'), recordIds.length));
|
||||||
|
|
||||||
|
|
||||||
// request attachment preperation
|
// request attachment preperation
|
||||||
container.getRequest().singleRequest(
|
container.getRequest().singleRequest(
|
||||||
'calendarmodule',
|
'calendarmodule',
|
||||||
@ -143,10 +148,10 @@ Zarafa.plugins.calendarimporter.ImportPlugin = Ext.extend(Zarafa.core.Plugin, {
|
|||||||
*/
|
*/
|
||||||
createAttachmentImportButton: function (include, btn) {
|
createAttachmentImportButton: function (include, btn) {
|
||||||
return {
|
return {
|
||||||
text : _('Import to Calendar'),
|
text: dgettext('plugin_calendarimporter', 'Import to Calendar'),
|
||||||
handler : this.getAttachmentFileName.createDelegate(this, [btn]),
|
handler: this.getAttachmentFileName.createDelegate(this, [btn]),
|
||||||
scope : this,
|
scope: this,
|
||||||
iconCls : 'icon_calendarimporter_button',
|
iconCls: 'icon_calendarimporter_button',
|
||||||
beforeShow: function (item, record) {
|
beforeShow: function (item, record) {
|
||||||
var extension = record.data.name.split('.').pop().toLowerCase();
|
var extension = record.data.name.split('.').pop().toLowerCase();
|
||||||
|
|
||||||
@ -167,9 +172,9 @@ Zarafa.plugins.calendarimporter.ImportPlugin = Ext.extend(Zarafa.core.Plugin, {
|
|||||||
this.scope.openImportDialog(response.tmpname);
|
this.scope.openImportDialog(response.tmpname);
|
||||||
} else {
|
} else {
|
||||||
Zarafa.common.dialogs.MessageBox.show({
|
Zarafa.common.dialogs.MessageBox.show({
|
||||||
title : _('Error'),
|
title: dgettext('plugin_calendarimporter', 'Error'),
|
||||||
msg : _(response["message"]),
|
msg: response["message"],
|
||||||
icon : Zarafa.common.dialogs.MessageBox.ERROR,
|
icon: Zarafa.common.dialogs.MessageBox.ERROR,
|
||||||
buttons: Zarafa.common.dialogs.MessageBox.OK
|
buttons: Zarafa.common.dialogs.MessageBox.OK
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -180,12 +185,12 @@ Zarafa.plugins.calendarimporter.ImportPlugin = Ext.extend(Zarafa.core.Plugin, {
|
|||||||
*/
|
*/
|
||||||
getAttachmentFileName: function (btn, callback) {
|
getAttachmentFileName: function (btn, callback) {
|
||||||
Zarafa.common.dialogs.MessageBox.show({
|
Zarafa.common.dialogs.MessageBox.show({
|
||||||
title : 'Please wait',
|
title: dgettext('plugin_calendarimporter', 'Please wait'),
|
||||||
msg : 'Loading attachment...',
|
msg: dgettext('plugin_calendarimporter', 'Loading attachment...'),
|
||||||
progressText: 'Initializing...',
|
progressText: dgettext('plugin_calendarimporter', 'Initializing...'),
|
||||||
width : 300,
|
width: 300,
|
||||||
progress : true,
|
progress: true,
|
||||||
closable : false
|
closable: false
|
||||||
});
|
});
|
||||||
|
|
||||||
// progress bar... ;)
|
// progress bar... ;)
|
||||||
@ -194,7 +199,8 @@ Zarafa.plugins.calendarimporter.ImportPlugin = Ext.extend(Zarafa.core.Plugin, {
|
|||||||
if (v == 100) {
|
if (v == 100) {
|
||||||
Zarafa.common.dialogs.MessageBox.hide();
|
Zarafa.common.dialogs.MessageBox.hide();
|
||||||
} else {
|
} else {
|
||||||
Zarafa.common.dialogs.MessageBox.updateProgress(v / 100, Math.round(v) + '% loaded');
|
// # TRANSLATORS: {0} will be replaced by the percentage value (0-100)
|
||||||
|
Zarafa.common.dialogs.MessageBox.updateProgress(v / 100, String.format(dgettext('plugin_calendarimporter', '{0}% loaded'), Math.round(v)));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -220,7 +226,7 @@ Zarafa.plugins.calendarimporter.ImportPlugin = Ext.extend(Zarafa.core.Plugin, {
|
|||||||
|
|
||||||
var responseHandler = new Zarafa.plugins.calendarimporter.data.ResponseHandler({
|
var responseHandler = new Zarafa.plugins.calendarimporter.data.ResponseHandler({
|
||||||
successCallback: this.gotAttachmentFileName,
|
successCallback: this.gotAttachmentFileName,
|
||||||
scope : this
|
scope: this
|
||||||
});
|
});
|
||||||
|
|
||||||
// request attachment preperation
|
// request attachment preperation
|
||||||
@ -228,11 +234,11 @@ Zarafa.plugins.calendarimporter.ImportPlugin = Ext.extend(Zarafa.core.Plugin, {
|
|||||||
'calendarmodule',
|
'calendarmodule',
|
||||||
'importattachment',
|
'importattachment',
|
||||||
{
|
{
|
||||||
entryid : entryid,
|
entryid: entryid,
|
||||||
store : store,
|
store: store,
|
||||||
attachNum : attachNum,
|
attachNum: attachNum,
|
||||||
dialog_attachments: dialog_attachments,
|
dialog_attachments: dialog_attachments,
|
||||||
filename : filename
|
filename: filename
|
||||||
},
|
},
|
||||||
responseHandler
|
responseHandler
|
||||||
);
|
);
|
||||||
@ -246,7 +252,7 @@ Zarafa.plugins.calendarimporter.ImportPlugin = Ext.extend(Zarafa.core.Plugin, {
|
|||||||
var componentType = Zarafa.core.data.SharedComponentType['plugins.calendarimporter.dialogs.importevents'];
|
var componentType = Zarafa.core.data.SharedComponentType['plugins.calendarimporter.dialogs.importevents'];
|
||||||
var config = {
|
var config = {
|
||||||
filename: filename,
|
filename: filename,
|
||||||
modal : true
|
modal: true
|
||||||
};
|
};
|
||||||
|
|
||||||
Zarafa.core.data.UIFactory.openLayerComponent(componentType, undefined, config);
|
Zarafa.core.data.UIFactory.openLayerComponent(componentType, undefined, config);
|
||||||
@ -311,9 +317,9 @@ Zarafa.plugins.calendarimporter.ImportPlugin = Ext.extend(Zarafa.core.Plugin, {
|
|||||||
*############################################################################################################################*/
|
*############################################################################################################################*/
|
||||||
Zarafa.onReady(function () {
|
Zarafa.onReady(function () {
|
||||||
container.registerPlugin(new Zarafa.core.PluginMetaData({
|
container.registerPlugin(new Zarafa.core.PluginMetaData({
|
||||||
name : 'calendarimporter',
|
name: 'calendarimporter',
|
||||||
displayName : _('Calendarimporter Plugin'),
|
displayName: dgettext('plugin_calendarimporter', 'Calendarimporter Plugin'),
|
||||||
about : Zarafa.plugins.calendarimporter.ABOUT,
|
about: Zarafa.plugins.calendarimporter.ABOUT,
|
||||||
pluginConstructor: Zarafa.plugins.calendarimporter.ImportPlugin
|
pluginConstructor: Zarafa.plugins.calendarimporter.ImportPlugin
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
@ -1,3 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* SettingsCalSyncWidget.js, Kopano calender to ics im/exporter
|
||||||
|
*
|
||||||
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) 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
|
||||||
|
* Lesser 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, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
Ext.namespace('Zarafa.plugins.calendarimporter.settings');
|
Ext.namespace('Zarafa.plugins.calendarimporter.settings');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10,45 +32,45 @@ Zarafa.plugins.calendarimporter.settings.SettingsCalSyncWidget = Ext.extend(Zara
|
|||||||
/**
|
/**
|
||||||
* @cfg {Zarafa.settings.SettingsContext} settingsContext
|
* @cfg {Zarafa.settings.SettingsContext} settingsContext
|
||||||
*/
|
*/
|
||||||
settingsContext : undefined,
|
settingsContext: undefined,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @param {Object} config Configuration object
|
* @param {Object} config Configuration object
|
||||||
*/
|
*/
|
||||||
constructor : function(config) {
|
constructor: function (config) {
|
||||||
config = config || {};
|
config = config || {};
|
||||||
|
|
||||||
var store = new Ext.data.JsonStore({
|
var store = new Ext.data.JsonStore({
|
||||||
fields : [
|
fields: [
|
||||||
{ name : 'id', type : 'int' },
|
{name: 'id', type: 'int'},
|
||||||
{ name : 'icsurl' },
|
{name: 'icsurl'},
|
||||||
{ name : 'user' },
|
{name: 'user'},
|
||||||
{ name : 'pass' },
|
{name: 'pass'},
|
||||||
{ name : 'intervall', type : 'int' },
|
{name: 'intervall', type: 'int'},
|
||||||
{ name : 'calendar' },
|
{name: 'calendar'},
|
||||||
{ name : 'calendarname' },
|
{name: 'calendarname'},
|
||||||
{ name : 'lastsync' }
|
{name: 'lastsync'}
|
||||||
],
|
],
|
||||||
sortInfo : {
|
sortInfo: {
|
||||||
field : 'id',
|
field: 'id',
|
||||||
direction : 'ASC'
|
direction: 'ASC'
|
||||||
},
|
},
|
||||||
autoDestroy : true
|
autoDestroy: true
|
||||||
});
|
});
|
||||||
|
|
||||||
Ext.applyIf(config, {
|
Ext.applyIf(config, {
|
||||||
height : 400,
|
height: 400,
|
||||||
title : _('Calendar Sync settings'),
|
title: dgettext('plugin_calendarimporter', 'Calendar Sync settings'),
|
||||||
xtype : 'calendarimporter.settingscalsyncwidget',
|
xtype: 'calendarimporter.settingscalsyncwidget',
|
||||||
layout : {
|
layout: {
|
||||||
// override from SettingsWidget
|
// override from SettingsWidget
|
||||||
type : 'fit'
|
type: 'fit'
|
||||||
},
|
},
|
||||||
items : [{
|
items: [{
|
||||||
xtype : 'calendarimporter.calsyncpanel',
|
xtype: 'calendarimporter.calsyncpanel',
|
||||||
store : store,
|
store: store,
|
||||||
ref : 'calsyncPanel'
|
ref: 'calsyncPanel'
|
||||||
}]
|
}]
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -62,14 +84,14 @@ Zarafa.plugins.calendarimporter.settings.SettingsCalSyncWidget = Ext.extend(Zara
|
|||||||
* {@link Zarafa.settings.SettingsModel} into the UI of this category.
|
* {@link Zarafa.settings.SettingsModel} into the UI of this category.
|
||||||
* @param {Zarafa.settings.SettingsModel} settingsModel The settings to load
|
* @param {Zarafa.settings.SettingsModel} settingsModel The settings to load
|
||||||
*/
|
*/
|
||||||
update : function(settingsModel) {
|
update: function (settingsModel) {
|
||||||
this.model = settingsModel;
|
this.model = settingsModel;
|
||||||
|
|
||||||
// Convert the signatures into Store data
|
// Convert the signatures into Store data
|
||||||
var icslinks = settingsModel.get('zarafa/v1/contexts/calendar/icssync', true);
|
var icslinks = settingsModel.get('zarafa/v1/contexts/calendar/icssync', true);
|
||||||
var syncArray = [];
|
var syncArray = [];
|
||||||
for (var key in icslinks) {
|
for (var key in icslinks) {
|
||||||
if(icslinks.hasOwnProperty(key)) { // skip inherited props
|
if (icslinks.hasOwnProperty(key)) { // skip inherited props
|
||||||
syncArray.push(Ext.apply({}, icslinks[key], {id: key}));
|
syncArray.push(Ext.apply({}, icslinks[key], {id: key}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -85,7 +107,7 @@ Zarafa.plugins.calendarimporter.settings.SettingsCalSyncWidget = Ext.extend(Zara
|
|||||||
* This is used to update the settings from the UI into the {@link Zarafa.settings.SettingsModel settings model}.
|
* This is used to update the settings from the UI into the {@link Zarafa.settings.SettingsModel settings model}.
|
||||||
* @param {Zarafa.settings.SettingsModel} settingsModel The settings to update
|
* @param {Zarafa.settings.SettingsModel} settingsModel The settings to update
|
||||||
*/
|
*/
|
||||||
updateSettings : function(settingsModel) {
|
updateSettings: function (settingsModel) {
|
||||||
settingsModel.beginEdit();
|
settingsModel.beginEdit();
|
||||||
|
|
||||||
// Start reading the Grid store and convert the contents back into
|
// Start reading the Grid store and convert the contents back into
|
||||||
@ -96,13 +118,13 @@ Zarafa.plugins.calendarimporter.settings.SettingsCalSyncWidget = Ext.extend(Zara
|
|||||||
var icslink = icslinks[i];
|
var icslink = icslinks[i];
|
||||||
|
|
||||||
icslinkData[icslink.get('id')] = {
|
icslinkData[icslink.get('id')] = {
|
||||||
'icsurl' : icslink.get('icsurl'),
|
'icsurl': icslink.get('icsurl'),
|
||||||
'intervall' : icslink.get('intervall'),
|
'intervall': icslink.get('intervall'),
|
||||||
'user' : icslink.get('user'),
|
'user': icslink.get('user'),
|
||||||
'pass' : icslink.get('pass'),
|
'pass': icslink.get('pass'),
|
||||||
'lastsync' : icslink.get('lastsync'),
|
'lastsync': icslink.get('lastsync'),
|
||||||
'calendar' : icslink.get('calendar'),
|
'calendar': icslink.get('calendar'),
|
||||||
'calendarname' : Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByEntryid(icslink.get('calendar')).display_name
|
'calendarname': Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByEntryid(icslink.get('calendar')).display_name
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
settingsModel.set('zarafa/v1/contexts/calendar/icssync', icslinkData);
|
settingsModel.set('zarafa/v1/contexts/calendar/icssync', icslinkData);
|
||||||
|
@ -1,3 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* SettingsWidget.js, Kopano calender to ics im/exporter
|
||||||
|
*
|
||||||
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) 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
|
||||||
|
* Lesser 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, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
Ext.namespace('Zarafa.plugins.calendarimporter.settings');
|
Ext.namespace('Zarafa.plugins.calendarimporter.settings');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10,26 +32,25 @@ Zarafa.plugins.calendarimporter.settings.SettingsWidget = Ext.extend(Zarafa.sett
|
|||||||
/**
|
/**
|
||||||
* @cfg {Zarafa.settings.SettingsContext} settingsContext
|
* @cfg {Zarafa.settings.SettingsContext} settingsContext
|
||||||
*/
|
*/
|
||||||
settingsContext : undefined,
|
settingsContext: undefined,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @param {Object} config Configuration object
|
* @param {Object} config Configuration object
|
||||||
*/
|
*/
|
||||||
constructor : function(config)
|
constructor: function (config) {
|
||||||
{
|
|
||||||
config = config || {};
|
config = config || {};
|
||||||
|
|
||||||
Ext.applyIf(config, {
|
Ext.applyIf(config, {
|
||||||
title : _('Calendar Import/Export plugin settings'),
|
title: dgettext('plugin_calendarimporter', 'Calendar Import/Export plugin settings'),
|
||||||
xtype : 'calendarimporter.settingswidget',
|
xtype: 'calendarimporter.settingswidget',
|
||||||
items : [
|
items: [
|
||||||
{
|
{
|
||||||
xtype : 'checkbox',
|
xtype: 'checkbox',
|
||||||
name : 'zarafa/v1/plugins/calendarimporter/enable_sync',
|
name: 'zarafa/v1/plugins/calendarimporter/enable_sync',
|
||||||
ref : 'enableSync',
|
ref: 'enableSync',
|
||||||
fieldLabel : 'Enable ical sync',
|
fieldLabel: dgettext('plugin_calendarimporter', 'Enable ical sync'),
|
||||||
lazyInit : false
|
lazyInit: false
|
||||||
},
|
},
|
||||||
this.createSelectBox(),
|
this.createSelectBox(),
|
||||||
this.createTimezoneBox()
|
this.createTimezoneBox()
|
||||||
@ -39,17 +60,17 @@ Zarafa.plugins.calendarimporter.settings.SettingsWidget = Ext.extend(Zarafa.sett
|
|||||||
Zarafa.plugins.calendarimporter.settings.SettingsWidget.superclass.constructor.call(this, config);
|
Zarafa.plugins.calendarimporter.settings.SettingsWidget.superclass.constructor.call(this, config);
|
||||||
},
|
},
|
||||||
|
|
||||||
createSelectBox: function() {
|
createSelectBox: function () {
|
||||||
var myStore = Zarafa.plugins.calendarimporter.data.Actions.getAllCalendarFolders(true);
|
var myStore = Zarafa.plugins.calendarimporter.data.Actions.getAllCalendarFolders(true);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
xtype: "selectbox",
|
xtype: "selectbox",
|
||||||
ref : 'defaultCalendar',
|
ref: 'defaultCalendar',
|
||||||
editable: false,
|
editable: false,
|
||||||
name: "zarafa/v1/plugins/calendarimporter/default_calendar",
|
name: "zarafa/v1/plugins/calendarimporter/default_calendar",
|
||||||
value: Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByName(container.getSettingsModel().get("zarafa/v1/plugins/calendarimporter/default_calendar")).entryid,
|
value: Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByName(container.getSettingsModel().get("zarafa/v1/plugins/calendarimporter/default_calendar")).entryid,
|
||||||
width: 100,
|
width: 100,
|
||||||
fieldLabel: "Default calender",
|
fieldLabel: dgettext('plugin_calendarimporter', 'Default calender'),
|
||||||
store: myStore,
|
store: myStore,
|
||||||
mode: 'local',
|
mode: 'local',
|
||||||
labelSeperator: ":",
|
labelSeperator: ":",
|
||||||
@ -60,15 +81,15 @@ Zarafa.plugins.calendarimporter.settings.SettingsWidget = Ext.extend(Zarafa.sett
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
createTimezoneBox: function() {
|
createTimezoneBox: function () {
|
||||||
return {
|
return {
|
||||||
xtype: "selectbox",
|
xtype: "selectbox",
|
||||||
ref : 'defaultTimezone',
|
ref: 'defaultTimezone',
|
||||||
editable: false,
|
editable: false,
|
||||||
name: "zarafa/v1/plugins/calendarimporter/default_timezone",
|
name: "zarafa/v1/plugins/calendarimporter/default_timezone",
|
||||||
value: Zarafa.plugins.calendarimporter.data.Timezones.unMap(container.getSettingsModel().get("zarafa/v1/plugins/calendarimporter/default_timezone")),
|
value: Zarafa.plugins.calendarimporter.data.Timezones.unMap(container.getSettingsModel().get("zarafa/v1/plugins/calendarimporter/default_timezone")),
|
||||||
width: 100,
|
width: 100,
|
||||||
fieldLabel: "Default timezone",
|
fieldLabel: dgettext('plugin_calendarimporter', 'Default timezone'),
|
||||||
store: Zarafa.plugins.calendarimporter.data.Timezones.store,
|
store: Zarafa.plugins.calendarimporter.data.Timezones.store,
|
||||||
labelSeperator: ":",
|
labelSeperator: ":",
|
||||||
mode: 'local',
|
mode: 'local',
|
||||||
@ -86,7 +107,7 @@ Zarafa.plugins.calendarimporter.settings.SettingsWidget = Ext.extend(Zarafa.sett
|
|||||||
* {@link Zarafa.settings.SettingsModel} into the UI of this category.
|
* {@link Zarafa.settings.SettingsModel} into the UI of this category.
|
||||||
* @param {Zarafa.settings.SettingsModel} settingsModel The settings to load
|
* @param {Zarafa.settings.SettingsModel} settingsModel The settings to load
|
||||||
*/
|
*/
|
||||||
update : function(settingsModel) {
|
update: function (settingsModel) {
|
||||||
this.enableSync.setValue(settingsModel.get(this.enableSync.name));
|
this.enableSync.setValue(settingsModel.get(this.enableSync.name));
|
||||||
this.defaultCalendar.setValue(Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByName(settingsModel.get(this.defaultCalendar.name)).entryid);
|
this.defaultCalendar.setValue(Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByName(settingsModel.get(this.defaultCalendar.name)).entryid);
|
||||||
this.defaultTimezone.setValue(settingsModel.get(this.defaultTimezone.name));
|
this.defaultTimezone.setValue(settingsModel.get(this.defaultTimezone.name));
|
||||||
@ -98,19 +119,19 @@ Zarafa.plugins.calendarimporter.settings.SettingsWidget = Ext.extend(Zarafa.sett
|
|||||||
* This is used to update the settings from the UI into the {@link Zarafa.settings.SettingsModel settings model}.
|
* This is used to update the settings from the UI into the {@link Zarafa.settings.SettingsModel settings model}.
|
||||||
* @param {Zarafa.settings.SettingsModel} settingsModel The settings to update
|
* @param {Zarafa.settings.SettingsModel} settingsModel The settings to update
|
||||||
*/
|
*/
|
||||||
updateSettings : function(settingsModel) {
|
updateSettings: function (settingsModel) {
|
||||||
// check if the user changed a value
|
// check if the user changed a value
|
||||||
var changed = false;
|
var changed = false;
|
||||||
|
|
||||||
if(settingsModel.get(this.enableSync.name) != this.enableSync.getValue()) {
|
if (settingsModel.get(this.enableSync.name) != this.enableSync.getValue()) {
|
||||||
changed = true;
|
changed = true;
|
||||||
} else if(settingsModel.get(this.defaultCalendar.name) != Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByEntryid(this.defaultCalendar.getValue()).display_name) {
|
} else if (settingsModel.get(this.defaultCalendar.name) != Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByEntryid(this.defaultCalendar.getValue()).display_name) {
|
||||||
changed = true;
|
changed = true;
|
||||||
} else if(settingsModel.get(this.defaultTimezone.name) != this.defaultTimezone.getValue()) {
|
} else if (settingsModel.get(this.defaultTimezone.name) != this.defaultTimezone.getValue()) {
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(changed) {
|
if (changed) {
|
||||||
// Really save changes
|
// Really save changes
|
||||||
settingsModel.set(this.enableSync.name, this.enableSync.getValue());
|
settingsModel.set(this.enableSync.name, this.enableSync.getValue());
|
||||||
settingsModel.set(this.defaultCalendar.name, Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByEntryid(this.defaultCalendar.getValue()).display_name); // store name
|
settingsModel.set(this.defaultCalendar.name, Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByEntryid(this.defaultCalendar.getValue()).display_name); // store name
|
||||||
@ -126,8 +147,7 @@ Zarafa.plugins.calendarimporter.settings.SettingsWidget = Ext.extend(Zarafa.sett
|
|||||||
* settings which were saved to the server.
|
* settings which were saved to the server.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
onUpdateSettings : function()
|
onUpdateSettings: function () {
|
||||||
{
|
|
||||||
var message = _('Your WebApp needs to be reloaded to make the changes visible!');
|
var message = _('Your WebApp needs to be reloaded to make the changes visible!');
|
||||||
message += '<br/><br/>';
|
message += '<br/><br/>';
|
||||||
message += _('WebApp will automatically restart in order for these changes to take effect');
|
message += _('WebApp will automatically restart in order for these changes to take effect');
|
||||||
@ -135,17 +155,17 @@ Zarafa.plugins.calendarimporter.settings.SettingsWidget = Ext.extend(Zarafa.sett
|
|||||||
|
|
||||||
Zarafa.common.dialogs.MessageBox.addCustomButtons({
|
Zarafa.common.dialogs.MessageBox.addCustomButtons({
|
||||||
title: _('Restart WebApp'),
|
title: _('Restart WebApp'),
|
||||||
msg : message,
|
msg: message,
|
||||||
icon: Ext.MessageBox.QUESTION,
|
icon: Ext.MessageBox.QUESTION,
|
||||||
fn : this.restartWebapp,
|
fn: this.restartWebapp,
|
||||||
customButton : [{
|
customButton: [{
|
||||||
text : _('Restart'),
|
text: _('Restart'),
|
||||||
name : 'restart'
|
name: 'restart'
|
||||||
}, {
|
}, {
|
||||||
text : _('Cancel'),
|
text: _('Cancel'),
|
||||||
name : 'cancel'
|
name: 'cancel'
|
||||||
}],
|
}],
|
||||||
scope : this
|
scope: this
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
@ -156,8 +176,7 @@ Zarafa.plugins.calendarimporter.settings.SettingsWidget = Ext.extend(Zarafa.sett
|
|||||||
* @param {String} button The button which user pressed.
|
* @param {String} button The button which user pressed.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
restartWebapp : function(button)
|
restartWebapp: function (button) {
|
||||||
{
|
|
||||||
if (button === 'restart') {
|
if (button === 'restart') {
|
||||||
var contextModel = this.ownerCt.settingsContext.getModel();
|
var contextModel = this.ownerCt.settingsContext.getModel();
|
||||||
var realModel = contextModel.getRealSettingsModel();
|
var realModel = contextModel.getRealSettingsModel();
|
||||||
@ -165,7 +184,7 @@ Zarafa.plugins.calendarimporter.settings.SettingsWidget = Ext.extend(Zarafa.sett
|
|||||||
realModel.save();
|
realModel.save();
|
||||||
|
|
||||||
this.loadMask = new Zarafa.common.ui.LoadMask(Ext.getBody(), {
|
this.loadMask = new Zarafa.common.ui.LoadMask(Ext.getBody(), {
|
||||||
msg : '<b>' + _('Webapp is reloading, Please wait.') + '</b>'
|
msg: '<b>' + _('Webapp is reloading, Please wait.') + '</b>'
|
||||||
});
|
});
|
||||||
this.loadMask.show();
|
this.loadMask.show();
|
||||||
|
|
||||||
@ -183,8 +202,7 @@ Zarafa.plugins.calendarimporter.settings.SettingsWidget = Ext.extend(Zarafa.sett
|
|||||||
* settings which were saved to the server.
|
* settings which were saved to the server.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
onSettingsSave : function(model, parameters)
|
onSettingsSave: function (model, parameters) {
|
||||||
{
|
|
||||||
this.mun(model, 'save', this.onSettingsSave, this);
|
this.mun(model, 'save', this.onSettingsSave, this);
|
||||||
Zarafa.core.Util.reloadWebapp();
|
Zarafa.core.Util.reloadWebapp();
|
||||||
},
|
},
|
||||||
@ -200,8 +218,7 @@ Zarafa.plugins.calendarimporter.settings.SettingsWidget = Ext.extend(Zarafa.sett
|
|||||||
* @param {Object} response The response object as received from the PHP-side
|
* @param {Object} response The response object as received from the PHP-side
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
onSettingsException : function(model, type, action, options, response)
|
onSettingsException: function (model, type, action, options, response) {
|
||||||
{
|
|
||||||
this.loadMask.hide();
|
this.loadMask.hide();
|
||||||
|
|
||||||
// Remove event handlers
|
// Remove event handlers
|
||||||
|
@ -1,3 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* CalSyncEditContentPanel.js, Kopano calender to ics im/exporter
|
||||||
|
*
|
||||||
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) 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
|
||||||
|
* Lesser 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, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
Ext.namespace('Zarafa.plugins.calendarimporter.settings.dialogs');
|
Ext.namespace('Zarafa.plugins.calendarimporter.settings.dialogs');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -12,22 +34,22 @@ Zarafa.plugins.calendarimporter.settings.dialogs.CalSyncEditContentPanel = Ext.e
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @param config Configuration structure
|
* @param config Configuration structure
|
||||||
*/
|
*/
|
||||||
constructor : function(config) {
|
constructor: function (config) {
|
||||||
config = config || {};
|
config = config || {};
|
||||||
|
|
||||||
// Add in some standard configuration data.
|
// Add in some standard configuration data.
|
||||||
Ext.applyIf(config, {
|
Ext.applyIf(config, {
|
||||||
// Override from Ext.Component
|
// Override from Ext.Component
|
||||||
xtype : 'calendarimporter.calsynceditcontentpanel',
|
xtype: 'calendarimporter.calsynceditcontentpanel',
|
||||||
layout : 'fit',
|
layout: 'fit',
|
||||||
model : true,
|
model: true,
|
||||||
autoSave : false,
|
autoSave: false,
|
||||||
width : 400,
|
width: 400,
|
||||||
height : 400,
|
height: 400,
|
||||||
title : _('ICAL Sync'),
|
title: dgettext('plugin_calendarimporter', 'ICAL Sync'),
|
||||||
items : [{
|
items: [{
|
||||||
xtype : 'calendarimporter.calsynceditpanel',
|
xtype: 'calendarimporter.calsynceditpanel',
|
||||||
item : config.item
|
item: config.item
|
||||||
}]
|
}]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1,3 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* CalSyncEditPanel.js, Kopano calender to ics im/exporter
|
||||||
|
*
|
||||||
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) 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
|
||||||
|
* Lesser 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, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
Ext.namespace('Zarafa.plugins.calendarimporter.settings.dialogs');
|
Ext.namespace('Zarafa.plugins.calendarimporter.settings.dialogs');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -12,24 +34,24 @@ Zarafa.plugins.calendarimporter.settings.dialogs.CalSyncEditPanel = Ext.extend(E
|
|||||||
/**
|
/**
|
||||||
* the id of the currently edited item
|
* the id of the currently edited item
|
||||||
*/
|
*/
|
||||||
currentItem : undefined,
|
currentItem: undefined,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @param config Configuration structure
|
* @param config Configuration structure
|
||||||
*/
|
*/
|
||||||
constructor : function(config) {
|
constructor: function (config) {
|
||||||
config = config || {};
|
config = config || {};
|
||||||
|
|
||||||
if(config.item)
|
if (config.item)
|
||||||
this.currentItem = config.item;
|
this.currentItem = config.item;
|
||||||
|
|
||||||
Ext.applyIf(config, {
|
Ext.applyIf(config, {
|
||||||
// Override from Ext.Component
|
// Override from Ext.Component
|
||||||
xtype : 'calendarimporter.calsynceditpanel',
|
xtype: 'calendarimporter.calsynceditpanel',
|
||||||
labelAlign : 'top',
|
labelAlign: 'top',
|
||||||
defaultType: 'textfield',
|
defaultType: 'textfield',
|
||||||
items : this.createPanelItems(config),
|
items: this.createPanelItems(config),
|
||||||
buttons: [{
|
buttons: [{
|
||||||
text: _('Save'),
|
text: _('Save'),
|
||||||
handler: this.doSave,
|
handler: this.doSave,
|
||||||
@ -48,19 +70,19 @@ Zarafa.plugins.calendarimporter.settings.dialogs.CalSyncEditPanel = Ext.extend(E
|
|||||||
/**
|
/**
|
||||||
* close the dialog
|
* close the dialog
|
||||||
*/
|
*/
|
||||||
doClose : function() {
|
doClose: function () {
|
||||||
this.dialog.close();
|
this.dialog.close();
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* save the data to the store
|
* save the data to the store
|
||||||
*/
|
*/
|
||||||
doSave : function() {
|
doSave: function () {
|
||||||
var store = this.dialog.store;
|
var store = this.dialog.store;
|
||||||
var id = 0;
|
var id = 0;
|
||||||
var record = undefined;
|
var record = undefined;
|
||||||
|
|
||||||
if(!this.currentItem) {
|
if (!this.currentItem) {
|
||||||
record = new store.recordType({
|
record = new store.recordType({
|
||||||
id: this.hashCode(this.icsurl.getValue()),
|
id: this.hashCode(this.icsurl.getValue()),
|
||||||
icsurl: this.icsurl.getValue(),
|
icsurl: this.icsurl.getValue(),
|
||||||
@ -68,13 +90,13 @@ Zarafa.plugins.calendarimporter.settings.dialogs.CalSyncEditPanel = Ext.extend(E
|
|||||||
user: this.user.getValue(),
|
user: this.user.getValue(),
|
||||||
pass: Ext.util.base64.encode(this.pass.getValue()),
|
pass: Ext.util.base64.encode(this.pass.getValue()),
|
||||||
calendar: this.calendar.getValue(),
|
calendar: this.calendar.getValue(),
|
||||||
calendarname : Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByEntryid(this.calendar.getValue()).display_name,
|
calendarname: Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByEntryid(this.calendar.getValue()).display_name,
|
||||||
lastsync: "never"
|
lastsync: "never"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this.icsurl.isValid()) {
|
if (this.icsurl.isValid()) {
|
||||||
if(record) {
|
if (record) {
|
||||||
store.add(record);
|
store.add(record);
|
||||||
} else {
|
} else {
|
||||||
this.currentItem.set('icsurl', this.icsurl.getValue());
|
this.currentItem.set('icsurl', this.icsurl.getValue());
|
||||||
@ -93,8 +115,7 @@ Zarafa.plugins.calendarimporter.settings.dialogs.CalSyncEditPanel = Ext.extend(E
|
|||||||
* @return {Array} array of items that should be added to panel.
|
* @return {Array} array of items that should be added to panel.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
createPanelItems : function(config)
|
createPanelItems: function (config) {
|
||||||
{
|
|
||||||
var icsurl = "";
|
var icsurl = "";
|
||||||
var intervall = "15";
|
var intervall = "15";
|
||||||
var user = "";
|
var user = "";
|
||||||
@ -103,7 +124,7 @@ Zarafa.plugins.calendarimporter.settings.dialogs.CalSyncEditPanel = Ext.extend(E
|
|||||||
var calendar = Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByName(container.getSettingsModel().get("zarafa/v1/plugins/calendarimporter/default_calendar")).entryid;
|
var calendar = Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByName(container.getSettingsModel().get("zarafa/v1/plugins/calendarimporter/default_calendar")).entryid;
|
||||||
var myStore = Zarafa.plugins.calendarimporter.data.Actions.getAllCalendarFolders(true);
|
var myStore = Zarafa.plugins.calendarimporter.data.Actions.getAllCalendarFolders(true);
|
||||||
|
|
||||||
if(config.item){
|
if (config.item) {
|
||||||
icsurl = config.item.get('icsurl');
|
icsurl = config.item.get('icsurl');
|
||||||
intervall = config.item.get('intervall');
|
intervall = config.item.get('intervall');
|
||||||
user = config.item.get('user');
|
user = config.item.get('user');
|
||||||
@ -115,7 +136,7 @@ Zarafa.plugins.calendarimporter.settings.dialogs.CalSyncEditPanel = Ext.extend(E
|
|||||||
|
|
||||||
return [{
|
return [{
|
||||||
xtype: 'fieldset',
|
xtype: 'fieldset',
|
||||||
title: _('ICAL Information'),
|
title: dgettext('plugin_calendarimporter', 'ICAL Information'),
|
||||||
defaultType: 'textfield',
|
defaultType: 'textfield',
|
||||||
layout: 'form',
|
layout: 'form',
|
||||||
flex: 1,
|
flex: 1,
|
||||||
@ -124,15 +145,15 @@ Zarafa.plugins.calendarimporter.settings.dialogs.CalSyncEditPanel = Ext.extend(E
|
|||||||
flex: 1
|
flex: 1
|
||||||
},
|
},
|
||||||
items: [{
|
items: [{
|
||||||
fieldLabel: 'ICS Url',
|
fieldLabel: dgettext('plugin_calendarimporter', 'ICS Url'),
|
||||||
name: 'icsurl',
|
name: 'icsurl',
|
||||||
ref: '../icsurl',
|
ref: '../icsurl',
|
||||||
value: icsurl,
|
value: icsurl,
|
||||||
allowBlank: false
|
allowBlank: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype:'selectbox',
|
xtype: 'selectbox',
|
||||||
fieldLabel: _('Destination Calendar'),
|
fieldLabel: dgettext('plugin_calendarimporter', 'Destination Calendar'),
|
||||||
name: 'calendar',
|
name: 'calendar',
|
||||||
ref: '../calendar',
|
ref: '../calendar',
|
||||||
value: calendar,
|
value: calendar,
|
||||||
@ -146,8 +167,8 @@ Zarafa.plugins.calendarimporter.settings.dialogs.CalSyncEditPanel = Ext.extend(E
|
|||||||
allowBlank: false
|
allowBlank: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype:'numberfield',
|
xtype: 'numberfield',
|
||||||
fieldLabel: _('Sync Intervall (minutes)'),
|
fieldLabel: dgettext('plugin_calendarimporter', 'Sync Intervall (minutes)'),
|
||||||
name: 'intervall',
|
name: 'intervall',
|
||||||
ref: '../intervall',
|
ref: '../intervall',
|
||||||
value: intervall,
|
value: intervall,
|
||||||
@ -156,21 +177,21 @@ Zarafa.plugins.calendarimporter.settings.dialogs.CalSyncEditPanel = Ext.extend(E
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
xtype: 'fieldset',
|
xtype: 'fieldset',
|
||||||
title: _('Authentication (optional)'),
|
title: dgettext('plugin_calendarimporter', 'Authentication (optional)'),
|
||||||
defaultType: 'textfield',
|
defaultType: 'textfield',
|
||||||
layout: 'form',
|
layout: 'form',
|
||||||
defaults: {
|
defaults: {
|
||||||
anchor: '100%'
|
anchor: '100%'
|
||||||
},
|
},
|
||||||
items: [{
|
items: [{
|
||||||
fieldLabel: _('Username'),
|
fieldLabel: dgettext('plugin_calendarimporter', 'Username'),
|
||||||
name: 'user',
|
name: 'user',
|
||||||
ref: '../user',
|
ref: '../user',
|
||||||
value: user,
|
value: user,
|
||||||
allowBlank: true
|
allowBlank: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldLabel: _('Password'),
|
fieldLabel: dgettext('plugin_calendarimporter', 'Password'),
|
||||||
name: 'pass',
|
name: 'pass',
|
||||||
ref: '../pass',
|
ref: '../pass',
|
||||||
value: pass,
|
value: pass,
|
||||||
@ -184,7 +205,7 @@ Zarafa.plugins.calendarimporter.settings.dialogs.CalSyncEditPanel = Ext.extend(E
|
|||||||
* Java String.hashCode() implementation
|
* Java String.hashCode() implementation
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
hashCode : function(str){
|
hashCode: function (str) {
|
||||||
var hash = 0;
|
var hash = 0;
|
||||||
var chr = 0;
|
var chr = 0;
|
||||||
var i = 0;
|
var i = 0;
|
||||||
@ -192,7 +213,7 @@ Zarafa.plugins.calendarimporter.settings.dialogs.CalSyncEditPanel = Ext.extend(E
|
|||||||
if (str.length == 0) return hash;
|
if (str.length == 0) return hash;
|
||||||
for (i = 0; i < str.length; i++) {
|
for (i = 0; i < str.length; i++) {
|
||||||
chr = str.charCodeAt(i);
|
chr = str.charCodeAt(i);
|
||||||
hash = ((hash<<5)-hash)+chr;
|
hash = ((hash << 5) - hash) + chr;
|
||||||
hash = hash & hash; // Convert to 32bit integer
|
hash = hash & hash; // Convert to 32bit integer
|
||||||
}
|
}
|
||||||
return Math.abs(hash);
|
return Math.abs(hash);
|
||||||
|
@ -1,3 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* CalSyncGrid.js, Kopano calender to ics im/exporter
|
||||||
|
*
|
||||||
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) 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
|
||||||
|
* Lesser 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, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
Ext.namespace('Zarafa.plugins.calendarimporter.settings.ui');
|
Ext.namespace('Zarafa.plugins.calendarimporter.settings.ui');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -11,25 +33,24 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncGrid = Ext.extend(Ext.grid.Gr
|
|||||||
* @constructor
|
* @constructor
|
||||||
* @param {Object} config Configuration structure
|
* @param {Object} config Configuration structure
|
||||||
*/
|
*/
|
||||||
constructor : function(config)
|
constructor: function (config) {
|
||||||
{
|
|
||||||
config = config || {};
|
config = config || {};
|
||||||
|
|
||||||
Ext.applyIf(config, {
|
Ext.applyIf(config, {
|
||||||
xtype : 'calendarimporter.calsyncgrid',
|
xtype: 'calendarimporter.calsyncgrid',
|
||||||
border : true,
|
border: true,
|
||||||
store : config.store,
|
store: config.store,
|
||||||
viewConfig : {
|
viewConfig: {
|
||||||
forceFit : true,
|
forceFit: true,
|
||||||
emptyText : '<div class=\'emptytext\'>' + _('No ICAL sync entry exists') + '</div>'
|
emptyText: '<div class=\'emptytext\'>' + dgettext('plugin_calendarimporter', 'No ICAL sync entry exists') + '</div>'
|
||||||
},
|
},
|
||||||
loadMask : this.initLoadMask(),
|
loadMask: this.initLoadMask(),
|
||||||
columns : this.initColumnModel(),
|
columns: this.initColumnModel(),
|
||||||
selModel : this.initSelectionModel(),
|
selModel: this.initSelectionModel(),
|
||||||
listeners : {
|
listeners: {
|
||||||
viewready : this.onViewReady,
|
viewready: this.onViewReady,
|
||||||
rowdblclick : this.onRowDblClick,
|
rowdblclick: this.onRowDblClick,
|
||||||
scope : this
|
scope: this
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -40,12 +61,11 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncGrid = Ext.extend(Ext.grid.Gr
|
|||||||
* initialize events for the grid panel.
|
* initialize events for the grid panel.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
initEvents : function()
|
initEvents: function () {
|
||||||
{
|
|
||||||
Zarafa.plugins.calendarimporter.settings.ui.CalSyncGrid.superclass.initEvents.call(this);
|
Zarafa.plugins.calendarimporter.settings.ui.CalSyncGrid.superclass.initEvents.call(this);
|
||||||
|
|
||||||
// select first icssync when store has finished loading
|
// select first icssync when store has finished loading
|
||||||
this.mon(this.store, 'load', this.onViewReady, this, {single : true});
|
this.mon(this.store, 'load', this.onViewReady, this, {single: true});
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -53,8 +73,7 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncGrid = Ext.extend(Ext.grid.Gr
|
|||||||
* @return {String}
|
* @return {String}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
renderAuthColumn : function(value, p, record)
|
renderAuthColumn: function (value, p, record) {
|
||||||
{
|
|
||||||
return value ? "true" : "false";
|
return value ? "true" : "false";
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -63,8 +82,7 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncGrid = Ext.extend(Ext.grid.Gr
|
|||||||
* @return {String}
|
* @return {String}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
renderCalendarColumn : function(value, p, record)
|
renderCalendarColumn: function (value, p, record) {
|
||||||
{
|
|
||||||
return Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByEntryid(value).display_name;
|
return Zarafa.plugins.calendarimporter.data.Actions.getCalendarFolderByEntryid(value).display_name;
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -73,31 +91,30 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncGrid = Ext.extend(Ext.grid.Gr
|
|||||||
* @return {Ext.grid.ColumnModel} column model object
|
* @return {Ext.grid.ColumnModel} column model object
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
initColumnModel : function()
|
initColumnModel: function () {
|
||||||
{
|
|
||||||
return [{
|
return [{
|
||||||
dataIndex : 'icsurl',
|
dataIndex: 'icsurl',
|
||||||
header : _('ICS File'),
|
header: dgettext('plugin_calendarimporter', 'ICS File'),
|
||||||
renderer : Zarafa.common.ui.grid.Renderers.text
|
renderer: Zarafa.common.ui.grid.Renderers.text
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex : 'calendarname',
|
dataIndex: 'calendarname',
|
||||||
header : _('Destination Calender'),
|
header: dgettext('plugin_calendarimporter', 'Destination Calender'),
|
||||||
renderer : Zarafa.common.ui.grid.Renderers.text
|
renderer: Zarafa.common.ui.grid.Renderers.text
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex : 'user',
|
dataIndex: 'user',
|
||||||
header : _('Authentication'),
|
header: dgettext('plugin_calendarimporter', 'Authentication'),
|
||||||
renderer : this.renderAuthColumn
|
renderer: this.renderAuthColumn
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex : 'intervall',
|
dataIndex: 'intervall',
|
||||||
header : _('Sync Intervall')
|
header: dgettext('plugin_calendarimporter', 'Sync Intervall')
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
dataIndex : 'lastsync',
|
dataIndex: 'lastsync',
|
||||||
header : _('Last Synchronisation'),
|
header: dgettext('plugin_calendarimporter', 'Last Synchronisation'),
|
||||||
renderer : Zarafa.common.ui.grid.Renderers.text
|
renderer: Zarafa.common.ui.grid.Renderers.text
|
||||||
}]
|
}]
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -106,10 +123,9 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncGrid = Ext.extend(Ext.grid.Gr
|
|||||||
* @return {Ext.grid.RowSelectionModel} selection model object
|
* @return {Ext.grid.RowSelectionModel} selection model object
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
initSelectionModel : function()
|
initSelectionModel: function () {
|
||||||
{
|
|
||||||
return new Ext.grid.RowSelectionModel({
|
return new Ext.grid.RowSelectionModel({
|
||||||
singleSelect : true
|
singleSelect: true
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -119,10 +135,9 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncGrid = Ext.extend(Ext.grid.Gr
|
|||||||
* @return {Ext.LoadMask} The configuration object for {@link Ext.LoadMask}
|
* @return {Ext.LoadMask} The configuration object for {@link Ext.LoadMask}
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
initLoadMask : function()
|
initLoadMask: function () {
|
||||||
{
|
|
||||||
return {
|
return {
|
||||||
msg : _('Loading ics sync entries') + '...'
|
msg: dgettext('plugin_calendarimporter', 'Loading ics sync entries...')
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -131,19 +146,17 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncGrid = Ext.extend(Ext.grid.Gr
|
|||||||
* select the first row in the grid.
|
* select the first row in the grid.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
onViewReady : function()
|
onViewReady: function () {
|
||||||
{
|
|
||||||
this.getSelectionModel().selectFirstRow();
|
this.getSelectionModel().selectFirstRow();
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function will be called to remove a ics sync entry.
|
* Function will be called to remove a ics sync entry.
|
||||||
*/
|
*/
|
||||||
removeIcsSyncAs : function()
|
removeIcsSyncAs: function () {
|
||||||
{
|
|
||||||
var icsRecord = this.getSelectionModel().getSelected();
|
var icsRecord = this.getSelectionModel().getSelected();
|
||||||
if(!icsRecord) {
|
if (!icsRecord) {
|
||||||
Ext.Msg.alert(_('Alert'), _('Please select a ics sync entry.'));
|
Ext.Msg.alert(dgettext('plugin_calendarimporter', 'Alert'), dgettext('plugin_calendarimporter', 'Please select a ics sync entry.'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,12 +168,11 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncGrid = Ext.extend(Ext.grid.Gr
|
|||||||
* it will call generic function to handle the functionality.
|
* it will call generic function to handle the functionality.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
onRowDblClick : function(grid, rowIndex)
|
onRowDblClick: function (grid, rowIndex) {
|
||||||
{
|
|
||||||
Zarafa.core.data.UIFactory.openLayerComponent(Zarafa.core.data.SharedComponentType['plugins.calendarimporter.settings.dialogs.calsyncedit'], undefined, {
|
Zarafa.core.data.UIFactory.openLayerComponent(Zarafa.core.data.SharedComponentType['plugins.calendarimporter.settings.dialogs.calsyncedit'], undefined, {
|
||||||
store : grid.getStore(),
|
store: grid.getStore(),
|
||||||
item : grid.getStore().getAt(rowIndex),
|
item: grid.getStore().getAt(rowIndex),
|
||||||
manager : Ext.WindowMgr
|
manager: Ext.WindowMgr
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -1,3 +1,25 @@
|
|||||||
|
/**
|
||||||
|
* CalSyncPanel.js, Kopano calender to ics im/exporter
|
||||||
|
*
|
||||||
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) 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
|
||||||
|
* Lesser 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, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
Ext.namespace('Zarafa.plugins.calendarimporter.settings.ui');
|
Ext.namespace('Zarafa.plugins.calendarimporter.settings.ui');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -9,28 +31,27 @@ Ext.namespace('Zarafa.plugins.calendarimporter.settings.ui');
|
|||||||
Zarafa.plugins.calendarimporter.settings.ui.CalSyncPanel = Ext.extend(Ext.Panel, {
|
Zarafa.plugins.calendarimporter.settings.ui.CalSyncPanel = Ext.extend(Ext.Panel, {
|
||||||
|
|
||||||
// store
|
// store
|
||||||
store : undefined,
|
store: undefined,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @constructor
|
* @constructor
|
||||||
* @param config Configuration structure
|
* @param config Configuration structure
|
||||||
*/
|
*/
|
||||||
constructor : function(config)
|
constructor: function (config) {
|
||||||
{
|
|
||||||
config = config || {};
|
config = config || {};
|
||||||
if(config.store)
|
if (config.store)
|
||||||
this.store = config.store;
|
this.store = config.store;
|
||||||
|
|
||||||
Ext.applyIf(config, {
|
Ext.applyIf(config, {
|
||||||
// Override from Ext.Component
|
// Override from Ext.Component
|
||||||
xtype : 'calendarimporter.calsyncpanel',
|
xtype: 'calendarimporter.calsyncpanel',
|
||||||
border : false,
|
border: false,
|
||||||
layout : {
|
layout: {
|
||||||
type : 'vbox',
|
type: 'vbox',
|
||||||
align : 'stretch',
|
align: 'stretch',
|
||||||
pack : 'start'
|
pack: 'start'
|
||||||
},
|
},
|
||||||
items : this.createPanelItems(this.store)
|
items: this.createPanelItems(this.store)
|
||||||
});
|
});
|
||||||
|
|
||||||
Zarafa.plugins.calendarimporter.settings.ui.CalSyncPanel.superclass.constructor.call(this, config);
|
Zarafa.plugins.calendarimporter.settings.ui.CalSyncPanel.superclass.constructor.call(this, config);
|
||||||
@ -41,52 +62,51 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncPanel = Ext.extend(Ext.Panel,
|
|||||||
* @return {Array} array of items that should be added to panel.
|
* @return {Array} array of items that should be added to panel.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
createPanelItems : function(store)
|
createPanelItems: function (store) {
|
||||||
{
|
|
||||||
return [{
|
return [{
|
||||||
xtype : 'displayfield',
|
xtype: 'displayfield',
|
||||||
value : _('Setup calendars you want to subscribe to.'),
|
value: dgettext('plugin_calendarimporter', 'Setup calendars you want to subscribe to.'),
|
||||||
fieldClass : 'x-form-display-field'
|
fieldClass: 'x-form-display-field'
|
||||||
}, {
|
}, {
|
||||||
xtype : 'container',
|
xtype: 'container',
|
||||||
flex : 1,
|
flex: 1,
|
||||||
layout : {
|
layout: {
|
||||||
type : 'hbox',
|
type: 'hbox',
|
||||||
align : 'stretch',
|
align: 'stretch',
|
||||||
pack : 'start'
|
pack: 'start'
|
||||||
},
|
},
|
||||||
items : [{
|
items: [{
|
||||||
xtype : 'calendarimporter.calsyncgrid',
|
xtype: 'calendarimporter.calsyncgrid',
|
||||||
ref : '../calsyncGrid',
|
ref: '../calsyncGrid',
|
||||||
store : store,
|
store: store,
|
||||||
flex : 1
|
flex: 1
|
||||||
}, {
|
}, {
|
||||||
xtype : 'container',
|
xtype: 'container',
|
||||||
width : 160,
|
width: 160,
|
||||||
defaults : {
|
defaults: {
|
||||||
width : 140
|
width: 140
|
||||||
},
|
},
|
||||||
layout : {
|
layout: {
|
||||||
type : 'vbox',
|
type: 'vbox',
|
||||||
align : 'center',
|
align: 'center',
|
||||||
pack : 'start'
|
pack: 'start'
|
||||||
},
|
},
|
||||||
items : [{
|
items: [{
|
||||||
xtype : 'button',
|
xtype: 'button',
|
||||||
text : _('Add') + '...',
|
text: _('Add') + '...',
|
||||||
handler : this.onCalSyncAdd,
|
handler: this.onCalSyncAdd,
|
||||||
ref : '../../addButton',
|
ref: '../../addButton',
|
||||||
scope : this
|
scope: this
|
||||||
}, {
|
}, {
|
||||||
xtype : 'spacer',
|
xtype: 'spacer',
|
||||||
height : 20
|
height: 20
|
||||||
}, {
|
}, {
|
||||||
xtype : 'button',
|
xtype: 'button',
|
||||||
text : _('Remove') + '...',
|
text: _('Remove') + '...',
|
||||||
disabled : true,
|
disabled: true,
|
||||||
ref : '../../removeButton',
|
ref: '../../removeButton',
|
||||||
handler : this.onCalSyncRemove,
|
handler: this.onCalSyncRemove,
|
||||||
scope : this
|
scope: this
|
||||||
}]
|
}]
|
||||||
}]
|
}]
|
||||||
}];
|
}];
|
||||||
@ -96,8 +116,7 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncPanel = Ext.extend(Ext.Panel,
|
|||||||
* initialize events for the panel.
|
* initialize events for the panel.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
initEvents : function()
|
initEvents: function () {
|
||||||
{
|
|
||||||
Zarafa.plugins.calendarimporter.settings.ui.CalSyncPanel.superclass.initEvents.call(this);
|
Zarafa.plugins.calendarimporter.settings.ui.CalSyncPanel.superclass.initEvents.call(this);
|
||||||
|
|
||||||
// register event to enable/disable buttons
|
// register event to enable/disable buttons
|
||||||
@ -108,12 +127,11 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncPanel = Ext.extend(Ext.Panel,
|
|||||||
* Handler function will be called when user clicks on 'Add' button.
|
* Handler function will be called when user clicks on 'Add' button.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
onCalSyncAdd : function()
|
onCalSyncAdd: function () {
|
||||||
{
|
|
||||||
Zarafa.core.data.UIFactory.openLayerComponent(Zarafa.core.data.SharedComponentType['plugins.calendarimporter.settings.dialogs.calsyncedit'], undefined, {
|
Zarafa.core.data.UIFactory.openLayerComponent(Zarafa.core.data.SharedComponentType['plugins.calendarimporter.settings.dialogs.calsyncedit'], undefined, {
|
||||||
store : this.store,
|
store: this.store,
|
||||||
item : undefined,
|
item: undefined,
|
||||||
manager : Ext.WindowMgr
|
manager: Ext.WindowMgr
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -122,8 +140,7 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncPanel = Ext.extend(Ext.Panel,
|
|||||||
* has been changed
|
* has been changed
|
||||||
* @param {Ext.grid.RowSelectionModel} selectionModel selection model that fired the event
|
* @param {Ext.grid.RowSelectionModel} selectionModel selection model that fired the event
|
||||||
*/
|
*/
|
||||||
onGridSelectionChange : function(selectionModel)
|
onGridSelectionChange: function (selectionModel) {
|
||||||
{
|
|
||||||
var noSelection = (selectionModel.hasSelection() === false);
|
var noSelection = (selectionModel.hasSelection() === false);
|
||||||
|
|
||||||
this.removeButton.setDisabled(noSelection);
|
this.removeButton.setDisabled(noSelection);
|
||||||
@ -133,24 +150,21 @@ Zarafa.plugins.calendarimporter.settings.ui.CalSyncPanel = Ext.extend(Ext.Panel,
|
|||||||
* Handler function will be called when user clicks on 'Remove' button.
|
* Handler function will be called when user clicks on 'Remove' button.
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
onCalSyncRemove : function()
|
onCalSyncRemove: function () {
|
||||||
{
|
|
||||||
this.calsyncGrid.removeIcsSyncAs();
|
this.calsyncGrid.removeIcsSyncAs();
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function will be used to reload data in the store.
|
* Function will be used to reload data in the store.
|
||||||
*/
|
*/
|
||||||
discardChanges : function()
|
discardChanges: function () {
|
||||||
{
|
|
||||||
this.store.load();
|
this.store.load();
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function will be used to save changes in the store.
|
* Function will be used to save changes in the store.
|
||||||
*/
|
*/
|
||||||
saveChanges : function()
|
saveChanges: function () {
|
||||||
{
|
|
||||||
this.store.save();
|
this.store.save();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* ContectMenu.js zarafa calender to ics im/exporter
|
* ContectMenu.js, Kopano calender to ics im/exporter
|
||||||
*
|
*
|
||||||
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
* Copyright (C) 2012-2016 Christoph Haas
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
@ -63,9 +63,9 @@ Zarafa.plugins.calendarimporter.ui.ContextMenu = Ext.extend(Zarafa.hierarchy.ui.
|
|||||||
return [{
|
return [{
|
||||||
xtype: 'menuseparator'
|
xtype: 'menuseparator'
|
||||||
}, {
|
}, {
|
||||||
text : _('Import Calendar'),
|
text: dgettext('plugin_calendarimporter', 'Import Calendar'),
|
||||||
iconCls : 'icon_calendarimporter_import',
|
iconCls: 'icon_calendarimporter_import',
|
||||||
handler : this.onContextItemImport,
|
handler: this.onContextItemImport,
|
||||||
beforeShow: function (item, record) {
|
beforeShow: function (item, record) {
|
||||||
var access = record.get('access') & Zarafa.core.mapi.Access.ACCESS_MODIFY;
|
var access = record.get('access') & Zarafa.core.mapi.Access.ACCESS_MODIFY;
|
||||||
if (!access || (record.isIPMSubTree() && !record.getMAPIStore().isDefaultStore())) {
|
if (!access || (record.isIPMSubTree() && !record.getMAPIStore().isDefaultStore())) {
|
||||||
@ -75,9 +75,9 @@ Zarafa.plugins.calendarimporter.ui.ContextMenu = Ext.extend(Zarafa.hierarchy.ui.
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
text : _('Export Calendar'),
|
text: dgettext('plugin_calendarimporter', 'Export Calendar'),
|
||||||
iconCls : 'icon_calendarimporter_export',
|
iconCls: 'icon_calendarimporter_export',
|
||||||
handler : this.onContextItemExport,
|
handler: this.onContextItemExport,
|
||||||
beforeShow: function (item, record) {
|
beforeShow: function (item, record) {
|
||||||
var access = record.get('access') & Zarafa.core.mapi.Access.ACCESS_READ;
|
var access = record.get('access') & Zarafa.core.mapi.Access.ACCESS_READ;
|
||||||
if (!access || (record.isIPMSubTree() && !record.getMAPIStore().isDefaultStore())) {
|
if (!access || (record.isIPMSubTree() && !record.getMAPIStore().isDefaultStore())) {
|
||||||
@ -96,16 +96,20 @@ Zarafa.plugins.calendarimporter.ui.ContextMenu = Ext.extend(Zarafa.hierarchy.ui.
|
|||||||
onContextItemExport: function () {
|
onContextItemExport: function () {
|
||||||
var responseHandler = new Zarafa.plugins.calendarimporter.data.ResponseHandler({
|
var responseHandler = new Zarafa.plugins.calendarimporter.data.ResponseHandler({
|
||||||
successCallback: Zarafa.plugins.calendarimporter.data.Actions.downloadICS,
|
successCallback: Zarafa.plugins.calendarimporter.data.Actions.downloadICS,
|
||||||
scope : this
|
scope: this
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Notify user
|
||||||
|
// # TRANSLATORS: {0} will be replaced by the number of contacts that will be exported
|
||||||
|
container.getNotifier().notify('info', dgettext('plugin_contactimporter', 'Calendar Export'), String.format(dgettext('plugin_calendarimporter', 'Exporting {0} events. Please wait...'), this.records.get('content_count')));
|
||||||
|
|
||||||
// request attachment preperation
|
// request attachment preperation
|
||||||
container.getRequest().singleRequest(
|
container.getRequest().singleRequest(
|
||||||
'calendarmodule',
|
'calendarmodule',
|
||||||
'export',
|
'export',
|
||||||
{
|
{
|
||||||
storeid: this.records.get("store_entryid"),
|
storeid: this.records.get("store_entryid"),
|
||||||
folder : this.records.get("entryid")
|
folder: this.records.get("entryid")
|
||||||
},
|
},
|
||||||
responseHandler
|
responseHandler
|
||||||
);
|
);
|
||||||
@ -118,7 +122,7 @@ Zarafa.plugins.calendarimporter.ui.ContextMenu = Ext.extend(Zarafa.hierarchy.ui.
|
|||||||
onContextItemImport: function () {
|
onContextItemImport: function () {
|
||||||
var componentType = Zarafa.core.data.SharedComponentType['plugins.calendarimporter.dialogs.importevents'];
|
var componentType = Zarafa.core.data.SharedComponentType['plugins.calendarimporter.dialogs.importevents'];
|
||||||
var config = {
|
var config = {
|
||||||
modal : true,
|
modal: true,
|
||||||
folder: this.records.get("entryid")
|
folder: this.records.get("entryid")
|
||||||
};
|
};
|
||||||
|
|
||||||
|
BIN
languages/de_DE.UTF-8/LC_MESSAGES/plugin_calendarimporter.mo
Normal file
BIN
languages/de_DE.UTF-8/LC_MESSAGES/plugin_calendarimporter.mo
Normal file
Binary file not shown.
350
languages/de_DE.UTF-8/LC_MESSAGES/plugin_calendarimporter.po
Normal file
350
languages/de_DE.UTF-8/LC_MESSAGES/plugin_calendarimporter.po
Normal file
@ -0,0 +1,350 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Plugin Calendarimporter\n"
|
||||||
|
"POT-Creation-Date: 2016-11-29 19:49+0100\n"
|
||||||
|
"PO-Revision-Date: 2016-11-29 19:49+0100\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: Christoph Haas <christoph.h@sprinternet.at>\n"
|
||||||
|
"Language: de\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Poedit 1.8.7.1\n"
|
||||||
|
"X-Poedit-Basepath: ../../..\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Poedit-SourceCharset: UTF-8\n"
|
||||||
|
"X-Poedit-SearchPath-0: php\n"
|
||||||
|
"X-Poedit-SearchPath-1: js\n"
|
||||||
|
|
||||||
|
#: js/data/Actions.js:44
|
||||||
|
msgid "Warning"
|
||||||
|
msgstr "Warnung"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportContentPanel.js:47
|
||||||
|
msgid "Import Calendar File"
|
||||||
|
msgstr "Kalender Datei importieren"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:124
|
||||||
|
msgid "Loading..."
|
||||||
|
msgstr "Lade..."
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:209
|
||||||
|
msgid "Select events to import"
|
||||||
|
msgstr "Termine zum importieren auswählen"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:222
|
||||||
|
msgid "Title"
|
||||||
|
msgstr "Titel"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:228
|
||||||
|
msgid "Start"
|
||||||
|
msgstr "Beginn"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:235
|
||||||
|
msgid "End"
|
||||||
|
msgstr "Ende"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:242
|
||||||
|
msgid "Location"
|
||||||
|
msgstr "Ort"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:247
|
||||||
|
msgid "Description"
|
||||||
|
msgstr "Beschreibung"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:248
|
||||||
|
msgid "Priority"
|
||||||
|
msgstr "Priorität"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:249
|
||||||
|
msgid "Label"
|
||||||
|
msgstr "Label"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:250
|
||||||
|
msgid "Busystatus"
|
||||||
|
msgstr "Beschäftigt"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:251
|
||||||
|
msgid "Privacystatus"
|
||||||
|
msgstr "Privat"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:252
|
||||||
|
msgid "Organizer"
|
||||||
|
msgstr "Ersteller"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:254
|
||||||
|
msgid "Alarm"
|
||||||
|
msgstr "Erinnerung"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:259 js/dialogs/ImportPanel.js:296
|
||||||
|
msgid "Timezone"
|
||||||
|
msgstr "Zeitzone"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:276
|
||||||
|
msgid "Select folder"
|
||||||
|
msgstr "Ordner auswählen"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:317
|
||||||
|
msgid "Ignore DST"
|
||||||
|
msgstr "DST ignorieren"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:318
|
||||||
|
msgid "This will ignore \"Daylight saving time\" offsets."
|
||||||
|
msgstr ""
|
||||||
|
"Durch diese Einstellung wird die Sommer bzw. Winterzeit Abweichung ignoriert."
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:338
|
||||||
|
msgid "Select an .ics calendar"
|
||||||
|
msgstr ".ics Kalender Datei wählen"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:358
|
||||||
|
msgid "Import"
|
||||||
|
msgstr "Importieren"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:372
|
||||||
|
msgid "Import All"
|
||||||
|
msgstr "Alle Importieren"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:384 js/settings/SettingsWidget.js:165
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:61
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Abbrechen"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:428
|
||||||
|
msgid "Uploading and parsing calendar..."
|
||||||
|
msgstr "Kalender wird hochgeladen und verarbeitet..."
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:434 js/dialogs/ImportPanel.js:524
|
||||||
|
#: js/dialogs/ImportPanel.js:532 js/dialogs/ImportPanel.js:581
|
||||||
|
#: js/plugin.calendarimporter.js:175
|
||||||
|
msgid "Error"
|
||||||
|
msgstr "Fehler"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:489
|
||||||
|
msgid "Parser Error"
|
||||||
|
msgstr "Verarbeitungsfehler"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:525
|
||||||
|
msgid "You have to choose a calendar!"
|
||||||
|
msgstr "Es muss ein Kalender ausgewählt werden!"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:533
|
||||||
|
msgid "You have to choose at least one event to import!"
|
||||||
|
msgstr "Es muss mindestens ein Termin zum Importieren ausgewählt werden."
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:582
|
||||||
|
msgid "Import failed: {0}"
|
||||||
|
msgstr "Importieren fehlgeschalgen: {0}"
|
||||||
|
|
||||||
|
#: js/plugin.calendarimporter.js:76
|
||||||
|
msgid "Export Event"
|
||||||
|
msgstr "Termin exportieren"
|
||||||
|
|
||||||
|
#. TRANSLATORS: {0} will be replaced by the number of contacts that will be exported
|
||||||
|
#. TRANSLATORS: {0} will be replaced by the number of contacts that will be exported
|
||||||
|
#: js/plugin.calendarimporter.js:105 js/ui/ContextMenu.js:104
|
||||||
|
msgid "Calendar Export"
|
||||||
|
msgstr "Kalenderexport"
|
||||||
|
|
||||||
|
#: js/plugin.calendarimporter.js:105 js/ui/ContextMenu.js:104
|
||||||
|
msgid "Exporting {0} events. Please wait..."
|
||||||
|
msgstr "Exportiere {0} Termine. Bitte warten..."
|
||||||
|
|
||||||
|
#: js/plugin.calendarimporter.js:151
|
||||||
|
msgid "Import to Calendar"
|
||||||
|
msgstr "Kalender importieren"
|
||||||
|
|
||||||
|
#: js/plugin.calendarimporter.js:188
|
||||||
|
msgid "Please wait"
|
||||||
|
msgstr "Bitte warten"
|
||||||
|
|
||||||
|
#: js/plugin.calendarimporter.js:189
|
||||||
|
msgid "Loading attachment..."
|
||||||
|
msgstr "Lade Anhang..."
|
||||||
|
|
||||||
|
#: js/plugin.calendarimporter.js:190
|
||||||
|
msgid "Initializing..."
|
||||||
|
msgstr "Initialisierung..."
|
||||||
|
|
||||||
|
#. TRANSLATORS: {0} will be replaced by the percentage value (0-100)
|
||||||
|
#: js/plugin.calendarimporter.js:203
|
||||||
|
msgid "{0}% loaded"
|
||||||
|
msgstr "{0}% geladen"
|
||||||
|
|
||||||
|
#: js/plugin.calendarimporter.js:321
|
||||||
|
msgid "Calendarimporter Plugin"
|
||||||
|
msgstr "Kalender Plugin"
|
||||||
|
|
||||||
|
#: js/settings/SettingsCalSyncWidget.js:64
|
||||||
|
msgid "Calendar Sync settings"
|
||||||
|
msgstr "Kalender Synchronisierung - Einstellungen"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:45
|
||||||
|
msgid "Calendar Import/Export plugin settings"
|
||||||
|
msgstr "Kalender Import/Export Einstellungen"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:52
|
||||||
|
msgid "Enable ical sync"
|
||||||
|
msgstr "iCAL Synchronisierung aktivieren"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:73
|
||||||
|
msgid "Default calender"
|
||||||
|
msgstr "Standard Kalender"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:92
|
||||||
|
msgid "Default timezone"
|
||||||
|
msgstr "Standard Zeitzone"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:151
|
||||||
|
msgid "Your WebApp needs to be reloaded to make the changes visible!"
|
||||||
|
msgstr "Your WebApp needs to be reloaded to make the changes visible!"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:153
|
||||||
|
msgid ""
|
||||||
|
"WebApp will automatically restart in order for these changes to take effect"
|
||||||
|
msgstr ""
|
||||||
|
"WebApp will automatically restart in order for these changes to take effect"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:157
|
||||||
|
msgid "Restart WebApp"
|
||||||
|
msgstr "Restart WebApp"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:162
|
||||||
|
msgid "Restart"
|
||||||
|
msgstr "Restart"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:187
|
||||||
|
msgid "Webapp is reloading, Please wait."
|
||||||
|
msgstr "Webapp is reloading, Please wait."
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditContentPanel.js:49
|
||||||
|
msgid "ICAL Sync"
|
||||||
|
msgstr "iCAL Synchronisierung"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:56
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Save"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:139
|
||||||
|
msgid "ICAL Information"
|
||||||
|
msgstr "iCAL Informationen"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:148
|
||||||
|
msgid "ICS Url"
|
||||||
|
msgstr "ICS Url"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:156
|
||||||
|
msgid "Destination Calendar"
|
||||||
|
msgstr "Ziel-Kalender"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:171
|
||||||
|
msgid "Sync Intervall (minutes)"
|
||||||
|
msgstr "Synchronisationsintervall (Minuten)"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:180
|
||||||
|
msgid "Authentication (optional)"
|
||||||
|
msgstr "Anmelden (optional)"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:187
|
||||||
|
msgid "Username"
|
||||||
|
msgstr "Benutzername"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:194
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Passwort"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:45
|
||||||
|
msgid "No ICAL sync entry exists"
|
||||||
|
msgstr "Es existiert kein Synchronisierungs Eintrag"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:97
|
||||||
|
msgid "ICS File"
|
||||||
|
msgstr "ICS Datei"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:102
|
||||||
|
msgid "Destination Calender"
|
||||||
|
msgstr "Ziel-Kalender"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:107
|
||||||
|
msgid "Authentication"
|
||||||
|
msgstr "Anmeldung"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:112
|
||||||
|
msgid "Sync Intervall"
|
||||||
|
msgstr "Synchronisierungs Intervall"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:116
|
||||||
|
msgid "Last Synchronisation"
|
||||||
|
msgstr "Letzte Synchronisation"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:140
|
||||||
|
msgid "Loading ics sync entries..."
|
||||||
|
msgstr "Lade Synchronisierungseinträge..."
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:159
|
||||||
|
msgid "Alert"
|
||||||
|
msgstr "Achtung"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:159
|
||||||
|
msgid "Please select a ics sync entry."
|
||||||
|
msgstr "Bitte einen Eintrag auswählen."
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncPanel.js:68
|
||||||
|
msgid "Setup calendars you want to subscribe to."
|
||||||
|
msgstr "Kalender zur Synchronisation verwalten."
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncPanel.js:96
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "Add"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncPanel.js:105
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr "Remove"
|
||||||
|
|
||||||
|
#: js/ui/ContextMenu.js:66
|
||||||
|
msgid "Import Calendar"
|
||||||
|
msgstr "Kalender importieren"
|
||||||
|
|
||||||
|
#: js/ui/ContextMenu.js:78
|
||||||
|
msgid "Export Calendar"
|
||||||
|
msgstr "Kalender exportieren"
|
||||||
|
|
||||||
|
#. TRANSLATORS: Filename suffix for exported files
|
||||||
|
#: php/module.calendar.php:341
|
||||||
|
msgid "_events.ics"
|
||||||
|
msgstr "_Termine.ics"
|
||||||
|
|
||||||
|
#: php/module.calendar.php:344
|
||||||
|
msgid "No events found. Export skipped!"
|
||||||
|
msgstr "Keine Termine gefunden. Export abgebrochen!"
|
||||||
|
|
||||||
|
#: php/module.calendar.php:456
|
||||||
|
msgid "ICS file empty!"
|
||||||
|
msgstr "ICS enthält keine Termine!"
|
||||||
|
|
||||||
|
#: php/module.calendar.php:594
|
||||||
|
msgid "Store could not be opened!"
|
||||||
|
msgstr "Datenbank kann nicht geöffnet werden!"
|
||||||
|
|
||||||
|
#: php/module.calendar.php:600
|
||||||
|
msgid "Wrong call, store and entryid have to be set!"
|
||||||
|
msgstr "Inkorrekter Aufruf!"
|
||||||
|
|
||||||
|
#: php/module.calendar.php:634
|
||||||
|
msgid "No event in ics file"
|
||||||
|
msgstr "ICS enthält keine Termine!"
|
||||||
|
|
||||||
|
#: php/module.calendar.php:647
|
||||||
|
msgid "File could not be read by server"
|
||||||
|
msgstr "Datei konnte vom Server nicht gelesen werden"
|
||||||
|
|
||||||
|
#: php/upload.php:69
|
||||||
|
msgid ""
|
||||||
|
"File could not be moved to TMP path! Check plugin config and folder "
|
||||||
|
"permissions!"
|
||||||
|
msgstr "Temporärer Pfad ist nicht beschreibbar!"
|
||||||
|
|
||||||
|
#: php/upload.php:72
|
||||||
|
msgid "File could not be read by server, upload error!"
|
||||||
|
msgstr ""
|
||||||
|
"Datei konnte vom Server nicht gelesen werden. Hochladen fehlgeschlagen!"
|
2
languages/de_DE.UTF-8/language.txt
Normal file
2
languages/de_DE.UTF-8/language.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Deutsch
|
||||||
|
deu_DEU
|
BIN
languages/en_US.UTF-8/LC_MESSAGES/plugin_calendarimporter.mo
Normal file
BIN
languages/en_US.UTF-8/LC_MESSAGES/plugin_calendarimporter.mo
Normal file
Binary file not shown.
349
languages/en_US.UTF-8/LC_MESSAGES/plugin_calendarimporter.po
Normal file
349
languages/en_US.UTF-8/LC_MESSAGES/plugin_calendarimporter.po
Normal file
@ -0,0 +1,349 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Plugin Calendarimporter\n"
|
||||||
|
"POT-Creation-Date: 2016-11-29 19:21+0100\n"
|
||||||
|
"PO-Revision-Date: 2016-11-29 19:39+0100\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: Christoph Haas <christoph.h@sprinternet.at>\n"
|
||||||
|
"Language: en_US\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Poedit 1.8.7.1\n"
|
||||||
|
"X-Poedit-Basepath: ../../..\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Poedit-SourceCharset: UTF-8\n"
|
||||||
|
"X-Poedit-SearchPath-0: php\n"
|
||||||
|
"X-Poedit-SearchPath-1: js\n"
|
||||||
|
|
||||||
|
#: js/data/Actions.js:44
|
||||||
|
msgid "Warning"
|
||||||
|
msgstr "Warning"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportContentPanel.js:47
|
||||||
|
msgid "Import Calendar File"
|
||||||
|
msgstr "Import Calendar File"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:124
|
||||||
|
msgid "Loading..."
|
||||||
|
msgstr "Loading..."
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:209
|
||||||
|
msgid "Select events to import"
|
||||||
|
msgstr "Select events to import"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:222
|
||||||
|
msgid "Title"
|
||||||
|
msgstr "Title"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:228
|
||||||
|
msgid "Start"
|
||||||
|
msgstr "Start"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:235
|
||||||
|
msgid "End"
|
||||||
|
msgstr "End"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:242
|
||||||
|
msgid "Location"
|
||||||
|
msgstr "Location"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:247
|
||||||
|
msgid "Description"
|
||||||
|
msgstr "Description"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:248
|
||||||
|
msgid "Priority"
|
||||||
|
msgstr "Priority"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:249
|
||||||
|
msgid "Label"
|
||||||
|
msgstr "Label"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:250
|
||||||
|
msgid "Busystatus"
|
||||||
|
msgstr "Busystatus"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:251
|
||||||
|
msgid "Privacystatus"
|
||||||
|
msgstr "Privacystatus"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:252
|
||||||
|
msgid "Organizer"
|
||||||
|
msgstr "Organizer"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:254
|
||||||
|
msgid "Alarm"
|
||||||
|
msgstr "Alarm"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:259 js/dialogs/ImportPanel.js:296
|
||||||
|
msgid "Timezone"
|
||||||
|
msgstr "Timezone"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:276
|
||||||
|
msgid "Select folder"
|
||||||
|
msgstr "Select folder"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:317
|
||||||
|
msgid "Ignore DST"
|
||||||
|
msgstr "Ignore DST"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:318
|
||||||
|
msgid "This will ignore \"Daylight saving time\" offsets."
|
||||||
|
msgstr "This will ignore \"Daylight saving time\" offsets."
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:338
|
||||||
|
msgid "Select an .ics calendar"
|
||||||
|
msgstr "Select an .ics calendar"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:358
|
||||||
|
msgid "Import"
|
||||||
|
msgstr "Import"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:372
|
||||||
|
msgid "Import All"
|
||||||
|
msgstr "Import All"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:384 js/settings/SettingsWidget.js:165
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:61
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Cancel"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:428
|
||||||
|
msgid "Uploading and parsing calendar..."
|
||||||
|
msgstr "Uploading and parsing calendar..."
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:434 js/dialogs/ImportPanel.js:524
|
||||||
|
#: js/dialogs/ImportPanel.js:532 js/dialogs/ImportPanel.js:581
|
||||||
|
#: js/plugin.calendarimporter.js:170
|
||||||
|
msgid "Error"
|
||||||
|
msgstr "Error"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:489
|
||||||
|
msgid "Parser Error"
|
||||||
|
msgstr "Parser Error"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:525
|
||||||
|
msgid "You have to choose a calendar!"
|
||||||
|
msgstr "You have to choose a calendar!"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:533
|
||||||
|
msgid "You have to choose at least one event to import!"
|
||||||
|
msgstr "You have to choose at least one event to import!"
|
||||||
|
|
||||||
|
#: js/dialogs/ImportPanel.js:582
|
||||||
|
msgid "Import failed: {0}"
|
||||||
|
msgstr "Import failed: {0}"
|
||||||
|
|
||||||
|
#: js/plugin.calendarimporter.js:76
|
||||||
|
msgid "Export Event"
|
||||||
|
msgstr "Export Event"
|
||||||
|
|
||||||
|
#: js/plugin.calendarimporter.js:146
|
||||||
|
msgid "Import to Calendar"
|
||||||
|
msgstr "Import to Calendar"
|
||||||
|
|
||||||
|
#: js/plugin.calendarimporter.js:183
|
||||||
|
msgid "Please wait"
|
||||||
|
msgstr "Please wait"
|
||||||
|
|
||||||
|
#: js/plugin.calendarimporter.js:184
|
||||||
|
msgid "Loading attachment..."
|
||||||
|
msgstr "Loading attachment..."
|
||||||
|
|
||||||
|
#: js/plugin.calendarimporter.js:185
|
||||||
|
msgid "Initializing..."
|
||||||
|
msgstr "Initializing..."
|
||||||
|
|
||||||
|
#. TRANSLATORS: {0} will be replaced by the percentage value (0-100)
|
||||||
|
#: js/plugin.calendarimporter.js:198
|
||||||
|
msgid "{0}% loaded"
|
||||||
|
msgstr "{0}% loaded"
|
||||||
|
|
||||||
|
#: js/plugin.calendarimporter.js:316
|
||||||
|
msgid "Calendarimporter Plugin"
|
||||||
|
msgstr "Calendarimporter Plugin"
|
||||||
|
|
||||||
|
#: js/settings/SettingsCalSyncWidget.js:64
|
||||||
|
msgid "Calendar Sync settings"
|
||||||
|
msgstr "Calendar Sync settings"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:45
|
||||||
|
msgid "Calendar Import/Export plugin settings"
|
||||||
|
msgstr "Calendar Import/Export plugin settings"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:52
|
||||||
|
msgid "Enable ical sync"
|
||||||
|
msgstr "Enable ical sync"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:73
|
||||||
|
msgid "Default calender"
|
||||||
|
msgstr "Default calender"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:92
|
||||||
|
msgid "Default timezone"
|
||||||
|
msgstr "Default timezone"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:151
|
||||||
|
msgid "Your WebApp needs to be reloaded to make the changes visible!"
|
||||||
|
msgstr "Your WebApp needs to be reloaded to make the changes visible!"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:153
|
||||||
|
msgid ""
|
||||||
|
"WebApp will automatically restart in order for these changes to take effect"
|
||||||
|
msgstr ""
|
||||||
|
"WebApp will automatically restart in order for these changes to take effect"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:157
|
||||||
|
msgid "Restart WebApp"
|
||||||
|
msgstr "Restart WebApp"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:162
|
||||||
|
msgid "Restart"
|
||||||
|
msgstr "Restart"
|
||||||
|
|
||||||
|
#: js/settings/SettingsWidget.js:187
|
||||||
|
msgid "Webapp is reloading, Please wait."
|
||||||
|
msgstr "Webapp is reloading, Please wait."
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditContentPanel.js:49
|
||||||
|
msgid "ICAL Sync"
|
||||||
|
msgstr "ICAL Sync"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:56
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Save"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:139
|
||||||
|
msgid "ICAL Information"
|
||||||
|
msgstr "ICAL Information"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:148
|
||||||
|
msgid "ICS Url"
|
||||||
|
msgstr "ICS Url"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:156
|
||||||
|
msgid "Destination Calendar"
|
||||||
|
msgstr "Destination Calendar"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:171
|
||||||
|
msgid "Sync Intervall (minutes)"
|
||||||
|
msgstr "Sync Intervall (minutes)"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:180
|
||||||
|
msgid "Authentication (optional)"
|
||||||
|
msgstr "Authentication (optional)"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:187
|
||||||
|
msgid "Username"
|
||||||
|
msgstr "Username"
|
||||||
|
|
||||||
|
#: js/settings/dialogs/CalSyncEditPanel.js:194
|
||||||
|
msgid "Password"
|
||||||
|
msgstr "Password"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:45
|
||||||
|
msgid "No ICAL sync entry exists"
|
||||||
|
msgstr "No ICAL sync entry exists"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:97
|
||||||
|
msgid "ICS File"
|
||||||
|
msgstr "ICS File"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:102
|
||||||
|
msgid "Destination Calender"
|
||||||
|
msgstr "Destination Calender"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:107
|
||||||
|
msgid "Authentication"
|
||||||
|
msgstr "Authentication"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:112
|
||||||
|
msgid "Sync Intervall"
|
||||||
|
msgstr "Sync Intervall"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:116
|
||||||
|
msgid "Last Synchronisation"
|
||||||
|
msgstr "Last Synchronisation"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:140
|
||||||
|
msgid "Loading ics sync entries..."
|
||||||
|
msgstr "Loading ics sync entries..."
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:159
|
||||||
|
msgid "Alert"
|
||||||
|
msgstr "Alert"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncGrid.js:159
|
||||||
|
msgid "Please select a ics sync entry."
|
||||||
|
msgstr "Please select a ics sync entry."
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncPanel.js:68
|
||||||
|
msgid "Setup calendars you want to subscribe to."
|
||||||
|
msgstr "Setup calendars you want to subscribe to."
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncPanel.js:96
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "Add"
|
||||||
|
|
||||||
|
#: js/settings/ui/CalSyncPanel.js:105
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr "Remove"
|
||||||
|
|
||||||
|
#: js/ui/ContextMenu.js:66
|
||||||
|
msgid "Import Calendar"
|
||||||
|
msgstr "Import Calendar"
|
||||||
|
|
||||||
|
#: js/ui/ContextMenu.js:78
|
||||||
|
msgid "Export Calendar"
|
||||||
|
msgstr "Export Calendar"
|
||||||
|
|
||||||
|
#. TRANSLATORS: {0} will be replaced by the number of contacts that will be exported
|
||||||
|
#: js/ui/ContextMenu.js:104
|
||||||
|
msgid "Calendar Export"
|
||||||
|
msgstr "Calendar Export"
|
||||||
|
|
||||||
|
#: js/ui/ContextMenu.js:104
|
||||||
|
msgid "Exporting {0} events. Please wait..."
|
||||||
|
msgstr "Exporting {0} events. Please wait..."
|
||||||
|
|
||||||
|
#. TRANSLATORS: Filename suffix for exported files
|
||||||
|
#: php/module.calendar.php:341
|
||||||
|
msgid "_events.ics"
|
||||||
|
msgstr "_events.ics"
|
||||||
|
|
||||||
|
#: php/module.calendar.php:344
|
||||||
|
msgid "No events found. Export skipped!"
|
||||||
|
msgstr "No events found. Export skipped!"
|
||||||
|
|
||||||
|
#: php/module.calendar.php:456
|
||||||
|
msgid "ICS file empty!"
|
||||||
|
msgstr "ICS file empty!"
|
||||||
|
|
||||||
|
#: php/module.calendar.php:594
|
||||||
|
msgid "Store could not be opened!"
|
||||||
|
msgstr "Store could not be opened!"
|
||||||
|
|
||||||
|
#: php/module.calendar.php:600
|
||||||
|
msgid "Wrong call, store and entryid have to be set!"
|
||||||
|
msgstr "Wrong call, store and entryid have to be set!"
|
||||||
|
|
||||||
|
#: php/module.calendar.php:634
|
||||||
|
msgid "No event in ics file"
|
||||||
|
msgstr "No event in ics file"
|
||||||
|
|
||||||
|
#: php/module.calendar.php:647
|
||||||
|
msgid "File could not be read by server"
|
||||||
|
msgstr "File could not be read by server"
|
||||||
|
|
||||||
|
#: php/upload.php:69
|
||||||
|
msgid ""
|
||||||
|
"File could not be moved to TMP path! Check plugin config and folder "
|
||||||
|
"permissions!"
|
||||||
|
msgstr ""
|
||||||
|
"File could not be moved to TMP path! Check plugin config and folder "
|
||||||
|
"permissions!"
|
||||||
|
|
||||||
|
#: php/upload.php:72
|
||||||
|
msgid "File could not be read by server, upload error!"
|
||||||
|
msgstr "File could not be read by server, upload error!"
|
2
languages/en_US.UTF-8/language.txt
Normal file
2
languages/en_US.UTF-8/language.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
English (US)
|
||||||
|
eng_USA
|
@ -2,13 +2,16 @@
|
|||||||
<!DOCTYPE plugin SYSTEM "manifest.dtd">
|
<!DOCTYPE plugin SYSTEM "manifest.dtd">
|
||||||
<plugin version="2">
|
<plugin version="2">
|
||||||
<info>
|
<info>
|
||||||
<version>2.2.0</version>
|
<version>2.2.1</version>
|
||||||
<name>calendarimporter</name>
|
<name>calendarimporter</name>
|
||||||
<title>ICS Calendar Importer/Exporter</title>
|
<title>ICS Calendar Importer/Exporter</title>
|
||||||
<author>Christoph Haas</author>
|
<author>Christoph Haas</author>
|
||||||
<authorURL>http://www.sprinternet.at</authorURL>
|
<authorURL>http://www.sprinternet.at</authorURL>
|
||||||
<description>Import or Export a ICS file to/from the zarafa calendar</description>
|
<description>Import or Export a ICS file to/from the Kopano calendar</description>
|
||||||
</info>
|
</info>
|
||||||
|
<translations>
|
||||||
|
<translationsdir>languages</translationsdir>
|
||||||
|
</translations>
|
||||||
<config>
|
<config>
|
||||||
<configfile>config.php</configfile>
|
<configfile>config.php</configfile>
|
||||||
</config>
|
</config>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* download.php, zarafa calendar to ics im/exporter
|
* download.php, Kopano calendar to ics im/exporter
|
||||||
*
|
*
|
||||||
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
* Copyright (C) 2012-2016 Christoph Haas
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
@ -27,7 +27,6 @@ class DownloadHandler
|
|||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Download the given vcf file.
|
* Download the given vcf file.
|
||||||
* @return bool
|
|
||||||
*/
|
*/
|
||||||
public static function doDownload()
|
public static function doDownload()
|
||||||
{
|
{
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* module.calendar.php, zarafa calender to ics im/exporter
|
* module.calendar.php, Kopano calender to ics im/exporter
|
||||||
*
|
*
|
||||||
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
* Copyright (C) 2012-2014 Christoph Haas
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@ -28,7 +28,7 @@ use Sabre\VObject;
|
|||||||
class CalendarModule extends Module
|
class CalendarModule extends Module
|
||||||
{
|
{
|
||||||
|
|
||||||
private $DEBUG = true; // enable error_log debugging
|
private $DEBUG = false; // enable error_log debugging
|
||||||
|
|
||||||
private $busystates = null;
|
private $busystates = null;
|
||||||
|
|
||||||
@ -166,12 +166,12 @@ class CalendarModule extends Module
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getDurationStringFromMintues($minutes, $pos = false) {
|
private function getDurationStringFromMintues($minutes, $pos = false)
|
||||||
|
{
|
||||||
$pos = $pos === true ? "+" : "-";
|
$pos = $pos === true ? "+" : "-";
|
||||||
$str = $pos . "P";
|
$str = $pos . "P";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// variables for holding values
|
// variables for holding values
|
||||||
$mins = intval($minutes);
|
$mins = intval($minutes);
|
||||||
$hours = 0;
|
$hours = 0;
|
||||||
@ -179,30 +179,30 @@ class CalendarModule extends Module
|
|||||||
$weeks = 0;
|
$weeks = 0;
|
||||||
|
|
||||||
// calculations
|
// calculations
|
||||||
if ( $mins >= 60 ) {
|
if ($mins >= 60) {
|
||||||
$hours = (int)($mins / 60);
|
$hours = (int)($mins / 60);
|
||||||
$mins = $mins % 60;
|
$mins = $mins % 60;
|
||||||
}
|
}
|
||||||
if ( $hours >= 24 ) {
|
if ($hours >= 24) {
|
||||||
$days = (int)($hours / 24);
|
$days = (int)($hours / 24);
|
||||||
$hours = $hours % 60;
|
$hours = $hours % 60;
|
||||||
}
|
}
|
||||||
if ( $days >= 7 ) {
|
if ($days >= 7) {
|
||||||
$weeks = (int)($days / 7);
|
$weeks = (int)($days / 7);
|
||||||
$days = $days % 7;
|
$days = $days % 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
// format result
|
// format result
|
||||||
if ( $weeks ) {
|
if ($weeks) {
|
||||||
$str .= "{$weeks}W";
|
$str .= "{$weeks}W";
|
||||||
}
|
}
|
||||||
if ( $days ) {
|
if ($days) {
|
||||||
$str .= "{$days}D";
|
$str .= "{$days}D";
|
||||||
}
|
}
|
||||||
if ( $hours ) {
|
if ($hours) {
|
||||||
$str .= "{$hours}H";
|
$str .= "{$hours}H";
|
||||||
}
|
}
|
||||||
if ( $mins ) {
|
if ($mins) {
|
||||||
$str .= "{$mins}M";
|
$str .= "{$mins}M";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -289,12 +289,12 @@ class CalendarModule extends Module
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
// Add organizer
|
// Add organizer
|
||||||
$vevent->add('ORGANIZER','mailto:' . $this->getProp($messageProps, "sender_email_address"));
|
$vevent->add('ORGANIZER', 'mailto:' . $this->getProp($messageProps, "sender_email_address"));
|
||||||
$vevent->ORGANIZER['CN'] = $this->getProp($messageProps, "sender_name");
|
$vevent->ORGANIZER['CN'] = $this->getProp($messageProps, "sender_name");
|
||||||
|
|
||||||
// Add Attendees
|
// Add Attendees
|
||||||
if(isset($messageProps["recipients"]) && count($messageProps["recipients"]["item"]) > 0) {
|
if (isset($messageProps["recipients"]) && count($messageProps["recipients"]["item"]) > 0) {
|
||||||
foreach($messageProps["recipients"]["item"] as $attendee) {
|
foreach ($messageProps["recipients"]["item"] as $attendee) {
|
||||||
$att = $vevent->add('ATTENDEE', "mailto:" . $this->getProp($attendee, "email_address"));
|
$att = $vevent->add('ATTENDEE', "mailto:" . $this->getProp($attendee, "email_address"));
|
||||||
$att["CN"] = $this->getProp($attendee, "display_name");
|
$att["CN"] = $this->getProp($attendee, "display_name");
|
||||||
$att["ROLE"] = $this->attendeetype[intval($this->getProp($attendee, "recipient_type"))];
|
$att["ROLE"] = $this->attendeetype[intval($this->getProp($attendee, "recipient_type"))];
|
||||||
@ -302,7 +302,7 @@ class CalendarModule extends Module
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add alarms
|
// Add alarms
|
||||||
if(!empty($this->getProp($messageProps, "reminder")) && $this->getProp($messageProps, "reminder") == 1) {
|
if (!empty($this->getProp($messageProps, "reminder")) && $this->getProp($messageProps, "reminder") == 1) {
|
||||||
$valarm = $vevent->add('VALARM', [
|
$valarm = $vevent->add('VALARM', [
|
||||||
'ACTION' => 'DISPLAY',
|
'ACTION' => 'DISPLAY',
|
||||||
'DESCRIPTION' => $this->getProp($messageProps, "subject") // reuse the event summary
|
'DESCRIPTION' => $this->getProp($messageProps, "subject") // reuse the event summary
|
||||||
@ -319,14 +319,14 @@ class CalendarModule extends Module
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add location
|
// Add location
|
||||||
if(!empty($this->getProp($messageProps, "location"))) {
|
if (!empty($this->getProp($messageProps, "location"))) {
|
||||||
$vevent->add('LOCATION',$this->getProp($messageProps, "location"));
|
$vevent->add('LOCATION', $this->getProp($messageProps, "location"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add description
|
// Add description
|
||||||
$body = $this->getProp($messageProps, "isHTML") ? $this->getProp($messageProps, "html_body") : $this->getProp($messageProps, "body");
|
$body = $this->getProp($messageProps, "isHTML") ? $this->getProp($messageProps, "html_body") : $this->getProp($messageProps, "body");
|
||||||
if(!empty($body)) {
|
if (!empty($body)) {
|
||||||
$vevent->add('DESCRIPTION',$body);
|
$vevent->add('DESCRIPTION', $body);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -337,10 +337,11 @@ class CalendarModule extends Module
|
|||||||
if (count($records) > 0) {
|
if (count($records) > 0) {
|
||||||
$response['status'] = true;
|
$response['status'] = true;
|
||||||
$response['download_token'] = $token;
|
$response['download_token'] = $token;
|
||||||
$response['filename'] = count($records) . "events.ics";
|
// TRANSLATORS: Filename suffix for exported files
|
||||||
|
$response['filename'] = count($records) . dgettext("plugin_calendarimporter", "_events.ics");
|
||||||
} else {
|
} else {
|
||||||
$response['status'] = false;
|
$response['status'] = false;
|
||||||
$response['message'] = "No events found. Export skipped!";
|
$response['message'] = dgettext("plugin_calendarimporter", "No events found. Export skipped!");
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->addActionData($actionType, $response);
|
$this->addActionData($actionType, $response);
|
||||||
@ -386,7 +387,7 @@ class CalendarModule extends Module
|
|||||||
$parser = null;
|
$parser = null;
|
||||||
try {
|
try {
|
||||||
$parser = VObject\Reader::read(
|
$parser = VObject\Reader::read(
|
||||||
fopen($icsfile,'r')
|
fopen($icsfile, 'r')
|
||||||
);
|
);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$error = true;
|
$error = true;
|
||||||
@ -420,7 +421,7 @@ class CalendarModule extends Module
|
|||||||
// parse the arraykeys
|
// parse the arraykeys
|
||||||
foreach ($event as $key => $value) {
|
foreach ($event as $key => $value) {
|
||||||
if ($key !== "internal_fields") {
|
if ($key !== "internal_fields") {
|
||||||
if(isset($properties[$key])) {
|
if (isset($properties[$key])) {
|
||||||
$propValuesMAPI[$properties[$key]] = $value;
|
$propValuesMAPI[$properties[$key]] = $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -452,7 +453,7 @@ class CalendarModule extends Module
|
|||||||
} else {
|
} else {
|
||||||
$response['status'] = false;
|
$response['status'] = false;
|
||||||
$response['count'] = 0;
|
$response['count'] = 0;
|
||||||
$response['message'] = $error ? $error_msg : "ICS file empty!";
|
$response['message'] = $error ? $error_msg : dgettext("plugin_calendarimporter", "ICS file empty!");
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->addActionData($actionType, $response);
|
$this->addActionData($actionType, $response);
|
||||||
@ -590,13 +591,13 @@ class CalendarModule extends Module
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$response['status'] = false;
|
$response['status'] = false;
|
||||||
$response['message'] = "Store could not be opened!";
|
$response['message'] = dgettext("plugin_calendarimporter", "Store could not be opened!");
|
||||||
$this->addActionData($actionType, $response);
|
$this->addActionData($actionType, $response);
|
||||||
$GLOBALS["bus"]->addData($this->getResponseData());
|
$GLOBALS["bus"]->addData($this->getResponseData());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$response['status'] = false;
|
$response['status'] = false;
|
||||||
$response['message'] = "Wrong call, store and entryid have to be set!";
|
$response['message'] = dgettext("plugin_calendarimporter", "Wrong call, store and entryid have to be set!");
|
||||||
$this->addActionData($actionType, $response);
|
$this->addActionData($actionType, $response);
|
||||||
$GLOBALS["bus"]->addData($this->getResponseData());
|
$GLOBALS["bus"]->addData($this->getResponseData());
|
||||||
}
|
}
|
||||||
@ -617,7 +618,7 @@ class CalendarModule extends Module
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$parser = VObject\Reader::read(
|
$parser = VObject\Reader::read(
|
||||||
fopen($actionData["ics_filepath"],'r')
|
fopen($actionData["ics_filepath"], 'r')
|
||||||
);
|
);
|
||||||
//error_log(print_r($parser->VTIMEZONE, true));
|
//error_log(print_r($parser->VTIMEZONE, true));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@ -630,7 +631,7 @@ class CalendarModule extends Module
|
|||||||
} else {
|
} else {
|
||||||
if (count($parser->VEVENT) == 0) {
|
if (count($parser->VEVENT) == 0) {
|
||||||
$response['status'] = false;
|
$response['status'] = false;
|
||||||
$response['message'] = "No event in ics file";
|
$response['message'] = dgettext("plugin_calendarimporter", "No event in ics file");
|
||||||
} else {
|
} else {
|
||||||
$response['status'] = true;
|
$response['status'] = true;
|
||||||
$response['parsed_file'] = $actionData["ics_filepath"];
|
$response['parsed_file'] = $actionData["ics_filepath"];
|
||||||
@ -643,7 +644,7 @@ class CalendarModule extends Module
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$response['status'] = false;
|
$response['status'] = false;
|
||||||
$response['message'] = "File could not be read by server";
|
$response['message'] = dgettext("plugin_calendarimporter", "File could not be read by server");
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->addActionData($actionType, $response);
|
$this->addActionData($actionType, $response);
|
||||||
@ -685,7 +686,7 @@ class CalendarModule extends Module
|
|||||||
//$properties["trigger"] = (string)$vEvent->COMMENT;
|
//$properties["trigger"] = (string)$vEvent->COMMENT;
|
||||||
$properties["priority"] = (string)$vEvent->PRIORITY;
|
$properties["priority"] = (string)$vEvent->PRIORITY;
|
||||||
$properties["private"] = ((string)$vEvent->CLASS) == "PRIVATE" ? true : false;
|
$properties["private"] = ((string)$vEvent->CLASS) == "PRIVATE" ? true : false;
|
||||||
if(!empty((string)$vEvent->{'X-ZARAFA-LABEL'})) {
|
if (!empty((string)$vEvent->{'X-ZARAFA-LABEL'})) {
|
||||||
$properties["label"] = array_search((string)$vEvent->{'X-ZARAFA-LABEL'}, $this->labels);
|
$properties["label"] = array_search((string)$vEvent->{'X-ZARAFA-LABEL'}, $this->labels);
|
||||||
}
|
}
|
||||||
$properties["last_modification_time"] = (string)$vEvent->{'LAST-MODIFIED'}->getDateTime()->getTimestamp();
|
$properties["last_modification_time"] = (string)$vEvent->{'LAST-MODIFIED'}->getDateTime()->getTimestamp();
|
||||||
@ -694,8 +695,8 @@ class CalendarModule extends Module
|
|||||||
|
|
||||||
// Attendees
|
// Attendees
|
||||||
$properties["attendees"] = array();
|
$properties["attendees"] = array();
|
||||||
if(isset($vEvent->ATTENDEE) && count($vEvent->ATTENDEE) > 0) {
|
if (isset($vEvent->ATTENDEE) && count($vEvent->ATTENDEE) > 0) {
|
||||||
foreach($vEvent->ATTENDEE as $attendee) {
|
foreach ($vEvent->ATTENDEE as $attendee) {
|
||||||
$properties["attendees"][] = array(
|
$properties["attendees"][] = array(
|
||||||
"name" => (string)$attendee["CN"],
|
"name" => (string)$attendee["CN"],
|
||||||
"mail" => (string)$attendee,
|
"mail" => (string)$attendee,
|
||||||
@ -707,8 +708,8 @@ class CalendarModule extends Module
|
|||||||
|
|
||||||
// Alarms
|
// Alarms
|
||||||
$properties["alarms"] = array();
|
$properties["alarms"] = array();
|
||||||
if(isset($vEvent->VALARM) && count($vEvent->VALARM) > 0) {
|
if (isset($vEvent->VALARM) && count($vEvent->VALARM) > 0) {
|
||||||
foreach($vEvent->VALARM as $alarm) {
|
foreach ($vEvent->VALARM as $alarm) {
|
||||||
$properties["alarms"][] = array(
|
$properties["alarms"][] = array(
|
||||||
"description" => (string)$alarm->DESCRIPTION,
|
"description" => (string)$alarm->DESCRIPTION,
|
||||||
"trigger" => (string)$alarm->TRIGGER,
|
"trigger" => (string)$alarm->TRIGGER,
|
||||||
@ -723,7 +724,3 @@ class CalendarModule extends Module
|
|||||||
return $events;
|
return $events;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
;
|
|
||||||
|
|
||||||
?>
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* plugin.calendarimporter.php, zarafa calender to ics im/exporter
|
* plugin.calendarimporter.php, Kopano calender to ics im/exporter
|
||||||
*
|
*
|
||||||
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
* Copyright (C) 2012-2014 Christoph Haas
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@ -33,7 +33,9 @@ class Plugincalendarimporter extends Plugin
|
|||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
function __construct() {}
|
function __construct()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function initializes the Plugin and registers all hooks
|
* Function initializes the Plugin and registers all hooks
|
||||||
@ -90,5 +92,3 @@ class Plugincalendarimporter extends Plugin
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* upload.php, zarafa calender to ics exporter
|
* upload.php, Kopano calender to ics im/exporter
|
||||||
*
|
*
|
||||||
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
* Author: Christoph Haas <christoph.h@sprinternet.at>
|
||||||
* Copyright (C) 2012-2014 Christoph Haas
|
* Copyright (C) 2012-2016 Christoph Haas
|
||||||
*
|
*
|
||||||
* This library is free software; you can redistribute it and/or
|
* This library is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
@ -26,11 +26,12 @@ require_once("../config.php");
|
|||||||
/* disable error printing - otherwise json communication might break... */
|
/* disable error printing - otherwise json communication might break... */
|
||||||
ini_set('display_errors', '0');
|
ini_set('display_errors', '0');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* respond/echo JSON
|
* respond/echo JSON
|
||||||
* @param $arr
|
* @param $arr
|
||||||
*/
|
*/
|
||||||
function respondJSON($arr) {
|
function respondJSON($arr)
|
||||||
|
{
|
||||||
echo json_encode($arr);
|
echo json_encode($arr);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,11 +40,12 @@ function respondJSON($arr) {
|
|||||||
* @param $length the lenght of the generated string
|
* @param $length the lenght of the generated string
|
||||||
* @return string a random string
|
* @return string a random string
|
||||||
*/
|
*/
|
||||||
function randomstring($length = 6) {
|
function randomstring($length = 6)
|
||||||
|
{
|
||||||
// $chars - all allowed charakters
|
// $chars - all allowed charakters
|
||||||
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
|
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
|
||||||
|
|
||||||
srand((double)microtime()*1000000);
|
srand((double)microtime() * 1000000);
|
||||||
$i = 0;
|
$i = 0;
|
||||||
$pass = "";
|
$pass = "";
|
||||||
while ($i < $length) {
|
while ($i < $length) {
|
||||||
@ -58,15 +60,14 @@ function randomstring($length = 6) {
|
|||||||
$destpath = PLUGIN_CALENDARIMPORTER_TMP_UPLOAD;
|
$destpath = PLUGIN_CALENDARIMPORTER_TMP_UPLOAD;
|
||||||
$destpath .= $_FILES['icsdata']['name'] . randomstring();
|
$destpath .= $_FILES['icsdata']['name'] . randomstring();
|
||||||
|
|
||||||
if(is_readable ($_FILES['icsdata']['tmp_name'])) {
|
if (is_readable($_FILES['icsdata']['tmp_name'])) {
|
||||||
$result = move_uploaded_file($_FILES['icsdata']['tmp_name'],$destpath);
|
$result = move_uploaded_file($_FILES['icsdata']['tmp_name'], $destpath);
|
||||||
|
|
||||||
if($result) {
|
if ($result) {
|
||||||
respondJSON(array ('success'=>true, 'ics_file'=>$destpath));
|
respondJSON(array('success' => true, 'ics_file' => $destpath));
|
||||||
} else {
|
} else {
|
||||||
respondJSON(array ('success'=>false,'error'=>"File could not be moved to TMP path! Check plugin config and folder permissions!"));
|
respondJSON(array('success' => false, 'error' => dgettext("plugin_calendarimporter", "File could not be moved to TMP path! Check plugin config and folder permissions!")));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
respondJSON(array ('success'=>false,'error'=>"File could not be read by server, upload error!"));
|
respondJSON(array('success' => false, 'error' => dgettext("plugin_calendarimporter", "File could not be read by server, upload error!")));
|
||||||
}
|
}
|
||||||
?>
|
|
Loading…
Reference in New Issue
Block a user