Skip to content

Commit

Permalink
Outlook (#69)
Browse files Browse the repository at this point in the history
- Support additional Outlook Extension points.
- Add Outlook to default snip.
- Add run button to default snip.
  • Loading branch information
wandyezj authored Sep 17, 2024
1 parent d9913b3 commit 3b9f99f
Show file tree
Hide file tree
Showing 13 changed files with 688 additions and 23 deletions.
1 change: 1 addition & 0 deletions .vscode/cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"appsforoffice",
"aspnetcdn",
"CODEOWNERS",
"deepskyblue",
"endregion",
"eqeqeq",
"firstpartyapps",
Expand Down
37 changes: 32 additions & 5 deletions docs/sideload.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Sideload

[Sideload Add-Ins for testing](https://learn.microsoft.com/en-us/office/dev/add-ins/testing/sideload-office-add-ins-for-testing)
[Sideload Add-Ins for testing][sideload-docs]

For outlook web use:
https://outlook.live.com/mail/0/inclientstore
Expand All @@ -14,15 +14,42 @@ Download the production manifest:

If you are using a managed account, there is an IT setting that can disable loading from the store and a setting that can disable sideloading. If you can't access the store you might still be able to sideload.

## Testing

### Setup manifest share
## Setup manifest share

As administrator run:
> .\scripts\create-manifest-share.cmd
### Copy over manifests
## Copy over manifests

This copies over the latest manifests to the manifest share.

> npm run share
> npm run share
## Load the local manifest

Basic manifests are located in the [manifests folder](../manifests/)

Follow: [Sideload Add-Ins for testing][sideload-docs]

Load

- `local.xml` for Word, Excel, PowerPoint.
- `local.outlook.xml` for Outlook.

Click the `[Local]` Ribbon Tab to view the local version.

### Sideloading Outlook Web

[Install Teams Toolkit cli](https://www.npmjs.com/package/@microsoft/teamsapp-cli)

> npm install -g @microsoft/teamsapp-cli
[Install the Manifest](https://learn.microsoft.com/en-us/microsoftteams/platform/toolkit/teams-toolkit-cli?pivots=version-three#teamsapp-install)

> teamsapp install --xml-path manifest.xml
Where `manifest.xml` is the path to the manifest.


[sideload-docs]: https://learn.microsoft.com/en-us/office/dev/add-ins/testing/sideload-office-add-ins-for-testing
184 changes: 177 additions & 7 deletions manifests/local.outlook.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
xmlns:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides/1.0"
xsi:type="MailApp">
<Id>01000000-1000-0000-0000-000000007357</Id>
<Version>1.0.1.0</Version>
<Version>2.0.1.0</Version>
<ProviderName>wandyezj</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="(local) Build" />
Expand Down Expand Up @@ -51,11 +51,181 @@
<DesktopFormFactor>
<!-- MessageReadCommandSurface when reading an email,
Compose is when replying to an email -->


<ExtensionPoint xsi:type="MessageComposeCommandSurface">
<OfficeTab id="TabDefault">
<Group id="GroupExtensionId">
<OfficeTab id="Compose.TabDefaultId">
<Group id="Compose.GroupExtensionId">
<Label resid="GroupExtension.Label" />
<Control xsi:type="Button" id="Compose.ButtonEditId">
<Label resid="ButtonEdit.Label" />
<Supertip>
<Title resid="ButtonEdit.Label" />
<Description resid="ButtonEdit.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.Edit.16x16" />
<bt:Image size="32" resid="Icon.Edit.32x32" />
<bt:Image size="80" resid="Icon.Edit.80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="TaskpaneEdit.Url" />
</Action>
</Control>
<Control xsi:type="Button" id="Compose.ButtonRunId">
<Label resid="ButtonRun.Label" />
<Supertip>
<Title resid="ButtonRun.Label" />
<Description resid="ButtonRun.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.Run.16x16" />
<bt:Image size="32" resid="Icon.Run.32x32" />
<bt:Image size="80" resid="Icon.Run.80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="TaskpaneRun.Url" />
</Action>
</Control>
</Group>
<Group id="Compose.GroupHelpId">
<Label resid="GroupHelp.Label" />
<Control xsi:type="Button" id="Compose.ButtonHelpId">
<Label resid="ButtonHelp.Label" />
<Supertip>
<Title resid="ButtonHelp.Label" />
<Description resid="ButtonHelp.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.Help.16x16" />
<bt:Image size="32" resid="Icon.Help.32x32" />
<bt:Image size="80" resid="Icon.Help.80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="TaskpaneHelp.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>

<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="Read.TabDefaultId">
<Group id="Read.GroupExtensionId">
<Label resid="GroupExtension.Label" />
<Control xsi:type="Button" id="Read.ButtonEditId">
<Label resid="ButtonEdit.Label" />
<Supertip>
<Title resid="ButtonEdit.Label" />
<Description resid="ButtonEdit.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.Edit.16x16" />
<bt:Image size="32" resid="Icon.Edit.32x32" />
<bt:Image size="80" resid="Icon.Edit.80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="TaskpaneEdit.Url" />
</Action>
</Control>
<Control xsi:type="Button" id="Read.ButtonRunId">
<Label resid="ButtonRun.Label" />
<Supertip>
<Title resid="ButtonRun.Label" />
<Description resid="ButtonRun.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.Run.16x16" />
<bt:Image size="32" resid="Icon.Run.32x32" />
<bt:Image size="80" resid="Icon.Run.80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="TaskpaneRun.Url" />
</Action>
</Control>
</Group>
<Group id="Read.GroupHelpId">
<Label resid="GroupHelp.Label" />
<Control xsi:type="Button" id="Read.ButtonHelpId">
<Label resid="ButtonHelp.Label" />
<Supertip>
<Title resid="ButtonHelp.Label" />
<Description resid="ButtonHelp.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.Help.16x16" />
<bt:Image size="32" resid="Icon.Help.32x32" />
<bt:Image size="80" resid="Icon.Help.80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="TaskpaneHelp.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>

<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
<OfficeTab id="Organizer.TabDefaultId">
<Group id="Organizer.GroupExtensionId">
<Label resid="GroupExtension.Label" />
<Control xsi:type="Button" id="Organizer.ButtonEditId">
<Label resid="ButtonEdit.Label" />
<Supertip>
<Title resid="ButtonEdit.Label" />
<Description resid="ButtonEdit.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.Edit.16x16" />
<bt:Image size="32" resid="Icon.Edit.32x32" />
<bt:Image size="80" resid="Icon.Edit.80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="TaskpaneEdit.Url" />
</Action>
</Control>
<Control xsi:type="Button" id="Organizer.ButtonRunId">
<Label resid="ButtonRun.Label" />
<Supertip>
<Title resid="ButtonRun.Label" />
<Description resid="ButtonRun.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.Run.16x16" />
<bt:Image size="32" resid="Icon.Run.32x32" />
<bt:Image size="80" resid="Icon.Run.80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="TaskpaneRun.Url" />
</Action>
</Control>
</Group>
<Group id="Organizer.GroupHelpId">
<Label resid="GroupHelp.Label" />
<Control xsi:type="Button" id="Organizer.ButtonHelpId">
<Label resid="ButtonHelp.Label" />
<Supertip>
<Title resid="ButtonHelp.Label" />
<Description resid="ButtonHelp.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.Help.16x16" />
<bt:Image size="32" resid="Icon.Help.32x32" />
<bt:Image size="80" resid="Icon.Help.80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="TaskpaneHelp.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>

<ExtensionPoint xsi:type="AppointmentAttendeeCommandSurface">
<OfficeTab id="Attendee.TabDefaultId">
<Group id="Attendee.GroupExtensionId">
<Label resid="GroupExtension.Label" />
<Control xsi:type="Button" id="ButtonEditId">
<Control xsi:type="Button" id="Attendee.ButtonEditId">
<Label resid="ButtonEdit.Label" />
<Supertip>
<Title resid="ButtonEdit.Label" />
Expand All @@ -70,7 +240,7 @@
<SourceLocation resid="TaskpaneEdit.Url" />
</Action>
</Control>
<Control xsi:type="Button" id="ButtonRunId">
<Control xsi:type="Button" id="Attendee.ButtonRunId">
<Label resid="ButtonRun.Label" />
<Supertip>
<Title resid="ButtonRun.Label" />
Expand All @@ -86,9 +256,9 @@
</Action>
</Control>
</Group>
<Group id="GroupHelpId">
<Group id="Attendee.GroupHelpId">
<Label resid="GroupHelp.Label" />
<Control xsi:type="Button" id="ButtonHelpId">
<Control xsi:type="Button" id="Attendee.ButtonHelpId">
<Label resid="ButtonHelp.Label" />
<Supertip>
<Title resid="ButtonHelp.Label" />
Expand Down
Loading

0 comments on commit 3b9f99f

Please sign in to comment.