NAVIGATION BOOKMARKING AND REORDERING THROUGH OPTIMIZED GRAPHICAL USER INTERFACE

Aspects of the present disclosure provide techniques for providing a graphical user interface for customizable application navigation. Embodiments include displaying a list of pages associated with a software application in a navigation customization screen and receiving selections of two or more pages of the pages as bookmarks. Embodiments include receiving drag and drop input via the navigation customization screen that changes an ordering of the two or more pages within the list of the plurality of pages and receiving a search query comprising a text string. Embodiments include moving one or more pages matching the search query to a top of the list of the pages within the navigation customization screen and displaying an indication in the navigation customization screen that one of the two or more pages also matches the search query without changing the ordering of the two or more pages within the list of the pages.

Aspects of the present disclosure relate to techniques for optimized graphical user interface screens for navigation customization. In particular, techniques described herein involve providing a navigation customization screen that allows a user to dynamically select, reorder, and search for available application pages for inclusion in a customizable navigation menu.

BACKGROUND

Every year millions of people, businesses, and organizations around the world utilize software applications to assist with countless aspects of life. In some cases, a software application may have a large number of pages, and it may be difficult for a user to identify a particular page of interest. Many applications incorporate menus or sidebars that allow a user to more easily navigate the application. These existing navigational menus, however, are often unintuitive and/or static in content, and may result in inefficiencies for a user as they struggle to find a page of interest. Furthermore, existing techniques for customizing application navigation menus, such as configuring bookmarks in a web browser or other type of application, generally require a user to separately locate pages to which such bookmarks should correspond and to manually identify those pages based on such locating, and do not provide convenient mechanisms for organizing such bookmarks upon their creation. As such, existing navigational menus may result in inefficient and/or ineffective use of software applications.

As such, there is a need in the art for improved user interface screens related to application navigation.

BRIEF SUMMARY

Certain embodiments provide a method for providing a graphical user interface for customizable application navigation. The method generally includes: displaying a list of a plurality of pages associated with a software application in a navigation customization screen; receiving, within the navigation customization screen, selections of two or more pages of the plurality of pages as bookmarks; receiving drag and drop input via the navigation customization screen that changes an ordering of the two or more pages within the list of the plurality of pages; receiving, via a search field on the navigation customization screen, a search query comprising a text string; moving one or more pages matching the search query to a top of the list of the plurality of pages within the navigation customization screen; displaying an indication in the navigation customization screen that one of the two or more pages also matches the search query without changing the ordering of the two or more pages within the list of the plurality of pages; and displaying the two or more pages as the bookmarks in a navigation menu that is different from the navigation customization screen according to the ordering specified via the drag and drop input.

Other embodiments provide a system comprising one or more processors and a non-transitory computer-readable medium comprising instructions that, when executed by the one or more processors, cause the system to perform a method. The method generally includes: displaying a list of a plurality of pages associated with a software application in a navigation customization screen; receiving, within the navigation customization screen, selections of two or more pages of the plurality of pages as bookmarks; receiving drag and drop input via the navigation customization screen that changes an ordering of the two or more pages within the list of the plurality of pages; receiving, via a search field on the navigation customization screen, a search query comprising a text string; moving one or more pages matching the search query to a top of the list of the plurality of pages within the navigation customization screen; displaying an indication in the navigation customization screen that one of the two or more pages also matches the search query without changing the ordering of the two or more pages within the list of the plurality of pages; and displaying the two or more pages as the bookmarks in a navigation menu that is different from the navigation customization screen according to the ordering specified via the drag and drop input.

Other embodiments provide a non-transitory computer-readable medium comprising instructions that, when executed by one or more processors of a computing system, cause the computing system to perform a method. The method generally includes, displaying a list of a plurality of pages associated with a software application in a navigation customization screen; receiving, within the navigation customization screen, selections of two or more pages of the plurality of pages as bookmarks; receiving drag and drop input via the navigation customization screen that changes an ordering of the two or more pages within the list of the plurality of pages; receiving, via a search field on the navigation customization screen, a search query comprising a text string; moving one or more pages matching the search query to a top of the list of the plurality of pages within the navigation customization screen; displaying an indication in the navigation customization screen that one of the two or more pages also matches the search query without changing the ordering of the two or more pages within the list of the plurality of pages; and displaying the two or more pages as the bookmarks in a navigation menu that is different from the navigation customization screen according to the ordering specified via the drag and drop input.

DETAILED DESCRIPTION

Aspects of the present disclosure provide apparatuses, methods, processing systems, and computer readable mediums for optimized graphical user interface screens for navigation customization.

Software applications may include large amounts of content, and it may be difficult for users to identify and/or navigate to relevant content when needed. Existing navigation menus of software applications are typically static and/or unintuitive, and may provide limited benefit to users. According to embodiments of the present disclosure, an optimized navigation customization screen is provided via a user interface to allow a user to conveniently search for, select, and organize bookmarks for inclusion in an application navigation menu, thus providing improved application functionality, improved utilization of screen space, and an avoidance of the utilization of computing resources that would otherwise be associated with inefficient application navigation.

From a navigation menu where bookmarks are listed, a user is able to bring up a user interface screen for customizing the navigation menu (e.g., by selecting a user interface element), as described in more detail below with respect toFIG.3. The user will then be presented with a navigation customization screen that includes a list of pages available to that particular user (e.g., which may include all pages of an application or a subset of pages of the application, such as those to which the particular user has access), as described in more detail below with respect toFIGS.1and2. For example, references herein to a “page” being displayed within the list in the navigation customization screen or within the navigation menu may refer to an identifier of the page being displayed, such as a name or description of the page. Whether a page is available to the user may be determined, for example, based on the service or services to which the user has been granted access (e.g., based on permissions, purchases, subscriptions, and/or the like). The pages may be ordered in the list alphabetically and/or according to one or more other ordering conditions (e.g., which may be configurable by the user). The navigation customization screen may allow the user to select and/or unselect pages for inclusion in the navigation menu. For example, one or more user interface elements such as checkboxes adjacent to the pages in the list may, when selected or unselected by the user, cause the corresponding pages to be selected or unselected as bookmarks.

In certain embodiments, the navigation customization screen provides user interface controls that allow the user to specify an ordering of pages that are selected as bookmarks. For example, the user may be enabled to provide drag and drop input that changes the ordering of pages that have been selected as bookmarks within the list of pages displayed in the navigation customization screen. In some embodiments this is accomplished by clicking and holding an interactive element adjacent to a selected page while moving the selected page along the column of selected pages until the selected page is at a desired location in reference to the other selected pages (e.g., above or below another selected page). The ordering of selected pages indicated by the user via the navigation customization screen may dictate the order in which the bookmarks are displayed within the navigation menu.

The navigation customization screen allows the user to search through available pages by typing in one or more characters into a natural language search bar. When a search is performed, results matching characters in the search bar are indicated through ordering and/or formatting while a user-specified order of selected pages (e.g., pages selected by the user as bookmarks) is maintained. For example, any unselected pages that match the search criteria are displayed at the top of the list (e.g., immediately below the search bar), followed by selected pages in the order defined by the user (e.g., regardless of whether any of the selected pages match the search criteria). Even if one of the selected pages contains characters matching the search, it will remain in its user-prescribed position within the selected pages so that the user-specified ordering of selected pages is not disturbed. All unselected pages not matching any of the search criteria will remain at the bottom of the list of pages (e.g., organized alphabetically and/or according to some other ordering condition or conditions configured by the user) but are still available for the user to scroll through and select. Characters within displayed identifiers of pages matching those entered in the search bar may be formatted differently (e.g., shown in bold, italicized, underlined, highlighted, and/or the like) to call attention to the match while still maintaining the order described above, as described in more detail below with respect toFIG.2. The navigation customization screen may include one or more user interface controls (e.g., directional arrows) that allow the user to “toggle” between search results within the displayed list of pages. For example, selecting a forward or backward arrow may cause the list to scroll (as needed) through the list of pages so that a next matching result in a forwards or backwards direction is displayed within the screen, and that matching result may be highlighted or otherwise emphasized so that the user can easily identify that the matching result contains characters that match the search criteria. A number of pages that match the search criteria may also be displayed within the navigation customization screen, such as indicating to the user how many search results exist within the list of pages (e.g., so that the user can determine whether to scroll and/or utilize directional arrows to toggle through matching results to view matching results that are not currently displayed within the screen). The user can select a page from the list of all available pages regardless of whether the page matches search criteria or whether or not a search was even performed prior to the selection.

Lastly, the navigation customization screen may allow the user to save specified preferences (e.g., selections, un-selections, and/or ordering of pages for inclusion as bookmarks in the navigation menu). In some embodiments, a “save” button or other user interface control on the navigation customization screen is configured to, when selected, cause the user's specified preferences to be saved. The navigation customization screen may then be closed, minimized, or otherwise hidden, and the navigation menu will reflect the user's specified preferences, such as listing the selected bookmarks in the prescribed order.

Embodiments of the present disclosure offer several technical improvements over conventional techniques for assisting a user with navigation through pages of an application. For example, while conventional application navigation menus are static, techniques described herein allow an application navigation menu to be efficiently and intuitively tailored specifically to the user's preferred workflow via an optimized navigation customization screen. The customized navigation menu provides readier access to pages that are most relevant to a user within the application. Techniques described herein allow a user to customize not only which bookmarks they wish to have displayed on the navigation menu but also the order in which those bookmarks appear on the navigational menu, and allow the user to do so in a convenient, intuitive manner. This results in numerous advantages in application functionality, computational efficiency, user experience, and utilization of available space on a display screen.

For example, a particular user may have purchased a service or product that provides them with access to thirty pages that may potentially be accessed through associated bookmarks linked on the navigation menu. That user, however, may only regularly use five of those. With techniques described herein, rather than have to scroll through a list of all thirty bookmarks (sorted, for example, alphabetically) to identify and navigate to a relevant page, the user can more efficiently identify and select the bookmark they need from a list that they have not only trimmed to a more manageable size but also ordered according to their own preferences.

In addition, the optimized organization and configuration of the navigation customization screen itself also provides many improvements. Providing a unified navigation customization screen that allows searching, selecting, unselecting, and ordering of pages within a list of all available pages of the application, techniques described herein provide an improved level of efficiency for customizing a navigation menu. By including directional arrows and listing the number of matching pages for a search, as well as changing formatting of matching characters within displayed page identifiers while simultaneously maintaining the prescribed order of selected bookmarks within the displayed list of pages, the navigation customization screen described herein allows the user to more efficiently perform the process by which the navigational menu is customized.

Furthermore, the disclosed techniques improve use of a display device by making better use of screen space on the application customization screen (e g., through optimized ordering of search results within a list of available pages) and on the navigation menu (e.g., by including only those bookmarks selected by a user and in the order specified by the user). Additionally, by providing an optimized, targeted navigation menu that allows a user to more efficiently access relevant pages, techniques described herein avoid the utilization of processing and memory resources that would otherwise be associated with inefficient navigation through pages of an application (e.g., including loading and displaying pages that are not relevant to a user while the user attempts to find a relevant page).

While there are existing techniques for customizing an application navigation menu, such as allowing a user to configure bookmarks, these existing techniques generally require a user to manually locate a page and then specify that page as a bookmark based on such locating, and generally do not allow for the efficient organization of such bookmarks at the time they are created. Techniques described herein provide improved efficiency as compared to such existing techniques by allowing a user to search through all available pages in an intuitive interface, and to conveniently select pages as bookmarks and order such bookmarks within such an interface, while maintaining a user-specified ordering of selected bookmarks regardless of whether any selected bookmarks match any search queries, thus making optimal use of screen space and improving efficiency of the application.

Example User Interface Screens for Navigation Customization

FIG.1depicts a screen100comprising a user interface for customization of an application navigation menu. For example, screen100may be associated with an application that includes a navigation menu (e.g., navigation menu312of screen300ofFIG.3, described below), and may allow a user to customize the navigation menu by search for, selecting, unselecting, and ordering pages for inclusion in the navigation menu as bookmarks.

Screen100includes a list120of available pages that can be selected as bookmarks by a given user. List120may be scrollable, such as via scroll bar112, which allows the user to scroll up and down within list120. For example, list120may include other pages that are not currently visible within screen100, and these other pages may be viewed by using scroll bar112to scroll up and/or down through list120.

The pages included in list120may include all of pages of the application to which the user viewing screen100has been granted access. Each page in list120is indicated by an identifier (e.g., the titles of the pages, such as the title of page104, “Banking”) and is associated with a first user interface (UI) control (e g., UI control106) that allows the page to be selected or unselected as a bookmark. Each selected page (e.g., a page that has been selected as a bookmark, such as page104, which has been selected via UI control106) is associated with a second UI control (e.g., UI control108) that allows the selected page to be moved relative to other selected pages in order to adjust the ordering of the selected pages within list120. Adjusting the ordering of selected pages within list120causes the bookmarks to be ordered accordingly within the navigation menu. For example, a user may click and drag UI control108within list120in order to change the position of page104relative to other selected pages within list120in order to adjust the ordering. In one example, the user may use UI control108to drag and drop page104(“Banking”) below page114(“Commerce”) within list120in order to change the ordering of the selected pages and, consequently, to change the order of the bookmarks (e.g., causing “Banking” to be displayed after “Commerce” in the navigation menu).

Screen100further includes a search bar102that allows the user to search through list120, such as by entering characters into search bar102. For example, entering one or more characters into search bar102may cause a search to be performed within the pages in list120for pages that include the one or more characters (e.g., in names of the pages). The search functionality of the navigation customization screen is described in more detail below with respect toFIG.2.

A UI control110is configured to, when selected, cause any changes made within screen100to be saved, such as propagating such changes to the navigation menu. Another UI control111is configured to, when selected, cancel any changes made within screen100, such as discarding such changes and not propagating them to the navigation menu.

FIG.2depicts another example of screen100ofFIG.1comprising a user interface for customization of an application navigation menu. For example, screen100may be associated with an application that includes a navigation menu (e.g., navigation menu312of screen300ofFIG.3, described below), and may allow a user to customize the navigation menu by search for, selecting, unselecting, and ordering pages for inclusion in the navigation menu as bookmarks.

Screen100includes a list220of available pages that can be selected as bookmarks by a given user, similar to list120ofFIG.1. List120may be scrollable, such as via scroll bar112ofFIG.1, which allows the user to scroll up and down within list220. Screen100further includes search bar102and UI control111and110ofFIG.1.

List220includes three selected pages210,212, and214, which have been selected as bookmarks, such as by selecting UI controls (e.g., UI control213) displayed adjacent to identifiers of the pages within list220. Selected pages210,212, and214are arranged in a particular order within list220. For example, the user may have specified the ordering of selected pages210,212, and214by selecting and dragging one or more UI controls (e.g., UI control215).

InFIG.2, the user has entered a search query202(e.g., the text “app”) into search bar102in order to search through the available pages in list220for pages that include the text “app” (e.g., in the title of the page).

Results of the search are shown within list220via ordering and formatting. For example, pages within list220that match search query202and that are not already selected as bookmarks are moved to the top of list220(e.g., such matching unselected results may be ordered alphabetically or according to some other condition and displayed above selected pages within list220). Pages within list220that have already been selected as bookmarks are displayed within list220in the ordering specified by the user regardless of whether any such pages match search query202. Pages within list220that have not been selected as bookmarks and that do not match search query202are displayed beneath selected pages in list220.

All pages in list220that match search query202are indicated via formatting. For example, characters within such pages' identifiers (e.g., the displayed names or titles of the pages) that match search query202are displayed in different formatting (e.g., bold, italics, underlined, highlighted, and/or the like) as compared to the other characters that do not match search query202. In the depicted example, pages208,210, and214match search query202, and the characters “app” from search query202are shown in bold in the displayed names of pages208,210, and214. It is noted that showing such characters in bold is only an example, and other types of formatting may alternatively be used to indicate matching characters.

Page208, which matches search query202by including the text “app” in its title, is the only unselected page in list220that matches search query202, and so it is displayed at the top of list220, above all selected pages Two of the selected pages, specifically pages210and214, match search query202, but they are displayed in the user-defined order for the selected pages (e.g., with page212remaining between pages210and214despite page212not matching search query202). Thus, the user-defined ordering of the selected pages is maintained regardless of which pages match search query202. A user is most likely to be searching for a page that is not yet selected as a bookmark, which is why it may be advantageous to display unselected matching results at the top of the list. If a matching result has already been selected, the matching characters are indicated in the list, but such matching results are not moved to the top of the list, thereby avoiding confusion (e.g., because the user defined the ordering of the selected pages, and does not want to see that ordering changed). The user may, in some embodiments, select a previously unselected matching result (e.g., page208), and the newly selected page may be added to the list of selected pages (e.g., at the top or bottom of the list of selected pages as a starting point, such as based on configurable parameters).

A total number of matching results for search query202is shown in UI element204. Furthermore, UI element204indicates which of the matching results is currently in focus (e.g., highlighted or otherwise indicated by being displayed differently within list220). For instance, UI element204reads “⅓”, which indicates that the first of three matching results is currently in focus. UI elements206(e.g., directional arrows) allow the user to toggle through the matching results. For example, selecting a down arrow of UI elements206may cause the second matching result (e.g., page210) to be in focus, and UI element204may change to read “⅔”, which indicates that the second of three matching results is currently in focus. Selecting an up arrow of UI elements206may then cause the first matching result (e.g., page208) to again be in focus. In a different example (not shown) where there were additional matching results not displayed (e.g., because the user would need to scroll down to view those additional matching results), UI elements204and206would allow the user to identify that there are additional matching results beyond those currently displayed (e.g., because the total number of matching results in UI element204would be higher than the currently displayed number of matching results) and to efficiently access those matching results (e.g., by toggling to those results via UI elements206).

As described above, selecting UI control110may cause any changes made within screen100to be saved and propagated to the navigation menu, while selecting UI control111may cause any such changes to be discarded.

Example Navigation Menu

FIG.3depicts another example of a screen300comprising a user interface that includes a customizable application navigation menu. In particular, screen300depicts a navigation menu312that is configured to be customized through techniques described herein, such as via screen100ofFIGS.1and2.

Screen300displays an application page (e.g., a “commerce” page) within a panel320. Screen300further includes navigation menu312, which includes bookmarks that have been selected and ordered by a user via a dynamic, optimized navigation customization screen (e.g., as described above with respect toFIGS.1and2). A UI control310within navigation menu312may, when selected, cause the navigation customization screen (e.g., screen100ofFIGS.1and2) to be displayed (e.g., the navigation customization screen may be displayed as a pop up window on top of screen300, may be displayed within panel320, may be displayed instead of screen300, and/or otherwise may be displayed).

The bookmarks within navigation menu312are configured to, when selected, cause the indicated pages to be displayed (e.g., within panel320). For example, selecting bookmark314(“commerce”) within navigation menu312may cause a page named “commerce”, which may include information related to commerce, to be displayed within panel320.

Allowing the bookmarks within navigation menu312to be customized in the optimal, dynamic manner described herein provides improved application functionality, improved navigation, improved user experience, and an avoidance of utilizing computing resources that would otherwise be expended in connection with inefficiently and/or ineffectively attempting to navigate to relevant pages within the application.

Example Operations for Application Navigation Customization

FIG.4depicts example operations400related to application navigation customization. For example, operations400may be performed by one or more components of a computing system, such as system500ofFIG.5, described below.

Operations400begin at step402with displaying a list of a plurality of pages associated with a software application in a navigation customization screen.

Operations400continue at step404, with receiving, within the navigation customization screen, selections of two or more pages of the plurality of pages as bookmarks.

In some embodiments, receiving the selections of the two or more pages of the plurality of pages as bookmarks comprises receiving user selections of check boxes displayed adjacent to the two or more pages.

Operations400continue at step406, with receiving drag and drop input via the navigation customization screen that changes an ordering of the two or more pages within the list of the plurality of pages.

In some embodiments, receiving the drag and drop input via the navigation customization screen that changes the ordering of the two or more pages within the list of the plurality of pages comprises receiving a user selection and dragging, to a preferred position, of a user interface control adjacent to a first page of the two or more pages.

Operations400continue at step408, with receiving, via a search field on the navigation customization screen, a search query comprising a text string.

Operations400continue at step410, with moving one or more pages matching the search query to a top of the list of the plurality of pages within the navigation customization screen.

Operations400continue at step412, with displaying an indication in the navigation customization screen that one of the two or more pages also matches the search query without changing the ordering of the two or more pages within the list of the plurality of pages.

In some embodiments, the displaying of the indication in the navigation customization screen that the one of the two or more pages also matches the search query without changing the ordering of the two or more pages within the list of the plurality of pages comprises displaying, within the list of the plurality of pages, between the one or more pages matching the search query and the one of the two or more pages that also matches the search query, a different one of the two or more pages that does not match the search query.

In certain embodiments, the displaying of the indication in the navigation customization screen that the one of the two or more pages also matches the search query comprises changing formatting of one or more characters from the search query in displayed text of the one of the two or more pages that also matches the search query.

Operations400continue at step414, with displaying the two or more pages as the bookmarks in a navigation menu that is different from the navigation customization screen according to the ordering specified via the drag and drop input.

Some embodiments further comprise displaying, in the navigation customization screen, one or more user interface controls that, when selected, toggle between different results of the search query within the list of the plurality of pages.

Certain embodiments further comprise displaying, in the navigation customization screen, a numerical value indicating a number of pages in the list of the plurality of pages that match the search query.

In certain embodiments, the displaying of the two or more pages as the bookmarks in the navigation menu that is different from the navigation customization screen according to the ordering specified via the drag and drop input is based on receiving a selection of a user interface control in the navigation customization screen that, when selected, causes changes in the navigation customization screen to be saved.

Notably, operations400is just one example with a selection of example steps, but additional methods with more, fewer, and/or different steps are possible based on the disclosure herein.

Example Computing System

FIG.5illustrates an example system500with which embodiments of the present disclosure may be implemented. For example, system500may be configured to perform operations400ofFIG.4.

System500includes a central processing unit (CPU)502, one or more I/O device interfaces504that may allow for the connection of various I/O devices514(e.g., keyboards, displays, mouse devices, pen input, etc.) to the system500, network interface506, a memory508, and an interconnect512. It is contemplated that one or more components of system500may be located remotely and accessed via a network110. It is further contemplated that one or more components of system500may comprise physical components or virtualized components.

CPU502may retrieve and execute programming instructions stored in the memory508. Similarly, the CPU502may retrieve and store application data residing in the memory508. The interconnect512transmits programming instructions and application data, among the CPU502, I/O device interface504, network interface506, and memory508. CPU502is included to be representative of a single CPU, multiple CPUs, a single CPU having multiple processing cores, and other arrangements.

Additionally, the memory508is included to be representative of a random access memory or the like. In some embodiments, memory508may comprise a disk drive, solid state drive, or a collection of storage devices distributed across multiple storage systems. Although shown as a single unit, the memory508may be a combination of fixed and/or removable storage devices, such as fixed disc drives, removable memory cards or optical storage, network attached storage (NAS), or a storage area-network (SAN).

As shown, memory508includes bookmark data514, which may include data related to customizable bookmarks, such as all available pages of an application (e.g., application518) as well as information indicating which pages have been selected as bookmarks by a user, and information indicating a user-defined ordering of selected bookmarks.

Memory508includes a user interface516, which may be a user interface of a software application (e.g., application518), such as corresponding to screens100and300ofFIGS.1-3. While shown separately, user interface516may be part of application518.

Memory508further comprises application518, which generally represent a software application that includes a plurality of pages through which a user may navigate using a navigation menu customized through a navigation customization screen as described herein.

Additional Considerations

The preceding description is provided to enable any person skilled in the art to practice the various embodiments described herein. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments. For example, changes may be made in the function and arrangement of elements discussed without departing from the scope of the disclosure Various examples may omit, substitute, or add various procedures or components as appropriate. Also, features described with respect to some examples may be combined in some other examples. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. In addition, the scope of the disclosure is intended to cover such an apparatus or method that is practiced using other structure, functionality, or structure and functionality in addition to, or other than, the various aspects of the disclosure set forth herein. It should be understood that any aspect of the disclosure disclosed herein may be embodied by one or more elements of a claim.

As used herein, the term “determining” encompasses a wide variety of actions. For example, “determining” may include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and other operations. Also, “determining” may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and other operations. Also, “determining” may include resolving, selecting, choosing, establishing and other operations.