groupdocs 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.travis.yml +9 -9
- data/CHANGELOG.md +482 -477
- data/Gemfile +3 -3
- data/LICENSE.txt +21 -21
- data/README.md +94 -94
- data/Rakefile +9 -9
- data/examples/README.md +12 -12
- data/examples/api-samples/Gemfile +5 -5
- data/examples/api-samples/Gemfile.lock +49 -49
- data/examples/api-samples/README.md +23 -23
- data/examples/api-samples/public/css/style.css +229 -229
- data/examples/api-samples/public/docs/annotation-sample.html +167 -167
- data/examples/api-samples/public/docs/docco.css +500 -500
- data/examples/api-samples/public/docs/envelope-sample.html +374 -374
- data/examples/api-samples/public/docs/sample01.html +181 -181
- data/examples/api-samples/public/docs/sample02.html +199 -199
- data/examples/api-samples/public/docs/sample03.html +318 -318
- data/examples/api-samples/public/docs/sample04.html +217 -217
- data/examples/api-samples/public/docs/sample05.html +296 -296
- data/examples/api-samples/public/docs/sample06.html +347 -347
- data/examples/api-samples/public/docs/sample07.html +209 -209
- data/examples/api-samples/public/docs/sample08.html +277 -277
- data/examples/api-samples/public/docs/sample09.html +314 -314
- data/examples/api-samples/public/docs/sample10.html +270 -270
- data/examples/api-samples/public/docs/sample11.html +462 -462
- data/examples/api-samples/public/docs/sample12.html +199 -199
- data/examples/api-samples/public/docs/sample13.html +201 -201
- data/examples/api-samples/public/docs/sample14.html +204 -204
- data/examples/api-samples/public/docs/sample15.html +182 -182
- data/examples/api-samples/public/docs/sample16.html +234 -234
- data/examples/api-samples/public/docs/sample17.html +309 -309
- data/examples/api-samples/public/docs/sample18.html +721 -721
- data/examples/api-samples/public/docs/sample19.html +631 -631
- data/examples/api-samples/public/docs/sample20.html +230 -230
- data/examples/api-samples/public/docs/sample21.html +790 -790
- data/examples/api-samples/public/docs/sample22.html +408 -408
- data/examples/api-samples/public/docs/sample25.html +550 -550
- data/examples/api-samples/public/templates/base-simple_source.html +191 -191
- data/examples/api-samples/public/templates/testdocument.html +100 -100
- data/examples/api-samples/public/templates/welcome.htm +137 -137
- data/examples/api-samples/samples/annotation-sample.rb +56 -56
- data/examples/api-samples/samples/envelope-sample.rb +133 -133
- data/examples/api-samples/samples/sample01.rb +44 -44
- data/examples/api-samples/samples/sample02.rb +50 -50
- data/examples/api-samples/samples/sample03.rb +79 -79
- data/examples/api-samples/samples/sample04.rb +54 -54
- data/examples/api-samples/samples/sample05.rb +83 -83
- data/examples/api-samples/samples/sample06.rb +86 -86
- data/examples/api-samples/samples/sample07.rb +59 -59
- data/examples/api-samples/samples/sample08.rb +76 -76
- data/examples/api-samples/samples/sample09.rb +85 -85
- data/examples/api-samples/samples/sample10.rb +70 -70
- data/examples/api-samples/samples/sample11.rb +132 -132
- data/examples/api-samples/samples/sample12.rb +48 -48
- data/examples/api-samples/samples/sample13.rb +49 -49
- data/examples/api-samples/samples/sample14.rb +54 -54
- data/examples/api-samples/samples/sample15.rb +43 -43
- data/examples/api-samples/samples/sample16.rb +57 -57
- data/examples/api-samples/samples/sample17.rb +70 -70
- data/examples/api-samples/samples/sample18.rb +190 -190
- data/examples/api-samples/samples/sample19.rb +188 -188
- data/examples/api-samples/samples/sample20.rb +68 -68
- data/examples/api-samples/samples/sample21.rb +212 -212
- data/examples/api-samples/samples/sample22.rb +109 -109
- data/examples/api-samples/samples/sample25.rb +127 -127
- data/examples/api-samples/views/_others_samples.haml +233 -233
- data/examples/api-samples/views/annotation_sample.haml +63 -63
- data/examples/api-samples/views/envelope_sample.haml +72 -72
- data/examples/api-samples/views/index.haml +235 -235
- data/examples/api-samples/views/layout.haml +3 -3
- data/examples/api-samples/views/sample01.haml +63 -63
- data/examples/api-samples/views/sample02.haml +52 -52
- data/examples/api-samples/views/sample03.haml +87 -87
- data/examples/api-samples/views/sample04.haml +55 -55
- data/examples/api-samples/views/sample05.haml +86 -86
- data/examples/api-samples/views/sample06.haml +58 -58
- data/examples/api-samples/views/sample07.haml +52 -52
- data/examples/api-samples/views/sample08.haml +100 -100
- data/examples/api-samples/views/sample09.haml +95 -95
- data/examples/api-samples/views/sample10.haml +93 -93
- data/examples/api-samples/views/sample11.haml +140 -140
- data/examples/api-samples/views/sample12.haml +68 -68
- data/examples/api-samples/views/sample13.haml +64 -64
- data/examples/api-samples/views/sample14.haml +60 -60
- data/examples/api-samples/views/sample15.haml +51 -51
- data/examples/api-samples/views/sample16.haml +50 -50
- data/examples/api-samples/views/sample17.haml +54 -54
- data/examples/api-samples/views/sample18.haml +143 -143
- data/examples/api-samples/views/sample19.haml +92 -92
- data/examples/api-samples/views/sample20.haml +54 -54
- data/examples/api-samples/views/sample21.haml +123 -123
- data/examples/api-samples/views/sample22.haml +106 -106
- data/examples/api-samples/views/sample25.haml +101 -101
- data/examples/api-samples/views/sample31.haml +2 -2
- data/examples/api-samples/web.rb +20 -20
- data/examples/viewer/Gemfile +5 -5
- data/examples/viewer/app.rb +52 -52
- data/groupdocs.gemspec +31 -31
- data/lib/groupdocs.rb +62 -62
- data/lib/groupdocs/api.rb +6 -6
- data/lib/groupdocs/api/entity.rb +112 -112
- data/lib/groupdocs/api/helpers.rb +11 -11
- data/lib/groupdocs/api/helpers/access_mode_helper.rb +27 -27
- data/lib/groupdocs/api/helpers/access_rights_helper.rb +55 -55
- data/lib/groupdocs/api/helpers/accessor_helper.rb +30 -30
- data/lib/groupdocs/api/helpers/byte_flag_helper.rb +49 -49
- data/lib/groupdocs/api/helpers/credentials_helper.rb +35 -35
- data/lib/groupdocs/api/helpers/mime_helper.rb +21 -21
- data/lib/groupdocs/api/helpers/path_helper.rb +28 -28
- data/lib/groupdocs/api/helpers/rest_helper.rb +99 -99
- data/lib/groupdocs/api/helpers/signature_public_helper.rb +22 -22
- data/lib/groupdocs/api/helpers/status_helper.rb +27 -27
- data/lib/groupdocs/api/helpers/url_helper.rb +101 -101
- data/lib/groupdocs/api/request.rb +91 -91
- data/lib/groupdocs/datasource.rb +249 -249
- data/lib/groupdocs/datasource/field.rb +39 -39
- data/lib/groupdocs/document.rb +1550 -1550
- data/lib/groupdocs/document/annotation.rb +421 -421
- data/lib/groupdocs/document/annotation/reply.rb +173 -173
- data/lib/groupdocs/document/annotation/reviewer.rb +66 -66
- data/lib/groupdocs/document/change.rb +56 -56
- data/lib/groupdocs/document/field.rb +53 -53
- data/lib/groupdocs/document/metadata.rb +32 -32
- data/lib/groupdocs/document/rectangle.rb +18 -18
- data/lib/groupdocs/document/view.rb +36 -36
- data/lib/groupdocs/errors.rb +8 -8
- data/lib/groupdocs/job.rb +468 -468
- data/lib/groupdocs/questionnaire.rb +530 -530
- data/lib/groupdocs/questionnaire/collector.rb +335 -335
- data/lib/groupdocs/questionnaire/execution.rb +181 -181
- data/lib/groupdocs/questionnaire/page.rb +43 -43
- data/lib/groupdocs/questionnaire/question.rb +108 -108
- data/lib/groupdocs/questionnaire/question/answer.rb +15 -15
- data/lib/groupdocs/signature.rb +380 -380
- data/lib/groupdocs/signature/contact.rb +181 -181
- data/lib/groupdocs/signature/envelope.rb +747 -747
- data/lib/groupdocs/signature/envelope/log.rb +20 -20
- data/lib/groupdocs/signature/field.rb +286 -286
- data/lib/groupdocs/signature/field/location.rb +71 -71
- data/lib/groupdocs/signature/form.rb +804 -804
- data/lib/groupdocs/signature/list.rb +92 -92
- data/lib/groupdocs/signature/recipient.rb +79 -79
- data/lib/groupdocs/signature/role.rb +54 -54
- data/lib/groupdocs/signature/shared.rb +6 -6
- data/lib/groupdocs/signature/shared/document_methods.rb +158 -158
- data/lib/groupdocs/signature/shared/entity_fields.rb +76 -76
- data/lib/groupdocs/signature/shared/entity_methods.rb +144 -144
- data/lib/groupdocs/signature/shared/field_methods.rb +354 -354
- data/lib/groupdocs/signature/shared/recipient_methods.rb +75 -75
- data/lib/groupdocs/signature/shared/resource_methods.rb +65 -65
- data/lib/groupdocs/signature/template.rb +124 -124
- data/lib/groupdocs/storage.rb +44 -44
- data/lib/groupdocs/storage/file.rb +432 -432
- data/lib/groupdocs/storage/folder.rb +288 -288
- data/lib/groupdocs/storage/package.rb +48 -48
- data/lib/groupdocs/storage/provider.rb +32 -32
- data/lib/groupdocs/subscription.rb +323 -323
- data/lib/groupdocs/subscription/limit.rb +20 -20
- data/lib/groupdocs/user.rb +955 -930
- data/lib/groupdocs/version.rb +3 -3
- data/spec/groupdocs/api/entity_spec.rb +55 -55
- data/spec/groupdocs/api/helpers/access_mode_helper_spec.rb +21 -21
- data/spec/groupdocs/api/helpers/access_rights_helper_spec.rb +43 -43
- data/spec/groupdocs/api/helpers/accessor_helper_spec.rb +16 -16
- data/spec/groupdocs/api/helpers/byte_flag_helper_spec.rb +23 -23
- data/spec/groupdocs/api/helpers/credentials_helpers_spec.rb +48 -48
- data/spec/groupdocs/api/helpers/mime_helper_spec.rb +16 -16
- data/spec/groupdocs/api/helpers/path_helper_spec.rb +15 -15
- data/spec/groupdocs/api/helpers/rest_helper_spec.rb +161 -161
- data/spec/groupdocs/api/helpers/signature_public_helper_spec.rb +21 -21
- data/spec/groupdocs/api/helpers/status_helper_spec.rb +22 -22
- data/spec/groupdocs/api/helpers/url_helper_spec.rb +112 -112
- data/spec/groupdocs/api/request_spec.rb +112 -112
- data/spec/groupdocs/datasource/field_spec.rb +29 -29
- data/spec/groupdocs/datasource_spec.rb +145 -145
- data/spec/groupdocs/document/annotation/reply_spec.rb +154 -154
- data/spec/groupdocs/document/annotation/reviewer_spec.rb +51 -51
- data/spec/groupdocs/document/annotation_spec.rb +234 -234
- data/spec/groupdocs/document/change_spec.rb +39 -39
- data/spec/groupdocs/document/field_spec.rb +28 -28
- data/spec/groupdocs/document/metadata_spec.rb +21 -21
- data/spec/groupdocs/document/rectangle_spec.rb +14 -14
- data/spec/groupdocs/document/view_spec.rb +33 -33
- data/spec/groupdocs/document_spec.rb +859 -859
- data/spec/groupdocs/errors_spec.rb +7 -7
- data/spec/groupdocs/job_spec.rb +323 -323
- data/spec/groupdocs/questionnaire/collector_spec.rb +197 -197
- data/spec/groupdocs/questionnaire/execution_spec.rb +162 -162
- data/spec/groupdocs/questionnaire/page_spec.rb +47 -47
- data/spec/groupdocs/questionnaire/question/answer_spec.rb +9 -9
- data/spec/groupdocs/questionnaire/question_spec.rb +75 -75
- data/spec/groupdocs/questionnaire_spec.rb +295 -295
- data/spec/groupdocs/signature/contact_spec.rb +142 -142
- data/spec/groupdocs/signature/envelope/log_spec.rb +15 -15
- data/spec/groupdocs/signature/envelope_spec.rb +384 -384
- data/spec/groupdocs/signature/field/location_spec.rb +40 -40
- data/spec/groupdocs/signature/field_spec.rb +235 -235
- data/spec/groupdocs/signature/form_spec.rb +205 -205
- data/spec/groupdocs/signature/list_spec.rb +87 -87
- data/spec/groupdocs/signature/recipient_spec.rb +26 -26
- data/spec/groupdocs/signature/role_spec.rb +47 -47
- data/spec/groupdocs/signature/template_spec.rb +80 -80
- data/spec/groupdocs/signature_spec.rb +194 -194
- data/spec/groupdocs/storage/file_spec.rb +303 -303
- data/spec/groupdocs/storage/folder_spec.rb +270 -270
- data/spec/groupdocs/storage/package_spec.rb +38 -38
- data/spec/groupdocs/storage/provider_spec.rb +21 -21
- data/spec/groupdocs/storage_spec.rb +27 -27
- data/spec/groupdocs/subscription/limit_spec.rb +16 -16
- data/spec/groupdocs/subscription_spec.rb +74 -74
- data/spec/groupdocs/user_spec.rb +257 -257
- data/spec/groupdocs_spec.rb +63 -63
- data/spec/spec_helper.rb +73 -73
- data/spec/support/json/annotation_access_set.json +11 -11
- data/spec/support/json/annotation_collaborators_get.json +16 -16
- data/spec/support/json/annotation_collaborators_set.json +16 -16
- data/spec/support/json/annotation_create.json +12 -12
- data/spec/support/json/annotation_list.json +32 -32
- data/spec/support/json/annotation_marker_move.json +10 -10
- data/spec/support/json/annotation_move.json +8 -8
- data/spec/support/json/annotation_remove.json +9 -9
- data/spec/support/json/annotation_replies_create.json +9 -9
- data/spec/support/json/annotation_replies_get.json +25 -25
- data/spec/support/json/annotation_reviewers_get.json +18 -18
- data/spec/support/json/comparison_changes.json +46 -46
- data/spec/support/json/comparison_compare.json +8 -8
- data/spec/support/json/comparison_document.json +10 -10
- data/spec/support/json/contact_add.json +12 -12
- data/spec/support/json/contacts_get.json +19 -19
- data/spec/support/json/contacts_import.json +8 -8
- data/spec/support/json/datasource_add.json +8 -8
- data/spec/support/json/datasource_get.json +22 -22
- data/spec/support/json/datasource_remove.json +8 -8
- data/spec/support/json/datasource_update.json +8 -8
- data/spec/support/json/delete_account.json +9 -9
- data/spec/support/json/document_access_info_get.json +14 -14
- data/spec/support/json/document_convert.json +8 -8
- data/spec/support/json/document_datasource.json +10 -10
- data/spec/support/json/document_fields.json +34 -34
- data/spec/support/json/document_formats.json +8 -8
- data/spec/support/json/document_metadata.json +15 -15
- data/spec/support/json/document_page_images_get.json +20 -20
- data/spec/support/json/document_questionnaire_create.json +9 -9
- data/spec/support/json/document_questionnaires.json +23 -23
- data/spec/support/json/document_sharers_remove.json +8 -8
- data/spec/support/json/document_sharers_set.json +16 -16
- data/spec/support/json/document_thumbnails.json +24 -24
- data/spec/support/json/document_views.json +32 -32
- data/spec/support/json/envelope_get.json +46 -46
- data/spec/support/json/envelope_logs.json +16 -16
- data/spec/support/json/envelope_recipient_add.json +26 -26
- data/spec/support/json/envelopes_all.json +48 -48
- data/spec/support/json/envelopes_resources.json +31 -31
- data/spec/support/json/file_compress.json +8 -8
- data/spec/support/json/file_copy.json +14 -14
- data/spec/support/json/file_delete.json +5 -5
- data/spec/support/json/file_move.json +14 -14
- data/spec/support/json/file_upload.json +8 -8
- data/spec/support/json/folder_create.json +8 -8
- data/spec/support/json/folder_delete.json +5 -5
- data/spec/support/json/folder_list.json +22 -22
- data/spec/support/json/folder_move.json +8 -8
- data/spec/support/json/folder_sharers_get.json +16 -16
- data/spec/support/json/folder_sharers_remove.json +8 -8
- data/spec/support/json/folder_sharers_set.json +16 -16
- data/spec/support/json/form_get.json +21 -21
- data/spec/support/json/forms_all.json +23 -23
- data/spec/support/json/job_add_url.json +8 -8
- data/spec/support/json/job_create.json +8 -8
- data/spec/support/json/job_documents.json +40 -40
- data/spec/support/json/job_file_add.json +8 -8
- data/spec/support/json/job_get.json +30 -30
- data/spec/support/json/job_update.json +7 -7
- data/spec/support/json/jobs_get.json +58 -58
- data/spec/support/json/list_add.json +12 -12
- data/spec/support/json/lists_get.json +19 -19
- data/spec/support/json/package_create.json +7 -7
- data/spec/support/json/questionnaire_collector.json +17 -17
- data/spec/support/json/questionnaire_collectors.json +38 -38
- data/spec/support/json/questionnaire_collectors_add.json +10 -10
- data/spec/support/json/questionnaire_create.json +10 -10
- data/spec/support/json/questionnaire_datasources.json +26 -26
- data/spec/support/json/questionnaire_execution_add.json +9 -9
- data/spec/support/json/questionnaire_execution_status_set.json +8 -8
- data/spec/support/json/questionnaire_execution_update.json +8 -8
- data/spec/support/json/questionnaire_executions.json +28 -28
- data/spec/support/json/questionnaire_get.json +17 -17
- data/spec/support/json/questionnaire_remove.json +8 -8
- data/spec/support/json/questionnaire_update.json +8 -8
- data/spec/support/json/questionnaires_get.json +40 -40
- data/spec/support/json/sign_documents.json +16 -16
- data/spec/support/json/signature_create.json +12 -12
- data/spec/support/json/signature_field_add.json +25 -25
- data/spec/support/json/signature_fields_get.json +27 -27
- data/spec/support/json/signature_roles_get.json +17 -17
- data/spec/support/json/signatures_get.json +19 -19
- data/spec/support/json/storage_info.json +10 -10
- data/spec/support/json/subscription_plan_get.json +9 -9
- data/spec/support/json/subscription_plans_get.json +17 -17
- data/spec/support/json/template_get.json +35 -35
- data/spec/support/json/template_get_documents.json +15 -15
- data/spec/support/json/template_get_recipients.json +20 -20
- data/spec/support/json/templates_all.json +37 -37
- data/spec/support/json/templates_get.json +21 -21
- data/spec/support/json/update_account.json +10 -10
- data/spec/support/json/user_area.json +67 -67
- data/spec/support/json/user_embed_key.json +38 -38
- data/spec/support/json/user_get_embed_key.json +67 -67
- data/spec/support/json/user_login.json +67 -67
- data/spec/support/json/user_profile_get.json +24 -24
- data/spec/support/json/user_providers.json +31 -31
- data/spec/support/json/user_roles.json +25 -25
- data/spec/support/json/user_users_get.json +27 -27
- data/spec/support/shared_examples/api/entity.rb +39 -39
- data/spec/support/shared_examples/api/helpers/access_mode_helper.rb +11 -11
- data/spec/support/shared_examples/api/helpers/status_helper.rb +11 -11
- data/spec/support/shared_examples/signature/shared/document_methods.rb +68 -68
- data/spec/support/shared_examples/signature/shared/entity_fields.rb +56 -56
- data/spec/support/shared_examples/signature/shared/entity_methods.rb +116 -116
- data/spec/support/shared_examples/signature/shared/field_methods.rb +220 -220
- data/spec/support/shared_examples/signature/shared/recipient_methods.rb +46 -46
- data/spec/support/shared_examples/signature/shared/resource_methods.rb +46 -46
- metadata +35 -55
@@ -1,462 +1,462 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
|
3
|
-
<html>
|
4
|
-
<head>
|
5
|
-
<title>sample11.rb</title>
|
6
|
-
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
7
|
-
<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
|
8
|
-
<link rel="stylesheet" media="all" href="docco.css" />
|
9
|
-
</head>
|
10
|
-
<body>
|
11
|
-
<div id="container">
|
12
|
-
<div id="background"></div>
|
13
|
-
|
14
|
-
<ul class="sections">
|
15
|
-
|
16
|
-
<li id="title">
|
17
|
-
<div class="annotation">
|
18
|
-
<h1>sample11.rb</h1>
|
19
|
-
</div>
|
20
|
-
</li>
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
<li id="section-1">
|
25
|
-
<div class="annotation">
|
26
|
-
|
27
|
-
<div class="pilwrap ">
|
28
|
-
<a class="pilcrow" href="#section-1">¶</a>
|
29
|
-
</div>
|
30
|
-
<p>GET request</p>
|
31
|
-
|
32
|
-
</div>
|
33
|
-
|
34
|
-
<div class="content"><div class='highlight'><pre>get <span class="hljs-string">'/sample-11-how-programmatically-create-and-post-an-annotation-into-document'</span> <span class="hljs-keyword">do</span>
|
35
|
-
haml <span class="hljs-symbol">:sample11</span>
|
36
|
-
<span class="hljs-keyword">end</span></pre></div></div>
|
37
|
-
|
38
|
-
</li>
|
39
|
-
|
40
|
-
|
41
|
-
<li id="section-2">
|
42
|
-
<div class="annotation">
|
43
|
-
|
44
|
-
<div class="pilwrap ">
|
45
|
-
<a class="pilcrow" href="#section-2">¶</a>
|
46
|
-
</div>
|
47
|
-
<p>POST request</p>
|
48
|
-
|
49
|
-
</div>
|
50
|
-
|
51
|
-
<div class="content"><div class='highlight'><pre>post <span class="hljs-string">'/sample-11-how-programmatically-create-and-post-an-annotation-into-document'</span> <span class="hljs-keyword">do</span></pre></div></div>
|
52
|
-
|
53
|
-
</li>
|
54
|
-
|
55
|
-
|
56
|
-
<li id="section-3">
|
57
|
-
<div class="annotation">
|
58
|
-
|
59
|
-
<div class="pilwrap ">
|
60
|
-
<a class="pilcrow" href="#section-3">¶</a>
|
61
|
-
</div>
|
62
|
-
<p>Set variables</p>
|
63
|
-
|
64
|
-
</div>
|
65
|
-
|
66
|
-
<div class="content"><div class='highlight'><pre> set <span class="hljs-symbol">:client_id</span>, params[<span class="hljs-symbol">:clientId</span>]
|
67
|
-
set <span class="hljs-symbol">:private_key</span>, params[<span class="hljs-symbol">:privateKey</span>]
|
68
|
-
set <span class="hljs-symbol">:file_id</span>, params[<span class="hljs-symbol">:fileId</span>]
|
69
|
-
set <span class="hljs-symbol">:annotation_type</span>, params[<span class="hljs-symbol">:annotationType</span>]
|
70
|
-
set <span class="hljs-symbol">:annotation_id</span>, params[<span class="hljs-symbol">:annotationId</span>]
|
71
|
-
set <span class="hljs-symbol">:base_path</span>, params[<span class="hljs-symbol">:basePath</span>]
|
72
|
-
|
73
|
-
<span class="hljs-keyword">begin</span></pre></div></div>
|
74
|
-
|
75
|
-
</li>
|
76
|
-
|
77
|
-
|
78
|
-
<li id="section-4">
|
79
|
-
<div class="annotation">
|
80
|
-
|
81
|
-
<div class="pilwrap ">
|
82
|
-
<a class="pilcrow" href="#section-4">¶</a>
|
83
|
-
</div>
|
84
|
-
<p>Check required variables</p>
|
85
|
-
|
86
|
-
</div>
|
87
|
-
|
88
|
-
<div class="content"><div class='highlight'><pre> raise <span class="hljs-string">'Please enter all required parameters'</span> <span class="hljs-keyword">if</span> settings.client_id.empty? <span class="hljs-keyword">or</span> settings.private_key.empty? <span class="hljs-keyword">or</span> settings.file_id.empty? <span class="hljs-keyword">or</span> settings.annotation_type.empty?</pre></div></div>
|
89
|
-
|
90
|
-
</li>
|
91
|
-
|
92
|
-
|
93
|
-
<li id="section-5">
|
94
|
-
<div class="annotation">
|
95
|
-
|
96
|
-
<div class="pilwrap ">
|
97
|
-
<a class="pilcrow" href="#section-5">¶</a>
|
98
|
-
</div>
|
99
|
-
<p>Prepare base path</p>
|
100
|
-
|
101
|
-
</div>
|
102
|
-
|
103
|
-
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">if</span> settings.base_path.empty?
|
104
|
-
base_path = <span class="hljs-string">'https://api.groupdocs.com'</span>
|
105
|
-
<span class="hljs-keyword">elsif</span> settings.base_path.match(<span class="hljs-string">'/v2.0'</span>)
|
106
|
-
base_path = settings.base_path.split(<span class="hljs-string">'/v2.0'</span>)[<span class="hljs-number">0</span>]
|
107
|
-
<span class="hljs-keyword">else</span>
|
108
|
-
base_path = settings.base_path
|
109
|
-
<span class="hljs-keyword">end</span></pre></div></div>
|
110
|
-
|
111
|
-
</li>
|
112
|
-
|
113
|
-
|
114
|
-
<li id="section-6">
|
115
|
-
<div class="annotation">
|
116
|
-
|
117
|
-
<div class="pilwrap ">
|
118
|
-
<a class="pilcrow" href="#section-6">¶</a>
|
119
|
-
</div>
|
120
|
-
<p>Configure your access to API server</p>
|
121
|
-
|
122
|
-
</div>
|
123
|
-
|
124
|
-
<div class="content"><div class='highlight'><pre> <span class="hljs-constant">GroupDocs</span>.configure <span class="hljs-keyword">do</span> |groupdocs|
|
125
|
-
groupdocs.client_id = settings.client_id
|
126
|
-
groupdocs.private_key = settings.private_key</pre></div></div>
|
127
|
-
|
128
|
-
</li>
|
129
|
-
|
130
|
-
|
131
|
-
<li id="section-7">
|
132
|
-
<div class="annotation">
|
133
|
-
|
134
|
-
<div class="pilwrap ">
|
135
|
-
<a class="pilcrow" href="#section-7">¶</a>
|
136
|
-
</div>
|
137
|
-
<p>Optionally specify API server and version</p>
|
138
|
-
|
139
|
-
</div>
|
140
|
-
|
141
|
-
<div class="content"><div class='highlight'><pre> groupdocs.api_server = base_path <span class="hljs-comment"># default is 'https://api.groupdocs.com'</span>
|
142
|
-
<span class="hljs-keyword">end</span>
|
143
|
-
|
144
|
-
<span class="hljs-keyword">if</span> settings.annotation_id != <span class="hljs-string">''</span>
|
145
|
-
|
146
|
-
file = <span class="hljs-constant">GroupDocs::Storage::File</span>.new({<span class="hljs-symbol">:guid</span> => settings.file_id}).to_document
|
147
|
-
annotation = file.annotations!()</pre></div></div>
|
148
|
-
|
149
|
-
</li>
|
150
|
-
|
151
|
-
|
152
|
-
<li id="section-8">
|
153
|
-
<div class="annotation">
|
154
|
-
|
155
|
-
<div class="pilwrap ">
|
156
|
-
<a class="pilcrow" href="#section-8">¶</a>
|
157
|
-
</div>
|
158
|
-
<p>Remove annotation from document</p>
|
159
|
-
|
160
|
-
</div>
|
161
|
-
|
162
|
-
<div class="content"><div class='highlight'><pre> remove = annotation.last.remove!()
|
163
|
-
message = <span class="hljs-string">"You delete the annotation id = <span class="hljs-subst">#{remove[<span class="hljs-symbol">:guid</span>]}</span> "</span>
|
164
|
-
<span class="hljs-keyword">else</span></pre></div></div>
|
165
|
-
|
166
|
-
</li>
|
167
|
-
|
168
|
-
|
169
|
-
<li id="section-9">
|
170
|
-
<div class="annotation">
|
171
|
-
|
172
|
-
<div class="pilwrap ">
|
173
|
-
<a class="pilcrow" href="#section-9">¶</a>
|
174
|
-
</div>
|
175
|
-
<p>Annotation types</p>
|
176
|
-
|
177
|
-
</div>
|
178
|
-
|
179
|
-
<div class="content"><div class='highlight'><pre> types = {<span class="hljs-symbol">:text</span> => <span class="hljs-string">"0"</span>, <span class="hljs-symbol">:area</span> => <span class="hljs-string">"1"</span>, <span class="hljs-symbol">:point</span> => <span class="hljs-string">"2"</span>}</pre></div></div>
|
180
|
-
|
181
|
-
</li>
|
182
|
-
|
183
|
-
|
184
|
-
<li id="section-10">
|
185
|
-
<div class="annotation">
|
186
|
-
|
187
|
-
<div class="pilwrap ">
|
188
|
-
<a class="pilcrow" href="#section-10">¶</a>
|
189
|
-
</div>
|
190
|
-
<p>Required parameters</p>
|
191
|
-
|
192
|
-
</div>
|
193
|
-
|
194
|
-
<div class="content"><div class='highlight'><pre> all_params = all_params = [<span class="hljs-string">'annotationType'</span>, <span class="hljs-string">'boxX'</span>, <span class="hljs-string">'boxY'</span>, <span class="hljs-string">'text'</span>]</pre></div></div>
|
195
|
-
|
196
|
-
</li>
|
197
|
-
|
198
|
-
|
199
|
-
<li id="section-11">
|
200
|
-
<div class="annotation">
|
201
|
-
|
202
|
-
<div class="pilwrap ">
|
203
|
-
<a class="pilcrow" href="#section-11">¶</a>
|
204
|
-
</div>
|
205
|
-
<p>Added required parameters depends on annotation type [‘text’ or ‘area’]</p>
|
206
|
-
|
207
|
-
</div>
|
208
|
-
|
209
|
-
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">if</span> settings.annotation_type == <span class="hljs-string">'text'</span>
|
210
|
-
all_params = all_params | [<span class="hljs-string">'boxWidth'</span>, <span class="hljs-string">'boxHeight'</span>, <span class="hljs-string">'annotationPositionX'</span>, <span class="hljs-string">'annotationPositionY'</span>, <span class="hljs-string">'rangePosition'</span>, <span class="hljs-string">'rangeLength'</span>]
|
211
|
-
<span class="hljs-keyword">elsif</span> settings.annotation_type == <span class="hljs-string">'area'</span>
|
212
|
-
all_params = all_params | [<span class="hljs-string">'boxWidth'</span>, <span class="hljs-string">'boxHeight'</span>]
|
213
|
-
<span class="hljs-keyword">end</span>
|
214
|
-
pp <span class="hljs-string">"test"</span></pre></div></div>
|
215
|
-
|
216
|
-
</li>
|
217
|
-
|
218
|
-
|
219
|
-
<li id="section-12">
|
220
|
-
<div class="annotation">
|
221
|
-
|
222
|
-
<div class="pilwrap ">
|
223
|
-
<a class="pilcrow" href="#section-12">¶</a>
|
224
|
-
</div>
|
225
|
-
<p>raise all_params.to_yaml
|
226
|
-
Checking required parameters</p>
|
227
|
-
|
228
|
-
</div>
|
229
|
-
|
230
|
-
<div class="content"><div class='highlight'><pre> all_params.each <span class="hljs-keyword">do</span> |param|
|
231
|
-
raise <span class="hljs-string">'Please enter all required parameters'</span> <span class="hljs-keyword">if</span> params[param].empty?
|
232
|
-
<span class="hljs-keyword">end</span></pre></div></div>
|
233
|
-
|
234
|
-
</li>
|
235
|
-
|
236
|
-
|
237
|
-
<li id="section-13">
|
238
|
-
<div class="annotation">
|
239
|
-
|
240
|
-
<div class="pilwrap ">
|
241
|
-
<a class="pilcrow" href="#section-13">¶</a>
|
242
|
-
</div>
|
243
|
-
<p>Create document object</p>
|
244
|
-
|
245
|
-
</div>
|
246
|
-
|
247
|
-
<div class="content"><div class='highlight'><pre> document = <span class="hljs-constant">GroupDocs::Storage::File</span>.new(<span class="hljs-symbol">guid:</span> settings.file_id).to_document
|
248
|
-
|
249
|
-
<span class="hljs-keyword">unless</span> document.instance_of? <span class="hljs-constant">String</span></pre></div></div>
|
250
|
-
|
251
|
-
</li>
|
252
|
-
|
253
|
-
|
254
|
-
<li id="section-14">
|
255
|
-
<div class="annotation">
|
256
|
-
|
257
|
-
<div class="pilwrap ">
|
258
|
-
<a class="pilcrow" href="#section-14">¶</a>
|
259
|
-
</div>
|
260
|
-
<p>Start create new annotation</p>
|
261
|
-
|
262
|
-
</div>
|
263
|
-
|
264
|
-
<div class="content"><div class='highlight'><pre> annotation = <span class="hljs-constant">GroupDocs::Document::Annotation</span>.new(<span class="hljs-symbol">document:</span> document)
|
265
|
-
|
266
|
-
info = <span class="hljs-keyword">nil</span></pre></div></div>
|
267
|
-
|
268
|
-
</li>
|
269
|
-
|
270
|
-
|
271
|
-
<li id="section-15">
|
272
|
-
<div class="annotation">
|
273
|
-
|
274
|
-
<div class="pilwrap ">
|
275
|
-
<a class="pilcrow" href="#section-15">¶</a>
|
276
|
-
</div>
|
277
|
-
<p>Construct requestBody depends on annotation type
|
278
|
-
Text annotation</p>
|
279
|
-
|
280
|
-
</div>
|
281
|
-
|
282
|
-
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">if</span> settings.annotation_type == <span class="hljs-string">'text'</span>
|
283
|
-
annotation_box = {<span class="hljs-symbol">x:</span> params[<span class="hljs-string">'boxX'</span>], <span class="hljs-symbol">y:</span> params[<span class="hljs-string">'boxY'</span>], <span class="hljs-symbol">width:</span> params[<span class="hljs-string">'boxWidth'</span>], <span class="hljs-symbol">height:</span> params[<span class="hljs-string">'boxHeight'</span>]}
|
284
|
-
annotation_position = {<span class="hljs-symbol">x:</span> params[<span class="hljs-string">'annotationPositionX'</span>], <span class="hljs-symbol">y:</span> params[<span class="hljs-string">'annotationPositionY'</span>]}
|
285
|
-
range = {<span class="hljs-symbol">position:</span> params[<span class="hljs-string">'rangePosition'</span>], <span class="hljs-symbol">length:</span> params[<span class="hljs-string">'rangeLength'</span>]}
|
286
|
-
info = { <span class="hljs-symbol">:box</span> => annotation_box, <span class="hljs-symbol">:annotationPosition</span> => annotation_position, <span class="hljs-symbol">:range</span> => range, <span class="hljs-symbol">:type</span> => types[settings.annotation_type.to_sym], <span class="hljs-symbol">:replies</span> => [{<span class="hljs-symbol">:text</span> => params[<span class="hljs-string">'text'</span>]}]}</pre></div></div>
|
287
|
-
|
288
|
-
</li>
|
289
|
-
|
290
|
-
|
291
|
-
<li id="section-16">
|
292
|
-
<div class="annotation">
|
293
|
-
|
294
|
-
<div class="pilwrap ">
|
295
|
-
<a class="pilcrow" href="#section-16">¶</a>
|
296
|
-
</div>
|
297
|
-
<p>Area annotation</p>
|
298
|
-
|
299
|
-
</div>
|
300
|
-
|
301
|
-
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">elsif</span> settings.annotation_type == <span class="hljs-string">'area'</span>
|
302
|
-
annotation_box = {<span class="hljs-symbol">x:</span> params[<span class="hljs-string">'boxX'</span>], <span class="hljs-symbol">y:</span> params[<span class="hljs-string">'boxY'</span>], <span class="hljs-symbol">width:</span> params[<span class="hljs-string">'boxWidth'</span>], <span class="hljs-symbol">height:</span> params[<span class="hljs-string">'boxHeight'</span>]}
|
303
|
-
annotation_annotationPosition = {<span class="hljs-symbol">x:</span> <span class="hljs-number">0</span>, <span class="hljs-symbol">y:</span> <span class="hljs-number">0</span>}
|
304
|
-
raise <span class="hljs-string">"test"</span>
|
305
|
-
info = {<span class="hljs-symbol">:box</span> => annotation_box, <span class="hljs-symbol">:annotationPosition</span> => annotation_annotationPosition, <span class="hljs-symbol">:type</span> => types[settings.annotation_type.to_sym], <span class="hljs-symbol">:replies</span> => [{<span class="hljs-symbol">:text</span> => params[<span class="hljs-string">'text'</span>]}]}</pre></div></div>
|
306
|
-
|
307
|
-
</li>
|
308
|
-
|
309
|
-
|
310
|
-
<li id="section-17">
|
311
|
-
<div class="annotation">
|
312
|
-
|
313
|
-
<div class="pilwrap ">
|
314
|
-
<a class="pilcrow" href="#section-17">¶</a>
|
315
|
-
</div>
|
316
|
-
<p>Point annotation</p>
|
317
|
-
|
318
|
-
</div>
|
319
|
-
|
320
|
-
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">elsif</span> settings.annotation_type == <span class="hljs-string">'point'</span>
|
321
|
-
annotation_box = {<span class="hljs-symbol">x:</span> params[<span class="hljs-string">'boxX'</span>], <span class="hljs-symbol">y:</span> params[<span class="hljs-string">'boxY'</span>], <span class="hljs-symbol">width:</span> <span class="hljs-number">0</span>, <span class="hljs-symbol">height:</span> <span class="hljs-number">0</span>}
|
322
|
-
annotation_annotationPosition = {<span class="hljs-symbol">x:</span> <span class="hljs-number">0</span>, <span class="hljs-symbol">y:</span> <span class="hljs-number">0</span>}
|
323
|
-
|
324
|
-
info = {<span class="hljs-symbol">:box</span> => annotation_box, <span class="hljs-symbol">:annotationPosition</span> => annotation_annotationPosition, <span class="hljs-symbol">:type</span> => types[settings.annotation_type.to_sym], <span class="hljs-symbol">:replies</span> => [{<span class="hljs-symbol">:text</span> => params[<span class="hljs-string">'text'</span>]}] }
|
325
|
-
<span class="hljs-keyword">end</span></pre></div></div>
|
326
|
-
|
327
|
-
</li>
|
328
|
-
|
329
|
-
|
330
|
-
<li id="section-18">
|
331
|
-
<div class="annotation">
|
332
|
-
|
333
|
-
<div class="pilwrap ">
|
334
|
-
<a class="pilcrow" href="#section-18">¶</a>
|
335
|
-
</div>
|
336
|
-
<p>Call create method</p>
|
337
|
-
|
338
|
-
</div>
|
339
|
-
|
340
|
-
<div class="content"><div class='highlight'><pre> annotation.create!(info)
|
341
|
-
raise annotation.to_yaml
|
342
|
-
id = annotation.document.file.id</pre></div></div>
|
343
|
-
|
344
|
-
</li>
|
345
|
-
|
346
|
-
|
347
|
-
<li id="section-19">
|
348
|
-
<div class="annotation">
|
349
|
-
|
350
|
-
<div class="pilwrap ">
|
351
|
-
<a class="pilcrow" href="#section-19">¶</a>
|
352
|
-
</div>
|
353
|
-
<p>Get document guid</p>
|
354
|
-
|
355
|
-
</div>
|
356
|
-
|
357
|
-
<div class="content"><div class='highlight'><pre> guid = annotation.document.file.guid</pre></div></div>
|
358
|
-
|
359
|
-
</li>
|
360
|
-
|
361
|
-
|
362
|
-
<li id="section-20">
|
363
|
-
<div class="annotation">
|
364
|
-
|
365
|
-
<div class="pilwrap ">
|
366
|
-
<a class="pilcrow" href="#section-20">¶</a>
|
367
|
-
</div>
|
368
|
-
<p>Prepare to sign url</p>
|
369
|
-
|
370
|
-
</div>
|
371
|
-
|
372
|
-
<div class="content"><div class='highlight'><pre> iframe = <span class="hljs-string">"/document-annotation2/embed/<span class="hljs-subst">#{guid}</span>"</span></pre></div></div>
|
373
|
-
|
374
|
-
</li>
|
375
|
-
|
376
|
-
|
377
|
-
<li id="section-21">
|
378
|
-
<div class="annotation">
|
379
|
-
|
380
|
-
<div class="pilwrap ">
|
381
|
-
<a class="pilcrow" href="#section-21">¶</a>
|
382
|
-
</div>
|
383
|
-
<p>Construct result string</p>
|
384
|
-
|
385
|
-
</div>
|
386
|
-
|
387
|
-
<div class="content"><div class='highlight'><pre> url = <span class="hljs-constant">GroupDocs::Api::Request</span>.new(<span class="hljs-symbol">:path</span> => iframe).prepare_and_sign_url</pre></div></div>
|
388
|
-
|
389
|
-
</li>
|
390
|
-
|
391
|
-
|
392
|
-
<li id="section-22">
|
393
|
-
<div class="annotation">
|
394
|
-
|
395
|
-
<div class="pilwrap ">
|
396
|
-
<a class="pilcrow" href="#section-22">¶</a>
|
397
|
-
</div>
|
398
|
-
<p>Generate iframe URL</p>
|
399
|
-
|
400
|
-
</div>
|
401
|
-
|
402
|
-
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">case</span> base_path
|
403
|
-
<span class="hljs-keyword">when</span> <span class="hljs-string">'https://stage-api-groupdocs.dynabic.com'</span>
|
404
|
-
iframe = <span class="hljs-string">"https://stage-api-groupdocs.dynabic.com<span class="hljs-subst">#{url}</span>"</span>
|
405
|
-
<span class="hljs-keyword">when</span> <span class="hljs-string">'https://dev-api-groupdocs.dynabic.com'</span>
|
406
|
-
iframe = <span class="hljs-string">"https://dev-apps.groupdocs.com<span class="hljs-subst">#{url}</span>"</span>
|
407
|
-
<span class="hljs-keyword">else</span>
|
408
|
-
iframe = <span class="hljs-string">"https://apps.groupdocs.com<span class="hljs-subst">#{url}</span>"</span>
|
409
|
-
<span class="hljs-keyword">end</span></pre></div></div>
|
410
|
-
|
411
|
-
</li>
|
412
|
-
|
413
|
-
|
414
|
-
<li id="section-23">
|
415
|
-
<div class="annotation">
|
416
|
-
|
417
|
-
<div class="pilwrap ">
|
418
|
-
<a class="pilcrow" href="#section-23">¶</a>
|
419
|
-
</div>
|
420
|
-
<p>Make iframe</p>
|
421
|
-
|
422
|
-
</div>
|
423
|
-
|
424
|
-
<div class="content"><div class='highlight'><pre> iframe = <span class="hljs-string">"<iframe id='downloadframe' src='<span class="hljs-subst">#{iframe}</span>' width='800' height='1000'></iframe>"</span>
|
425
|
-
|
426
|
-
<span class="hljs-keyword">end</span>
|
427
|
-
<span class="hljs-keyword">end</span>
|
428
|
-
|
429
|
-
<span class="hljs-keyword">rescue</span> <span class="hljs-constant">Exception</span> => e
|
430
|
-
err = e.message
|
431
|
-
<span class="hljs-keyword">end</span></pre></div></div>
|
432
|
-
|
433
|
-
</li>
|
434
|
-
|
435
|
-
|
436
|
-
<li id="section-24">
|
437
|
-
<div class="annotation">
|
438
|
-
|
439
|
-
<div class="pilwrap ">
|
440
|
-
<a class="pilcrow" href="#section-24">¶</a>
|
441
|
-
</div>
|
442
|
-
<p>set variables for template</p>
|
443
|
-
|
444
|
-
</div>
|
445
|
-
|
446
|
-
<div class="content"><div class='highlight'><pre> haml <span class="hljs-symbol">:sample11</span>, <span class="hljs-symbol">:locals</span> => {<span class="hljs-symbol">:clientId</span> => settings.client_id,
|
447
|
-
<span class="hljs-symbol">:privateKey</span> => settings.private_key,
|
448
|
-
<span class="hljs-symbol">:fileId</span> => settings.file_id,
|
449
|
-
<span class="hljs-symbol">:annotationType</span> => settings.annotation_type,
|
450
|
-
<span class="hljs-symbol">:annotationId</span> => id,
|
451
|
-
<span class="hljs-symbol">:annotationText</span> => params[<span class="hljs-string">'text'</span>],
|
452
|
-
<span class="hljs-symbol">:err</span> => err,
|
453
|
-
<span class="hljs-symbol">:iframe</span> => iframe,
|
454
|
-
<span class="hljs-symbol">:message</span> => message}
|
455
|
-
<span class="hljs-keyword">end</span></pre></div></div>
|
456
|
-
|
457
|
-
</li>
|
458
|
-
|
459
|
-
</ul>
|
460
|
-
</div>
|
461
|
-
</body>
|
462
|
-
</html>
|
1
|
+
<!DOCTYPE html>
|
2
|
+
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<title>sample11.rb</title>
|
6
|
+
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
7
|
+
<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
|
8
|
+
<link rel="stylesheet" media="all" href="docco.css" />
|
9
|
+
</head>
|
10
|
+
<body>
|
11
|
+
<div id="container">
|
12
|
+
<div id="background"></div>
|
13
|
+
|
14
|
+
<ul class="sections">
|
15
|
+
|
16
|
+
<li id="title">
|
17
|
+
<div class="annotation">
|
18
|
+
<h1>sample11.rb</h1>
|
19
|
+
</div>
|
20
|
+
</li>
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
<li id="section-1">
|
25
|
+
<div class="annotation">
|
26
|
+
|
27
|
+
<div class="pilwrap ">
|
28
|
+
<a class="pilcrow" href="#section-1">¶</a>
|
29
|
+
</div>
|
30
|
+
<p>GET request</p>
|
31
|
+
|
32
|
+
</div>
|
33
|
+
|
34
|
+
<div class="content"><div class='highlight'><pre>get <span class="hljs-string">'/sample-11-how-programmatically-create-and-post-an-annotation-into-document'</span> <span class="hljs-keyword">do</span>
|
35
|
+
haml <span class="hljs-symbol">:sample11</span>
|
36
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
37
|
+
|
38
|
+
</li>
|
39
|
+
|
40
|
+
|
41
|
+
<li id="section-2">
|
42
|
+
<div class="annotation">
|
43
|
+
|
44
|
+
<div class="pilwrap ">
|
45
|
+
<a class="pilcrow" href="#section-2">¶</a>
|
46
|
+
</div>
|
47
|
+
<p>POST request</p>
|
48
|
+
|
49
|
+
</div>
|
50
|
+
|
51
|
+
<div class="content"><div class='highlight'><pre>post <span class="hljs-string">'/sample-11-how-programmatically-create-and-post-an-annotation-into-document'</span> <span class="hljs-keyword">do</span></pre></div></div>
|
52
|
+
|
53
|
+
</li>
|
54
|
+
|
55
|
+
|
56
|
+
<li id="section-3">
|
57
|
+
<div class="annotation">
|
58
|
+
|
59
|
+
<div class="pilwrap ">
|
60
|
+
<a class="pilcrow" href="#section-3">¶</a>
|
61
|
+
</div>
|
62
|
+
<p>Set variables</p>
|
63
|
+
|
64
|
+
</div>
|
65
|
+
|
66
|
+
<div class="content"><div class='highlight'><pre> set <span class="hljs-symbol">:client_id</span>, params[<span class="hljs-symbol">:clientId</span>]
|
67
|
+
set <span class="hljs-symbol">:private_key</span>, params[<span class="hljs-symbol">:privateKey</span>]
|
68
|
+
set <span class="hljs-symbol">:file_id</span>, params[<span class="hljs-symbol">:fileId</span>]
|
69
|
+
set <span class="hljs-symbol">:annotation_type</span>, params[<span class="hljs-symbol">:annotationType</span>]
|
70
|
+
set <span class="hljs-symbol">:annotation_id</span>, params[<span class="hljs-symbol">:annotationId</span>]
|
71
|
+
set <span class="hljs-symbol">:base_path</span>, params[<span class="hljs-symbol">:basePath</span>]
|
72
|
+
|
73
|
+
<span class="hljs-keyword">begin</span></pre></div></div>
|
74
|
+
|
75
|
+
</li>
|
76
|
+
|
77
|
+
|
78
|
+
<li id="section-4">
|
79
|
+
<div class="annotation">
|
80
|
+
|
81
|
+
<div class="pilwrap ">
|
82
|
+
<a class="pilcrow" href="#section-4">¶</a>
|
83
|
+
</div>
|
84
|
+
<p>Check required variables</p>
|
85
|
+
|
86
|
+
</div>
|
87
|
+
|
88
|
+
<div class="content"><div class='highlight'><pre> raise <span class="hljs-string">'Please enter all required parameters'</span> <span class="hljs-keyword">if</span> settings.client_id.empty? <span class="hljs-keyword">or</span> settings.private_key.empty? <span class="hljs-keyword">or</span> settings.file_id.empty? <span class="hljs-keyword">or</span> settings.annotation_type.empty?</pre></div></div>
|
89
|
+
|
90
|
+
</li>
|
91
|
+
|
92
|
+
|
93
|
+
<li id="section-5">
|
94
|
+
<div class="annotation">
|
95
|
+
|
96
|
+
<div class="pilwrap ">
|
97
|
+
<a class="pilcrow" href="#section-5">¶</a>
|
98
|
+
</div>
|
99
|
+
<p>Prepare base path</p>
|
100
|
+
|
101
|
+
</div>
|
102
|
+
|
103
|
+
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">if</span> settings.base_path.empty?
|
104
|
+
base_path = <span class="hljs-string">'https://api.groupdocs.com'</span>
|
105
|
+
<span class="hljs-keyword">elsif</span> settings.base_path.match(<span class="hljs-string">'/v2.0'</span>)
|
106
|
+
base_path = settings.base_path.split(<span class="hljs-string">'/v2.0'</span>)[<span class="hljs-number">0</span>]
|
107
|
+
<span class="hljs-keyword">else</span>
|
108
|
+
base_path = settings.base_path
|
109
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
110
|
+
|
111
|
+
</li>
|
112
|
+
|
113
|
+
|
114
|
+
<li id="section-6">
|
115
|
+
<div class="annotation">
|
116
|
+
|
117
|
+
<div class="pilwrap ">
|
118
|
+
<a class="pilcrow" href="#section-6">¶</a>
|
119
|
+
</div>
|
120
|
+
<p>Configure your access to API server</p>
|
121
|
+
|
122
|
+
</div>
|
123
|
+
|
124
|
+
<div class="content"><div class='highlight'><pre> <span class="hljs-constant">GroupDocs</span>.configure <span class="hljs-keyword">do</span> |groupdocs|
|
125
|
+
groupdocs.client_id = settings.client_id
|
126
|
+
groupdocs.private_key = settings.private_key</pre></div></div>
|
127
|
+
|
128
|
+
</li>
|
129
|
+
|
130
|
+
|
131
|
+
<li id="section-7">
|
132
|
+
<div class="annotation">
|
133
|
+
|
134
|
+
<div class="pilwrap ">
|
135
|
+
<a class="pilcrow" href="#section-7">¶</a>
|
136
|
+
</div>
|
137
|
+
<p>Optionally specify API server and version</p>
|
138
|
+
|
139
|
+
</div>
|
140
|
+
|
141
|
+
<div class="content"><div class='highlight'><pre> groupdocs.api_server = base_path <span class="hljs-comment"># default is 'https://api.groupdocs.com'</span>
|
142
|
+
<span class="hljs-keyword">end</span>
|
143
|
+
|
144
|
+
<span class="hljs-keyword">if</span> settings.annotation_id != <span class="hljs-string">''</span>
|
145
|
+
|
146
|
+
file = <span class="hljs-constant">GroupDocs::Storage::File</span>.new({<span class="hljs-symbol">:guid</span> => settings.file_id}).to_document
|
147
|
+
annotation = file.annotations!()</pre></div></div>
|
148
|
+
|
149
|
+
</li>
|
150
|
+
|
151
|
+
|
152
|
+
<li id="section-8">
|
153
|
+
<div class="annotation">
|
154
|
+
|
155
|
+
<div class="pilwrap ">
|
156
|
+
<a class="pilcrow" href="#section-8">¶</a>
|
157
|
+
</div>
|
158
|
+
<p>Remove annotation from document</p>
|
159
|
+
|
160
|
+
</div>
|
161
|
+
|
162
|
+
<div class="content"><div class='highlight'><pre> remove = annotation.last.remove!()
|
163
|
+
message = <span class="hljs-string">"You delete the annotation id = <span class="hljs-subst">#{remove[<span class="hljs-symbol">:guid</span>]}</span> "</span>
|
164
|
+
<span class="hljs-keyword">else</span></pre></div></div>
|
165
|
+
|
166
|
+
</li>
|
167
|
+
|
168
|
+
|
169
|
+
<li id="section-9">
|
170
|
+
<div class="annotation">
|
171
|
+
|
172
|
+
<div class="pilwrap ">
|
173
|
+
<a class="pilcrow" href="#section-9">¶</a>
|
174
|
+
</div>
|
175
|
+
<p>Annotation types</p>
|
176
|
+
|
177
|
+
</div>
|
178
|
+
|
179
|
+
<div class="content"><div class='highlight'><pre> types = {<span class="hljs-symbol">:text</span> => <span class="hljs-string">"0"</span>, <span class="hljs-symbol">:area</span> => <span class="hljs-string">"1"</span>, <span class="hljs-symbol">:point</span> => <span class="hljs-string">"2"</span>}</pre></div></div>
|
180
|
+
|
181
|
+
</li>
|
182
|
+
|
183
|
+
|
184
|
+
<li id="section-10">
|
185
|
+
<div class="annotation">
|
186
|
+
|
187
|
+
<div class="pilwrap ">
|
188
|
+
<a class="pilcrow" href="#section-10">¶</a>
|
189
|
+
</div>
|
190
|
+
<p>Required parameters</p>
|
191
|
+
|
192
|
+
</div>
|
193
|
+
|
194
|
+
<div class="content"><div class='highlight'><pre> all_params = all_params = [<span class="hljs-string">'annotationType'</span>, <span class="hljs-string">'boxX'</span>, <span class="hljs-string">'boxY'</span>, <span class="hljs-string">'text'</span>]</pre></div></div>
|
195
|
+
|
196
|
+
</li>
|
197
|
+
|
198
|
+
|
199
|
+
<li id="section-11">
|
200
|
+
<div class="annotation">
|
201
|
+
|
202
|
+
<div class="pilwrap ">
|
203
|
+
<a class="pilcrow" href="#section-11">¶</a>
|
204
|
+
</div>
|
205
|
+
<p>Added required parameters depends on annotation type [‘text’ or ‘area’]</p>
|
206
|
+
|
207
|
+
</div>
|
208
|
+
|
209
|
+
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">if</span> settings.annotation_type == <span class="hljs-string">'text'</span>
|
210
|
+
all_params = all_params | [<span class="hljs-string">'boxWidth'</span>, <span class="hljs-string">'boxHeight'</span>, <span class="hljs-string">'annotationPositionX'</span>, <span class="hljs-string">'annotationPositionY'</span>, <span class="hljs-string">'rangePosition'</span>, <span class="hljs-string">'rangeLength'</span>]
|
211
|
+
<span class="hljs-keyword">elsif</span> settings.annotation_type == <span class="hljs-string">'area'</span>
|
212
|
+
all_params = all_params | [<span class="hljs-string">'boxWidth'</span>, <span class="hljs-string">'boxHeight'</span>]
|
213
|
+
<span class="hljs-keyword">end</span>
|
214
|
+
pp <span class="hljs-string">"test"</span></pre></div></div>
|
215
|
+
|
216
|
+
</li>
|
217
|
+
|
218
|
+
|
219
|
+
<li id="section-12">
|
220
|
+
<div class="annotation">
|
221
|
+
|
222
|
+
<div class="pilwrap ">
|
223
|
+
<a class="pilcrow" href="#section-12">¶</a>
|
224
|
+
</div>
|
225
|
+
<p>raise all_params.to_yaml
|
226
|
+
Checking required parameters</p>
|
227
|
+
|
228
|
+
</div>
|
229
|
+
|
230
|
+
<div class="content"><div class='highlight'><pre> all_params.each <span class="hljs-keyword">do</span> |param|
|
231
|
+
raise <span class="hljs-string">'Please enter all required parameters'</span> <span class="hljs-keyword">if</span> params[param].empty?
|
232
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
233
|
+
|
234
|
+
</li>
|
235
|
+
|
236
|
+
|
237
|
+
<li id="section-13">
|
238
|
+
<div class="annotation">
|
239
|
+
|
240
|
+
<div class="pilwrap ">
|
241
|
+
<a class="pilcrow" href="#section-13">¶</a>
|
242
|
+
</div>
|
243
|
+
<p>Create document object</p>
|
244
|
+
|
245
|
+
</div>
|
246
|
+
|
247
|
+
<div class="content"><div class='highlight'><pre> document = <span class="hljs-constant">GroupDocs::Storage::File</span>.new(<span class="hljs-symbol">guid:</span> settings.file_id).to_document
|
248
|
+
|
249
|
+
<span class="hljs-keyword">unless</span> document.instance_of? <span class="hljs-constant">String</span></pre></div></div>
|
250
|
+
|
251
|
+
</li>
|
252
|
+
|
253
|
+
|
254
|
+
<li id="section-14">
|
255
|
+
<div class="annotation">
|
256
|
+
|
257
|
+
<div class="pilwrap ">
|
258
|
+
<a class="pilcrow" href="#section-14">¶</a>
|
259
|
+
</div>
|
260
|
+
<p>Start create new annotation</p>
|
261
|
+
|
262
|
+
</div>
|
263
|
+
|
264
|
+
<div class="content"><div class='highlight'><pre> annotation = <span class="hljs-constant">GroupDocs::Document::Annotation</span>.new(<span class="hljs-symbol">document:</span> document)
|
265
|
+
|
266
|
+
info = <span class="hljs-keyword">nil</span></pre></div></div>
|
267
|
+
|
268
|
+
</li>
|
269
|
+
|
270
|
+
|
271
|
+
<li id="section-15">
|
272
|
+
<div class="annotation">
|
273
|
+
|
274
|
+
<div class="pilwrap ">
|
275
|
+
<a class="pilcrow" href="#section-15">¶</a>
|
276
|
+
</div>
|
277
|
+
<p>Construct requestBody depends on annotation type
|
278
|
+
Text annotation</p>
|
279
|
+
|
280
|
+
</div>
|
281
|
+
|
282
|
+
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">if</span> settings.annotation_type == <span class="hljs-string">'text'</span>
|
283
|
+
annotation_box = {<span class="hljs-symbol">x:</span> params[<span class="hljs-string">'boxX'</span>], <span class="hljs-symbol">y:</span> params[<span class="hljs-string">'boxY'</span>], <span class="hljs-symbol">width:</span> params[<span class="hljs-string">'boxWidth'</span>], <span class="hljs-symbol">height:</span> params[<span class="hljs-string">'boxHeight'</span>]}
|
284
|
+
annotation_position = {<span class="hljs-symbol">x:</span> params[<span class="hljs-string">'annotationPositionX'</span>], <span class="hljs-symbol">y:</span> params[<span class="hljs-string">'annotationPositionY'</span>]}
|
285
|
+
range = {<span class="hljs-symbol">position:</span> params[<span class="hljs-string">'rangePosition'</span>], <span class="hljs-symbol">length:</span> params[<span class="hljs-string">'rangeLength'</span>]}
|
286
|
+
info = { <span class="hljs-symbol">:box</span> => annotation_box, <span class="hljs-symbol">:annotationPosition</span> => annotation_position, <span class="hljs-symbol">:range</span> => range, <span class="hljs-symbol">:type</span> => types[settings.annotation_type.to_sym], <span class="hljs-symbol">:replies</span> => [{<span class="hljs-symbol">:text</span> => params[<span class="hljs-string">'text'</span>]}]}</pre></div></div>
|
287
|
+
|
288
|
+
</li>
|
289
|
+
|
290
|
+
|
291
|
+
<li id="section-16">
|
292
|
+
<div class="annotation">
|
293
|
+
|
294
|
+
<div class="pilwrap ">
|
295
|
+
<a class="pilcrow" href="#section-16">¶</a>
|
296
|
+
</div>
|
297
|
+
<p>Area annotation</p>
|
298
|
+
|
299
|
+
</div>
|
300
|
+
|
301
|
+
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">elsif</span> settings.annotation_type == <span class="hljs-string">'area'</span>
|
302
|
+
annotation_box = {<span class="hljs-symbol">x:</span> params[<span class="hljs-string">'boxX'</span>], <span class="hljs-symbol">y:</span> params[<span class="hljs-string">'boxY'</span>], <span class="hljs-symbol">width:</span> params[<span class="hljs-string">'boxWidth'</span>], <span class="hljs-symbol">height:</span> params[<span class="hljs-string">'boxHeight'</span>]}
|
303
|
+
annotation_annotationPosition = {<span class="hljs-symbol">x:</span> <span class="hljs-number">0</span>, <span class="hljs-symbol">y:</span> <span class="hljs-number">0</span>}
|
304
|
+
raise <span class="hljs-string">"test"</span>
|
305
|
+
info = {<span class="hljs-symbol">:box</span> => annotation_box, <span class="hljs-symbol">:annotationPosition</span> => annotation_annotationPosition, <span class="hljs-symbol">:type</span> => types[settings.annotation_type.to_sym], <span class="hljs-symbol">:replies</span> => [{<span class="hljs-symbol">:text</span> => params[<span class="hljs-string">'text'</span>]}]}</pre></div></div>
|
306
|
+
|
307
|
+
</li>
|
308
|
+
|
309
|
+
|
310
|
+
<li id="section-17">
|
311
|
+
<div class="annotation">
|
312
|
+
|
313
|
+
<div class="pilwrap ">
|
314
|
+
<a class="pilcrow" href="#section-17">¶</a>
|
315
|
+
</div>
|
316
|
+
<p>Point annotation</p>
|
317
|
+
|
318
|
+
</div>
|
319
|
+
|
320
|
+
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">elsif</span> settings.annotation_type == <span class="hljs-string">'point'</span>
|
321
|
+
annotation_box = {<span class="hljs-symbol">x:</span> params[<span class="hljs-string">'boxX'</span>], <span class="hljs-symbol">y:</span> params[<span class="hljs-string">'boxY'</span>], <span class="hljs-symbol">width:</span> <span class="hljs-number">0</span>, <span class="hljs-symbol">height:</span> <span class="hljs-number">0</span>}
|
322
|
+
annotation_annotationPosition = {<span class="hljs-symbol">x:</span> <span class="hljs-number">0</span>, <span class="hljs-symbol">y:</span> <span class="hljs-number">0</span>}
|
323
|
+
|
324
|
+
info = {<span class="hljs-symbol">:box</span> => annotation_box, <span class="hljs-symbol">:annotationPosition</span> => annotation_annotationPosition, <span class="hljs-symbol">:type</span> => types[settings.annotation_type.to_sym], <span class="hljs-symbol">:replies</span> => [{<span class="hljs-symbol">:text</span> => params[<span class="hljs-string">'text'</span>]}] }
|
325
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
326
|
+
|
327
|
+
</li>
|
328
|
+
|
329
|
+
|
330
|
+
<li id="section-18">
|
331
|
+
<div class="annotation">
|
332
|
+
|
333
|
+
<div class="pilwrap ">
|
334
|
+
<a class="pilcrow" href="#section-18">¶</a>
|
335
|
+
</div>
|
336
|
+
<p>Call create method</p>
|
337
|
+
|
338
|
+
</div>
|
339
|
+
|
340
|
+
<div class="content"><div class='highlight'><pre> annotation.create!(info)
|
341
|
+
raise annotation.to_yaml
|
342
|
+
id = annotation.document.file.id</pre></div></div>
|
343
|
+
|
344
|
+
</li>
|
345
|
+
|
346
|
+
|
347
|
+
<li id="section-19">
|
348
|
+
<div class="annotation">
|
349
|
+
|
350
|
+
<div class="pilwrap ">
|
351
|
+
<a class="pilcrow" href="#section-19">¶</a>
|
352
|
+
</div>
|
353
|
+
<p>Get document guid</p>
|
354
|
+
|
355
|
+
</div>
|
356
|
+
|
357
|
+
<div class="content"><div class='highlight'><pre> guid = annotation.document.file.guid</pre></div></div>
|
358
|
+
|
359
|
+
</li>
|
360
|
+
|
361
|
+
|
362
|
+
<li id="section-20">
|
363
|
+
<div class="annotation">
|
364
|
+
|
365
|
+
<div class="pilwrap ">
|
366
|
+
<a class="pilcrow" href="#section-20">¶</a>
|
367
|
+
</div>
|
368
|
+
<p>Prepare to sign url</p>
|
369
|
+
|
370
|
+
</div>
|
371
|
+
|
372
|
+
<div class="content"><div class='highlight'><pre> iframe = <span class="hljs-string">"/document-annotation2/embed/<span class="hljs-subst">#{guid}</span>"</span></pre></div></div>
|
373
|
+
|
374
|
+
</li>
|
375
|
+
|
376
|
+
|
377
|
+
<li id="section-21">
|
378
|
+
<div class="annotation">
|
379
|
+
|
380
|
+
<div class="pilwrap ">
|
381
|
+
<a class="pilcrow" href="#section-21">¶</a>
|
382
|
+
</div>
|
383
|
+
<p>Construct result string</p>
|
384
|
+
|
385
|
+
</div>
|
386
|
+
|
387
|
+
<div class="content"><div class='highlight'><pre> url = <span class="hljs-constant">GroupDocs::Api::Request</span>.new(<span class="hljs-symbol">:path</span> => iframe).prepare_and_sign_url</pre></div></div>
|
388
|
+
|
389
|
+
</li>
|
390
|
+
|
391
|
+
|
392
|
+
<li id="section-22">
|
393
|
+
<div class="annotation">
|
394
|
+
|
395
|
+
<div class="pilwrap ">
|
396
|
+
<a class="pilcrow" href="#section-22">¶</a>
|
397
|
+
</div>
|
398
|
+
<p>Generate iframe URL</p>
|
399
|
+
|
400
|
+
</div>
|
401
|
+
|
402
|
+
<div class="content"><div class='highlight'><pre> <span class="hljs-keyword">case</span> base_path
|
403
|
+
<span class="hljs-keyword">when</span> <span class="hljs-string">'https://stage-api-groupdocs.dynabic.com'</span>
|
404
|
+
iframe = <span class="hljs-string">"https://stage-api-groupdocs.dynabic.com<span class="hljs-subst">#{url}</span>"</span>
|
405
|
+
<span class="hljs-keyword">when</span> <span class="hljs-string">'https://dev-api-groupdocs.dynabic.com'</span>
|
406
|
+
iframe = <span class="hljs-string">"https://dev-apps.groupdocs.com<span class="hljs-subst">#{url}</span>"</span>
|
407
|
+
<span class="hljs-keyword">else</span>
|
408
|
+
iframe = <span class="hljs-string">"https://apps.groupdocs.com<span class="hljs-subst">#{url}</span>"</span>
|
409
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
410
|
+
|
411
|
+
</li>
|
412
|
+
|
413
|
+
|
414
|
+
<li id="section-23">
|
415
|
+
<div class="annotation">
|
416
|
+
|
417
|
+
<div class="pilwrap ">
|
418
|
+
<a class="pilcrow" href="#section-23">¶</a>
|
419
|
+
</div>
|
420
|
+
<p>Make iframe</p>
|
421
|
+
|
422
|
+
</div>
|
423
|
+
|
424
|
+
<div class="content"><div class='highlight'><pre> iframe = <span class="hljs-string">"<iframe id='downloadframe' src='<span class="hljs-subst">#{iframe}</span>' width='800' height='1000'></iframe>"</span>
|
425
|
+
|
426
|
+
<span class="hljs-keyword">end</span>
|
427
|
+
<span class="hljs-keyword">end</span>
|
428
|
+
|
429
|
+
<span class="hljs-keyword">rescue</span> <span class="hljs-constant">Exception</span> => e
|
430
|
+
err = e.message
|
431
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
432
|
+
|
433
|
+
</li>
|
434
|
+
|
435
|
+
|
436
|
+
<li id="section-24">
|
437
|
+
<div class="annotation">
|
438
|
+
|
439
|
+
<div class="pilwrap ">
|
440
|
+
<a class="pilcrow" href="#section-24">¶</a>
|
441
|
+
</div>
|
442
|
+
<p>set variables for template</p>
|
443
|
+
|
444
|
+
</div>
|
445
|
+
|
446
|
+
<div class="content"><div class='highlight'><pre> haml <span class="hljs-symbol">:sample11</span>, <span class="hljs-symbol">:locals</span> => {<span class="hljs-symbol">:clientId</span> => settings.client_id,
|
447
|
+
<span class="hljs-symbol">:privateKey</span> => settings.private_key,
|
448
|
+
<span class="hljs-symbol">:fileId</span> => settings.file_id,
|
449
|
+
<span class="hljs-symbol">:annotationType</span> => settings.annotation_type,
|
450
|
+
<span class="hljs-symbol">:annotationId</span> => id,
|
451
|
+
<span class="hljs-symbol">:annotationText</span> => params[<span class="hljs-string">'text'</span>],
|
452
|
+
<span class="hljs-symbol">:err</span> => err,
|
453
|
+
<span class="hljs-symbol">:iframe</span> => iframe,
|
454
|
+
<span class="hljs-symbol">:message</span> => message}
|
455
|
+
<span class="hljs-keyword">end</span></pre></div></div>
|
456
|
+
|
457
|
+
</li>
|
458
|
+
|
459
|
+
</ul>
|
460
|
+
</div>
|
461
|
+
</body>
|
462
|
+
</html>
|