JS Files translated to english

This commit is contained in:
Christoph Haas 2016-11-29 15:51:38 +01:00
parent 244883d942
commit 52c586fbd9
11 changed files with 1433 additions and 1836 deletions

View File

@ -2,12 +2,16 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="aae153d8-808f-4371-b0e9-9ee7ff904cab" name="Default" comment=""> <list default="true" id="aae153d8-808f-4371-b0e9-9ee7ff904cab" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/contactimporter.iml" afterPath="$PROJECT_DIR$/.idea/contactimporter.iml" /> <change type="DELETED" beforePath="$PROJECT_DIR$/js/dialogs/fields.txt" afterPath="" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/config.php" afterPath="$PROJECT_DIR$/config.php" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/languages/en_US.UTF-8/LC_MESSAGES/plugin_calendarimporter.mo" afterPath="$PROJECT_DIR$/languages/en_US.UTF-8/LC_MESSAGES/plugin_calendarimporter.mo" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/manifest.xml" afterPath="$PROJECT_DIR$/manifest.xml" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/php/download.php" afterPath="$PROJECT_DIR$/php/download.php" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/ABOUT.js" afterPath="$PROJECT_DIR$/js/ABOUT.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/php/module.contact.php" afterPath="$PROJECT_DIR$/php/module.contact.php" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/data/ResponseHandler.js" afterPath="$PROJECT_DIR$/js/data/ResponseHandler.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/php/plugin.contactimporter.php" afterPath="$PROJECT_DIR$/php/plugin.contactimporter.php" /> <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.contactimporter.js" afterPath="$PROJECT_DIR$/js/plugin.contactimporter.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/js/ui/ContextMenu.js" afterPath="$PROJECT_DIR$/js/ui/ContextMenu.js" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/languages/en_US.UTF-8/LC_MESSAGES/plugin_calendarimporter.po" afterPath="$PROJECT_DIR$/languages/en_US.UTF-8/LC_MESSAGES/plugin_calendarimporter.po" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/php/upload.php" afterPath="$PROJECT_DIR$/php/upload.php" /> <change type="MODIFICATION" beforePath="$PROJECT_DIR$/php/upload.php" afterPath="$PROJECT_DIR$/php/upload.php" />
</list> </list>
<ignored path="contactimporter.iws" /> <ignored path="contactimporter.iws" />
@ -28,7 +32,97 @@
<favorites_list name="contactimporter" /> <favorites_list name="contactimporter" />
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf /> <leaf>
<file leaf-file-name="ImportPanel.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/js/dialogs/ImportPanel.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="15">
<caret line="1" column="17" selection-start-line="1" selection-start-column="17" selection-end-line="1" selection-end-column="59" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ResponseHandler.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/js/data/ResponseHandler.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1200">
<caret line="80" column="13" selection-start-line="80" selection-start-column="8" selection-end-line="80" selection-end-column="13" />
<folding>
<element signature="n#!!doc" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<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="-225">
<caret line="3" column="15" selection-start-line="3" selection-start-column="15" selection-end-line="3" selection-end-column="57" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="module.contact.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/php/module.contact.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-16319">
<caret line="25" column="0" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
<folding>
<element signature="e#6#919#0#PHP" expanded="true" />
<element signature="e#959#992#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="plugin.contactimporter.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/php/plugin.contactimporter.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="675">
<caret line="84" column="83" selection-start-line="84" selection-start-column="83" selection-end-line="84" selection-end-column="83" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="upload.php" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/php/upload.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="780">
<caret line="72" column="1" selection-start-line="72" selection-start-column="1" selection-end-line="72" selection-end-column="1" />
<folding>
<element signature="e#6#911#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="plugin_calendarimporter.po" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/languages/en_US.UTF-8/LC_MESSAGES/plugin_calendarimporter.po">
<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="ImportContentPanel.js" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/js/dialogs/ImportContentPanel.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="474">
<caret line="44" column="20" selection-start-line="44" selection-start-column="20" selection-end-line="44" selection-end-column="55" />
<folding>
<element signature="n#!!doc" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@ -38,9 +132,15 @@
<list> <list>
<option value="$PROJECT_DIR$/php/download.php" /> <option value="$PROJECT_DIR$/php/download.php" />
<option value="$PROJECT_DIR$/php/module.contact.php" /> <option value="$PROJECT_DIR$/php/module.contact.php" />
<option value="$PROJECT_DIR$/php/upload.php" />
<option value="$PROJECT_DIR$/php/plugin.contactimporter.php" /> <option value="$PROJECT_DIR$/php/plugin.contactimporter.php" />
<option value="$PROJECT_DIR$/config.php" /> <option value="$PROJECT_DIR$/config.php" />
<option value="$PROJECT_DIR$/js/plugin.contactimporter.js" />
<option value="$PROJECT_DIR$/js/ABOUT.js" />
<option value="$PROJECT_DIR$/js/ui/ContextMenu.js" />
<option value="$PROJECT_DIR$/js/dialogs/ImportContentPanel.js" />
<option value="$PROJECT_DIR$/js/dialogs/ImportPanel.js" />
<option value="$PROJECT_DIR$/js/data/ResponseHandler.js" />
<option value="$PROJECT_DIR$/php/upload.php" />
</list> </list>
</option> </option>
</component> </component>
@ -115,7 +215,7 @@
<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_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="resources" /> <option name="myItemId" value="php" />
<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>
@ -129,11 +229,115 @@
<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_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="resources" /> <option name="myItemId" value="languages" />
<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_ELEMENT> <PATH_ELEMENT>
<option name="myItemId" value="css" /> <option name="myItemId" value="en_US.UTF-8" />
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="contactimporter" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="contactimporter" />
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="languages" />
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="en_US.UTF-8" />
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="LC_MESSAGES" />
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="contactimporter" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="contactimporter" />
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="languages" />
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="contactimporter" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="contactimporter" />
<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>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="contactimporter" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="contactimporter" />
<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="ui" />
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="contactimporter" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="contactimporter" />
<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_ELEMENT>
<option name="myItemId" value="contactimporter" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="contactimporter" />
<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="data" />
<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>
@ -206,18 +410,18 @@
<updated>1480428196914</updated> <updated>1480428196914</updated>
<workItem from="1480428199144" duration="44000" /> <workItem from="1480428199144" duration="44000" />
<workItem from="1480428259775" duration="69000" /> <workItem from="1480428259775" duration="69000" />
<workItem from="1480428330068" duration="1107000" /> <workItem from="1480428330068" duration="2756000" />
</task> </task>
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="1220000" /> <option name="totallyTimeSpent" value="2869000" />
</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" />
<editor active="false" /> <editor active="true" />
<layout> <layout>
<window_info id="Project" active="true" 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="7" 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="3" 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" />
@ -262,41 +466,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/php/module.contact.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="375">
<caret line="25" column="0" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
<folding>
<element signature="e#6#919#0#PHP" expanded="true" />
<element signature="e#959#992#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/php/upload.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-196">
<caret line="2" column="55" selection-start-line="2" selection-start-column="55" selection-end-line="2" selection-end-column="55" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/php/plugin.contactimporter.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="675">
<caret line="84" column="83" selection-start-line="84" selection-start-column="83" selection-end-line="84" selection-end-column="83" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/php/download.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="615">
<caret line="41" column="0" selection-start-line="41" selection-start-column="0" selection-end-line="41" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/resources/css/contactimporter-main.css"> <entry file="file://$PROJECT_DIR$/resources/css/contactimporter-main.css">
<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">
@ -313,6 +482,114 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/js/ABOUT.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>
<marker date="1480430157843" expanded="true" signature="1216:1220" ph="&lt;" />
<marker date="1480430157843" expanded="true" signature="1246:1250" ph="&gt;" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/plugin.contactimporter.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="585">
<caret line="138" column="53" selection-start-line="138" selection-start-column="18" selection-end-line="138" selection-end-column="53" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/js/dialogs/fields.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3900">
<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/ui/ContextMenu.js">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="660">
<caret line="65" column="53" selection-start-line="65" selection-start-column="18" selection-end-line="65" selection-end-column="53" />
<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="474">
<caret line="44" column="20" selection-start-line="44" selection-start-column="20" selection-end-line="44" selection-end-column="55" />
<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="15">
<caret line="1" column="17" selection-start-line="1" selection-start-column="17" selection-end-line="1" selection-end-column="59" />
<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="1200">
<caret line="80" column="13" selection-start-line="80" selection-start-column="8" selection-end-line="80" selection-end-column="13" />
<folding>
<element signature="n#!!doc" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/php/download.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-225">
<caret line="3" column="15" selection-start-line="3" selection-start-column="15" selection-end-line="3" selection-end-column="57" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/php/module.contact.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-16319">
<caret line="25" column="0" selection-start-line="25" selection-start-column="0" selection-end-line="25" selection-end-column="0" />
<folding>
<element signature="e#6#919#0#PHP" expanded="true" />
<element signature="e#959#992#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/php/plugin.contactimporter.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="675">
<caret line="84" column="83" selection-start-line="84" selection-start-column="83" selection-end-line="84" selection-end-column="83" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/php/upload.php">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="780">
<caret line="72" column="1" selection-start-line="72" selection-start-column="1" selection-end-line="72" selection-end-column="1" />
<folding>
<element signature="e#6#911#0#PHP" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/languages/en_US.UTF-8/LC_MESSAGES/plugin_calendarimporter.po">
<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>
</component> </component>
<component name="masterDetails"> <component name="masterDetails">
<states> <states>

View File

@ -1,5 +1,5 @@
/** /**
* ABOUT.js zarafa contact to vcf im/exporter * ABOUT.js, Kopano Webapp contact to vcf 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
@ -29,30 +29,30 @@ Ext.namespace('Zarafa.plugins.contactimporter');
* The copyright string holding the copyright notice for the Zarafa contactimporter Plugin. * The copyright string holding the copyright notice for the Zarafa contactimporter Plugin.
*/ */
Zarafa.plugins.contactimporter.ABOUT = "" Zarafa.plugins.contactimporter.ABOUT = ""
+ "<p>Copyright (C) 2012-2016 Christoph Haas &lt;christoph.h@sprinternet.at&gt;</p>" + "<p>Copyright (C) 2012-2016 Christoph Haas &lt;christoph.h@sprinternet.at&gt;</p>"
+ "<p>This program is free software; you can redistribute it and/or " + "<p>This program 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 "
+ "License as published by the Free Software Foundation; either " + "License as published by the Free Software Foundation; either "
+ "version 2.1 of the License, or (at your option) any later version.</p>" + "version 2.1 of the License, or (at your option) any later version.</p>"
+ "<p>This program is distributed in the hope that it will be useful, " + "<p>This program is distributed in the hope that it will be useful, "
+ "but WITHOUT ANY WARRANTY; without even the implied warranty of " + "but WITHOUT ANY WARRANTY; without even the implied warranty of "
+ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU " + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU "
+ "Lesser General Public License for more details.</p>" + "Lesser General Public License for more details.</p>"
+ "<p>You should have received a copy of the GNU Lesser General Public " + "<p>You should have received a copy of the GNU Lesser General Public "
+ "License along with this program; if not, write to the Free Software " + "License along with this program; if not, write to the Free Software "
+ "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</p>" + "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</p>"
+ "<hr />" + "<hr />"
+ "<p>The contactimporter plugin contains the following third-party components:</p>" + "<p>The contactimporter plugin contains the following third-party components:</p>"
+ "<h1>vCard-parser</h1>" + "<h1>vCard-parser</h1>"
+ "<p>Copyright (C) 2016 Jeroen Desloovere</p>" + "<p>Copyright (C) 2016 Jeroen Desloovere</p>"
+ "<p>Licensed under the MIT License.</p>" + "<p>Licensed under the MIT License.</p>"
+ "<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p>" + "<p>Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.</p>"

View File

@ -1,5 +1,5 @@
/** /**
* ResponseHandler.js zarafa contact im/exporter * ResponseHandler.js, Kopano Webapp contact to vcf 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
@ -34,52 +34,52 @@ Ext.namespace('Zarafa.plugins.contactimporter.data');
* Calendar specific response handler. * Calendar specific response handler.
*/ */
Zarafa.plugins.contactimporter.data.ResponseHandler = Ext.extend(Zarafa.core.data.AbstractResponseHandler, { Zarafa.plugins.contactimporter.data.ResponseHandler = Ext.extend(Zarafa.core.data.AbstractResponseHandler, {
/** /**
* @cfg {Function} successCallback The function which * @cfg {Function} successCallback The function which
* will be called after success request. * will be called after success request.
*/ */
successCallback: null, successCallback: null,
/** /**
* Call the successCallback callback function. * Call the successCallback callback function.
* @param {Object} response Object contained the response data. * @param {Object} response Object contained the response data.
*/ */
doLoad: function (response) { doLoad: function (response) {
this.successCallback(response); this.successCallback(response);
}, },
/** /**
* Call the successCallback callback function. * Call the successCallback callback function.
* @param {Object} response Object contained the response data. * @param {Object} response Object contained the response data.
*/ */
doImport: function (response) { doImport: function (response) {
this.successCallback(response); this.successCallback(response);
}, },
/** /**
* Call the successCallback callback function. * Call the successCallback callback function.
* @param {Object} response Object contained the response data. * @param {Object} response Object contained the response data.
*/ */
doExport: function (response) { doExport: function (response) {
this.successCallback(response); this.successCallback(response);
}, },
/** /**
* Call the successCallback callback function. * Call the successCallback callback function.
* @param {Object} response Object contained the response data. * @param {Object} response Object contained the response data.
*/ */
doImportattachment: function (response) { doImportattachment: function (response) {
this.successCallback(response); this.successCallback(response);
}, },
/** /**
* In case exception happened on server, server will return * In case exception happened on server, server will return
* exception response with the code of exception. * exception response with the code of exception.
* @param {Object} response Object contained the response data. * @param {Object} response Object contained the response data.
*/ */
doError: function (response) { doError: function (response) {
alert("error response code: " + response.error.info.code); alert("error response code: " + response.error.info.code);
} }
}); });
Ext.reg('contactimporter.contactresponsehandler', Zarafa.plugins.contactimporter.data.ResponseHandler); Ext.reg('contactimporter.contactresponsehandler', Zarafa.plugins.contactimporter.data.ResponseHandler);

View File

@ -1,5 +1,5 @@
/** /**
* ImportContentPanel.js zarafa contact to vcf im/exporter * ImportContentPanel.js, Kopano Webapp contact to vcf 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
@ -36,31 +36,31 @@ Ext.namespace("Zarafa.plugins.contactimporter.dialogs");
*/ */
Zarafa.plugins.contactimporter.dialogs.ImportContentPanel = Ext.extend(Zarafa.core.ui.ContentPanel, { Zarafa.plugins.contactimporter.dialogs.ImportContentPanel = Ext.extend(Zarafa.core.ui.ContentPanel, {
/** /**
* @constructor * @constructor
* @param config Configuration structure * @param config Configuration structure
*/ */
constructor: function (config) { constructor: function (config) {
config = config || {}; config = config || {};
var title = _('Import Contacts'); var title = dgettext('plugin_contactimporter', 'Import Contacts');
Ext.applyIf(config, { Ext.applyIf(config, {
layout : 'fit', layout: 'fit',
title : title, title: title,
closeOnSave: true, closeOnSave: true,
width : 620, width: 620,
height : 465, height: 465,
//Add panel //Add panel
items : [ items: [
{ {
xtype : 'contactimporter.importcontactpanel', xtype: 'contactimporter.importcontactpanel',
filename: config.filename, filename: config.filename,
folder : config.folder folder: config.folder
} }
] ]
}); });
Zarafa.plugins.contactimporter.dialogs.ImportContentPanel.superclass.constructor.call(this, config); Zarafa.plugins.contactimporter.dialogs.ImportContentPanel.superclass.constructor.call(this, config);
} }
}); });

File diff suppressed because it is too large Load Diff

View File

@ -1,826 +0,0 @@
access
2
address_book_long
0
address_book_mv
null
address_type
"SMTP"
anniversary_eventid
""
assistant
""
assistant_telephone_number
""
birthday
null
birthday_eventid
""
body
""
business2_telephone_number
""
business_address
""
business_address_city
""
business_address_country
""
business_address_postal_code
""
business_address_state
""
business_address_street
""
business_fax_number
""
business_home_page
""
business_telephone_number
""
callback_telephone_number
""
car_telephone_number
""
categories
""
cellular_telephone_number
""
company_name
"testcompany"
company_telephone_number
""
contacts
""
contacts_string
""
creation_time
null
department_name
"departm"
display_bcc
""
display_cc
""
display_name
"Dr. testf testm testl Jr."
display_name_prefix
"Dr."
display_to
""
dstendday
""
dstendhour
""
dstendmonth
""
dstendweek
""
dststartday
""
dststarthour
""
dststartmonth
""
dststartweek
""
email_address
""
email_address_1
""
email_address_2
""
email_address_3
""
email_address_display_name_1
""
email_address_display_name_2
""
email_address_display_name_3
""
email_address_display_name_email_1
""
email_address_display_name_email_2
""
email_address_display_name_email_3
""
email_address_entryid_1
""
email_address_entryid_2
""
email_address_entryid_3
""
email_address_type_1
""
email_address_type_2
""
email_address_type_3
""
email_index
-1
fax_1_address_type
""
fax_1_email_address
""
fax_1_original_display_name
""
fax_1_original_entryid
""
fax_2_address_type
""
fax_2_email_address
""
fax_2_original_display_name
""
fax_2_original_entryid
""
fax_3_address_type
""
fax_3_email_address
""
fax_3_original_display_name
""
fax_3_original_entryid
""
fileas
"testl, testf testm"
fileas_selection
-1
generation
"Jr."
given_name
"testf"
hasattach
false
home2_telephone_number
""
home_address
""
home_address_city
""
home_address_country
""
home_address_postal_code
""
home_address_state
""
home_address_street
""
home_fax_number
""
home_telephone_number
""
html_body
"<font face="tahoma"><br></font>"
icon_index
512
im
""
isHTML
false
isdn_number
""
last_modification_time
null
mailing_address
""
manager_name
""
message_class
"IPM.Contact"
message_flags
1
message_size
""
middle_name
"testm"
nickname
"nickn"
normalized_subject
""
object_type
5
office_location
"olocation"
other_address
""
other_address_city
""
other_address_country
""
other_address_postal_code
""
other_address_state
""
other_address_street
""
other_telephone_number
""
pager_telephone_number
""
primary_fax_number
""
primary_telephone_number
""
private
false
profession
"profess"
radio_telephone_number
""
read_receipt_requested
false
sender_address_type
""
sender_email_address
""
sender_entryid
""
sender_name
""
sender_search_key
""
sensitivity
0
sent_representing_address_type
""
sent_representing_email_address
""
sent_representing_entryid
""
sent_representing_name
""
sent_representing_search_key
""
spouse_name
""
subject
"testf testm testl"
surname
"testl"
telex_telephone_number
""
timezone
""
timezonedst
""
title
"jobt"
ttytdd_telephone_number
""
unk
""
webpage
""
wedding_anniversary
null

View File

@ -1,5 +1,5 @@
/** /**
* plugin.contactimporter.js zarafa contactimporter * plugin.contactimporter.js, Kopano Webapp contact to vcf 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
@ -24,274 +24,275 @@ Ext.namespace("Zarafa.plugins.contactimporter"); // Assign the right nam
Zarafa.plugins.contactimporter.ImportPlugin = Ext.extend(Zarafa.core.Plugin, { // create new import plugin Zarafa.plugins.contactimporter.ImportPlugin = Ext.extend(Zarafa.core.Plugin, { // create new import plugin
/** /**
* @constructor * @constructor
* @param {Object} config Configuration object * @param {Object} config Configuration object
* *
*/ */
constructor: function (config) { constructor: function (config) {
config = config || {}; config = config || {};
Zarafa.plugins.contactimporter.ImportPlugin.superclass.constructor.call(this, config); Zarafa.plugins.contactimporter.ImportPlugin.superclass.constructor.call(this, config);
}, },
/** /**
* initialises insertion point for plugin * initialises insertion point for plugin
* @protected * @protected
*/ */
initPlugin: function () { initPlugin: function () {
Zarafa.plugins.contactimporter.ImportPlugin.superclass.initPlugin.apply(this, arguments); Zarafa.plugins.contactimporter.ImportPlugin.superclass.initPlugin.apply(this, arguments);
/* our panel */ /* our panel */
Zarafa.core.data.SharedComponentType.addProperty('plugins.contactimporter.dialogs.importcontacts'); Zarafa.core.data.SharedComponentType.addProperty('plugins.contactimporter.dialogs.importcontacts');
/* directly import received vcfs */ /* directly import received vcfs */
this.registerInsertionPoint('common.contextmenu.attachment.actions', this.createAttachmentImportButton, this); this.registerInsertionPoint('common.contextmenu.attachment.actions', this.createAttachmentImportButton, this);
/* export a contact via rightclick */ /* export a contact via rightclick */
this.registerInsertionPoint('context.contact.contextmenu.actions', this.createItemExportInsertionPoint, this); this.registerInsertionPoint('context.contact.contextmenu.actions', this.createItemExportInsertionPoint, this);
}, },
/** /**
* This method hooks to the contact context menu and allows users to export users to vcf. * This method hooks to the contact context menu and allows users to export users to vcf.
* *
* @param include * @param include
* @param btn * @param btn
* @returns {Object} * @returns {Object}
*/ */
createItemExportInsertionPoint: function (include, btn) { createItemExportInsertionPoint: function (include, btn) {
return { return {
text : dgettext('plugin_files', 'Export vCard'), text: dgettext('plugin_contactimporter', 'Export vCard'),
handler: this.exportToVCF.createDelegate(this, [btn]), handler: this.exportToVCF.createDelegate(this, [btn]),
scope : this, scope: this,
iconCls: 'icon_contactimporter_export' iconCls: 'icon_contactimporter_export'
}; };
}, },
/** /**
* Generates a request to download the selected records as vCard. * Generates a request to download the selected records as vCard.
* @param {Ext.Button} btn * @param {Ext.Button} btn
*/ */
exportToVCF: function (btn) { exportToVCF: function (btn) {
if (btn.records.length == 0) { if (btn.records.length == 0) {
return; // skip if no records where given! return; // skip if no records where given!
} }
var recordIds = []; var recordIds = [];
for (var i = 0; i < btn.records.length; i++) { for (var i = 0; i < btn.records.length; i++) {
recordIds.push(btn.records[i].get("entryid")); recordIds.push(btn.records[i].get("entryid"));
} }
var responseHandler = new Zarafa.plugins.contactimporter.data.ResponseHandler({ var responseHandler = new Zarafa.plugins.contactimporter.data.ResponseHandler({
successCallback: this.downloadVCF, successCallback: this.downloadVCF,
scope : this scope: this
}); });
// request attachment preperation // request attachment preperation
container.getRequest().singleRequest( container.getRequest().singleRequest(
'contactmodule', 'contactmodule',
'export', 'export',
{ {
storeid: btn.records[0].get("store_entryid"), storeid: btn.records[0].get("store_entryid"),
records: recordIds records: recordIds
}, },
responseHandler responseHandler
); );
}, },
/** /**
* Callback for the export request. * Callback for the export request.
* @param {Object} response * @param {Object} response
*/ */
downloadVCF: function (response) { downloadVCF: 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_contactimporter', '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 {
var downloadFrame = Ext.getBody().createChild({ var downloadFrame = Ext.getBody().createChild({
tag: 'iframe', tag: 'iframe',
cls: 'x-hidden' cls: 'x-hidden'
}); });
var url = document.URL; var url = document.URL;
var link = url.substring(0, url.lastIndexOf('/') + 1); var link = url.substring(0, url.lastIndexOf('/') + 1);
link += "index.php?sessionid=" + container.getUser().getSessionId() + "&load=custom&name=download_vcf"; link += "index.php?sessionid=" + container.getUser().getSessionId() + "&load=custom&name=download_vcf";
link = Ext.urlAppend(link, "token=" + encodeURIComponent(response.download_token)); link = Ext.urlAppend(link, "token=" + encodeURIComponent(response.download_token));
link = Ext.urlAppend(link, "filename=" + encodeURIComponent(response.filename)); link = Ext.urlAppend(link, "filename=" + encodeURIComponent(response.filename));
downloadFrame.dom.contentWindow.location = link; downloadFrame.dom.contentWindow.location = link;
} }
}, },
/** /**
* Insert import button in all attachment suggestions * Insert import button in all attachment suggestions
* @return {Object} Configuration object for a {@link Ext.Button button} * @return {Object} Configuration object for a {@link Ext.Button button}
*/ */
createAttachmentImportButton: function (include, btn) { createAttachmentImportButton: function (include, btn) {
return { return {
text : _('Import to Contacts'), text: dgettext('plugin_contactimporter', 'Import to Contacts'),
handler : this.getAttachmentFileName.createDelegate(this, [btn]), handler: this.getAttachmentFileName.createDelegate(this, [btn]),
scope : this, scope: this,
iconCls : 'icon_contactimporter_button', iconCls: 'icon_contactimporter_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();
if (record.data.filetype == "text/vcard" || record.data.filetype == "text/x-vcard" || extension == "vcf" || extension == "vcard") { if (record.data.filetype == "text/vcard" || record.data.filetype == "text/x-vcard" || extension == "vcf" || extension == "vcard") {
item.setVisible(true); item.setVisible(true);
} else { } else {
item.setVisible(false); item.setVisible(false);
} }
} }
}; };
}, },
/** /**
* Callback for getAttachmentFileName * Callback for getAttachmentFileName
* @param {Object} response * @param {Object} response
*/ */
gotAttachmentFileName: function (response) { gotAttachmentFileName: function (response) {
if (response.status == true) { if (response.status == true) {
this.openImportDialog(response.tmpname); this.openImportDialog(response.tmpname);
} else { } else {
Zarafa.common.dialogs.MessageBox.show({ Zarafa.common.dialogs.MessageBox.show({
title : _('Error'), title: dgettext('plugin_contactimporter', '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
}); });
} }
}, },
/** /**
* Clickhandler for the button * Clickhandler for the button
* @param {Ext.Button} btn * @param {Ext.Button} btn
*/ */
getAttachmentFileName: function (btn) { getAttachmentFileName: function (btn) {
Zarafa.common.dialogs.MessageBox.show({ Zarafa.common.dialogs.MessageBox.show({
title : 'Please wait', title: dgettext('plugin_contactimporter', 'Please wait'),
msg : 'Loading attachment...', msg: dgettext('plugin_contactimporter', 'Loading attachment...'),
progressText: 'Initializing...', progressText: dgettext('plugin_contactimporter', 'Initializing...'),
width : 300, width: 300,
progress : true, progress: true,
closable : false closable: false
}); });
// progress bar... ;) // progress bar... ;)
var f = function (v) { var f = function (v) {
return function () { return function () {
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_contactimporter', '{0}% loaded'), Math.round(v)));
}; }
}; };
};
for (var i = 1; i < 101; i++) { for (var i = 1; i < 101; i++) {
setTimeout(f(i), 20 * i); setTimeout(f(i), 20 * i);
} }
/* store the attachment to a temporary folder and prepare it for uploading */ /* store the attachment to a temporary folder and prepare it for uploading */
var attachmentRecord = btn.records; var attachmentRecord = btn.records;
var attachmentStore = attachmentRecord.store; var attachmentStore = attachmentRecord.store;
var store = attachmentStore.getParentRecord().get('store_entryid'); var store = attachmentStore.getParentRecord().get('store_entryid');
var entryid = attachmentStore.getAttachmentParentRecordEntryId(); var entryid = attachmentStore.getAttachmentParentRecordEntryId();
var attachNum = new Array(1); var attachNum = new Array(1);
if (attachmentRecord.get('attach_num') != -1) { if (attachmentRecord.get('attach_num') != -1) {
attachNum[0] = attachmentRecord.get('attach_num'); attachNum[0] = attachmentRecord.get('attach_num');
} else { } else {
attachNum[0] = attachmentRecord.get('tmpname'); attachNum[0] = attachmentRecord.get('tmpname');
} }
var dialog_attachments = attachmentStore.getId(); var dialog_attachments = attachmentStore.getId();
var filename = attachmentRecord.data.name; var filename = attachmentRecord.data.name;
var responseHandler = new Zarafa.plugins.contactimporter.data.ResponseHandler({ var responseHandler = new Zarafa.plugins.contactimporter.data.ResponseHandler({
successCallback: this.gotAttachmentFileName.createDelegate(this), successCallback: this.gotAttachmentFileName.createDelegate(this),
scope : this scope: this
}); });
// request attachment preperation // request attachment preperation
container.getRequest().singleRequest( container.getRequest().singleRequest(
'contactmodule', 'contactmodule',
'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
); );
}, },
/** /**
* Open the import dialog. * Open the import dialog.
* @param {String} filename * @param {String} filename
*/ */
openImportDialog: function (filename) { openImportDialog: function (filename) {
var componentType = Zarafa.core.data.SharedComponentType['plugins.contactimporter.dialogs.importcontacts']; var componentType = Zarafa.core.data.SharedComponentType['plugins.contactimporter.dialogs.importcontacts'];
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);
}, },
/** /**
* Bid for the type of shared component * Bid for the type of shared component
* and the given record. * and the given record.
* This will bid on calendar.dialogs.importcontacts * This will bid on calendar.dialogs.importcontacts
* @param {Zarafa.core.data.SharedComponentType} type Type of component a context can bid for. * @param {Zarafa.core.data.SharedComponentType} type Type of component a context can bid for.
* @param {Ext.data.Record} record Optionally passed record. * @param {Ext.data.Record} record Optionally passed record.
* @return {Number} The bid for the shared component * @return {Number} The bid for the shared component
*/ */
bidSharedComponent: function (type, record) { bidSharedComponent: function (type, record) {
var bid = -1; var bid = -1;
switch (type) { switch (type) {
case Zarafa.core.data.SharedComponentType['plugins.contactimporter.dialogs.importcontacts']: case Zarafa.core.data.SharedComponentType['plugins.contactimporter.dialogs.importcontacts']:
bid = 1; bid = 1;
break; break;
case Zarafa.core.data.SharedComponentType['common.contextmenu']: case Zarafa.core.data.SharedComponentType['common.contextmenu']:
if (record instanceof Zarafa.core.data.MAPIRecord) { if (record instanceof Zarafa.core.data.MAPIRecord) {
if (record.get('object_type') == Zarafa.core.mapi.ObjectType.MAPI_FOLDER && record.get('container_class') == "IPF.Contact") { if (record.get('object_type') == Zarafa.core.mapi.ObjectType.MAPI_FOLDER && record.get('container_class') == "IPF.Contact") {
bid = 2; bid = 2;
} }
} }
break; break;
} }
return bid; return bid;
}, },
/** /**
* Will return the reference to the shared component. * Will return the reference to the shared component.
* Based on the type of component requested a component is returned. * Based on the type of component requested a component is returned.
* @param {Zarafa.core.data.SharedComponentType} type Type of component a context can bid for. * @param {Zarafa.core.data.SharedComponentType} type Type of component a context can bid for.
* @param {Ext.data.Record} record Optionally passed record. * @param {Ext.data.Record} record Optionally passed record.
* @return {Ext.Component} Component * @return {Ext.Component} Component
*/ */
getSharedComponent: function (type, record) { getSharedComponent: function (type, record) {
var component; var component;
switch (type) { switch (type) {
case Zarafa.core.data.SharedComponentType['plugins.contactimporter.dialogs.importcontacts']: case Zarafa.core.data.SharedComponentType['plugins.contactimporter.dialogs.importcontacts']:
component = Zarafa.plugins.contactimporter.dialogs.ImportContentPanel; component = Zarafa.plugins.contactimporter.dialogs.ImportContentPanel;
break; break;
case Zarafa.core.data.SharedComponentType['common.contextmenu']: case Zarafa.core.data.SharedComponentType['common.contextmenu']:
component = Zarafa.plugins.contactimporter.ui.ContextMenu; component = Zarafa.plugins.contactimporter.ui.ContextMenu;
break; break;
} }
return component; return component;
} }
}); });
@ -299,10 +300,10 @@ Zarafa.plugins.contactimporter.ImportPlugin = Ext.extend(Zarafa.core.Plugin, {
* STARTUP * STARTUP
*############################################################################################################################*/ *############################################################################################################################*/
Zarafa.onReady(function () { Zarafa.onReady(function () {
container.registerPlugin(new Zarafa.core.PluginMetaData({ container.registerPlugin(new Zarafa.core.PluginMetaData({
name : 'contactimporter', name: 'contactimporter',
displayName : _('Contactimporter Plugin'), displayName: dgettext('plugin_contactimporter', 'Contactimporter Plugin'),
about : Zarafa.plugins.contactimporter.ABOUT, about: Zarafa.plugins.contactimporter.ABOUT,
pluginConstructor: Zarafa.plugins.contactimporter.ImportPlugin pluginConstructor: Zarafa.plugins.contactimporter.ImportPlugin
})); }));
}); });

View File

@ -1,3 +1,25 @@
/**
* ContextMenu.js, Kopano Webapp contact to vcf 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.contactimporter.ui'); Ext.namespace('Zarafa.plugins.contactimporter.ui');
/** /**
@ -7,130 +29,130 @@ Ext.namespace('Zarafa.plugins.contactimporter.ui');
*/ */
Zarafa.plugins.contactimporter.ui.ContextMenu = Ext.extend(Zarafa.hierarchy.ui.ContextMenu, { Zarafa.plugins.contactimporter.ui.ContextMenu = Ext.extend(Zarafa.hierarchy.ui.ContextMenu, {
/** /**
* @constructor * @constructor
* @param {Object} config Configuration object * @param {Object} config Configuration object
*/ */
constructor: function (config) { constructor: function (config) {
config = config || {}; config = config || {};
if (config.contextNode) { if (config.contextNode) {
config.contextTree = config.contextNode.getOwnerTree(); config.contextTree = config.contextNode.getOwnerTree();
} }
Zarafa.plugins.contactimporter.ui.ContextMenu.superclass.constructor.call(this, config); Zarafa.plugins.contactimporter.ui.ContextMenu.superclass.constructor.call(this, config);
// add item to menu // add item to menu
var additionalItems = this.createAdditionalContextMenuItems(config); var additionalItems = this.createAdditionalContextMenuItems(config);
for (var i = 0; i < additionalItems.length; i++) { for (var i = 0; i < additionalItems.length; i++) {
config.items[0].push(additionalItems[i]); config.items[0].push(additionalItems[i]);
} }
Zarafa.plugins.contactimporter.ui.ContextMenu.superclass.constructor.call(this, config); // redo ... otherwise menu does not get published Zarafa.plugins.contactimporter.ui.ContextMenu.superclass.constructor.call(this, config); // redo ... otherwise menu does not get published
}, },
/** /**
* Create the Action context menu items. * Create the Action context menu items.
* @param {Object} config Configuration object for the {@link Zarafa.plugins.contactimporter.ui.ContextMenu ContextMenu} * @param {Object} config Configuration object for the {@link Zarafa.plugins.contactimporter.ui.ContextMenu ContextMenu}
* @return {Zarafa.core.ui.menu.ConditionalItem[]} The list of Action context menu items * @return {Zarafa.core.ui.menu.ConditionalItem[]} The list of Action context menu items
* @private * @private
* *
* Note: All handlers are called within the scope of {@link Zarafa.plugins.contactimporter.ui.ContextMenu HierarchyContextMenu} * Note: All handlers are called within the scope of {@link Zarafa.plugins.contactimporter.ui.ContextMenu HierarchyContextMenu}
*/ */
createAdditionalContextMenuItems: function (config) { createAdditionalContextMenuItems: function (config) {
return [{ return [{
xtype: 'menuseparator' xtype: 'menuseparator'
}, { }, {
text : _('Import vCard'), text: dgettext('plugin_contactimporter', 'Import vCard'),
iconCls : 'icon_contactimporter_import', iconCls: 'icon_contactimporter_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())) {
item.setDisabled(true); item.setDisabled(true);
} else { } else {
item.setDisabled(false); item.setDisabled(false);
} }
} }
}, { }, {
text : _('Export vCard'), text: dgettext('plugin_contactimporter', 'Export vCard'),
iconCls : 'icon_contactimporter_export', iconCls: 'icon_contactimporter_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())) {
item.setDisabled(true); item.setDisabled(true);
} else { } else {
item.setDisabled(false); item.setDisabled(false);
} }
} }
}]; }];
}, },
/** /**
* Fires on selecting 'Open' menu option from {@link Zarafa.plugins.contactimporter.ui.ContextMenu ContextMenu} * Fires on selecting 'Open' menu option from {@link Zarafa.plugins.contactimporter.ui.ContextMenu ContextMenu}
* @private * @private
*/ */
onContextItemExport: function () { onContextItemExport: function () {
var responseHandler = new Zarafa.plugins.contactimporter.data.ResponseHandler({ var responseHandler = new Zarafa.plugins.contactimporter.data.ResponseHandler({
successCallback: this.downloadVCF, successCallback: this.downloadVCF,
scope : this scope: this
}); });
// request attachment preperation // request attachment preperation
container.getRequest().singleRequest( container.getRequest().singleRequest(
'contactmodule', 'contactmodule',
'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
); );
}, },
/** /**
* Fires on selecting 'Open' menu option from {@link Zarafa.plugins.contactimporter.ui.ContextMenu ContextMenu} * Fires on selecting 'Open' menu option from {@link Zarafa.plugins.contactimporter.ui.ContextMenu ContextMenu}
* @private * @private
*/ */
onContextItemImport: function () { onContextItemImport: function () {
var componentType = Zarafa.core.data.SharedComponentType['plugins.contactimporter.dialogs.importcontacts']; var componentType = Zarafa.core.data.SharedComponentType['plugins.contactimporter.dialogs.importcontacts'];
var config = { var config = {
modal : true, modal: true,
folder: this.records.get("entryid") folder: this.records.get("entryid")
}; };
Zarafa.core.data.UIFactory.openLayerComponent(componentType, undefined, config); Zarafa.core.data.UIFactory.openLayerComponent(componentType, undefined, config);
}, },
/** /**
* Callback for the export request. * Callback for the export request.
* @param {Object} response * @param {Object} response
*/ */
downloadVCF: function (response) { downloadVCF: 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_contactimporter', '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 {
var downloadFrame = Ext.getBody().createChild({ var downloadFrame = Ext.getBody().createChild({
tag: 'iframe', tag: 'iframe',
cls: 'x-hidden' cls: 'x-hidden'
}); });
var url = document.URL; var url = document.URL;
var link = url.substring(0, url.lastIndexOf('/') + 1); var link = url.substring(0, url.lastIndexOf('/') + 1);
link += "index.php?sessionid=" + container.getUser().getSessionId() + "&load=custom&name=download_vcf"; link += "index.php?sessionid=" + container.getUser().getSessionId() + "&load=custom&name=download_vcf";
link = Ext.urlAppend(link, "token=" + encodeURIComponent(response.download_token)); link = Ext.urlAppend(link, "token=" + encodeURIComponent(response.download_token));
link = Ext.urlAppend(link, "filename=" + encodeURIComponent(response.filename)); link = Ext.urlAppend(link, "filename=" + encodeURIComponent(response.filename));
downloadFrame.dom.contentWindow.location = link; downloadFrame.dom.contentWindow.location = link;
} }
} }
}); });
Ext.reg('contactimporter.hierarchycontextmenu', Zarafa.plugins.contactimporter.ui.ContextMenu); Ext.reg('contactimporter.hierarchycontextmenu', Zarafa.plugins.contactimporter.ui.ContextMenu);

View File

@ -1,8 +1,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Plugin Contactimporter\n" "Project-Id-Version: Plugin Contactimporter\n"
"POT-Creation-Date: 2016-11-29 15:23+0100\n" "POT-Creation-Date: 2016-11-29 15:47+0100\n"
"PO-Revision-Date: 2016-11-29 15:23+0100\n" "PO-Revision-Date: 2016-11-29 15:47+0100\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Christoph Haas <christoph.h@sprinternet.at>\n" "Language-Team: Christoph Haas <christoph.h@sprinternet.at>\n"
"Language: en_US\n" "Language: en_US\n"
@ -10,41 +10,163 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.8.7.1\n" "X-Generator: Poedit 1.8.7.1\n"
"X-Poedit-Basepath: ../../../php\n" "X-Poedit-Basepath: ../../..\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Poedit-SearchPath-0: .\n" "X-Poedit-SourceCharset: UTF-8\n"
"X-Poedit-SearchPath-1: vendor\n" "X-Poedit-SearchPath-0: php\n"
"X-Poedit-SearchPath-1: js\n"
#: module.contact.php:245 #: js/dialogs/ImportContentPanel.js:45
msgid "Import Contacts"
msgstr "Import Contacts"
#: js/dialogs/ImportPanel.js:98
msgid "Loading..."
msgstr "Loading..."
#: js/dialogs/ImportPanel.js:290
msgid "Select contacts to import"
msgstr "Select contacts to import"
#: js/dialogs/ImportPanel.js:301
msgid "Displayname"
msgstr "Displayname"
#: js/dialogs/ImportPanel.js:302
msgid "Firstname"
msgstr "Firstname"
#: js/dialogs/ImportPanel.js:303
msgid "Lastname"
msgstr "Lastname"
#: js/dialogs/ImportPanel.js:304
msgid "Company"
msgstr "Company"
#: js/dialogs/ImportPanel.js:325
msgid "Select folder"
msgstr "Select folder"
#: js/dialogs/ImportPanel.js:348
msgid "Select an .vcf addressbook"
msgstr "Select an .vcf addressbook"
#: js/dialogs/ImportPanel.js:372
msgid "Import"
msgstr "Import"
#: js/dialogs/ImportPanel.js:391
msgid "Import All"
msgstr "Import All"
#: js/dialogs/ImportPanel.js:408
msgid "Cancel"
msgstr "Cancel"
#: js/dialogs/ImportPanel.js:426
msgid "Uploading and parsing contacts..."
msgstr "Uploading and parsing contacts..."
#: js/dialogs/ImportPanel.js:432 js/dialogs/ImportPanel.js:531
#: js/dialogs/ImportPanel.js:539 js/dialogs/ImportPanel.js:586
#: js/plugin.contactimporter.js:164
msgid "Error"
msgstr "Error"
#: js/dialogs/ImportPanel.js:487
msgid "Parser Error"
msgstr "Parser Error"
#: js/dialogs/ImportPanel.js:532
msgid "You have to choose an addressbook!"
msgstr "You have to choose an addressbook!"
#: js/dialogs/ImportPanel.js:540
msgid "You have to choose at least one contact to import!"
msgstr "You have to choose at least one contact to import!"
#. TRANSLATORS: {0} will be replaced by the number of contacts that were imported
#: js/dialogs/ImportPanel.js:583
msgid "Imported"
msgstr "Imported"
#: js/dialogs/ImportPanel.js:583
msgid "Imported {0} contacts. Please reload your addressbook!"
msgstr "Imported {0} contacts. Please reload your addressbook!"
#. TRANSLATORS: {0} will be replaced by the error message
#: js/dialogs/ImportPanel.js:588
msgid "Import failed: {0}"
msgstr "Import failed: {0}"
#: js/plugin.contactimporter.js:64 js/ui/ContextMenu.js:78
msgid "Export vCard"
msgstr "Export vCard"
#: js/plugin.contactimporter.js:110 js/ui/ContextMenu.js:135
msgid "Warning"
msgstr "Warning"
#: js/plugin.contactimporter.js:139
msgid "Import to Contacts"
msgstr "Import to Contacts"
#: js/plugin.contactimporter.js:178
msgid "Please wait"
msgstr "Please wait"
#: js/plugin.contactimporter.js:179
msgid "Loading attachment..."
msgstr "Loading attachment..."
#: js/plugin.contactimporter.js:180
msgid "Initializing..."
msgstr "Initializing..."
#. TRANSLATORS: {0} will be replaced by the percentage value (0-100)
#: js/plugin.contactimporter.js:193
msgid "{0}% loaded"
msgstr "{0}% loaded"
#: js/plugin.contactimporter.js:305
msgid "Contactimporter Plugin"
msgstr "Contactimporter Plugin"
#: js/ui/ContextMenu.js:66
msgid "Import vCard"
msgstr "Import vCard"
#: php/module.contact.php:245
msgid "VCF file is empty!" msgid "VCF file is empty!"
msgstr "VCF file is empty!" msgstr "VCF file is empty!"
#. TRANSLATORS: Filename suffix for exported files #. TRANSLATORS: Filename suffix for exported files
#: module.contact.php:448 #: php/module.contact.php:448
msgid "_contacts.vcf" msgid "_contacts.vcf"
msgstr "_contacts.vcf" msgstr "_contacts.vcf"
#: module.contact.php:451 #: php/module.contact.php:451
msgid "No contacts found. Export skipped!" msgid "No contacts found. Export skipped!"
msgstr "No contacts found. Export skipped!" msgstr "No contacts found. Export skipped!"
#: module.contact.php:728 #: php/module.contact.php:728
msgid "No contacts in vcf file" msgid "No contacts in vcf file"
msgstr "No contacts in vcf file" msgstr "No contacts in vcf file"
#: module.contact.php:739 #: php/module.contact.php:739
msgid "File could not be read by server" msgid "File could not be read by server"
msgstr "File could not be read by server" msgstr "File could not be read by server"
#: module.contact.php:1141 #: php/module.contact.php:1141
msgid "Store could not be opened!" msgid "Store could not be opened!"
msgstr "Store could not be opened!" msgstr "Store could not be opened!"
#: module.contact.php:1147 #: php/module.contact.php:1147
msgid "Wrong call, store and entryid have to be set!" msgid "Wrong call, store and entryid have to be set!"
msgstr "Wrong call, store and entryid have to be set!" msgstr "Wrong call, store and entryid have to be set!"
#: upload.php:69 #: php/upload.php:69
msgid "" msgid ""
"File could not be moved to TMP path! Check plugin config and folder " "File could not be moved to TMP path! Check plugin config and folder "
"permissions!" "permissions!"
@ -52,6 +174,6 @@ msgstr ""
"File could not be moved to TMP path! Check plugin config and folder " "File could not be moved to TMP path! Check plugin config and folder "
"permissions!" "permissions!"
#: upload.php:72 #: php/upload.php:72
msgid "File could not be read by server, upload error!" msgid "File could not be read by server, upload error!"
msgstr "File could not be read by server, upload error!" msgstr "File could not be read by server, upload error!"

View File

@ -70,5 +70,4 @@ if (is_readable($_FILES['vcfdata']['tmp_name'])) {
} }
} else { } else {
respondJSON(array('success' => false, 'error' => dgettext("plugin_contactimporter", "File could not be read by server, upload error!"))); respondJSON(array('success' => false, 'error' => dgettext("plugin_contactimporter", "File could not be read by server, upload error!")));
} }
?>