Import and export of free/busy state
This commit is contained in:
parent
38f3ad7cd6
commit
92660c34b1
@ -2,7 +2,6 @@
|
|||||||
<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="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/php/module.calendar.php" afterPath="$PROJECT_DIR$/php/module.calendar.php" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/php/module.calendar.php" afterPath="$PROJECT_DIR$/php/module.calendar.php" />
|
||||||
</list>
|
</list>
|
||||||
<ignored path="calendarimporter.iws" />
|
<ignored path="calendarimporter.iws" />
|
||||||
@ -27,16 +26,39 @@
|
|||||||
<file leaf-file-name="module.calendar.php" pinned="false" current-in-tab="true">
|
<file leaf-file-name="module.calendar.php" pinned="false" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/php/module.calendar.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="279">
|
<state relative-caret-position="748">
|
||||||
<caret line="691" column="13" selection-start-line="691" selection-start-column="13" selection-end-line="691" selection-end-column="13" />
|
<caret line="700" column="60" selection-start-line="700" selection-start-column="60" selection-end-line="700" selection-end-column="60" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#6#914#0#PHP" expanded="true" />
|
<element signature="e#6#914#0#PHP" expanded="true" />
|
||||||
<element signature="e#1004#1022#0#PHP" expanded="true" />
|
<element signature="e#1004#1022#0#PHP" expanded="true" />
|
||||||
|
<marker date="1480959958013" expanded="false" signature="13026:16843" ph="{...}" />
|
||||||
|
<marker date="1480959958013" expanded="false" signature="17066:23319" ph="{...}" />
|
||||||
|
<marker date="1480959958013" expanded="false" signature="23520:25269" ph="{...}" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
|
<file leaf-file-name="plugin.calendarimporter.php" pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/php/plugin.calendarimporter.php">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="15">
|
||||||
|
<caret line="13" column="25" selection-start-line="13" selection-start-column="22" selection-end-line="13" selection-end-column="25" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<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="-6381">
|
||||||
|
<caret line="113" column="29" selection-start-line="113" selection-start-column="21" selection-end-line="113" selection-end-column="29" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
</leaf>
|
</leaf>
|
||||||
</component>
|
</component>
|
||||||
<component name="FileTemplateManagerImpl">
|
<component name="FileTemplateManagerImpl">
|
||||||
@ -196,6 +218,46 @@
|
|||||||
<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_ELEMENT>
|
||||||
|
<option name="myItemId" value="vendor" />
|
||||||
|
<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="php" />
|
||||||
|
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="vendor" />
|
||||||
|
<option name="myItemType" value="com.jetbrains.php.projectView.PhpTreeStructureProvider$1" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="sabre" />
|
||||||
|
<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" />
|
||||||
@ -228,6 +290,24 @@
|
|||||||
<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>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="calendarimporter" />
|
<option name="myItemId" value="calendarimporter" />
|
||||||
@ -342,12 +422,12 @@
|
|||||||
<workItem from="1480509394154" duration="63000" />
|
<workItem from="1480509394154" duration="63000" />
|
||||||
<workItem from="1480548170124" duration="207000" />
|
<workItem from="1480548170124" duration="207000" />
|
||||||
<workItem from="1480584080034" duration="27000" />
|
<workItem from="1480584080034" duration="27000" />
|
||||||
<workItem from="1480955138355" duration="887000" />
|
<workItem from="1480955138355" duration="4533000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="TimeTrackingManager">
|
<component name="TimeTrackingManager">
|
||||||
<option name="totallyTimeSpent" value="24940000" />
|
<option name="totallyTimeSpent" value="28586000" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ToolWindowManager">
|
<component name="ToolWindowManager">
|
||||||
<frame x="65" y="24" width="1776" height="983" extended-state="6" />
|
<frame x="65" y="24" width="1776" height="983" extended-state="6" />
|
||||||
@ -397,6 +477,9 @@
|
|||||||
<folding>
|
<folding>
|
||||||
<element signature="e#6#914#0#PHP" expanded="true" />
|
<element signature="e#6#914#0#PHP" expanded="true" />
|
||||||
<element signature="e#1004#1022#0#PHP" expanded="true" />
|
<element signature="e#1004#1022#0#PHP" expanded="true" />
|
||||||
|
<marker date="1480959958013" expanded="false" signature="13026:16843" ph="{...}" />
|
||||||
|
<marker date="1480959958013" expanded="false" signature="17066:23319" ph="{...}" />
|
||||||
|
<marker date="1480959958013" expanded="false" signature="23520:25269" ph="{...}" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
@ -677,13 +760,6 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/php/plugin.calendarimporter.php">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-165">
|
|
||||||
<caret line="13" column="25" selection-start-line="13" selection-start-column="22" selection-end-line="13" selection-end-column="25" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/resources/css/calendarimporter-main.css">
|
<entry file="file://$PROJECT_DIR$/resources/css/calendarimporter-main.css">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="180">
|
<state relative-caret-position="180">
|
||||||
@ -736,13 +812,6 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/js/dialogs/ImportPanel.js">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="583">
|
|
||||||
<caret line="113" column="29" selection-start-line="113" selection-start-column="21" selection-end-line="113" selection-end-column="29" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/php/composer.json">
|
<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="60">
|
<state relative-caret-position="60">
|
||||||
@ -750,13 +819,32 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/js/dialogs/ImportPanel.js">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-6381">
|
||||||
|
<caret line="113" column="29" selection-start-line="113" selection-start-column="21" selection-end-line="113" selection-end-column="29" />
|
||||||
|
<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="15">
|
||||||
|
<caret line="13" column="25" selection-start-line="13" selection-start-column="22" selection-end-line="13" selection-end-column="25" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/php/module.calendar.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="279">
|
<state relative-caret-position="748">
|
||||||
<caret line="691" column="13" selection-start-line="691" selection-start-column="13" selection-end-line="691" selection-end-column="13" />
|
<caret line="700" column="60" selection-start-line="700" selection-start-column="60" selection-end-line="700" selection-end-column="60" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#6#914#0#PHP" expanded="true" />
|
<element signature="e#6#914#0#PHP" expanded="true" />
|
||||||
<element signature="e#1004#1022#0#PHP" expanded="true" />
|
<element signature="e#1004#1022#0#PHP" expanded="true" />
|
||||||
|
<marker date="1480959958013" expanded="false" signature="13026:16843" ph="{...}" />
|
||||||
|
<marker date="1480959958013" expanded="false" signature="17066:23319" ph="{...}" />
|
||||||
|
<marker date="1480959958013" expanded="false" signature="23520:25269" ph="{...}" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
@ -58,6 +58,13 @@ class CalendarModule extends Module
|
|||||||
"OOF"
|
"OOF"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$this->freeBusyStates = array( // http://www.kanzaki.com/docs/ical/fbtype.html
|
||||||
|
"FREE",
|
||||||
|
"BUSY-TENTATIVE",
|
||||||
|
"BUSY",
|
||||||
|
"BUSY-UNAVAILABLE"
|
||||||
|
);
|
||||||
|
|
||||||
$this->labels = array(
|
$this->labels = array(
|
||||||
"NONE",
|
"NONE",
|
||||||
"IMPORTANT",
|
"IMPORTANT",
|
||||||
@ -270,17 +277,20 @@ class CalendarModule extends Module
|
|||||||
'DTEND' => date_timestamp_set(new DateTime(), $this->getProp($messageProps, "duedate")),
|
'DTEND' => date_timestamp_set(new DateTime(), $this->getProp($messageProps, "duedate")),
|
||||||
'CREATED' => date_timestamp_set(new DateTime(), $this->getProp($messageProps, "creation_time")),
|
'CREATED' => date_timestamp_set(new DateTime(), $this->getProp($messageProps, "creation_time")),
|
||||||
'LAST-MODIFIED' => date_timestamp_set(new DateTime(), $this->getProp($messageProps, "last_modification_time")),
|
'LAST-MODIFIED' => date_timestamp_set(new DateTime(), $this->getProp($messageProps, "last_modification_time")),
|
||||||
'PRIORITY' => $this->getProp($messageProps, "importance"),
|
'PRIORITY' => intval($this->getProp($messageProps, "importance")),
|
||||||
'X-MICROSOFT-CDO-INTENDEDSTATUS' => $this->busyStates[intval($this->getProp($messageProps, "busystatus"))], // both seem to be valid...
|
'X-MICROSOFT-CDO-INTENDEDSTATUS' => $this->busyStates[intval($this->getProp($messageProps, "busystatus"))], // both seem to be valid...
|
||||||
'X-MICROSOFT-CDO-BUSYSTATUS' => $this->busyStates[intval($this->getProp($messageProps, "busystatus"))], // both seem to be valid...
|
'X-MICROSOFT-CDO-BUSYSTATUS' => $this->busyStates[intval($this->getProp($messageProps, "busystatus"))], // both seem to be valid...
|
||||||
|
'FBTYPE' => $this->freeBusyStates[intval($this->getProp($messageProps, "busystatus"))],
|
||||||
'X-ZARAFA-LABEL' => $this->labels[intval($this->getProp($messageProps, "label"))],
|
'X-ZARAFA-LABEL' => $this->labels[intval($this->getProp($messageProps, "label"))],
|
||||||
'CLASS' => $this->getProp($messageProps, "private") ? "PRIVATE" : "PUBLIC",
|
'CLASS' => $this->getProp($messageProps, "private") ? "PRIVATE" : "PUBLIC",
|
||||||
'COMMENT' => "eid:" . $records[$index]
|
'COMMENT' => "eid:" . $records[$index]
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Add organizer
|
// Add organizer
|
||||||
$vEvent->add('ORGANIZER', 'mailto:' . $this->getProp($messageProps, "sender_email_address"));
|
if(!empty( $this->getProp($messageProps, "sender_email_address"))) {
|
||||||
$vEvent->ORGANIZER['CN'] = $this->getProp($messageProps, "sender_name");
|
$vEvent->add('ORGANIZER', 'mailto:' . $this->getProp($messageProps, "sender_email_address"));
|
||||||
|
$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) {
|
||||||
@ -318,6 +328,13 @@ class CalendarModule extends Module
|
|||||||
if (!empty($body)) {
|
if (!empty($body)) {
|
||||||
$vEvent->add('DESCRIPTION', $body);
|
$vEvent->add('DESCRIPTION', $body);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add categories
|
||||||
|
if (!empty($this->getProp($messageProps, "categories"))) {
|
||||||
|
$categories = array_map('trim', explode(';', trim($this->getProp($messageProps, "categories"), " ;")));
|
||||||
|
|
||||||
|
$vEvent->add('CATEGORIES', $categories);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// write combined ics file
|
// write combined ics file
|
||||||
@ -672,7 +689,15 @@ class CalendarModule extends Module
|
|||||||
$properties["comment"] = (string)$vEvent->COMMENT;
|
$properties["comment"] = (string)$vEvent->COMMENT;
|
||||||
$properties["timezone"] = (string)$vEvent->DTSTART["TZID"];
|
$properties["timezone"] = (string)$vEvent->DTSTART["TZID"];
|
||||||
$properties["organizer"] = (string)$vEvent->ORGANIZER;
|
$properties["organizer"] = (string)$vEvent->ORGANIZER;
|
||||||
$properties["busystatus"] = array_search((string)$vEvent->{'X-MICROSOFT-CDO-INTENDEDSTATUS'}, $this->busyStates); // X-MICROSOFT-CDO-BUSYSTATUS
|
if(!empty((string)$vEvent->FBTYPE)) {
|
||||||
|
$properties["busystatus"] = array_search((string)$vEvent->FBTYPE, $this->freeBusyStates);
|
||||||
|
} else if(!empty((string)$vEvent->{'X-MICROSOFT-CDO-INTENDEDSTATUS'})) {
|
||||||
|
$properties["busystatus"] = array_search((string)$vEvent->{'X-MICROSOFT-CDO-INTENDEDSTATUS'}, $this->busyStates);
|
||||||
|
} else if(!empty((string)$vEvent->{'X-MICROSOFT-CDO-BUSYSTATUS'})) {
|
||||||
|
$properties["busystatus"] = array_search((string)$vEvent->{'X-MICROSOFT-CDO-BUSYSTATUS'}, $this->busyStates);
|
||||||
|
} else {
|
||||||
|
$properties["busystatus"] = array_search("BUSY", $this->busyStates);
|
||||||
|
}
|
||||||
$properties["transp"] = (string)$vEvent->TRANSP;
|
$properties["transp"] = (string)$vEvent->TRANSP;
|
||||||
//$properties["trigger"] = (string)$vEvent->COMMENT;
|
//$properties["trigger"] = (string)$vEvent->COMMENT;
|
||||||
$properties["priority"] = (string)$vEvent->PRIORITY;
|
$properties["priority"] = (string)$vEvent->PRIORITY;
|
||||||
@ -692,6 +717,15 @@ class CalendarModule extends Module
|
|||||||
}
|
}
|
||||||
$properties["rrule"] = (string)$vEvent->RRULE;
|
$properties["rrule"] = (string)$vEvent->RRULE;
|
||||||
|
|
||||||
|
if (isset($vEvent->CATEGORIES) && count($vEvent->CATEGORIES) > 0) {
|
||||||
|
$categories = array();
|
||||||
|
foreach ($vEvent->CATEGORIES as $category) {
|
||||||
|
$categories[] = (string) $category;
|
||||||
|
}
|
||||||
|
|
||||||
|
$properties["categories"] = $categories;
|
||||||
|
}
|
||||||
|
|
||||||
// Attendees
|
// Attendees
|
||||||
$properties["attendees"] = array();
|
$properties["attendees"] = array();
|
||||||
if (isset($vEvent->ATTENDEE) && count($vEvent->ATTENDEE) > 0) {
|
if (isset($vEvent->ATTENDEE) && count($vEvent->ATTENDEE) > 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user