Sie sind auf Seite 1von 23

US 20140324943A1

(19) United States


(12) Patent Application Publication (10) Pub. No.: US 2014/0324943 A1
Antipa (43) Pub. Date: Oct. 30, 2014
(54) DRAG-AND-DROP CLIPBOARD FOR HTML (52) U.S. Cl.
DOCUMENTS CPC ...................................... H04L 67/42 (2013.01)
USPC .......................................................... 709/203
(71) Applicant: ADOBE SYSTEMS (57) ABSTRACT
NCORPORATED San Jose, CA (US
, San JOSe, (US) Techniques are disclosed for editing pages in a client-server
(72) Inventor: Damien Antipa, Saint-Louis (FR) architecture. Such as in the context of cloud-based webpage
editing applications. In one embodiment, a Clipboard Module
(73) Assignee: Adobe Systems Incorporated, San Jose, running in the client browser is invoked in response to a copy
operation that is requested with respect to a selected piece of
CA (US) content on a given page presented at the client. The Clipboard
Module is configured to store the copied content in a local
(21) Appl. No.: 13/873,401 storage, and to also present a UI clipboard element for view
ing by the user. The UI clipboard element can be dragged
(22) Filed: Apr. 30, 2013 and-dropped at a target drop location within the document
being edited. A drop Zone indicator can be visually displayed
Publication Classification so that user can see where the clipboard content will be placed
upon release of the drag-and-drop operation. Upon release,
(51) Int. Cl. the clipboard content is pasted or otherwise inserted into the
H04L 29/06 (2006.01) DOM of the target page at the current drop Zone.

DOM Element
Clipboard Web Design
Module Application /
Paste DOM Element

Memory
(or Session
Storage)
Post-Servlet
Module

Database
Patent Application Publication Oct. 30, 2014 Sheet 1 of 14 US 2014/0324943 A1

Cloud Service/Remote Server


Client -n-N
CD
Computing System Database
Browser
Web Design
Application Application Server

Clipboard POst-Servlet Module


Module
Dynamic Web Application

Fig. 1a
Patent Application Publication Oct. 30, 2014 Sheet 2 of 14 US 2014/0324943 A1

Clipboard Web Design


Module Application / s

Memory
(or Session
Storage)
Post-Servlet
Module

Fig. 1b
Patent Application Publication Oct. 30, 2014 Sheet 3 of 14 US 2014/0324943 A1

Client-side

orge Gtar)
Receive user input indicative of a copy
function associated with a DOM element
201

Invoke code (JavaScript) embedded


within page in response to copy function
2O3

Copy target DOM element to storage


205

Present clipboard UI on page


207

New Copy
Function New page? Clipboard Ul
ew copy function movement?
211 NO 209
Yes
Insert stored DOM element into targeted
drop zone via page editor system
213

Execute Post request to server


Post (Data, Media type);URL)
215

Receive response to Post request and


place content in targeted drop zone
217

Fig. 2
Patent Application Publication Oct. 30, 2014 Sheet 4 of 14 US 2014/0324943 A1

Post-Servlet
Module
'

Receive a Post request including data


associated with a client-based paste function
301

Create content using data in the request


303

Examine the Post request for media type


305

Render created content into target format


309

Set status Code to indicate Post was successful


and Location response-header to location of
Created Content
307

Add rendered content to body


of response and return to the client
317
Patent Application Publication Oct. 30, 2014 Sheet 5 of 14 US 2014/0324943 A1

sauod-?| qSoueusd 3s|eduo?ds eSuoa uedy


Patent Application Publication Oct. 30, 2014 Sheet 6 of 14 US 2014/0324943 A1

?ãed
Patent Application Publication Oct. 30, 2014 Sheet 7 of 14 US 2014/0324943 A1
Patent Application Publication Oct. 30, 2014 Sheet 8 of 14 US 2014/0324943 A1
Oct. 30, 2014 Sheet 9 of 14 US 2014/0324943 A1
Patent Application Publication Oct. 30, 2014 Sheet 10 of 14 US 2014/0324943 A1
Patent Application Publication Oct. 30, 2014 Sheet 11 of 14 US 2014/0324943 A1
Patent Application Publication Oct. 30, 2014 Sheet 12 of 14 US 2014/0324943 A1

314
º
Již
Patent Application Publication Oct. 30, 2014 Sheet 13 of 14 US 2014/0324943 A1

?ãed
US 2014/0324943 A1

*31-I
ut,
US 2014/0324943 A1 Oct. 30, 2014

DRAG-AND-DROP CLPBOARD FOR HTML 0006 FIG. 2 illustrates a client-side methodology for pro
DOCUMENTS cessing a content editing request in accordance with an
embodiment of the present invention.
FIELD OF THE DISCLOSURE 0007 FIG.3 illustrates a server-side methodology for pro
cessing a content editing request in accordance with an
0001. This disclosure relates to computer network-based embodiment of the present invention.
communications, and more particularly, to techniques for 0008 FIGS. 4a-4i show a series of page screen shots that
managing page editing and interaction between a client and collectively illustrate a page editing process in accordance
SeVe. with an embodiment of the present invention.
BACKGROUND DETAILED DESCRIPTION

0002. The client-server architecture is a common 0009 Techniques are disclosed for editing pages in a cli
approach to networking and communications between com ent-server architecture, Such as in the context of cloud-based
puter systems. Numerous applications and functions, such as webpage editing applications. In one Such embodiment, a
cloud-based document repositories and services, email, and Clipboard Module served to and running in a client browser
Internet-based communications all can be implemented using (e.g., JavaScript) is invoked in response to an edit operation
client-server architecture. In general, a client can be any com Such as a copy or cut (or other Such operation that can use an
puter (e.g., desktop, laptop, tablet, Smartphone, etc) or com intermediate content holding location) that is requested with
puter program that queries a server to make use of a resource, respect to a selected piece of content on a given page pre
and a server is a computer system configured to share its sented at the client. The content may be, for example, any
resources with requesting clients. Example resources that can object such as text, an image, a graphic, or an embedded file
be shared between a server and client are numerous and (e.g., video or audio). The Clipboard Module is configured to
virtually unlimited, including data (e.g., information data store the copied content in a browser session storage or other
bases and blogs), data storage systems (e.g., repositories for Suitable local storage, and to also presenta user interface (UI)
storing and organizing client files and data), and processing clipboard element representative of that content storage that
capability (e.g., central processing unit and/or graphics pro is accessible to the user. In particular, the UI clipboard ele
cessing unit), to name a few. Client and server computing ment can be dragged-and-dropped at a target drop location
systems typically communicate with one anotherina request within the document being edited. In some embodiments, a
response protocol, where the client sends a request and the drop Zone indicator is visually presented so that user can see
server returns a response to that request. where the clipboard content will be placed upon release of the
drag-and-drop operation. Upon release of the drag-and-drop,
0003. As is further known, a browser is a client-side appli the clipboard content is pasted or otherwise inserted into the
cation commonly used to initiate client requests to a server, page at the current drop Zone. If multiple pieces of content are
wherein a desired resource of the server is identified by a represented in the clipboard, a user prompt may be provided
Uniform Resource Identifier (URI) and may be, for example, allowing the user to choose specific pieces, in accordance
a webpage, image, video or other consumable content. As is with some embodiments. Alternatively, all pieces of content
further known, a uniform resource locator (URL) is a type of can be pasted by default.
URI that defines the network location of a specific represen 0010 General Overview
tation for a given resource, and also defines the file extension 0011 Managing webpage state and interaction between a
that indicates what content type is available at the URL. client and server is generally a difficult problem for website
Although browsers are primarily used for Internet-based developers. One common approach is to use Ruby to generate
communications, they can also be used to access file systems JavaScript code, which is sent by server in response to a client
as well as information provided by servers in private net request. With such an approach, Ruby code effectively ren
works. As is further known, HyperText Markup Language ders instructions and the resulting JavaScript renders the page
(HTML) is the main markup language for creating pages and data. With respect to web-based page editor systems, as user
other information that can be displayed in a browser, and (e.g., website developer) at a given client computer system
HTML elements are the building blocks of most websites. can access a given page editing application provided by a
HTML allows objects and content to be embedded and can be server and use that application to develop pages of a website.
used to create interactive forms, and provides a mechanism During a page editing process, relocating content from one
for creating documents by specifying structural Semantics for location on a page to another location on that page is done
text such as headings, paragraphs, links, and other items. through a series of cut/copy and paste functions with mouse
HTML can also embed Scripts (e.g., Such as JavaScript-based or keyboard interaction. For instance, a typical page editing
code) which affect the behavior of a given HTML page at the system provides multiple user interface buttons to achieve
client. exact positioning of the content to be pasted, such as an
“insert before element” button and an “insert after element’
BRIEF DESCRIPTION OF THE DRAWINGS button. Thus, placing the content in the desired location can
be complicated or otherwise involve multiple steps and user
0004 FIG. 1a illustrates a cloud-based page editing sys actions.
tem configured in accordance with an embodiment of the 0012. Thus, and in accordance with an embodiment of the
present invention. present invention, techniques are provided herein for editing
0005 FIG. 1b illustrates a sequence of interactions pages in the context of a client-server architecture. The tech
between the components of the cloud-based page editing niques can be implemented, for example, with code that is
system shown in FIG. 1a, in accordance with an embodiment embedded within a page and executes within a browser of the
of the present invention. client computer so as to allow drag-and-drop functionality
US 2014/0324943 A1 Oct. 30, 2014

with respect to placement of content on a given page. The can be placed. In this way, pre-defined fields of a given page
pages may be, for example, webpages provided by a server can be provisioned (e.g., via a page template) so that the user
and accessible to a client via the Internet, or pages provided is only able to drop the clipboard within one of those pre
by a server and accessible to a client only via a private net defined fields. Conventional drag-and-drop functionality and
work (Such as a company-wide internal network). One target location highlighting can be used, as will be appreci
example embodiment of the invention can be implemented, ated in light of this disclosure.
for instance, in or otherwise used in conjunction with a cloud 0015. Upon release of the UI clipboard element, the clip
based webpage editing application, such as Adobe R. Dream
weaver(R) or any other web design application that allows for board content can be pasted or otherwise inserted into the
editing of pages that can be served to a client computing document object model (DOM) of the target page at the
system. As will be appreciated in light of this disclosure, a current position or closest pre-defined field. In one Such
website developer can interact with and edit the served pages example embodiment, the Clipboard Module is configured to
of a given website as desired including movement of content generate an HTTP Post request in response to release of the
within the pages making up that website, with corresponding UI clipboard element, the request including the clipboard
updates provided back to the server. content (oran otherwise selected piece of content represented
within the clipboard). A Post-servlet Module at the server can
0013. In some such embodiments, a Clipboard Module is be programmed or otherwise configured to process the Post
integrated with the page editing application, and a servlet request and provide a response back to the client. The Clip
configured to execute on an application server effectively board Module can be further configured to insert the returned
serves the page editing application with the Clipboard Mod content into the DOM at the target drop location, in accor
ule to the client. In this way, the page editing application dance with an embodiment. As is known, a DOM is an appli
including the Clipboard Module is executable within the cation programming interface that generally defines the logi
browser on the client-side. This client-side Clipboard Module cal structure of a document (e.g., HTML and XML webpages/
can be invoked, for example, in response to an edit operation documents) and the way that document is accessed and
Such as a copy or cut operation (or any other operation that manipulated. The DOMallows a website developer to build a
involves moving or copying content to a holding or otherwise webpage, navigate its structure, and add, modify, or delete
intermediate location) that is requested with respect to a elements and content.
selected piece of currently displayed content (e.g., text,
graphic, image, embedded file, or other selectable page con 0016 System Architecture
tent) on a given page presented at the client. The Clipboard 0017 FIG. 1a illustrates a cloud-based page editing sys
Module is programmed or otherwise configured to store the tem configured in accordance with an embodiment of the
target content in a browser session storage or other Suitable present invention. As can be seen, the system includes a
local storage or memory location at the client, and to also dynamic web application executable on an application server
place a user interface (UI) element representative of that and programmed or otherwise configured to interact with a
storage on the page for viewing by the user, Such as a virtual client that is communicatively coupled to the application
clipboard (generally referred to herein as a UI clipboard ele server via a network, and to provide a Web Design Applica
ment or clipboard). The Clipboard Module may be further tion to the user of the client. The client includes a user com
configured to annotate the UI clipboard element to provide a puting system having a processor (CPU) and memory, and a
degree of feedback to the user, such as the number and/or browser application that can be used to access via the network
names of content pieces stored therein. the web design application and resources of the application
0014. In response to the user dragging and dropping the UI server (including the database). Requested content may be
clipboard element, the Clipboard Module is further config provided in complete page form including any number of
ured to execute a corresponding drag-and-drop operation so components, or a partial page such as one component of a
as to place content represented in the UI clipboard element at given page. As can be further seen, the dynamic web appli
a target drop location within the document being edited, cation includes a Post-Servlet Module that is configured to
which may be on the same page or a different page. The process Post requests and post the related content to the
drag-and-drop operation may be carried out, for example, via database. The dynamic web application may further include
a mouse click-and-hold action for cursor based user interface other functional modules as will be appreciated, such as a
systems, or a tap-and-hold action for touchscreen based user Get-Servlet Module (for processing Get requests and retriev
interface systems. Other Suitable user interface mechanisms ing content from the database) and other modules Such as
can be used to carry out the drag-and-drop operation, as will those related to conventional page editing and that can be
be appreciated in light of this disclosure. In any such cases, employed by the client-side Web Design Application. In addi
the user can drag or otherwise move the UI clipboard element tion, pages served by the application server in response to
around on the screen and drop it at a target location for the requests from the client include one or more renderable com
content in the UI clipboard element. Anytime a page is ponents as well as instructions/code generally referred to
loaded, the Clipboard Module is initialized and reads from the herein as a Clipboard Module that is executable in the client
session storage (or other local storage), so the UI clipboard browser (e.g., JavaScript applet or other suitable code). Such
element is available across all pages of a given site and for all a client-server arrangement may be suitable, for example, for
HTTP requests, in accordance with an embodiment. In some any online page editing service (e.g., cloud-based website
cases, a drop Zone indicator can be visually displayed so that design and editing tools and applications), or any other net
user can see where the clipboard content will be placed upon work-based system where it is desirable to allow a client to
release of the drag-and-drop operation. For instance, if the UI copy or cut or otherwise move content on a given page or from
clipboard element is moved above a position where the stored page to page of a given website. Numerous configurations and
content can be inserted, then a pre-defined field below the UI variations on the depicted arrangement will be apparent in
clipboard element appears which indicates where the content light of this disclosure.
US 2014/0324943 A1 Oct. 30, 2014

0018. The network can be any communications network, sending the requested page. Further assume that the requested
Such as a user's local area network and/or the Internet, or any page includes a number of renderable component(s) which
other public and/or private communication network (e.g., the user can select, such as text, graphics, images, embedded
local and/or wide area network of a company, etc). The user's video, embedded audio, or any combination thereof and/or
computing system (client) can be implemented with any Suit other objects, and that the user is developing a products web
able computing device. Such as a laptop, desktop, tablet, site for potential consumers to access and make product pur
Smartphone, or other Suitable computing device capable of chase. One example page is shown in FIG. 4a, which includes
accessing a server via a network and displaying content to a a products page showing a number of components that can be
user. The computing system may employ any number of selected and evaluated by a consumer interested in purchas
Suitable user input mechanisms, such as a mouse, keyboard, ing the various corresponding products (computers, mobile
touch screen, trackpad, Voice-activated command interface, phones, and monitors in this example case). The selectable
or any combination thereof. The browser application can be components may be, for example, in the form of hyperlinks
implemented using any number of known or proprietary that when selected cause additional content or pages to be
browsers or comparable technology that facilitates retrieving, provided to the consumer, as normally done (any Suitable
presenting, and traversing information resources on a net website navigation techniques and structure can be used). In
work, such as the Internet, and which allows for the execution addition, there is some informational text that the potential
of page-embedded code such as a page editing system includ COSU Cal See.
ing the Clipboard Module. The database can be, for example, 0022 Now, assume that the user developing the website
a Java content repository (JCR) or any other Suitable storage wishes to refine the page via an edit operation that includes
facility accessible to the server. copying content from one page location to another page loca
0019. The Clipboard Module is integrated with or other tion, and has selected that content using any Suitable content
wise operates in conjunction with the Web Design Applica selection mechanism. For instance, and with reference to the
tion (e.g., page editing application) to provide drag-and-drop example embodiment shown in FIG. 4b, the user has selected
clipboard functionality as variously described herein. As will the paragraph of informational text using a cursor-based
be appreciated in light of this disclosure, the local storage or action (e.g., double-click on target paragraph, or a click-drag
memory where content of the UI clipboard element is stored and-release action across the target paragraph). Alternatively,
persists across all pages and all HTTP requests (e.g., Post and for a touchscreen configuration, the paragraph of text can be
Get requests, etc). Further details of an example system con selected using a finger or stylus action over the paragraph, for
figured in accordance with an embodiment of the present instance. In a more general sense, any given DOM element
invention and including a Clipboard Module and a Post can be selected by the user.
Servlet Module will be provided in turn with reference to 0023. Once target content is selected, the website devel
FIG.1b, 2, 3, and 4a-i, each of which will be discussed in turn. oper/user may initiate an editing operation on it. For instance,
0020. As will be appreciated in light of this disclosure, the in one example embodiment, an editing UI interface is auto
various modules and components of the system shown in FIG. matically invoked and presented to the user in response to a
1a, such as the Clipboard Module, Web Design Application, content selection being made. For example, one such embodi
and Post-Servlet Module, can be implemented in software, ment is shown in FIG. 4c, wherein in response to a content
Such as a set of instructions (e.g., C, C++, object-oriented C. selection being made, the Web Design Application is config
JavaScript, Java, BASIC, etc) encoded on any computer read ured to present an Options Menu. Overlay and a UI Selection
able medium or computer program product (e.g., hard drive, Menu to the user. As can be seen in this example case, one of
server, disc, or other Suitable non-transient memory or set of the UI Selection Menu options is a copy button, with other
memories), that when executed by one or more processors, buttons including any number of desired or otherwise typical
cause the various methodologies provided herein to be carried functions (e.g., move, draw, delete, close menu, etc). In addi
out. In other embodiments, the functional components/mod tion, the Options Menu. Overlay includes a number of tool or
ules may be implemented with hardware, Such as gate level functional options, including a Clipboard element at the top
logic (e.g., FPGA) or a purpose-built semiconductor (e.g., of the menu along with other example functional elements
ASIC). Still other embodiments may be implemented with a (e.g., Text, Images, Columns, etc).
microcontroller having a number of input/output ports for 0024 Continuing with reference to the example embodi
receiving and outputting data, and a number of embedded ment shown in FIG. 4d, in response to the user clicking or
routines for carrying out the functionality described herein. In otherwise selecting the copy button of the UI selection menu,
a more general sense, any suitable combination of hardware, the Web Design Application is configured to trigger a copy
Software, and firmware can be used. In one specific embodi function call to the Clipboard Module, as shown in FIG. 1b
ment, the Clipboard Module of the Web Design Application is (Copy DOM Element). In response, the Clipboard Module is
implemented with JavaScript or other downloadable code configured to implicitly trigger a save operation (Set Ele
that can be provisioned in real-time to a client requesting ment) in the browser session storage or other Suitable local
access to the application server, and the Post-Servlet Module storage or memory, as further shown in FIG. 1b. In this way,
is implemented with Java or C++. Numerous other specific the stored content is available across all pages of the site and
configurations can be used, as will be apparent in light of this all HTTP requests. In addition, the Clipboard Module of this
disclosure. example embodiment is configured to update the presentation
0021 FIG. 1b illustrates a sequence of interactions of the Clipboard element of the Options Menu Overlay to
between the components of the cloud-based page editing reflect that the Clipboard element now includes 1 object (i.e.,
system shown in FIG. 1a, in accordance with an embodiment the selected text just copied).
of the present invention. For purposes of discussion, assume 0025. As will be appreciated in light of this disclosure,
an initial page request from the client has already been other embodiments may include different editing tools/func
received by the server and that the server has responded by tions and invocation schemes as well as a different look and
US 2014/0324943 A1 Oct. 30, 2014

feel. For instance, Some web design applications may include 0028. As will be appreciated, although an AJAX call and
various available editing options (e.g., copy, cut, delete, Post-Servlet Module are shown, any suitable HTTP server
move, etc) configured into a toolbar that is accessible to the technology can be used (e.g., a PHP application can be used
user somewhere on the page (e.g., top or bottom of page). This handle Post requests and decide if it is valid and further
toolbar may be presentatall times, or only after a user content update values in the database). As will be further appreciated,
selection is made if so desired. In other example embodi this post-release processing is transparent to the user, who
ments, such as the one shown in FIG. 4d, the user can right generally sees the content timely placed as desired, such as
click on selected content and be presented with an edit options shown in the example of FIG. 4g. The user can then further
pull-down menu, including a copy function. As can be further editor otherwise refine the content as desired, such as shown
seen, one the user selects the copy option of the pull-down in FIG. 4h. Here the user pasted and edited the content to
menu, the Clipboard element displayed in the toolbar at the separate out the informational text with respect to an on-going
top of the page is annotated (1 object) to reflect that target sales event.
content has been copied to the memory. Numerous other Such 0029. Note that in this example embodiment, the content
UI control features and layouts can be provisioned with a was pasted on the same page from which it was copied.
drag-and-drop element as described herein, using any known Further note, however, that anytime a page is loaded, the
or custom technologies as will be appreciated in light of this Clipboard element can be initialized and reads from the local
disclosure. storage (browser session storage or other local memory), so
0026. In any such cases, the user may now drag the Clip as to provide each page with a droppable Clipboard element.
board element presented on the screen to a target location Thus, in other embodiments, the content can be copied from
within a given page of the site and drop the Clipboard element one page and pasted to another. To this end, the Clipboard
at that location, as generally shown in FIG. 4e. In some Such Module is further configured to access the local storage to
embodiments, as the user drags the Clipboard element either place content therein (Set Element) or retrieve content
around, the Web Design Application can be configured to therefrom (Get Element), as further shown in the example
highlight target drop Zones in which the element can be embodiment of FIG. 1b.
dropped as the element is passed over or otherwise suffi 0030. Also, as previously explained, if the Clipboard ele
ciently near those Zones. FIG. 4f shows one such example ment has multiple pieces of content stored therein, the user
embodiment using highlighted drop Zone indicators. As pre may be given a chance to pick the desired content to be pasted,
viously explained, the pre-defined Zones can be part of the in accordance with Some embodiments. For instance, upon
DOM or template used to make the given page, and are known release of the Clipboard element, the user may be prompted
to the Web Design Application such that real-time highlight with a pop-up window that indicates each piece of content
ing can be readily provided. Such drop Zone highlighting can represented in the Clipboard element. Each element listed in
be used to give the user a better indication of where the the pop-up window can be associated with a UI selection
content will be placed upon release of the drag operation. mechanism (e.g., radio button or check box) that the user can
0027. Upon release of the drag operation, the process of select, and then select a submit or 'OK button to have those
inserting the stored DOM element(s) represented in the Clip selected pieces of content pasted to the target drop location.
board element at the target drop Zone indicator of the target One such example embodiment is shown in FIG. 4g'.
page may be executed. For example, and with further refer 0031. Note that the Clipboard Module may include a
ence to FIG. 1b, in response to the release of the drag-and degree of user-configurability that dictates functionality of
drop operation, the Clipboard Module implicitly sends an the Clipboard Module, in accordance with some embodi
AJAX Post request (e.g., Save/Paste) to the server and also ments. For example, in Some Such embodiments, the user can
notifies the Web Design Application of the Post request (Paste access a configuration user interface of the Clipboard Module
DOM Element). As can be further seen in FIG. 1b, the Post that allows the user to define that either all content pieces will
Servlet Module processes the Post request (sets status and be automatically pasted on drop or that the user will be pro
notes location of content created and rendered in response to vided with a pop-up window allowing the user to choose the
request) and provides the server's response back to the Web desired pieces to be pasted. Such a configuration user inter
Design Application, which processes the response (e.g., with face can be accessed, for instance, at any time by selecting a
respect to handling Success or error) and determines where to configuration option in the tool bar or a configuration button
place the received content. This request-response exchange or any other such suitable UI mechanism that can be selected
between the client and server ensures that the content data at So as to cause presentation of one or more configurable
the server is in sync with the content data at the client. Thus, options that can be set by the user. Any number of functional
in some embodiments, note that the initial content locally features may be hardcoded or user-configurable, depending
pasted at the client is Subsequently replaced by the content on desired performance and flexibility of target application,
returned in the Post request, so as to effectively provide a and numerous configurations will be apparent in light of this
seamless content placement. In other embodiments, the Post disclosure.
request may not include the rendered content but rather only 0032 Methodology
returns a status. In Such cases, and assuming the post request 0033 FIG. 2 illustrates a client-side methodology for pro
was successful, a Subsequent Get request from the client can cessing a content editing request in accordance with an
be used to retrieve the content to ensure the client-side and embodiment of the present invention. As previously
server-side content are in Sync. In any such cases, if the server explained, the methodology can be carried out via a web
fails to successfully render the requested content (for what design application (page editor system) or other code embed
ever reason), then a status code indicating that failure can be ded or otherwise executable within a browser for a given page
used to notify the client-side, thereby triggering client-side served to a client. In accordance with one such embodiment,
code to remove the pasted content and to inform the user the web design application is programmed or otherwise con
accordingly. figured with a JavaScript application programming interface
US 2014/0324943 A1 Oct. 30, 2014

(API) or other suitable client-side code can be used to imple 0038. The method includes receiving 301 a Post request
ment the methodology within a browser application execut including data associated with a client-based paste function,
ing on the client. and creating 303 the desired content using data in the request.
0034. As can be seen, the method includes receiving 201 The method further includes examining 305 the Post request
user input indicative of a copy function associated with a for a media type (e.g., HTML, XML, JSON), and rendering
DOM element (such as shown in FIG. 4d or 4d). The method the created content into target format. The method further
continues with invoking 203 code (e.g., JavaScript) embed includes setting a status code (e.g., 201 status code, per HTTP
ded within the page in response to the copy function being specification 1.1) to indicate the Post request was successful
engaged, and copying 205 the target DOM element to storage and a Location response-header (also per HTTP specification
(such as shown in FIG. 1b). The method continues with pre 1.1) to location of the created content. The method further
senting 207 a clipboard UI element on the page (such as includes adding 317 the rendered content to the body of the
shown in FIG. 4d or 4d). As further previously explained, the response and returning the response to the client. The user at
clipboard UI element may be annotated to indicate, for the client can then further edit the content of the page, as
example, a number of DOM elements represented therein. desired. In other embodiments, recall that the response to the
Post request may not include the requested content. In Such
0035. The method continues with determining at 209 if the cases, the server can be further configured to Subsequently
clipboard UI element is being moved. If not, then the method receive a Get request and to provide the desired content cre
continues with waiting for either movement of the clipboard ated by the earlier Post request.
UI element and continuously monitoring at 211 to see ifa new 0039 Thus, one embodiment of the present invention
page or new copy function as been selected. If no movement includes a client-side API which allows other modules or
has occurred and a new copy function has been engaged, then code to access the Clipboard element's storage (e.g., to add
the method continues at 205 as previously discussed. Thus, new content to the storage). The API can be, for example, a
multiple DOM elements can be saved to the clipboard UI Javascript module executable in the browser, and the other
element, if so desired. If no movement has occurred and a new executable modules/code corresponding to UI control ele
page has been accessed, then the method continues at 207 as ments (e.g., copy button on the toolbar or elsewhere on the
previously discussed, so that the clipboard UI element can be page) are configured to recognize when a given UI control
presented on that page as well, if so desired. element has been clicked or otherwise selected and to access
0036. If movement of the clipboard UI element is the API to store new elements in the clipboard, which can
detected, then the method includes inserting 213 the stored Subsequently be dragged-and-dropped at some desired loca
DOM element into a targeted drop Zone via the web design tion within a page of a given website.
application, executing 215 a Post request to the server (Such 0040. Numerous embodiments will be apparent in light of
as: Post (Data, Media type); URL, and receiving 217 a this disclosure, and features described herein can be com
response to the Post request and placing the returned content bined in any number of configurations. One example embodi
in the targeted drop Zone. Such as shown in FIG. 4f 4g or 4g. ment of the present invention provides a computer imple
and 4h and further discussed with reference to FIG. 1b. As
previously explained, a Get request may be used in conjunc mented method for editing a page in a client-server
arrangement. The method includes copying, by a client com
tion with the Post requestin Some embodiments, such as those puting system, a selected piece of content to a local storage at
where the response to the Post request does not include the the client computing system, the selected piece of content
desired content. For example, and in accordance with one being presented on a page served to a browser of the client
specific such embodiment, the response provided by the computing system by a server computing system with which
server (to the Post request) is exposed to a client-side module the client computing system is in communication. The
(e.g., Clipboard Module) which reads the response, and if the method further includes presenting, by the client computing
server confirms that the insert/post operation was successful, system, a clipboard user interface (UI) element on the page,
then the client-side Clipboard Module can be further config and in response to the clipboard UI element being moved to
ured to refresh the pasted/posted DOM element by sending an and dropped at a target location, inserting the stored selected
HTTP Get request to the server to receive the recently posted piece of content at the target location. In some cases, in
DOM element (to be in sync with the server). If the server has response to the clipboard UI element being moved to and
rejected the DOM element drop at the target drop position or dropped at the target location, the method further includes:
otherwise indicates that the insert/post operation has failed executing a post request to the server computing system, the
(for whatever reason), then the Clipboard Module can be post request including the stored selected piece of content;
further configured to delete the temporarily pasted paragraph and receiving a response to the post request indicating a status
from the page. In one such embodiment, the Clipboard Mod of the post request. In some Such cases, in response to the
ule is further configured to give the user a visual feedback status indicating the post request was successful, the method
regarding the content drop failure (e.g., such as a prompt further includes: executing a get request to the server com
indicating that the content placement operation failed and/or puting system, the get request requesting the server comput
presentation of appropriate fail codes and any suggested ing system to return content resulting from the post request;
remedial action). receiving a response to the get request including the requested
0037 FIG.3 illustrates a server-side methodology for pro content resulting from the post request; and refreshing con
cessing a content editing request in accordance with an tent of the target location with the requested content. In other
embodiment of the present invention. As can be seen, this Such cases, the response to the post request includes content
method can be carried out, for example, via a Post-Servlet resulting from server processing of the post request, and the
Module or other code executable at the server. In accordance method further includes refreshing content of the target loca
with one such embodiment, Java or other suitable server-side tion with that content. In other Such cases, in response to the
code can be used to implement the methodology. status indicating the post request was not successful, the
US 2014/0324943 A1 Oct. 30, 2014

method further includes at least one of removing the content Some cases, the one or more client-side modules are further
inserted at the target location; and presenting visual feedback configured to at least one of present a drop Zone indicator
regarding content drop failure. In some cases, the target loca during movement of the clipboard UI element, the presented
tion is on a different page than the page with the selected piece drop Zone indicator showing where the stored selected piece
of content (of course, it may be on the same page in other of content would be inserted if the clipboard UI element was
cases). In some cases, the method includes presenting a drop dropped at that moment; and in response to the local storage
Zone indicator during movement of the clipboard UI element, including multiple pieces of content, present a user interface
the presented drop Zone indicator showing where the stored mechanism configured to receive a choice of one or more of
selected piece of content would be inserted if the clipboard UI those pieces, and the stored selected piece of content that is
element was dropped at that moment. In some cases, the inserted at the target location is the one or more chosen pieces.
method is carried out by code embedded within the page and 0042. The foregoing description of example embodiments
executable in the browser of the client computing system. In of the invention has been presented for the purposes of illus
Some cases, the method includes receiving, at the client com tration and description. It is not intended to be exhaustive or
puting system, a user input associated with the selected piece to limit the invention to the precise forms disclosed. Many
of content, thereby causing the copying and presenting to be modifications and variations are possible in light of this dis
carried out. In some cases, in response to the local storage closure. It is intended that the scope of the invention be
including multiple pieces of content, the method further limited not by this detailed description, but rather by the
includes presenting a user interface mechanism configured to claims appended hereto.
receive a choice of one or more of those pieces, and the stored What is claimed is:
selected piece of content that is inserted at the target location 1. A computer implemented method for editing a page in a
is the one or more chosen pieces. Variations will be apparent client-server arrangement, the method comprising:
in light of this disclosure. For example, another embodiment copying, by a client computing system, a selected piece of
of the present invention provides a computer program product content to a local storage at the client computing system,
or one or more computer readable mediums encoded with the selected piece of content being presented on a page
instructions that when executed by one or more processors served to a browser of the client computing system by a
cause a process for editing a page in a client-server arrange server computing system with which the client comput
ment to be carried out, wherein the process includes function ing system is in communication;
ality as variously defined in this paragraph. presenting, by the client computing system, a clipboard
0041 Another embodiment of the present invention pro user interface (UI) element on the page; and
vides a system for editing a page in a client-server arrange in response to the clipboard UI element being moved to and
ment. The system includes one or more client-side modules dropped at a target location, inserting the stored selected
executable in a browser of a client computer and configured piece of content at the target location.
to: copy a selected piece of content to a local storage at the 2. The method of claim 1 wherein in response to the clip
client computer, the selected piece of content on a page served board UI element being moved to and dropped at the target
to the client computer; present a clipboard user interface (UI) location, the method further comprises:
element on the page; and in response to the clipboard UI executing a post request to the server computing system,
element being moved to and dropped at a target location, the post request including the stored selected piece of
insert the stored selected piece of content at the target loca content; and
tion. The system further includes a server computer config receiving a response to the post request indicating a status
of the post request.
ured to serve the page and the one or more client-side modules 3. The method of claim 2 wherein in response to the status
to the browser of the client computer, wherein the one or more indicating the post request was successful, the method further
client-side modules are embedded within the page. In some comprises:
cases, in response to the clipboard UI element being moved to executing a get request to the server computing system, the
and dropped at the target location, the one or more client-side get request requesting the server computing system to
modules are further configured to: execute a post request to return content resulting from the post request;
the server computer, the post request including the stored receiving a response to the get request including the
selected piece of content; and receive a response to the post requested content resulting from the post request; and
request indicating a status of the post request. In some Such
cases, in response to the status indicating the post request was refreshing content of the target location with the requested
COntent.
successful, the one or more client-side modules are further
configured to: execute a get request to the server computer, 4. The method of claim 2 wherein the response to the post
the get request requesting the server computer to return con request includes content resulting from server processing of
tent resulting from the post request; receive a response to the the post request, and the method further comprises refreshing
get request including the requested content resulting from the content of the target location with that content.
post request; and refresh content of the target location with 5. The method of claim 2 wherein in response to the status
the requested content. In other such cases, the response to the indicating the post request was not successful, the method
post request includes content resulting from server process further comprises at least one of
ing of the post request, and the one or more client-side mod removing the content inserted at the target location; and
ules are further configured to refresh content of the target presenting visual feedback regarding content drop failure.
location with that content. In other Such cases, in response to 6. The method of claim 1 wherein the target location is on
the status indicating the post request was not successful, the a different page than the page with the selected piece of
one or more client-side modules are further configured to at COntent.
least one of remove the content inserted at the target location; 7. The method of claim 1 wherein the method further
and present visual feedback regarding content drop failure. In comprises presenting a drop Zone indicator during movement
US 2014/0324943 A1 Oct. 30, 2014

of the clipboard UI element, the presented drop Zone indicator 17. The computer program product of claim 10 wherein the
showing where the stored selected piece of content would be process is carried out by code embedded within the page and
inserted if the clipboard UI element was dropped at that executable in the browser of the client computing system.
moment. 18. The computer program product of claim 10, the process
8. The method of claim 1 wherein the method is carried out further comprising:
by code embedded within the page and executable in the receiving, at the client computing system, a user input
browser of the client computing system. associated with the selected piece of content, thereby
9. The method of claim 1, further comprising: causing the copying and presenting to be carried out.
receiving, at the client computing system, a user input 19. The computer program product of claim 10 wherein in
associated with the selected piece of content, thereby response to the local storage including multiple pieces of
causing the copying and presenting to be carried out. content, the process further comprises presenting a user inter
10. A computer program product encoded with instructions face mechanism configured to receive a choice of one or more
that when executed by one or more processors cause a process of those pieces, and the stored selected piece of content that is
for editing a page in a client-server arrangement to be carried inserted at the target location is the one or more chosen pieces.
out, the process comprising: 20. A system for editing a page in a client-server arrange
copying, by a client computing system, a selected piece of ment, the system comprising:
content to a local storage at the client computing system, one or more client-side modules executable in a browser of
the selected piece of content being presented on a page a client computer and configured to:
served to a browser of the client computing system by a copy a selected piece of content to a local storage at the
server computing system with which the client comput client computer, the selected piece of content on a
ing system is in communication; page served to the client computer,
presenting, by the client computing system, a clipboard present a clipboard user interface (UI) element on the
user interface (UI) element on the page; and page; and
in response to the clipboard UI element being moved to and in response to the clipboard UI element being moved to
dropped at a target location, inserting the stored selected and dropped at a target location, insert the stored
piece of content at the target location. selected piece of content at the target location; and
11. The computer program product of claim 10 wherein in a server computer configured to serve the page and the one
or more client-side modules to the browser of the client
response to the clipboard UI element being moved to and
dropped at the target location, the process further comprises: computer, wherein the one or more client-side modules
executing a post request to the server computing system, are embedded within the page.
the post request including the stored selected piece of 21. The system of claim 20 wherein in response to the
content; and clipboard UI element being moved to and dropped at the
receiving a response to the post request indicating a status target location, the one or more client-side modules are fur
of the post request. ther configured to:
execute a post request to the server computer, the post
12. The computer program product of claim 11 wherein in request including the stored selected piece of content;
response to the status indicating the post request was success and
ful, the process further comprises: receive a response to the post request indicating a status of
executing a get request to the server computing system, the the post request.
get request requesting the server computing system to 22. The system of claim 21 wherein in response to the
return content resulting from the post request; status indicating the post request was successful, the one or
receiving a response to the get request including the more client-side modules are further configured to:
requested content resulting from the post request; and execute a get request to the server computer, the get request
refreshing content of the target location with the requested requesting the server computer to return content result
COntent. ing from the post request;
13. The computer program product of claim 11 wherein the receive a response to the get request including the
response to the post request includes content resulting from requested content resulting from the post request; and
server processing of the post request, and the process further refresh content of the target location with the requested
comprises refreshing content of the target location with that COntent.
COntent. 23. The system of claim 21 wherein the response to the post
14. The computer program product of claim 11 wherein in request includes content resulting from server processing of
response to the status indicating the post request was not the post request, and the one or more client-side modules are
Successful, the process further comprises at least one of: further configured to refresh content of the target location
removing the content inserted at the target location; and with that content.
presenting visual feedback regarding content drop failure. 24. The system of claim 21 wherein in response to the
15. The computer program product of claim 10 wherein the status indicating the post request was not successful, the one
target location is on a different page than the page with the or more client-side modules are further configured to at least
selected piece of content. one of:
16. The computer program product of claim 10 wherein the remove the content inserted at the target location; and
process further comprises presenting a drop Zone indicator present visual feedback regarding content drop failure.
during movement of the clipboard UI element, the presented 25. The system of claim 20 wherein the one or more client
drop Zone indicator showing where the stored selected piece side modules are further configured to at least one of:
of content would be inserted if the clipboard UI element was present a drop Zone indicator during movement of the
dropped at that moment. clipboard UI element, the presented drop Zone indicator
US 2014/0324943 A1 Oct. 30, 2014

showing where the stored selected piece of content


would be inserted if the clipboard UI element was
dropped at that moment; and
in response to the local storage including multiple pieces of
content, present a user interface mechanism configured
to receive a choice of one or more of those pieces, and the
stored selected piece of content that is inserted at the
target location is the one or more chosen pieces.
k k k k k

Das könnte Ihnen auch gefallen