Embodiments of the present invention generally relate to the development of web portals. More particularly, embodiments relate to editing and previewing web portals with multiple user roles and authorization levels.
Web portals may be used in a wide variety of settings to provide users with access to information, online transactions and other functionality. While conventional web portal authoring tools may be acceptable under certain circumstances, there remains considerable room for improvement. For example, in order to view the page content of a portal as a typical user would, it may not be uncommon for the authoring tool to require the authoring session to be ended so that the author can log back into the tool and impersonate the user. Such an approach can be time consuming, inconvenient to the author, and may even lead to increased development costs. Moreover, certain web portals may display pages differently depending upon personalization settings (e.g., gold customer versus platinum customer), user identity (e.g., manager versus assistant), authentication status (e.g., authenticated versus non-authenticated), and so forth, wherein conventional impersonation techniques may fail to address the editing complexities presented by such differences.
Embodiments may include a computer program product having a computer readable storage medium and computer usable code stored on the computer readable storage medium. If executed by a processor, the computer usable code may cause a computer to establish a web portal session with a user of a web content management tool, and generate a user interface in the web content management tool during the web portal session, wherein the user interface is to include a page view and a content editing view. The computer usable code, if executed, may also cause a computer to transition the user interface between a page edit state and a page preview state while maintaining the web portal session with the user.
Embodiments may also include a computer implemented method of operating a web content management tool in which a web portal session is established with a user of the web content management tool. The method may also provide for generating a user interface in the web content management tool during the web portal session, wherein the user interface includes a page view and a content editing view. In addition, one or more user selections can be received via the user interface, wherein an author identifier and a previewer identifier may be identified based on the user selections. Moreover, the method may provide for transitioning the user interface between a page edit state and a page preview state while maintaining the web portal session with the user. In one example, transitioning the user interface includes encoding a toolbar request into a first uniform resource locator (URL). State information, and one or more of an author identifier and a previewer identifier may be encoded into a second URL, wherein the first and second URLs can be transmitted to an application server. In addition, an updated content editing view may be received from the application server. Additionally, an updated page view may be received from the application server, wherein the updated page view is dependent upon the state information and one or more of the author identifier and the previewer identifier. The method may also provide for displaying the updated page view and the updated content editing view in the user interface.
Embodiments may also include a computer program product having a computer readable storage medium and computer usable code stored on the computer readable storage medium. If executed by a processor, the computer usable code may cause a computer to establish a web portal session with a client device, transmit a page view and a content editing view to the client device, and receive a first URL and a second URL from the client device. The computer usable code, if executed, may also cause a computer to decode the first URL , decode the second URL to identify state information, and one or more of an author identifier and a previewer identifier, generate an updated content editing view based on the toolbar request, and generate an updated page view based on the state information and one or more of the author identifier and the previewer identifier. Moreover, the computer usable code, if executed, can cause a computer to transmit the updated content editing view and the updated page view to the client device, wherein the updated content editing view and the updated page view are to correspond to a transition of a web content management tool interface between a page edit state and a page preview state while the web portal session is maintained with the client device.
The various advantages of the embodiments of the present invention will become apparent to one skilled in the art by reading the following specification and appended claims, and by referencing the following drawings, in which:
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
Referring now to
In the illustrated example, the content editing view 12 and the page view 14 can be transitioned between a page edit state and a page preview state while maintaining a single web portal session with a user of the UI 10. More particularly, selecting an edit tab 16 in the content editing view 12 may place the UI 10 in the page edit state, and selecting a preview tab 18 may place the UI 10 in the page preview state. Thus, the illustrated content editing view 12 of
As will be discussed in greater detail, the transition between the page edit state and the page preview state can be accomplished by encoding certain information into one or more uniform resource locator (URL) requests associated with the UI 10, wherein the encoded information can instruct a remote application server as to how to conduct the transition. For example, if a supervisory user “Jane Doe” selects the preview tab 18 (
Transitions between the page preview state and the page edit state may therefore be readily accomplished by encoding the appropriate state and identifier information into the transmitted URLs. For example, if, on the other hand, the user selects the edit tab (
Of particular note is that the updated views in the UI 10 may be dependent upon the information encoded into the requested URLs without ending the original web portal session. For example,
Another example may be a step-up authentication in which the authentication level is increased to provide access to additional content in the page view. In still another example, the previewer identifier can be toggled between “authenticated previewer” and “unauthenticated previewer”. Such a case may be useful in determining and designing the page content that will be displayed in the event that user authentication into the web portal is unsuccessful.
In yet another example,
The content editing view 12 can be similarly tailored to the particular identifier information encoded into the URLs. In such a case, authentication information associated with the selected author identifier (e.g., John Doe's login credentials) may also be encoded into the first URL, wherein the application server may use the authentication information to determine whether the user is authorized to view certain page content. Simply put, both the page views and the content editing views may be dependent upon the state information, the previewer identifiers, the previewer authentication levels, the author identifiers, and the author authentication information, depending upon the circumstances.
Turning now to
For example,
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions. In addition, the terms “first”, “second”, etc. may be used herein only to facilitate discussion, and carry no particular temporal or chronological significance unless otherwise indicated.
Those skilled in the art will appreciate from the foregoing description that the broad techniques of the embodiments of the present invention can be implemented in a variety of forms. Therefore, while the embodiments of this invention have been described in connection with particular examples thereof, the true scope of the embodiments of the invention should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, specification, and following claims.