IP Library Granted Patent US 9,405,810
Granted Patent B2
US 9,405,810 · App. 14/584,750 · Granted Aug 2, 2016

Server side system and method for search backed calendar user interface

Inventors: Joshua R. Smith (San Francisco, CA); Anne DuBois (San Francisco, CA); Cliff Chang (San Francisco, CA); John Stahl, Jr. (San Francisco, CA); David Braginsky (San Francisco, CA); Scott Alexander Smith (San Francisco, CA)
Assignee: Asana, Inc.
G06F17/3056G06F3/0484G06F17/3053G06F17/30551G06F17/30554G06F17/30864H04L67/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,405,810
App. No.
14/584,750
Granted
Aug 2, 2016
Kind
B2
Abstract

A method is provided to produce a custom calendar user interface for display on an electronic device display screen comprising: receiving over a network code objects adapted for use to generate visual content items on the different user device display screens; receiving over the network from a user device, receiving a search query; identifying one or more respective received code objects that match the received search query; and sending over the network to one or more user devices, information indicating the identified matching code objects.

Claims (86)

1. A method to produce a custom calendar user interface (UI) for display on an electronic device display screen comprising:

receiving over a network from a plurality of different user devices, code objects and associated dates, wherein the code objects include corresponding attributes, wherein each respective received code object is adapted for use to generate within a calendar UI date pane that has a date that matches a date associated with the respective received code object, a visual content item that includes an attribute that matches an attribute included in the respective received code object;

storing the received code objects and their associated dates in a non-transitory storage device;

receiving over the network from a requesting user device, a search query that indicates attributes of at least two different code objects;

receiving over the network from the requesting user device, an indication of a calendar UI date pane range that includes multiple consecutive date panes to display within a viewing area currently displayed on a display screen of the requesting user device;

identifying multiple received stored code objects that match the received search query, based at least in part upon matching of attributes indicated within the received search query with corresponding attributes within the stored received code objects;

selecting multiple objects from among the identified objects that each is associated dates within the indicated calendar UI date pane range, wherein each selected identified object is associated with a date different from a date associated with at least one other selected identified object;

sending over the network to the requesting user device, information indicating the selected identified matching code objects; and

sending over the network to the requesting user device information indicating date panes associated with the selected identified matching code objects.

2. The method of claim 1 ,

wherein at least two received objects are associated with the different dates.

3. The method of claim 1 , further including:

producing in a non-transitory storage device an index structure to associate attribute identifiers with code object identifiers;

wherein identifying the multiple received code objects includes using the index structure to match respective code object attribute information with search query attribute information.

4. The method of claim 1 ,

wherein sending information indicating the identified matching code objects includes sending one or more of the identified matching code objects over the network to one or more user devices.

5. The method of claim 1 further including:

receiving a request from the requesting user device for information indicating identified matching code objects within an extended date range that is outside of the date indicated range; and

sending over the network to the requesting user device, information indicating identified matching code objects within the extended date range.

6. The method of claim 1 further including:

receiving a request from the requesting user device for information indicating identified matching code objects within an extended date range that is outside of the indicated date range;

in response to the received user device request, identifying multiple respective received code objects associated with dates within the extended date range; and

sending over the network to the requesting user device, information indicating identified matching code objects within the extended date range.

7. The method of claim 1 further including:

producing a calendar UI information structure that indicates a chronological ordering of identified matching code objects;

wherein sending information indicating the identified matching code objects includes sending the calendar UI information structure over the network to one or more user devices.

8. The method of claim 1 further including:

producing a calendar UI information structure that indicates a mapping of identified matching code objects to dates within a mapped date range;

wherein sending information indicating the identified matching code objects includes sending the calendar UI information structure over the network to one or more user devices;

receiving a request from the requesting user device for information indicating mapping of identified matching code objects within an extended date range that is outside of the mapped date range; and

sending over the network to the requesting user device, information indicating mapping of identified matching code objects within an extended date range.

9. The method of claim 1 further including:

producing a calendar UI information structure that indicates a mapping of identified matching code objects to dates within a mapped date range;

wherein sending information indicating the identified matching code objects includes sending the calendar UI information structure over the network to one or more user devices;

receiving a request from the requesting user device for information indicating mapping of matching code objects within an extended date range that is outside of the mapped date range;

in response to the received user device request, identifying multiple respective received code objects associated with dates within the extended date range; and

sending over the network to the requesting user device, information indicating identified matching code objects within an extended date range.

10. The method of claim 1 further including:

producing a calendar UI information structure that indicates a chronological ordering of identified matching code objects;

wherein sending information indicating the identified matching code objects includes sending the calendar UI information structure over the network to one or more user devices; and

wherein sending information indicating the identified matching code objects includes sending one or more of the identified matching code objects over the network to one or more user devices.

11. The method of claim 1 further including:

producing a calendar UI information structure that includes indicia of association of identified matching code objects with date panes of a calendar UI display grid;

wherein sending information indicating the identified matching code objects includes sending the calendar UI information structure over the network to one or more user devices; and

wherein sending information indicating the identified matching code objects includes sending one or more of the identified matching code objects over the network to one or more user devices.

12. A method to produce a custom calendar user interface (UI) for display on an electronic device display screen comprising

receiving over a network from different user devices, code objects that are adapted for use to generate visual content items on the different user device display screens;

storing the received code objects in a non-transitory storage device;

receiving over the network from a user device, a search query;

identifying multiple respective received code objects that match the received search query;

sending over the network to one or more user devices, information indicating the identified matching code objects;

wherein the received objects are associated with dates;

producing a calendar UI information structure that indicates a mapping of identified matching code objects to dates within the calendar UI information structure;

wherein producing the calendar UI information structure includes:

chronologically ordering the identified matching received code objects based upon their associated dates;

mapping a forward chronologically ordered chunk of the chronologically ordered code objects to corresponding indicia of dates within the calendar UI information structure; and

mapping a reverse chronologically ordered chunk of the chronologically ordered code objects to corresponding indicia of dates within the calendar UI information structure.

13. The method of claim 12 further including:

wherein the received objects are associated with dates;

defining a reference date; and

defining the forward and reverse chronologically ordered chunks relative to the reference date.

14. A method to produce a custom calendar user interface (UI) for display on an electronic device display screen comprising

receiving over a network from different user devices, code objects that are adapted for use to generate visual content items on the different user device display screens;

storing the received code objects in a non-transitory storage device;

receiving over the network from a user device, a search query;

identifying one or more respective received code objects that match the received search query;

sending over the network to one or more user devices, information indicating the identified matching code objects;

wherein the received objects are associated with dates;

producing a calendar UI information structure that indicates a mapping of identified matching code objects to dates within the calendar UI information structure;

wherein producing the calendar UI information structure includes:

chronologically ordering the identified matching received code objects based upon their associated dates;

mapping successive forward chronologically ordered chunks of the chronologically ordered code objects to corresponding indicia of dates within the calendar UI information structure until a prescribed number of forward chronologically ordered chunks of the chronologically code objects have been mapped; and

mapping successive reverse chronologically ordered chunks of the chronologically ordered code objects to corresponding indicia of dates within the calendar UI information structure until a prescribed number of reverse chronologically ordered chunks of the chronologically code objects have been mapped.

15. The method of claim 14 further including:

wherein the received objects are associated with dates;

defining a reference date; and

defining the forward and reverse chronologically ordered chunks relative to the reference date.

16. An article of manufacture including a non-transitory computer readable storage device encode with computer readable code to configure a computer system to perform a process that comprises:

receiving over a network from a plurality of different user devices, code objects and associated dates, wherein the code objects include corresponding attributes, wherein each respective received code object is adapted for use to generate within a calendar UI date pane that has a date that matches a date associated with the respective received code object, a visual content item that includes an attribute that matches an attribute included in the respective received code object;

storing the received code objects and their associated dates in a non-transitory storage device;

receiving over the network from a requesting user device, a search query that indicates attributes of at least two different code objects;

receiving over the network from the requesting user device, an indication of a calendar UI date pane range that includes multiple consecutive date panes to display within a viewing area currently displayed on a display screen of the requesting user device;

identifying multiple received stored code objects that match the received search query, based at least in part upon matching of attributes indicated within the received search query with corresponding attributes within the stored received code objects;

selecting multiple objects from among the identified objects that each is associated dates within the indicated calendar UI date pane range, wherein each selected identified object is associated with a date different from a date associated with at least one other selected identified object;

sending over the network to the requesting user device, information indicating the selected identified matching code objects; and

sending over the network to the requesting user device information indicating date panes associated with the selected identified matching code objects.

Assignments (2)
SECURITY INTEREST Recorded Nov 8, 2022
From: ASANA, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061898/0346 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2015
From: SMITH, JOSHUA R.; DUBOIS, ANNE; CHANG, CLIFF; STAHL, JOHN, JR.; BRAGINSKY, DAVID; SMITH, SCOTT ALEXANDER
To: ASANA, INC.
Reel/Frame 035362/0643 →
Continuity (3)
Provisional Application 62083832 · Nov 24, 2014
Provisional Application 62094599 · Dec 19, 2014
Related Publication 20160147773A1 · May 26, 2016