Providing access to electronic message attachments
By storing message and attachment relationships in a graph database and displaying attachments and messages in a single interface using APIs and productivity applications, the problem of users struggling to align email attachments and conversations is solved, enabling seamless interaction and improved efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- MICROSOFT TECHNOLOGY LICENSING LLC
- Filing Date
- 2018-02-22
- Publication Date
- 2026-07-24
AI Technical Summary
When receiving email attachments, users often find it difficult to align the conversational parts of the message with the relevant parts of the document, resulting in cumbersome and inefficient operations. The existing file view menu cannot directly expose the attachment files.
By storing the relationships between messages and attachments in a graph database and using an API to identify and retrieve attachment metadata, productivity applications display attachments and related messages in a single interface and provide limited messaging capabilities, allowing users to interact seamlessly between attachments and messages.
It improves user and computational efficiency, reduces processing steps associated with workarounds, and allows users to focus on attachments and dialog views in a single interface.
Smart Images

Figure CN110337632B_ABST
Abstract
Description
Background Technology
[0001] Documents are typically shared with other individuals via electronic messaging (e.g., email). Attached documents to a message can be linked files (in which case the document is stored in a shared file repository and a link to that document is attached to the message) or embedded files (in which case they are copied from the document's storage location and embedded within the message). Generally, regardless of whether the attachment is a linked or embedded file, users typically find sharing documents with another user via email a straightforward process involving the transfer of the document to the user and a conversation about various aspects of the document. For example, an email conversation might outline the necessary steps to bring the attached document to its final state, or it might describe a summary of the information in the document and why it is relevant to the document recipient.
[0002] While it's convenient to provide dialogue, comments, or feedback within messages related to documents attached to a message, users receiving the message may find it difficult to align a part of the dialogue with the relevant part of the document. For example, a user might receive a message with an attached document, which could include questions or comments about a specific section of that document. Users can mentally map the dialogue to the document, or they can use disconnected solutions to facilitate collaboration, or view the questions or comments within the context of a specific section of the document. For example, users could switch back and forth between the message and the document, print the message, or reduce the size of the message's UI (user interface) display and the document's UI display so that both can be viewed on the user's screen. It should be understood that such workarounds can be time-consuming and inefficient, and require additional processing steps.
[0003] Additionally, users might want to access documents sent as message attachments. However, locating the document can be difficult because the current file view menu options do not expose documents provided as message attachments. Summary of the Invention
[0004] This summary section is provided to introduce, in a simplified form, the concept choices that will be further described in the detailed description below. This summary section is not intended to identify key or essential features of the invention, nor is it intended to help determine the scope of protection of the invention.
[0005] This document provides systems, methods, and computer-readable devices embodying instructions for increasing user interactivity and / or improving computational efficiency by providing access to electronic message attachments and associated information to applications outside of a messaging application. Specifically, aspects are directed to: receiving electronic messages including attached files via a messaging application, and storing relationships for connecting electronic messages to attachments in a graph database.
[0006] When a request is made to display a file list, an Application Programming Interface (API) is used to interact with a graph database to identify whether any attachments received by the user meet the criteria associated with the file list, and to retrieve metadata associated with the attachments for display in the file list. Upon receiving a selection to open an attachment from the file list in the productivity application, the productivity application is able to authenticate with the messaging application, retrieve the message associated with the attachment, and download the attachment. The productivity application displays the attachment in a content display area and the associated message in a communications pane within a single productivity application user interface. Furthermore, at least one set of restricted messaging application functionalities is provided in the communications pane to allow the user to add reply messages to the conversation associated with the attachment.
[0007] When a user chooses to generate a reply message, an attachment is appended to the reply message. Furthermore, the user can choose to edit the attachment. When the attachment is an embedded file, an editable copy of the attachment is created and stored in the message repository or network share, allowing the user to make changes to that file. When the attachment is a linked file, changes made to the file are saved to the main copy of the attachment stored in the network share.
[0008] Various aspects of this disclosure enable users to move freely between attachments and associated messages, thus providing seamless interaction between them. This allows users to focus more time on attachments and provides a dialog view within a single user interface, improving user efficiency. Furthermore, computational efficiency is improved by reducing the processing steps associated with workarounds for user prompts, aligning parts of the dialog with relevant parts of the document.
[0009] Examples are implemented as computer processes, computing systems, or articles such as devices, computer program products, or computer-readable media. According to one aspect, the computer program product is computer-readable and is a computer storage medium that encodes a computer program containing instructions for executing the computer process.
[0010] Details of one or more aspects are set forth in the following drawings and description. Other features and advantages will become apparent from reading the following detailed description and consulting the accompanying drawings. It should be understood that the following detailed description is merely illustrative and not limiting of the claims. Attached Figure Description
[0011] The accompanying drawings, which are included in and form part of this disclosure, illustrate various aspects. In the drawings:
[0012] Figure 1This is a block diagram of an exemplary operating environment including an attachment access system for providing an application outside the messaging application with access to attachments to electronic messages and information associated with those electronic messages.
[0013] Figure 2A Figure C shows an exemplary user interface (UI) storyboard generated by various aspects of the attachment access system, illustrating a scenario where a linked attachment is selected and opened in the productivity application UI and the associated message information is displayed in the communication panel of the productivity application UI;
[0014] Figure 3A Figure E shows an exemplary user interface (UI) storyboard generated by various aspects of the attachment access system, illustrating a scenario where an embedded attachment is selected and opened in the productivity application UI and associated message information is displayed in the communication panel of the productivity application UI;
[0015] Figure 4A Figure B shows an exemplary user interface (UI) storyboard generated by various aspects of the attachment access system, illustrating a scenario in which attachments in a message are selectively opened from a messaging application within the productivity application UI, and the associated message information is displayed in the communications panel within the productivity application UI.
[0016] Figure 5A Figure C shows an exemplary user interface (UI) storyboard generated by various aspects of the attachment access system, illustrating a scenario of selecting and opening an attachment in the productivity application UI, and presenting options for accessing and displaying associated messages in the communication panel of the productivity application UI;
[0017] Figure 6A Figure B shows an exemplary user interface (UD) storyboard generated by various aspects of the attachment access system, illustrating a scenario where a message is added to a conversation via a productivity application UI used to open an associated attachment;
[0018] Figure 7A Figure C shows an exemplary user interface (UI) storyboard generated by various aspects of the attachment access system, illustrating a scenario where a link to a linked file attachment is modified and then a link to the modified linked file attachment is appended in a response message;
[0019] Figure 8A Figure C shows a flowchart illustrating the general stages of an exemplary method for providing access to attachments and associated information of electronic messages to applications outside the messaging application;
[0020] Figure 9This is a block diagram illustrating exemplary physical components of a computing device;
[0021] Figure 10A and Figure 10B A block diagram of a mobile computing device; and
[0022] Figure 11 This is a block diagram of a distributed computing system. Detailed Implementation
[0023] The following detailed description refers to the accompanying drawings. Where possible, the same reference numerals are used in the drawings and the following description to refer to the same or similar elements. While some examples are described, modifications, adjustments, and other implementations are possible. For example, components shown in the drawings can be substituted, added to, or modified, and the methods described herein can be modified by substituting, reordering, or adding stages to the disclosed methods. Therefore, the following detailed description is not intended to limit the invention; rather, the appropriate scope of protection of the invention is defined by the appended claims. Examples may be implemented in hardware, entirely in software, or in a combination of software and hardware aspects. Therefore, the following detailed description should not be taken in a restrictive sense.
[0024] This disclosure relates to systems, methods, and computer-readable devices embodying instructions for providing access to attachments and associated information of electronic messages to applications outside of messaging applications. Reference is now made to... Figure 1 The figure illustrates a block diagram of an exemplary operating environment 100, which includes a system for providing access to attachments to electronic messages and information associated with electronic messages to applications outside of a messaging application. As shown, the exemplary environment 100 includes a computing device 102. The computing device 102 can be one of various types of computing devices (e.g., tablet computing devices, desktop computers, mobile communication devices, laptop computers, laptop / tablet hybrid computing devices, large-screen multi-touch displays, gaming devices, smart TVs, wearable devices), or other types of computing devices used to execute applications to perform various tasks. (About...) Figure 9 , 10A 10B and Figure 11 The hardware of these computing devices is discussed in more detail.
[0025] According to the example, computing device 102 is operable to execute one or more different types of messaging applications 122 to receive, view, interact with, combine, or generate electronic messages 108. For example, messaging application 122 may include, but is not limited to, one or more of the following types of applications: email applications, instant messaging (IM) applications, short message service (SMS) applications, multimedia messaging service (MMS) applications, and real-time information networks (e.g., those available from Twitter, a company based in San Francisco, California). Messaging service interface applications, social networking applications, etc. The messaging application 122 can be client-based or web-based. The message server 106 is operable to receive incoming electronic messages 108 from the sending user and forward outgoing electronic messages 108 to the receiving user. Electronic message 108 describes an electronic message transmitted between one or more users for conveying text-based communication and various attachments (i.e., attachments 110) (e.g., audio files, text files, image files, data files, etc.).
[0026] In some examples, Attachment 110 is a linked file stored in a shared file repository (e.g., network share 118), and a link to the file is appended to message 108. For example, network share 118 could be a shared resource server located at an enterprise accessible to various users, or a shared resource server remotely accessible to various users where they can store and collaborate on various collaborative files 124 (e.g., documents, spreadsheets, images, videos, web content, etc.). Network share 118 could be an enterprise-based storage service or a third-party cloud storage service supported by one or more applications (e.g., messaging application 122, productivity application 104, file finder application 128) executed by computing device 102.
[0027] In other examples, attachment 110 is an embedded file copied from its storage location (e.g., a sender's local repository, a remote repository, a shared file repository, or a third-party cloud storage service repository) and embedded in message 108. Thus, embedded attachment 110 is stored in the message recipient's message repository 132 (e.g., mailbox). In some examples, message server 106 is operable to send electronic message 108 to one or more intended recipients by routing electronic message 108 to one or more messaging agents 130. Message server 106 includes or is communicatively connected to a plurality of messaging agents 130, each messaging agent 130 connected to a user's message repository 132 (e.g., mailbox), from which messaging application 122 can retrieve electronic message 108. When attachment 110 is included in electronic message 108, messaging application 122 is also operable to retrieve the associated attachment from message repository 132. In some examples, message repository 132 resides on a remote device such as message server 106 and is accessible via network 120 by messaging application 122. In other examples, message repository 132 resides on the receiving user's computing device 102.
[0028] Message server 106 includes attachment manager 134 (as shown), or attachment manager 134 is operatively connected to message server 106. Attachment manager 134 describes a software module, system, or device operable to process attachment 110 of electronic message 108. According to one aspect, attachment manager 134 is configured to identify message 108 having attachment 110 and store relational information associated with electronic message 108 and attachment 110 in graph database 112. For example, in graph database 112, entities are represented as nodes, and relationships between these entities are represented as edges. According to one aspect, attachment manager 134 stores in graph database 112 a first node representing electronic message 108, a second node representing attachment 110, and an edge connecting the first node to the second node, wherein the edge represents the relationship between electronic message 108 and attachment 110. In some examples, attachment manager 134 stores other information and metadata associated with attachment 110 in graph database 112. For example, the attachment manager 134 can be used to store metadata associated with message 108 and attachment 110, such as the sender of message 108, the subject of message 108, the date or timestamp of receiving message 108, the title of attachment 110, information related to whether the attachment is an embedded attachment or a linked attachment, and so on.
[0029] Depending on various aspects, computing device 102 may also be operable to execute one or more different productivity applications 104, which allow user 116 to interact with various content files, such as to produce information such as documents, presentations, worksheets, databases, charts, graphs, digital paintings or drawings, electronic music, and digital videos. Users can operate productivity applications 104 at computing device 102 such as word processing applications, slideshow applications, spreadsheet applications, note-taking applications, desktop publishing applications, drawing applications, image processing and editing applications, video applications, and so on. User 116 can utilize the productivity applications 104 on computing device 102 to perform various tasks, such as writing, calculating, drawing, acquiring and organizing notes, organizing and preparing presentations, browsing web content, creating music, and so on. In some examples, productivity application 104 is a fat client application stored locally on computing device 102. In other examples, productivity application 104 is a thin client application (i.e., a web application) residing on a remote server and accessible via network 120 or a combination of networks (e.g., the Internet or an intranet). The lean productivity application 104 can be hosted in a browser-controlled environment, or coded in a browser-supported language and rely on a public web browser to render the application that can be executed on the computing device 102.
[0030] According to the example, productivity application 104 provides a graphical user interface (GUI) 140 for enabling users to interact with the application's functions and document content by manipulating graphical icons, visual indicators, etc. According to one aspect and as will be described in further detail below, productivity application 104 is operable to provide GUI 140 for displaying at least a portion of attachment 110 and messages 108 associated with attachment 110 in a single user interface. According to another aspect and as will be described in further detail below, productivity application 104 is also operable to provide communication functionality associated with messaging application 122 within GUI 140.
[0031] Depending on various aspects, computing device 102 may also be operable to execute one or more file finder applications 128, which are described as software modules, systems, or devices operable to search for files (e.g., collaborative files 124, attachments 110, other documents) in one or more repositories on computing device 102 (e.g., local repository 136, network share 118, message repository 132) or repositories communicatively connected to computing device 102 in response to specific search criteria. In some examples, search criteria are associated with file finder applications 128.
[0032] According to one aspect, file finder application 128 is an application that user 116 can use to search and display a list of files (i.e., a file list) shared with user 116 by other individuals. In one example, file finder application 128 is operable to search and display files that an individual invited user 116 to access. In another example, file finder application 128 is operable to search and display files attached to message 108 received by user 116 (e.g., embedded or linked attachment 110). In some examples, file finder application 128 discovers files shared with user 116 based on stored metadata. In other examples, file finder application 128 discovers files shared with user 116 by querying graph database 112 for files connected to user 116 (e.g., via “shared” edges).
[0033] According to another aspect, file finder application 128 is an application that user 116 can use to search and display a list of files recently used or saved by user 116. In some examples, the list of recent files includes one or more attachments 110 shared with user 116 via message 108. According to another aspect, file finder application 128 is an application that user 116 can use to input search criteria to search and display a list of files responding to those input criteria. For example, user 116 can use file finder application 128 to search for files saved on a specific date or within a specific time period, files with titles, specific file types, files containing specific keywords, and so on. According to one aspect, the file list may include one or more attachments 110 shared with user 116 via message 108. In some examples, file finder application 128 is a standalone application. In other examples, file finder application 128 is integrated with or added to another application, such as productivity application 104. It should be understood that the aspects are not limited to the above examples of file finder application 128. Other types of file finder applications are also possible and fall within the scope of this disclosure.
[0034] According to one aspect, the file finder application 128 is operable to use API (Application Programming Interface) 126 to query graph database 122 to identify the file including attachment 110, so as to include it in a specific file list (e.g., a file shared with user 116, a recent file, a file responding to search criteria). According to another aspect, the file finder application 128 is also operable to use API 126 to obtain and display location or raw information associated with attachment 110. For example, location information may include a repository on computing device 102 where attachment 110 is stored (e.g., a local repository 136, a network share 118, a message repository 132) or a repository communicatively connected to computing device 102. Raw information may include an indication of why attachment 110 is included in a specific file list (e.g., a file shared with user 116, a recent file, a file responding to search criteria) displayed by the file finder application 128. In some examples, the indication is text or an icon indicating that the file in the file list is message attachment 110. In other examples, the indication also indicates whether attachment 110 is an embedded attachment or a linked attachment.
[0035] According to one aspect, productivity application 104 includes or is operatively connected to file download manager 138. File download manager 138 is operable to enable productivity application 104 to access software modules, systems, or devices associated with user 116 that are stored in message repository 132 (e.g., mailbox). For example, file download manager 138 allows productivity application 104 to access and authenticate to message repository 132 and download selected attachment 110. According to another aspect, file download manager 138 is also operable to access, authenticate, and download files including collaborative file 124, which is stored on network share 118. For example, when the selection to open attachment 110 is made, and when attachment 110 is a linked file and stored on network share 118, a local copy of the primary copy of attachment 110 (which is stored on network share 118) is downloaded to computing device 102 and opened in productivity application 104.
[0036] When attachment 110 (or a copy of attachment 110) is downloaded and opened in productivity application 104, user 116 is able to interact with the file. For example, productivity application 104 provides various functions to allow user 116 to edit the attachment file in association with the provided functions. Some functions are tools and settings related to content creation and can be activated in various ways. In one example, various optional function controls associated with the tools and settings of productivity application 104 are arranged in the toolbar provided by productivity application 104.
[0037] According to one aspect, when the linked file attachment 110 is downloaded, and when user 116 edits the local copy, the changes to the local copy are saved to the primary copy located in network share 118. According to some examples, when the embedded file attachment 110 is downloaded from message repository 132, and when user 116 edits the file, the changes made to the file are stored in a copy of attachment 110. According to one example, before editing, user 116 is presented with the option to selectively create and store an editable copy of attachment 110 in message repository 132. According to another example, an editable copy of attachment 110 is automatically created and stored in message repository 132. According to yet another example, user 116 is presented with the option to selectively create and store an editable copy of attachment 110 in network share 118.
[0038] According to one aspect, productivity application 104 includes or is operatively connected to communication manager 114. Communication manager 114 describes software, modules, systems, or devices operable to access and display electronic messages 108 associated with attachment 110 opened in productivity application 104. For example, based on the original information of attachment 110, communication manager 114 identifies electronic messages or message sets 108 to which attachment 110 is embedded or linked, authenticates with messaging application 122, and retrieves messages 108 for display in communication panel 142 in productivity application UI 140. In some examples, a single message 108 is associated with attachment 110. In other examples, multiple messages 108 are associated with attachment 110. For example, a message 108 to which attachment 110 is embedded or linked may be part of a conversation consisting of multiple messages 108.
[0039] In some examples, the communications manager 114 identifies one or more electronic messages 108 associated with the linked attachment 110 and authenticates with the network share 118 to retrieve one or more messages. For example, the message 108 linked to the attachment 110 may be associated with one or more conversations between different senders and receivers, which may include multiple messages stored in the network share 118.
[0040] According to one aspect, when multiple messages 108 or conversations are associated with attachment 110, for example, in the communication panel 142 of the productivity application UI 140, a list of document change history or messages 108 associated with attachment 110 or an activity feed of conversations associated with attachment 110 is displayed to the user 116. The user 116 can select specific messages 108 or conversations to be displayed in the communication panel 142.
[0041] According to one aspect, productivity application 104 generates a communication panel 142 in productivity application UI 140 via communication manager 114, wherein the message associated with attachment 110 is displayed in communication panel 142. According to another aspect, communication manager 114 is also operable to provide various messaging application 122 functions in communication panel 142. In some examples, a limited or lightweight set of messaging application functions is provided, such as function commands for adding message 108 to the displayed conversation. According to one aspect, when attachment 110 is edited and user 116 selects to add message 108 (e.g., email, SMS, MMS, instant message, post) or reply to a message or conversation associated with the attachment, the edited file is automatically appended to the message and sent to the recipient along with the message.
[0042] In other examples, extended options are provided in the communication panel 142, enabling the limited conversational experience offered by the productivity application 104 to be extended to a more in-depth communication experience via the messaging application 122. For example, user 116 might want to reply to a meeting request, modify the recipient, modify message properties, etc. According to one aspect, when an extended option is selected, the communication manager 114 can also be operated to communicate with the messaging application 122 that provides attachment 110 or to be associated with an attachment type used to instruct the messaging application to launch. Furthermore, the communication manager 114 transmits instructions to the messaging application 122 to open the currently displayed message 108 in the messaging application UI. Advantageously, user 116 is able to maintain consistency with the conversational experience offered by the productivity application 104.
[0043] Figures 2A to 7C The attached access system is shown in various aspects relative to the various exemplary user interface (UI) storyboards 200, 300, 400, 500, 600, and 700 shown in these figures. Figure 2A The first storyboard 200 shown in Figure 2D illustrates selecting a linked attachment 110 from a file list and opening the linked file in the productivity application 104, along with related activity feed information including a message 108 to which the file is attached.
[0044] Now for reference Figure 2AThe diagram illustrates an example file finder application UI 202, which includes a display of a file list 204 that includes the titles of files already shared with user 116. According to one aspect, the file list 204 also includes other information, such as raw information 206 indicating to user 116 why a particular file is included in the file list 204. For example, and as shown, when a particular file in the file list 204 is attachment 110, the raw information 206 may include information associated with the message 108 to which that particular file is attached. In some examples, the sender of message 108 is included in the raw information 206. In other examples, the subject line of message 108 is included in the raw information 206. In other examples, an indication of whether attachment 110 is a linked attachment or an embedded attachment is included in the raw information 206. In other examples, the date or timestamp of attachment 110 being shared with user 116 is included in the raw information.
[0045] In the example shown, user 116 has selected a file from file list 204. The selected file is linked attachment 110, as indicated by the cloud icon in the original information 206, which reveals that the file is a collaborative file 124 stored in network share 118 rather than in the user's message repository 132. It should be understood that the cloud icon is one example of an indicator of the attachment's source or attachment type. Other types of indicators are also possible and fall within the scope of this disclosure. As mentioned above, the information about attachment 110 is accessible via API 126 to file finder application 128 (and other applications, such as one or more productivity applications 104), which are operable to connect to graph database 112 to retrieve attachment file information and associated original information 206. In some examples, the original information 206 is stored as metadata in another repository 136.
[0046] Now for reference Figure 2B In response to the selection of attachment 110, the attached file is downloaded and displayed in the productivity application UI 140 (e.g., in the content display area 208). In the example shown, the productivity application UI 140 is a word processing application UI. However, it should be understood that attachment 110 can be opened in various other productivity applications 104, depending on the type of the attached file.
[0047] In the example shown, an activity feed associated with attachment 110 is retrieved and displayed in the communication panel 142 of the productivity application UI 140. This activity feed includes a message 108 associated with the selected attachment 110. According to one aspect and as described above, the productivity application 104 can connect to the messaging application 122 or network share 118 via the communication manager 114 to retrieve activity feeds or communication information associated with attachment 110 (e.g., a specific message 108 attached to attachment 110, other messages in a conversation including the specific message 108, other messages 108 associated with attachment 110, or conversations). In the example shown, the user 116 selects the message 108 associated with the displayed attachment 110.
[0048] Now for reference Figure 2C In response to the selection of message 108, the content of message 108 is displayed in communication pane 142. In the example shown, message 108 is an email message. However, it should be understood that message 108 associated with attachment 110 and displayed in communication pane 142 can be one of various types of electronic communication messages, such as SMS, MMS, instant messaging, real-time information web posts, social network posts, etc. Furthermore, communication pane 142 provides at least a set of limited or lightweight messaging application functions 210, such as function commands for adding messages to the displayed conversation or replying to the displayed message 108.
[0049] Figures 3A to 3E The second storyboard 300 shown illustrates selecting the embedded attachment 110 from the file list 204 and opening the embedded file in the productivity application 104, along with the associated message 108 attached to that file. Now refer to... Figure 3A The figure shows Figure 2A An exemplary file finder application UI 202 includes a display of a file list 204 of files that have been shared with user 116. In the example shown, user 116 has selected a file from file list 204. The selected file is an embedded attachment 110, indicated by the paperclip icon in original message 206, which reveals that the file is embedded in received message 108 and stored in the user's message repository 132. It should be understood that the paperclip icon is an example of an indicator of the source or type of attachment. Other types of indicators are also possible and fall within the scope of this disclosure.
[0050] Now for reference Figure 3BIn response to the selection of attachment 110, the embedded file is downloaded from the message repository 132 and displayed in the content display area 208 of the productivity application UI 140. In the example shown, the productivity application UI 140 is a word processing application UI. However, it should be understood that attachment 110 can be opened in various other productivity applications 104, depending on the attachment file type. As shown, a communication pane 142 is also displayed in the productivity application UI 140. Although the communication pane 142 is shown as docked to the side edge of the productivity application UI 140, the communication pane 142 can be located elsewhere in the productivity application UI 140, such as above or below the content display area 208, or on either side of the content display area 208.
[0051] As shown, a single message 108 is retrieved from messaging application 122 and displayed in communication pane 142. For example, attachment 110 can be attached to message 108 that is not part of a multi-message conversation. In addition, communication pane 142 provides at least a set of restricted or lightweight messaging application functions 210, such as function commands for replying to the displayed message 108.
[0052] In the example shown, a notification is provided in the productivity application UI 140, informing user 116 that attachment 110 is an embedded file and therefore a read-only document. Additionally, an edit and reply option 302 is provided, shown as a choice for user 116. According to one aspect, when the edit and reply option 302 is selected, an editable copy of attachment 110 is created, allowing user 116 to make changes. In some examples, the editable copy of attachment 110 is stored in a message repository 132 and associated with message 108. For example, attachment manager 134 stores the relationship between the editable copy of attachment 110 and message 108 in a graph database 112. It should be understood that the provision of the edit and reply option 302 is optional. For example, when attachment 110 is opened in productivity application 104, or when an instruction is received from user 116 that attachment 110 has been edited, an editable copy of attachment 110 may be automatically created and stored in message repository 132.
[0053] Based on other examples and now referencing Figure 3C Before creating an editable copy of attachment 110, upload option 304 is presented to user 116, allowing the user to choose to create a copy of attachment 110 and upload it to network share 118. Additionally, edit option 306 may be presented, allowing user 116 to choose to create an editable copy of attachment 110 in message repository 132. Figure 3CAs shown in the figure, user 116 is shown as selecting upload option 304.
[0054] In response to this selection, a copy of Annex 110 is uploaded to network share 118. (As...) Figure 3D As shown, notification 308 is displayed during the upload process, informing user 116 that the file is being uploaded to network share 118. After the upload is complete, and now refer to... Figure 3E At the same time, an editable copy of the attachment 310 is provided in the content display area 208, and a link 312 is provided in the communication pane 142 for an uploaded copy of the attachment 110 in the network share 118.
[0055] Figures 4A to 4B The third storyboard 400 shown illustrates selecting attachment 110 from message 108 displayed in messaging application UI 402, and opening the selected file and its associated message 108 and conversation 404 in productivity application 104. Now refer to Figure 4A In the example shown, the messaging application 104 is an email application. In the exemplary messaging application UI 402, multiple messages 108 and conversations 404 stored in the user's message repository 132 are listed. As shown, conversation 404 is selected from the list, and the message 108 included in conversation 404 is displayed in the preview pane 406 of the messaging application UI 402. Furthermore, as shown, message 108 in conversation 404 includes attachment 110, and the user 116 selects to open attachment 110.
[0056] Now for reference Figure 4B Upon receiving a selection to open attachment 110, attachment 110 is downloaded and opened in the appropriate productivity application 104. For example, attachment 110 is opened and displayed in the content display area 208 of the productivity application UI 140. Furthermore, a conversation 404 including message 108 with attachment 110 attached is displayed in the communication pane 142 of the productivity application UI 140. As shown, at least one set of restricted messaging application functions 210 is provided, such as function commands for adding message 108 to the displayed conversation.
[0057] Figures 5A to 5C The fourth storyboard 500 shown illustrates selecting attachment 110 from file list 204 and opening the selected file in productivity application 104. Furthermore, storyboard 500 shows options provided to user 116 to open associated messages 108 and conversations 404 to which the file is attached in the communication pane 142 of the productivity application UI 140. Now refer to... Figure 5AThe figure illustrates an exemplary file finder application UI 502, including an exemplary file list 204, where the file list 204 includes titles of files recently used or saved by user 116. The exemplary file list 204 of recent files includes one or more attachments 110 shared with user 116 via message 108. Although shown as integrated with or added to productivity application 104, the file finder application 128 can, in other respects, be a standalone application. Figure 5A As shown, user 116 selects a specific file from file list 204.
[0058] In response to that selection, and as Figure 5B As shown, a file is opened in productivity application 104. In the example shown, the selected file is attachment 110. In some examples, and as shown, when a file is selectively opened and that file is associated with message 108 (i.e., the file is attachment 110), productivity application 104 presents communication option 504, which allows user 116 to selectively open the associated message 108 in communication pane 142 within productivity application UI 140. Communication option 504 may include other information, such as indications of one or more messages 108 that have been received as part of a conversation 404 associated with attachment 110. Figure 5B As shown, user 116 selects communication option 504 to access and display associated conversation 404 in productivity application UI 140. In other examples, associated conversation 404 is automatically displayed in communication pane 142 in productivity application UI 140 (e.g., communication option 504 is not provided).
[0059] Now for reference Figure 5C Through the communications manager 114, the productivity application 104 accesses the message 108 associated with the attachment 110 and displays the message 108 (e.g., conversation 404) in the communications pane 142. Additionally, a limited set of messaging application functions 210 is provided, such as function commands for adding the message 108 to the displayed conversation 404.
[0060] Figures 6A to 6B The fifth storyboard 600 shown illustrates user 116 adding message 108 to displayed conversation 404 via communication pane 142 in productivity application UI 140. (As shown...) Figure 6A As shown, user 116 selects the messaging application function 210 provided in the communication pane 142 and enters text content in the specified message input area to generate a reply message. According to one aspect, and as... Figure 6BAs shown, attachment 110 is automatically appended to reply message 602. In the example shown, attachment 110 is a linked file, and a link 312 to the file is embedded in reply message 602. When user 116 chooses to send reply message 602, link 312 is sent along with the reply message to one or more recipients associated with conversation 404.
[0061] Figures 7A to 7C The sixth storyboard 700 shown illustrates user 116 modifying linked file attachment 110 and responding to displayed message 108 via the communication pane 142 in the productivity application UI 140. Figure 7A As shown, user 116 selects a file displayed in the content display area 208 of the productivity application UI 140. According to one aspect, when the file is an embedded file attachment 110, an upload option 304 or an edit option 306 is presented in the productivity application UI 140. The upload option 304 allows the user to choose to create a copy 310 of attachment 110 and upload it to network share 118, while the edit option 306 allows the user to choose to create an editable copy of attachment 110 in the message repository 132 (e.g., ...). Figure 3C (As shown in the example). In the example shown, the file is a linked file, Attachment 110.
[0062] Now for reference Figure 7B User 116 makes changes 702 to the linked file attachment 110, such as adding content to the file. According to one aspect, the changes 702 made to the linked file are saved to a master copy of the linked file stored on network share 118. Additionally, user 116 chooses to add a reply message 602 to a conversation 404 displayed in the communication pane 142 of the productivity application UI 140.
[0063] like Figure 7C As shown, reply message 602 includes message content entered by user 116 and a link 312 for the modified linked file attachment 110. When user 116 chooses to send reply message 602, the link 312 for the modified linked file attachment 110 is sent along with message 108 to one or more intended recipients. It should be understood that... Figures 2A to 7C The examples shown are non-limiting examples, and other GU1s with different elements and their arrangements can be used in conjunction with this disclosure.
[0064] Figures 8A to 8C A flowchart illustrating the typical stages involved in an exemplary method 800 for providing access to attachment 110 of an electronic message 108 and information associated with the electronic message to an application outside of a messaging application 122. Referring now to... Figure 8A Method 800 begins at start operation 802 and proceeds to operation 804, wherein at operation 804, the communication is initiated via a method such as an email application, instant messaging (IM) application, short message service (SMS) application, multimedia messaging service (MMS) application, or real-time information network (e.g., for...). A messaging application 122, such as a messaging service interface application, a social networking application, etc., receives an electronic message 108 including an attachment 110. Depending on the circumstances, the attachment 110 may be an embedded file or a linked file.
[0065] Method 800 proceeds to operation 806, where the relationship between message 108 and attachment 110 is stored in graph database 112. In some examples, other messages 108 related to message 108 are received (e.g., in dialogue 404), and the relationship between these other messages 108 and attachment 110 is stored in graph database 112.
[0066] After storing the relational information in the graph database 112, method 800 proceeds to operation 808, where a selection to display the file list 204 is received. For example, the selection to display the file list 204 can be associated with opening the file finder application 128, opening the productivity application 104, and so on.
[0067] At operation 810, the file finder application 128 uses API 126 to query graph database 122 to identify the file including attachment 110 for inclusion in a specific file list 204. For example, the specific file list 204 may include files shared with user 116, recent files, files in response to search criteria, etc. In some examples, the file finder application 128 also utilizes API 126 to obtain and display location or raw information associated with attachment 110. For example, location information may include a repository on computing device 102 where attachment 110 is stored (e.g., local repository 136, network share 118, message repository 132) or a repository communicatively connected to computing device 102. Raw information may include an indication of why attachment 110 is included in a specific file list displayed by the file finder application 128 (e.g., shared with user 116, recent files, files in response to search criteria).
[0068] Method 800 proceeds to operation 812, where a selection of attachment 110 listed in file list 204 is received. At operation 814, productivity application 104 downloads and opens the selected attachment 110. In some examples, attachment 110 is an embedded file stored in the user's message repository 132. Therefore, productivity application 104 downloads attachment 110 from message repository 132. In other examples, attachment 110 is a linked file, where a link 312 to a collaborative file stored in network share 118 is embedded in message 108. Therefore, productivity application 104 uses link 312 to download attachment 110 from network share 118. Furthermore, productivity application 104 interacts with graph database 112 to identify relationships associated with the attachment, and at operation 816, retrieves the relevant message 108 from messaging application 122.
[0069] Method 800 proceeds to operation 818, where attachment 110 is displayed in content display area 208 of productivity application UI 140, and one or more related messages 108 are displayed in communication pane 142 of productivity application UI 140. In some examples, one or more related messages 108 are part of conversation 404, and messages 108 including conversation 404 are displayed in communication pane 142. Furthermore, at least one set of restricted messaging application functions 210 are provided in communication pane 142.
[0070] At step 820, it is determined whether an option to edit the content of attachment 110 has been received. If it is confirmed that an option to edit the content of the attachment file has been received, method 800 proceeds to step 110. Figure 8B In operation 824, the method determines whether attachment 110 is an embedded file or a linked file. If attachment 110 is an embedded file, method 800 proceeds to optional operation 824, where an upload option 306 is presented to user 116, allowing user 116 to choose to create a copy 310 of attachment 110 and upload it to network share 118. Alternatively, an edit option 306 may be presented, allowing user 116 to choose to create an editable copy 310 of attachment 110 in message repository 132. At optional operation 824, the user can receive a selection of either upload option 306 or edit option 306.
[0071] Method 800 continues to operation 826, where an editable copy 310 of attachment 110 is created and stored in network share 118 or message repository 132. In some examples, the storage location is based on a selection made by the user at optional operation 824. At operation 828, changes 702 are made to the editable attachment copy 310, and at operation 830, the changes are saved to copy 310.
[0072] When it is determined at operation 822 that attachment 110 is a linked file, method 800 proceeds to operation 832, whereby a change 702 is made to attachment 110, and at operation 830, the change is saved to a master copy of attachment 110 stored in network share 118.
[0073] Subsequently, method 800 transitions from operation 830, 834, or decision operation 820 to... Figure 8A In the decision operation 836, it is determined whether an option to add reply message 602 to message 108 or dialogue 404 displayed in the communication pane 142 has been received. If it is determined that an option to reply to message 108 or dialogue 404 has been received, method 800 proceeds to... Figure 8C In operation 838, a response message 602 is generated, attaching attachment 110 (or an editable copy of attachment 310 when changes are made to the embedded file attachment 702) to the response message 602. According to one aspect, when attachment 110 or an editable copy of attachment 310 is stored in network share 118, a link 312 to the file is attached to the response message 602. According to another aspect, when attachment 110 or an editable copy of attachment 310 is stored in message repository 132, a copy of the file is embedded in the response message 602.
[0074] Method 800 proceeds to operation 840, where a reply message input is received, and at operation 842, a reply message 602 (which includes attachment 110 or a copy of attachment 310) is sent to one or more intended recipients via messaging application 122. In some examples, user 116 may wish to utilize extended messaging application functionality. Therefore, user 116 may selectively launch messaging application 122, and the reply message 602, including attachment 110 or a copy of attachment 310, is displayed in messaging application UI 402. Method 800 ends at operation 898.
[0075] While implementations have been described within the general context of program modules, in which these modules are executed in conjunction with applications running on an operating system on a computer, those skilled in the art will recognize that aspects can also be implemented in conjunction with other program modules. Typically, program modules include routines, programs, components, data structures, and other types of structures that perform specific tasks or implement specific abstract data types.
[0076] The aspects and functions described herein can be operated via a wide variety of computing systems, including but not limited to: desktop computer systems, wired and wireless computing systems, mobile computing systems (e.g., mobile phones, netbooks, tablet devices or tablet computers, laptop computers and notebook computers), handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers and mainframe computers.
[0077] Furthermore, according to one aspect, the aspects and functions described herein can operate on a distributed system (e.g., a cloud-based computing system), wherein application functions, memory, data storage and retrieval, and various processing functions can be remotely operated on each other via a distributed computing network (e.g., the Internet or an intranet). According to one aspect, the user interface and various types of information can be displayed via an onboard computing device display or via a remote display unit associated with one or more computing devices. For example, the user interface and various types of information can be displayed and interacted with on a wall surface onto which the user interface and various types of information are projected. Interaction with a wide variety of computing systems that can implement various embodiments includes: key input, touchscreen input, voice or other audio input, gesture input (when the associated computing device is equipped with detection (e.g., camera) functions for capturing and interpreting user gestures to control the functions of the computing device), and so on.
[0078] Figures 9 to 11 The associated description provides a discussion of various operating environments in which examples of the present invention can be implemented. However, referring to... Figures 9 to 11 The devices and systems shown and discussed are for illustrative purposes only and are not intended to limit the numerous computing device configurations that can be used to implement the various aspects described herein.
[0079] Figure 9This is a block diagram illustrating the physical components (i.e., hardware) of a computing device 900 that can implement examples of the present disclosure. In a basic configuration, the computing device 900 includes at least one processing unit 902 and system memory 904. According to one aspect, depending on the configuration and type of the computing device, the system memory 904 includes, but is not limited to: volatile memory (e.g., random access memory), non-volatile memory (e.g., read-only memory), flash memory, or any combination of these memories. According to one aspect, the system memory 904 includes an operating system 905 and one or more program modules 906 suitable for running software applications. According to one aspect, the system memory 904 includes a messaging application 122, a file finder application 128, and a productivity application 104. For example, the operating system 905 is suitable for controlling the operation of the computing device 900. Furthermore, the aspects are implemented in conjunction with graphics libraries, other operating systems, or any other applications, and are not limited to any particular application or system. Figure 9 The basic configuration is illustrated by the components located within the dashed line 908. According to one aspect, the computing device 900 has additional features or functions. For example, according to one aspect, the computing device 900 includes additional data storage devices (removable and / or non-removable), such as disks, optical discs, or magnetic tapes. Figure 9 This additional storage device is illustrated by means of a mobile storage device 909 and a non-mobile storage device 910.
[0080] As described above, according to one aspect, multiple program modules and data files are stored in system memory 904. When executed on processing unit 902, program modules 906 (e.g., messaging application 122, file finder application 128, and productivity application 104) perform operations including but not limited to... Figures 8A to 8C The method 800 shown illustrates processing in one or more stages. According to one aspect, other program modules used in the example include applications such as email and contact applications, word processing applications, spreadsheet applications, database applications, slideshow applications, drawing or computer-aided applications, and so on.
[0081] According to one aspect, each aspect can be implemented using electronic circuits comprising discrete electronic components, packaged or integrated into an electronic chip containing logic gates and using a microprocessor, or implemented on a single chip containing electronic components or a microprocessor. For example, each aspect can be implemented via a system-on-a-chip (SoC), wherein... Figure 9Each or most of the components shown can be integrated onto a single integrated circuit. According to one aspect, such a SOC device includes one or more processing units, graphics units, communication units, system virtualization units, and various application functions, all integrated (or “burned in”) onto a chip substrate as a single integrated circuit. When operating via the SOC, the functions described herein are operated via dedicated logic integrated on a single integrated circuit (chip) along with other components of the computing device 900. According to one aspect, aspects of this disclosure can also be implemented using other technologies capable of performing logical operations such as AND, OR, and NOT, including but not limited to mechanical, optical, fluid, and quantum technologies. Furthermore, aspects can also be implemented in a general-purpose computer or any other circuit or system.
[0082] According to one aspect, the computing device 900 has one or more input devices 912 such as a keyboard, mouse, pen, voice input device, touch input device, etc. According to one aspect, it also includes output devices 914 such as a display, speaker, printer, etc. The foregoing devices are merely exemplary, and other devices may be used. According to one aspect, the computing device 900 includes one or more communication connections 916 that allow communication with other computing devices 918. Examples of suitable communication connections 916 include, but are not limited to: radio frequency (RF) transmitters, receivers, and / or transceiver circuitry; universal serial buses (USB), parallel ports, and / or serial ports.
[0083] As used herein, the term computer-readable medium includes computer storage medium. Computer storage medium includes volatile and non-volatile, removable and non-removable media implemented using any method or technique for storing information (e.g., computer-readable instructions, data structures, or program modules). System memory 904, removable storage device 909, and non-removable storage device 910 are examples of computer storage media (i.e., memory storage). According to one aspect, computer storage medium includes RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage technologies, magnetic tape, magnetic tape, disk storage or other magnetic storage devices, or any other article of manufacture that can be used to store information and is accessible by computing device 900. According to one aspect, any such computer storage medium is part of computing device 900. Computer storage medium does not include carrier waveforms or other propagated data signals.
[0084] According to one aspect, a communication medium is embodied in computer-readable instructions, data structures, program modules, or other data in a modulated data signal (e.g., a carrier waveform or other transmission mechanism), and includes any information transmission medium. According to another aspect, the term "modulated data signal" describes a signal having one or more characteristics that are set or altered in relation to the way information is encoded in the signal. For example, but not limitingly, a communication medium includes wired media such as wired networks or direct wired connections, and wireless media such as sound waves, radio frequency (RF), infrared, and other wireless media.
[0085] Figure 10A and Figure 10B A mobile computing device 1000 (e.g., mobile phone, smartphone, tablet PC, laptop computer, etc.) that can be used to implement various aspects is shown. See also Figure 10AThe figure illustrates an example of a mobile computing device 1000 used to implement these aspects. In a basic configuration, the mobile computing device 1000 is a handheld computer with input and output units. Typically, the mobile computing device 1000 includes a display 1005 and one or more input buttons 1010 for allowing a user to input information into the mobile computing device 1000. According to one aspect, the display 1005 of the mobile computing device 1000 may also function as an input device (e.g., a touchscreen display). If included, an optional side input unit 1015 also allows additional user input. According to one aspect, the side input unit 1015 is a rotary switch, a button, or any other type of manual input unit. In alternative examples, the mobile computing device 1000 incorporates more or fewer input units. For example, in some examples, the display 1005 may not be a touchscreen. In alternative examples, the mobile computing device 1000 is a portable telephone system, such as a cellular phone. According to one aspect, the mobile computing device 1000 includes an optional keyboard 1035. According to one aspect, the optional keyboard 1035 is a physical keyboard. According to another aspect, the optional keyboard 1035 is a "soft" keyboard generated on a touchscreen display. In various aspects, the output unit includes a display 1005 for displaying a graphical user interface (GUI), a visual indicator 1020 (e.g., a light-emitting diode), and / or an audio transducer 1025 (e.g., a speaker). In some examples, the mobile computing device 1000 incorporates a vibration transducer to provide haptic feedback to the user. In another example, the mobile computing device 1000 incorporates input and / or output ports, such as audio input (e.g., a microphone jack), audio output (e.g., a headphone jack), and video output (e.g., an HDMI port), to send or receive signals to or from external devices. In yet another example, the mobile computing device 1000 incorporates peripheral device ports 1040, such as audio input (e.g., a microphone jack), audio output (e.g., a headphone jack), and video output (e.g., an HDMI port), to send or receive signals to or from external devices.
[0086] Figure 10B This is a block diagram illustrating an example architecture of a mobile computing device. That is, the mobile computing device 1000 incorporates system (i.e., architecture) 1002 to implement some examples. In one example, system 1002 is implemented as a "smartphone" capable of running one or more applications (e.g., browser, email, calendar, contact manager, messaging client, game, and media client / player). In some examples, system 1002 is integrated as a computing device, such as an integrated personal digital assistant (PDA) and cordless phone.
[0087] According to one aspect, one or more applications 1050 are loaded into memory 1062 and run on or associated with operating system 1064. Examples of such applications include telephone dialers, email programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, internet browser programs, messaging programs, and so on. According to one aspect, messaging application 122, file finder application 128, and productivity application 104 are loaded into memory 1062. System 1002 also includes a non-volatile storage area 1068 located in memory 1062. The non-volatile storage area 1068 is used to store persistent information that should not be lost when system 1002 is shut down. Application 1050 can use the information in the non-volatile storage area 1068 to store information (e.g., emails or other messages used by email applications, etc.) in the non-volatile storage area 1068. In addition, a synchronization application (not shown) is also located on system 1002 and is programmed to interact with a corresponding synchronization application located on the host computer to keep the information stored in non-volatile storage area 1068 synchronized with the corresponding information stored on the host computer. It should be understood that other applications may also be loaded into memory 1062 and run on mobile computing device 1000.
[0088] According to one aspect, system 1002 has a power supply 1070, wherein the power supply 1070 is implemented as one or more batteries. According to one aspect, the power supply 1070 also includes an external power source, such as an AC adapter or a power docking station for replenishing or charging the batteries.
[0089] According to one aspect, system 1002 includes a radio device 1072 for performing radio frequency communication transmission and reception. Radio device 1072 facilitates wireless connectivity between system 1002 and the "external world" via a communication carrier or service provider. Transmissions to and from radio device 1072 are conducted under the control of operating system 1064. In other words, communications received by radio device 1072 can be propagated to application 1050 and vice versa via operating system 1064.
[0090] According to one aspect, a visual indicator 1020 is used to provide visual notifications, and / or an audio interface 1074 is used to generate audible notifications via an audio transducer 1025. In the illustrated example, the visual indicator 1020 is a light-emitting diode (LED), and the audio transducer 1025 is a speaker. These devices can be directly coupled to a power supply 1070 such that when activated, they remain for the duration indicated by the notification mechanism (even if the processor 1060 and other components are turned off to conserve battery power). The LEDs can be programmed to remain on indefinitely until the user takes an action to indicate the device's power-on state. The audio interface 1074 is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to the audio transducer 1025, the audio interface 1074 can also be coupled to a microphone to receive audible input, for example, to facilitate telephone conversations. According to one aspect, the system 1002 also includes a video interface 1076, which enables the operation of the onboard camera 1030 to record still images, video streams, etc.
[0091] According to one aspect, the mobile computing device 1000 implementing system 1002 has additional features or functions. For example, the mobile computing device 1000 includes other data storage devices (removable and / or non-removable) such as disks, optical discs, or magnetic tapes. Figure 10B In the example, this additional storage is shown through a non-volatile storage region 1068.
[0092] According to one aspect, data / information generated or captured by mobile computing device 1000 and stored via system 1002 is locally stored on mobile computing device 1000 (as described above). According to another aspect, the data is stored on any number of storage media, which the device can access via a wireless device 1072 or via a wired connection between mobile computing device 1000 and a separate computing device associated with mobile computing device 1000 (e.g., a server computer in a distributed computing network such as the Internet). It should be understood that mobile computing device 1000 can access the data / information via wireless device 1072 or via a distributed computing network. Similarly, according to one aspect, the data / information is easily transferred between computing devices for storage and use according to known data / information transmission and storage methods (including email and collaborative data / information sharing systems).
[0093] Figure 11An example of a system architecture is shown, in which the system provides access to Attachment 110 as described above. Content is developed, interacted with, or associatedly edited using messaging application 122, document finder application 128, or productivity application 104 for storage in different communication channels or other storage types. For example, various documents can be stored using directory service 1122, web portal 1124, email service 1126, instant messaging repository 1128, or social networking site 1130. Messaging application 122, document finder application 128, or productivity application 104 is used to provide access to Attachment 110 using any of these types of systems, etc., as described herein. According to one aspect, server 1120 provides messaging application 122, document finder application 128, or productivity application 104 to clients 1105a, b, c. As an example, server 1120 is a web server that provides messaging application 122, document finder application 128, or productivity application 104 via the web. Server 1120 provides client 1105 with a messaging application 122, a file finder application 128, or a productivity application 104 via network 1110 on the web. For example, the client computing device is implemented and embodied in a personal computer 1105a, a tablet computing device 1105b, or a mobile computing device 1105c (e.g., a smartphone) or other computing device. Any of these examples of client computing devices can be used to retrieve content from storage 1116.
[0094] For example, the embodiments described above are based on block diagrams and / or operating instructions of methods, systems, and computer program products according to these aspects. The functions / actions described in these blocks may appear in a different order than that shown in any flowchart. For example, depending on the functions / actions involved, two blocks shown consecutively may be executed substantially simultaneously, or these blocks may sometimes be executed in reverse order.
[0095] The description and illustration of one or more examples provided in this application are not intended to limit or restrict the scope of protection of the claimed invention in any way. The aspects, examples, and details provided in this application are considered sufficient to convey ownership of the claimed invention and to enable others to make and use the best mode. Embodiments should not be construed as limited to any aspect, example, or detail provided in this application. Various features (including structures and methods) are intended to be selectively included or omitted, whether shown and described in combination or individually, to produce examples having a particular set of features. After the description and illustration of this application are provided, those skilled in the art will anticipate variations, modifications, and alternatives falling within the spirit of the inventive conception of the broader aspects embodied in this application without departing from the broader scope of protection of the invention.
Claims
1. A computer-implemented method for providing access to electronic message attachments to an application outside a messaging application, comprising: Receive electronic messages via a messaging application; received electronic messages include document attachments. The graph database stores data representations of the following items: the document attachments, the electronic messages, and the relationships between the document attachments and the electronic messages; Include the file attachment in the file list of files shared via multiple received electronic messages; Receive a selection of the file attachment from the file list; Interact with the graph database to identify the relationship between the selected file attachment and at least one of the plurality of received electronic messages; Retrieve the selected file attachments from the storage location; Obtain at least one received electronic message identified as being related to the selected file attachment; as well as In the productivity application user interface, the selected file attachment is displayed in the content display area, and at least one related electronic message is displayed in the communication pane.
2. The method according to claim 1, wherein, The file list is generated using raw information to identify one or more files to be included in the file list, the raw information indicating whether a file is an attachment.
3. The method according to claim 2, further comprising: The original information is used to identify whether the attachment is an embedded attachment stored in a message repository or a linked attachment stored in a network share.
4. The method according to claim 2, wherein, The use of raw information includes: Use metadata to identify the one or more files to be included in the file list; or Interact with the graph database using an application programming interface to identify one or more files to be included in the file list.
5. The method according to claim 2, further comprising: The original information is displayed in the file list.
6. The method according to claim 1, wherein, Interacting with the graph database includes interacting with the graph database using an application programming interface (API).
7. The method according to claim 1, further comprising: One or more messaging application functions are provided in the communication pane.
8. A system for providing access to electronic message attachments to an application outside a messaging application, the system comprising a computing device including: At least one processing device; as well as At least one computer-readable data storage device that stores instructions, which, when executed by the at least one processing device, enable the computing device to perform the following operations: Receive electronic messages via a messaging application; received electronic messages include document attachments. The graph database stores data representations of the following items: the document attachments, the electronic messages, and the relationships between the document attachments and the electronic messages; Include the file attachment in the file list of files shared via multiple received electronic messages; Receive a selection of the file attachment from the file list; Interact with the graph database to identify the relationship between the selected file attachment and at least one of the plurality of received electronic messages; Retrieve the selected file attachments from the storage location; Obtain at least one received electronic message identified as being related to the selected file attachment; as well as In the productivity application user interface, the selected file attachment is displayed in the content display area, and at least one related electronic message is displayed in the communication pane.
9. The system according to claim 8, wherein, The file list is generated by interacting with the graph database via an application programming interface to identify the original information associated with the file attachments.
10. The system according to claim 9, wherein, The original information indicates whether the file attachment is an embedded file stored in a message repository or a linked file stored in a network share.
11. The system according to claim 8, wherein, The system can also be operated to provide one or more messaging application functions in the communication pane.
12. The system according to claim 11, wherein, The system can also be operated for: Receive the selection of attachments for the file chosen by the editor; When the selected file attachment is an embedded file stored in the message repository, create an editable copy of the selected file attachment; and Receive changes to the editable copy of the selected file attachment.
13. The system according to claim 12, wherein, Before creating the editable copy of the selected file attachment, the system may also operate to provide at least one of the following: An upload option that enables users to create an editable copy of the selected file attachment and store the editable copy in a network share; as well as Editing options enable users to create editable copies of selected file attachments and store the editable copies in the message repository.
14. The system according to claim 12, wherein: In response to displaying the one or more messaging application functions, the system is operable to display an option to add a message; and In response to the selection of the option to add a message, the system is operable to: Generate a reply message; Attach the editable copy of the selected file attachment to the reply message; Receive reply message content; as well as Send the reply message and the editable copy of the selected file attachment to one or more intended recipients.
15. A computer-readable storage device including computer-readable instructions, which, when executed by a processing unit, are used to: Receive electronic messages via a messaging application; received electronic messages include document attachments. The graph database stores data representations of the following items: the document attachments, the electronic messages, and the relationships between the document attachments and the electronic messages; Include the file attachment in the file list of files shared via multiple received electronic messages; Receive a selection of the file attachment from the file list; Interact with the graph database to identify the relationship between the selected file attachment and at least one of the plurality of received electronic messages; Retrieve the selected file attachments from the storage location; Obtain at least one received electronic message identified as being related to the selected file attachment; as well as In the productivity application user interface, the selected file attachment is displayed in the content display area, and at least one related electronic messaging and messaging application function is displayed in the communication pane.