| 271 | | an editor plugin for each desktop application (MS |
|---|
| 272 | | Office, OpenOffice) to be able to make the desktop |
|---|
| 273 | | application fetch the file from Nuxeo through SOAP with |
|---|
| 274 | | connection parameters provided in the bootstrap file and |
|---|
| 275 | | save it back to the server using SOAP as well |
|---|
| | 271 | an editor plugin for each desktop application (MS Office, |
|---|
| | 272 | OpenOffice) to be able to make the desktop application |
|---|
| | 273 | fetch the file from Nuxeo through SOAP with connection |
|---|
| | 274 | parameters provided in the bootstrap file and save it back |
|---|
| | 275 | to the server using SOAP as well |
|---|
| | 292 | <section> |
|---|
| | 293 | <title>The Bootstrap client module (part 1)</title> |
|---|
| | 294 | |
|---|
| | 295 | <para> |
|---|
| | 296 | The Bootstrap module must intercept the click on the "online |
|---|
| | 297 | edit" link using a dedicated protocol handler packaged as a |
|---|
| | 298 | browser plugin. |
|---|
| | 299 | |
|---|
| | 300 | The "online edit" link has the following pattern: |
|---|
| | 301 | </para> |
|---|
| | 302 | |
|---|
| | 303 | <para> |
|---|
| | 304 | <literal> |
|---|
| | 305 | nxedit://localhost:8080/nuxeo/nxliveedit.faces?action=edit&repoID=[repoID]&docRef=[docRef]&schema=[schema]&blobField=[blobField]&filenameField=[filenameField]&conversationId=[SEAM_CONVERSATION_ID] |
|---|
| | 306 | </literal> |
|---|
| | 307 | </para> |
|---|
| | 308 | <para> |
|---|
| | 309 | The protocol handler will be called by the OS/Browser and |
|---|
| | 310 | receive the url. In turn it will receive the XML bootstrap |
|---|
| | 311 | file. |
|---|
| | 312 | </para> |
|---|
| | 313 | |
|---|
| | 314 | <para> |
|---|
| | 315 | In case of create use cases the previous patterns change as |
|---|
| | 316 | follows: |
|---|
| | 317 | <itemizedlist> |
|---|
| | 318 | <listitem> |
|---|
| | 319 | user case #2: no docid but need to provide the type of the |
|---|
| | 320 | future document and field location of the blob to be |
|---|
| | 321 | stored in: |
|---|
| | 322 | <itemizedlist> |
|---|
| | 323 | <listitem> |
|---|
| | 324 | <literal> |
|---|
| | 325 | nxedit://localhost:8080/nuxeo/nxliveedit.faces?action=create&repoID=[repoID]&mimetype=[mimetype]&schema=[schema]&blobField=[blobField]&filenameField=[filenameField]&docType=[docType]&conversationId=[SEAM_CONVERSATION_ID] |
|---|
| | 326 | </literal> |
|---|
| | 327 | </listitem> |
|---|
| | 328 | </itemizedlist> |
|---|
| | 329 | </listitem> |
|---|
| | 330 | <listitem> |
|---|
| | 331 | user case#3: docid and field path of the original blob AND |
|---|
| | 332 | doctype and fieldpath to of the document that will host |
|---|
| | 333 | the result: |
|---|
| | 334 | |
|---|
| | 335 | <itemizedlist> |
|---|
| | 336 | <listitem> |
|---|
| | 337 | <literal> |
|---|
| | 338 | nxedit://localhost:8080/nuxeo/nxliveedit.faces?action=createFromTemplate&templateRepoID=[templateRepoID]&templateDocRef=[templateDocRef]&templateSchema=[templateSchema]&templateBlobField=[templateBlobField]&repoID=[repoID]&schema=[schema]&blobField=[blobField]&filenameField=[filenameField]&docType=[docType]&conversationId=[SEAM_CONVERSATION_ID] |
|---|
| | 339 | </literal> |
|---|
| | 340 | </listitem> |
|---|
| | 341 | </itemizedlist> |
|---|
| | 342 | </listitem> |
|---|
| | 343 | </itemizedlist> |
|---|
| | 344 | </para> |
|---|
| | 345 | |
|---|
| | 346 | <para> |
|---|
| | 347 | The Bootstrap client module rewrites each of those URIs as |
|---|
| | 348 | valid HTTP GET by swapping the prefix: |
|---|
| | 349 | |
|---|
| | 350 | <itemizedlist> |
|---|
| | 351 | <listitem> |
|---|
| | 352 | <literal> |
|---|
| | 353 | http://localhost:8080/nuxeo/nxliveedit.faces?[query_parameters] |
|---|
| | 354 | </literal> |
|---|
| | 355 | </listitem> |
|---|
| | 356 | </itemizedlist> |
|---|
| | 357 | </para> |
|---|
| | 358 | |
|---|
| | 359 | <para> |
|---|
| | 360 | The Bootstrap client protocol handler should also be able to |
|---|
| | 361 | interpret variant of the previous URIs that specify the |
|---|
| | 362 | protocol (http or https), eg: |
|---|
| | 363 | |
|---|
| | 364 | <itemizedlist> |
|---|
| | 365 | <listitem> |
|---|
| | 366 | <literal> |
|---|
| | 367 | nxedit:http://localhost:8080/nuxeo/nxliveedit.faces?[query_parameters] |
|---|
| | 368 | </literal> |
|---|
| | 369 | </listitem> |
|---|
| | 370 | </itemizedlist> |
|---|
| | 371 | </para> |
|---|
| | 372 | |
|---|
| | 373 | <para> |
|---|
| | 374 | should be transformed into: |
|---|
| | 375 | |
|---|
| | 376 | <itemizedlist> |
|---|
| | 377 | <listitem> |
|---|
| | 378 | <literal> |
|---|
| | 379 | http://localhost:8080/nuxeo/nxliveedit.faces?[query_parameters] |
|---|
| | 380 | </literal> |
|---|
| | 381 | </listitem> |
|---|
| | 382 | </itemizedlist> |
|---|
| | 383 | </para> |
|---|
| | 384 | |
|---|
| | 385 | <para> |
|---|
| | 386 | while: |
|---|
| | 387 | |
|---|
| | 388 | <itemizedlist> |
|---|
| | 389 | <listitem> |
|---|
| | 390 | <literal> |
|---|
| | 391 | nxedit:https://localhost:8080/nuxeo/nxliveedit.faces?[query_parameters] |
|---|
| | 392 | </literal> |
|---|
| | 393 | </listitem> |
|---|
| | 394 | </itemizedlist> |
|---|
| | 395 | </para> |
|---|
| | 396 | |
|---|
| | 397 | <para> |
|---|
| | 398 | should be transformed into: |
|---|
| | 399 | |
|---|
| | 400 | <itemizedlist> |
|---|
| | 401 | <listitem> |
|---|
| | 402 | <literal> |
|---|
| | 403 | https://localhost:8080/nuxeo/nxliveedit.faces?[query_parameters] |
|---|
| | 404 | </literal> |
|---|
| | 405 | </listitem> |
|---|
| | 406 | </itemizedlist> |
|---|
| | 407 | </para> |
|---|
| | 408 | |
|---|
| | 409 | </section> |
|---|
| | 410 | |
|---|