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,421 +1,421 @@
|
|
1
|
-
module GroupDocs
|
2
|
-
class Document::Annotation < Api::Entity
|
3
|
-
|
4
|
-
require 'groupdocs/document/annotation/reply'
|
5
|
-
require 'groupdocs/document/annotation/reviewer'
|
6
|
-
require 'groupdocs/document/annotation/marker'
|
7
|
-
|
8
|
-
include Api::Helpers::AccessMode
|
9
|
-
|
10
|
-
#AnnotationType = { Text: 0, Area: 1, Point: 2, TextStrikeout: 3, Polyline: 4, TextField: 5, Watermark: 6, TextReplacement: 7, Arrow: 8, TextRedaction 9, ResourceRedaction 10, TextUnderline 11, Distance 12, All 13 }
|
11
|
-
|
12
|
-
# updated in release 1.7.0
|
13
|
-
TYPES = %w(Text Area Point TextStrikeout Polyline TextField Watermark TextReplacement Arrow TextRedaction ResourceRedaction ResourceRedaction TextUnderline Distance All)
|
14
|
-
|
15
|
-
# @attr [GroupDocs::Document] document
|
16
|
-
attr_accessor :document
|
17
|
-
# @attr [Integer] id
|
18
|
-
attr_accessor :id
|
19
|
-
# @attr [String] guid
|
20
|
-
attr_accessor :guid
|
21
|
-
# @attr [String] sessionGuid
|
22
|
-
attr_accessor :sessionGuid
|
23
|
-
# @attr [String] documentGuid
|
24
|
-
attr_accessor :documentGuid
|
25
|
-
# @attr [String] creatorGuid
|
26
|
-
attr_accessor :creatorGuid
|
27
|
-
# @attr [String] replyGuid
|
28
|
-
attr_accessor :replyGuid
|
29
|
-
# @attr [Time] createdOn
|
30
|
-
attr_accessor :createdOn
|
31
|
-
# @attr [Symbol] type
|
32
|
-
attr_accessor :type
|
33
|
-
# @attr [Symbol] access
|
34
|
-
attr_accessor :access
|
35
|
-
# @attr [GroupDocs::Document::Rectangle] box
|
36
|
-
attr_accessor :box
|
37
|
-
# @attr [Array<GroupDocs::Document::Annotation::Reply>] replies
|
38
|
-
attr_accessor :replies
|
39
|
-
# @attr [Hash] annotationPosition
|
40
|
-
attr_accessor :annotationPosition
|
41
|
-
#@attr [Double] AnnotationSizeInfo
|
42
|
-
attr_accessor :width
|
43
|
-
attr_accessor :height
|
44
|
-
#@attr [String]TextFieldInfo
|
45
|
-
attr_accessor :fieldText
|
46
|
-
attr_accessor :fontFamily
|
47
|
-
attr_accessor :fontSize
|
48
|
-
#@attr [String]Font Color
|
49
|
-
attr_accessor :fontColor
|
50
|
-
|
51
|
-
#added in release 1.5.8
|
52
|
-
#@attr [Int] pageNumber
|
53
|
-
attr_accessor :pageNumber
|
54
|
-
#@attr [Long] serverTime
|
55
|
-
attr_accessor :serverTime
|
56
|
-
#attr [Array]
|
57
|
-
|
58
|
-
#added in release 1.7.0
|
59
|
-
#@attr [Int] penColor
|
60
|
-
attr_accessor :penColor
|
61
|
-
#@attr [Int] penWidth
|
62
|
-
attr_accessor :penWidth
|
63
|
-
#@attr [Int] penStyle
|
64
|
-
attr_accessor :penStyle
|
65
|
-
#@attr [Int] creatorName
|
66
|
-
attr_accessor :creatorName
|
67
|
-
#@attr [Int] creatorEmail
|
68
|
-
attr_accessor :creatorEmail
|
69
|
-
#@attr [Long] penColor
|
70
|
-
attr_accessor :layerId
|
71
|
-
#@attr [Int] penWidth
|
72
|
-
attr_accessor :backgroundColor
|
73
|
-
|
74
|
-
#added in release 2.0.0
|
75
|
-
#@attr [String] text
|
76
|
-
attr_accessor :text
|
77
|
-
|
78
|
-
# Compatibility with response JSON
|
79
|
-
alias_method :annotationGuid=, :guid=
|
80
|
-
|
81
|
-
# Human-readable accessors
|
82
|
-
alias_accessor :session_guid, :sessionGuid
|
83
|
-
alias_accessor :document_guid, :documentGuid
|
84
|
-
alias_accessor :creator_guid, :creatorGuid
|
85
|
-
alias_accessor :reply_guid, :replyGuid
|
86
|
-
alias_accessor :created_on, :createdOn
|
87
|
-
alias_accessor :annotation_position, :annotationPosition
|
88
|
-
|
89
|
-
#added in release 1.5.8
|
90
|
-
alias_accessor :page_number, :pageNumber
|
91
|
-
alias_accessor :server_time, :serverTime
|
92
|
-
|
93
|
-
#added in release 1.7.0
|
94
|
-
alias_accessor :pen_color, :penColor
|
95
|
-
alias_accessor :pen_width, :penWidth
|
96
|
-
alias_accessor :pen_style, :penStyle
|
97
|
-
alias_accessor :creator_name, :creatorName
|
98
|
-
alias_accessor :creator_email, :creatorEmail
|
99
|
-
alias_accessor :layer_id, :layerId
|
100
|
-
alias_accessor :background_color, :backgroundColor
|
101
|
-
|
102
|
-
#
|
103
|
-
# Creates new GroupDocs::Document::Annotation.
|
104
|
-
#
|
105
|
-
# @raise [ArgumentError] If document is not passed or is not an instance of GroupDocs::Document
|
106
|
-
#
|
107
|
-
def initialize(options = {}, &blk)
|
108
|
-
super(options, &blk)
|
109
|
-
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
110
|
-
"You have to pass GroupDocs::Document object: #{document.inspect}."
|
111
|
-
end
|
112
|
-
|
113
|
-
#
|
114
|
-
# Updates type with machine-readable format.
|
115
|
-
#
|
116
|
-
# @param [Symbol] type
|
117
|
-
# @raise [ArgumentError] if type is unknown
|
118
|
-
#
|
119
|
-
def type=(type)
|
120
|
-
if type.is_a?(Symbol)
|
121
|
-
type = type.to_s.camelize
|
122
|
-
TYPES.include?(type) or raise ArgumentError, "Unknown type: #{type.inspect}"
|
123
|
-
end
|
124
|
-
|
125
|
-
@type = type
|
126
|
-
end
|
127
|
-
|
128
|
-
#
|
129
|
-
# Returns type in human-readable format.
|
130
|
-
#
|
131
|
-
# @return [Symbol]
|
132
|
-
#
|
133
|
-
def type
|
134
|
-
@type.underscore.to_sym
|
135
|
-
end
|
136
|
-
|
137
|
-
#
|
138
|
-
# Converts access mode to machine-readable format.
|
139
|
-
#
|
140
|
-
# @param [Symbol] mode
|
141
|
-
#
|
142
|
-
def access=(mode)
|
143
|
-
@access = (mode.is_a?(Symbol) ? parse_access_mode(mode) : mode)
|
144
|
-
end
|
145
|
-
|
146
|
-
#
|
147
|
-
# Converts access mode to human-readable format.
|
148
|
-
#
|
149
|
-
# @return [Symbol]
|
150
|
-
#
|
151
|
-
def access
|
152
|
-
parse_access_mode(@access)
|
153
|
-
end
|
154
|
-
|
155
|
-
#
|
156
|
-
# Converts timestamp which is return by API server to Time object.
|
157
|
-
#
|
158
|
-
# @return [Time]
|
159
|
-
#
|
160
|
-
def created_on
|
161
|
-
Time.at(@createdOn / 1000)
|
162
|
-
end
|
163
|
-
|
164
|
-
#
|
165
|
-
# Coverts passed hash to GroupDocs::Document::Rectangle object.
|
166
|
-
#
|
167
|
-
# @param [Hash] options
|
168
|
-
# @return [GroupDocs::Document::Rectangle]
|
169
|
-
#
|
170
|
-
def box=(options)
|
171
|
-
@box = GroupDocs::Document::Rectangle.new(options)
|
172
|
-
end
|
173
|
-
|
174
|
-
#
|
175
|
-
# Converts each reply to GroupDocs::Document::Annotation::Reply object.
|
176
|
-
#
|
177
|
-
# @param [Array<GroupDocs::Document::Annotation::Reply, Hash>] replies
|
178
|
-
#
|
179
|
-
def replies=(replies)
|
180
|
-
if replies
|
181
|
-
@replies = replies.map do |reply|
|
182
|
-
if reply.is_a?(GroupDocs::Document::Annotation::Reply)
|
183
|
-
reply
|
184
|
-
else
|
185
|
-
reply.merge!(:annotation => self)
|
186
|
-
Document::Annotation::Reply.new(reply)
|
187
|
-
end
|
188
|
-
end
|
189
|
-
end
|
190
|
-
end
|
191
|
-
|
192
|
-
#
|
193
|
-
# Adds reply to annotation.
|
194
|
-
#
|
195
|
-
# @param [GroupDocs::Document::Annotation::Reply] reply
|
196
|
-
# @raise [ArgumentError] if reply is not GroupDocs::Document::Annotation::Reply object
|
197
|
-
#
|
198
|
-
def add_reply(reply)
|
199
|
-
reply.is_a?(GroupDocs::Document::Annotation::Reply) or raise ArgumentError,
|
200
|
-
"Reply should be GroupDocs::Document::Annotation::Reply object, received: #{reply.inspect}"
|
201
|
-
|
202
|
-
@replies ||= Array.new
|
203
|
-
@replies << reply
|
204
|
-
end
|
205
|
-
|
206
|
-
#
|
207
|
-
# Creates new annotation.
|
208
|
-
#
|
209
|
-
# @example
|
210
|
-
# document = GroupDocs::Storage::Folder.list!.first.to_document
|
211
|
-
# annotation = GroupDocs::Document::Annotation.new(document: document)
|
212
|
-
# annotation.create!
|
213
|
-
#
|
214
|
-
# @param [Hash] info Annotation info
|
215
|
-
# @option info [Array] :box
|
216
|
-
# @option info [Array] :annotationPosition
|
217
|
-
# @param [Hash] access Access credentials
|
218
|
-
# @option access [String] :client_id
|
219
|
-
# @option access [String] :private_key
|
220
|
-
#
|
221
|
-
def create!(info, access = {})
|
222
|
-
json = Api::Request.new do |request|
|
223
|
-
request[:access] = access
|
224
|
-
request[:method] = :POST
|
225
|
-
request[:path] = "/ant/{{client_id}}/files/#{document.file.guid}/annotations"
|
226
|
-
request[:request_body] = info
|
227
|
-
end.execute!
|
228
|
-
|
229
|
-
json.each do |field, value|
|
230
|
-
send(:"#{field}=", value) if respond_to?(:"#{field}=")
|
231
|
-
end
|
232
|
-
end
|
233
|
-
|
234
|
-
|
235
|
-
#
|
236
|
-
# Removes annotation.
|
237
|
-
#
|
238
|
-
# @param [Hash] access Access credentials
|
239
|
-
# @option access [String] :client_id
|
240
|
-
# @option access [String] :private_key
|
241
|
-
#
|
242
|
-
def remove!(access = {})
|
243
|
-
Api::Request.new do |request|
|
244
|
-
request[:access] = access
|
245
|
-
request[:method] = :DELETE
|
246
|
-
request[:path] = "/ant/{{client_id}}/annotations/#{guid}"
|
247
|
-
end.execute!
|
248
|
-
end
|
249
|
-
|
250
|
-
#
|
251
|
-
# added in release 1.6.0
|
252
|
-
#
|
253
|
-
# @example
|
254
|
-
# document = GroupDocs::Storage::Folder.list!.first.to_document
|
255
|
-
# annotation = GroupDocs::Document::Annotation.new(document: document)
|
256
|
-
# annotation.remove_annotations!
|
257
|
-
#
|
258
|
-
# Removes all annotations from document.
|
259
|
-
#
|
260
|
-
# @param [Hash] access Access credentials
|
261
|
-
# @option access [String] :client_id
|
262
|
-
# @option access [String] :private_key
|
263
|
-
#
|
264
|
-
def remove_annotations!(access = {})
|
265
|
-
json = Api::Request.new do |request|
|
266
|
-
request[:access] = access
|
267
|
-
request[:method] = :DELETE
|
268
|
-
request[:path] = "/ant/{{client_id}}/files/#{document.file.guid}/annotations"
|
269
|
-
end.execute!
|
270
|
-
json[:delete_annotation_results]
|
271
|
-
end
|
272
|
-
|
273
|
-
#
|
274
|
-
# Return an array of replies..
|
275
|
-
#
|
276
|
-
# @param [Hash] options
|
277
|
-
# @option options [Time] :after
|
278
|
-
# @param [Hash] access Access credentials
|
279
|
-
# @option access [String] :client_id
|
280
|
-
# @option access [String] :private_key
|
281
|
-
# @return [Array<GroupDocs::Document::Annotation::Reply>]
|
282
|
-
#
|
283
|
-
# @raise [ArgumentError] If :after option is passed but it's not an instance of Time
|
284
|
-
#
|
285
|
-
def replies!(options = {}, access = {})
|
286
|
-
Document::Annotation::Reply.get!(self, options, access)
|
287
|
-
end
|
288
|
-
|
289
|
-
#
|
290
|
-
# Moves annotation to given coordinates.
|
291
|
-
#
|
292
|
-
# @param [Integer, Float] x
|
293
|
-
# @param [Integer, Float] y
|
294
|
-
# @param [Hash] access Access credentials
|
295
|
-
# @option access [String] :client_id
|
296
|
-
# @option access [String] :private_key
|
297
|
-
#
|
298
|
-
def move!(x, y, access = {})
|
299
|
-
Api::Request.new do |request|
|
300
|
-
request[:access] = access
|
301
|
-
request[:method] = :PUT
|
302
|
-
request[:path] = "/ant/{{client_id}}/annotations/#{guid}/position"
|
303
|
-
request[:request_body] = { :x => x, :y => y }
|
304
|
-
end.execute!
|
305
|
-
|
306
|
-
self.annotation_position = { :x => x, :y => y }
|
307
|
-
end
|
308
|
-
|
309
|
-
#
|
310
|
-
# Changed in release 1.5.8
|
311
|
-
#
|
312
|
-
# Moves annotation marker to given coordinates.
|
313
|
-
#
|
314
|
-
# @param [GroupDocs::Annotation::Marker] marker Marker position
|
315
|
-
# @param [Hash] access Access credentials
|
316
|
-
# @option access [String] :client_id
|
317
|
-
# @option access [String] :private_key
|
318
|
-
#
|
319
|
-
def move_marker!(marker, access = {})
|
320
|
-
marker.is_a?(GroupDocs::Document::Annotation::MarkerPosition) or raise ArgumentError,
|
321
|
-
"Marker should be GroupDocs::Document::Annotation::MarkerPosition object, received: #{marker.inspect}"
|
322
|
-
Api::Request.new do |request|
|
323
|
-
request[:access] = access
|
324
|
-
request[:method] = :PUT
|
325
|
-
request[:path] = "/ant/{{client_id}}/annotations/#{guid}/markerPosition"
|
326
|
-
request[:request_body] = marker
|
327
|
-
end.execute!
|
328
|
-
|
329
|
-
if box && page_number
|
330
|
-
box.x = marker.position[:x]
|
331
|
-
box.y = marker.position[:y]
|
332
|
-
page_number = marker.page
|
333
|
-
else
|
334
|
-
self.box = { :x => marker.position[:x], :y => marker.position[:y] }
|
335
|
-
self.page_number = marker.page
|
336
|
-
end
|
337
|
-
end
|
338
|
-
|
339
|
-
#
|
340
|
-
# Sets access mode.
|
341
|
-
#
|
342
|
-
# @param [Symbol] mode
|
343
|
-
# @param [Hash] access Access credentials
|
344
|
-
# @option access [String] :client_id
|
345
|
-
# @option access [String] :private_key
|
346
|
-
#
|
347
|
-
def set_access!(mode, access = {})
|
348
|
-
Api::Request.new do |request|
|
349
|
-
request[:access] = access
|
350
|
-
request[:method] = :PUT
|
351
|
-
request[:path] = "/ant/{{client_id}}/annotations/#{guid}/annotationAccess"
|
352
|
-
request[:request_body] = %w(public private).index(mode.to_s)
|
353
|
-
end.execute!
|
354
|
-
|
355
|
-
self.access = mode
|
356
|
-
end
|
357
|
-
|
358
|
-
#
|
359
|
-
# Resize annotation.
|
360
|
-
#
|
361
|
-
# @param [Integer, Float] x
|
362
|
-
# @param [Integer, Float] y
|
363
|
-
# @param [Hash] access Access credentials
|
364
|
-
# @option access [String] :client_id
|
365
|
-
# @option access [String] :private_key
|
366
|
-
#
|
367
|
-
def resize!(x, y, access = {})
|
368
|
-
Api::Request.new do |request|
|
369
|
-
request[:access] = access
|
370
|
-
request[:method] = :PUT
|
371
|
-
request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
|
372
|
-
request[:request_body] = { :width => x, :height => y }
|
373
|
-
end.execute!
|
374
|
-
self.box = { :width => x, :height => y }
|
375
|
-
|
376
|
-
end
|
377
|
-
|
378
|
-
#
|
379
|
-
# Save Text Of Text Field.
|
380
|
-
#
|
381
|
-
# @param [String] fieldText
|
382
|
-
# @param [String] fontFamily
|
383
|
-
# @param [Integer, Float] fontSize
|
384
|
-
# @param [Hash] access Access credentials
|
385
|
-
# @option access [String] :client_id
|
386
|
-
# @option access [String] :private_key
|
387
|
-
#
|
388
|
-
def text_info!(fieldText, fontFamily, fontSize, access = {})
|
389
|
-
Api::Request.new do |request|
|
390
|
-
request[:access] = access
|
391
|
-
request[:method] = :PUT
|
392
|
-
request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
|
393
|
-
request[:request_body] = { :fieldText => fieldText, :fontFamily => fontFamily, :fontSize => fontSize }
|
394
|
-
end.execute!
|
395
|
-
|
396
|
-
self.fieldText = fieldText
|
397
|
-
self.fontFamily = fontFamily
|
398
|
-
self.fontSize = fontSize
|
399
|
-
end
|
400
|
-
|
401
|
-
#
|
402
|
-
# Save Text Of Text Color.
|
403
|
-
#
|
404
|
-
# @param [Integer, Float] fontColor
|
405
|
-
# @param [Hash] access Access credentials
|
406
|
-
# @option access [String] :client_id
|
407
|
-
# @option access [String] :private_key
|
408
|
-
#
|
409
|
-
def text_color!(font_color, access = {})
|
410
|
-
Api::Request.new do |request|
|
411
|
-
request[:access] = access
|
412
|
-
request[:method] = :PUT
|
413
|
-
request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
|
414
|
-
request[:request_body] = { :fontColor => font_color }
|
415
|
-
end.execute!
|
416
|
-
|
417
|
-
self.fontColor = font_color
|
418
|
-
end
|
419
|
-
|
420
|
-
end # Document::Annotation
|
421
|
-
end # GroupDocs
|
1
|
+
module GroupDocs
|
2
|
+
class Document::Annotation < Api::Entity
|
3
|
+
|
4
|
+
require 'groupdocs/document/annotation/reply'
|
5
|
+
require 'groupdocs/document/annotation/reviewer'
|
6
|
+
require 'groupdocs/document/annotation/marker'
|
7
|
+
|
8
|
+
include Api::Helpers::AccessMode
|
9
|
+
|
10
|
+
#AnnotationType = { Text: 0, Area: 1, Point: 2, TextStrikeout: 3, Polyline: 4, TextField: 5, Watermark: 6, TextReplacement: 7, Arrow: 8, TextRedaction 9, ResourceRedaction 10, TextUnderline 11, Distance 12, All 13 }
|
11
|
+
|
12
|
+
# updated in release 1.7.0
|
13
|
+
TYPES = %w(Text Area Point TextStrikeout Polyline TextField Watermark TextReplacement Arrow TextRedaction ResourceRedaction ResourceRedaction TextUnderline Distance All)
|
14
|
+
|
15
|
+
# @attr [GroupDocs::Document] document
|
16
|
+
attr_accessor :document
|
17
|
+
# @attr [Integer] id
|
18
|
+
attr_accessor :id
|
19
|
+
# @attr [String] guid
|
20
|
+
attr_accessor :guid
|
21
|
+
# @attr [String] sessionGuid
|
22
|
+
attr_accessor :sessionGuid
|
23
|
+
# @attr [String] documentGuid
|
24
|
+
attr_accessor :documentGuid
|
25
|
+
# @attr [String] creatorGuid
|
26
|
+
attr_accessor :creatorGuid
|
27
|
+
# @attr [String] replyGuid
|
28
|
+
attr_accessor :replyGuid
|
29
|
+
# @attr [Time] createdOn
|
30
|
+
attr_accessor :createdOn
|
31
|
+
# @attr [Symbol] type
|
32
|
+
attr_accessor :type
|
33
|
+
# @attr [Symbol] access
|
34
|
+
attr_accessor :access
|
35
|
+
# @attr [GroupDocs::Document::Rectangle] box
|
36
|
+
attr_accessor :box
|
37
|
+
# @attr [Array<GroupDocs::Document::Annotation::Reply>] replies
|
38
|
+
attr_accessor :replies
|
39
|
+
# @attr [Hash] annotationPosition
|
40
|
+
attr_accessor :annotationPosition
|
41
|
+
#@attr [Double] AnnotationSizeInfo
|
42
|
+
attr_accessor :width
|
43
|
+
attr_accessor :height
|
44
|
+
#@attr [String]TextFieldInfo
|
45
|
+
attr_accessor :fieldText
|
46
|
+
attr_accessor :fontFamily
|
47
|
+
attr_accessor :fontSize
|
48
|
+
#@attr [String]Font Color
|
49
|
+
attr_accessor :fontColor
|
50
|
+
|
51
|
+
#added in release 1.5.8
|
52
|
+
#@attr [Int] pageNumber
|
53
|
+
attr_accessor :pageNumber
|
54
|
+
#@attr [Long] serverTime
|
55
|
+
attr_accessor :serverTime
|
56
|
+
#attr [Array]
|
57
|
+
|
58
|
+
#added in release 1.7.0
|
59
|
+
#@attr [Int] penColor
|
60
|
+
attr_accessor :penColor
|
61
|
+
#@attr [Int] penWidth
|
62
|
+
attr_accessor :penWidth
|
63
|
+
#@attr [Int] penStyle
|
64
|
+
attr_accessor :penStyle
|
65
|
+
#@attr [Int] creatorName
|
66
|
+
attr_accessor :creatorName
|
67
|
+
#@attr [Int] creatorEmail
|
68
|
+
attr_accessor :creatorEmail
|
69
|
+
#@attr [Long] penColor
|
70
|
+
attr_accessor :layerId
|
71
|
+
#@attr [Int] penWidth
|
72
|
+
attr_accessor :backgroundColor
|
73
|
+
|
74
|
+
#added in release 2.0.0
|
75
|
+
#@attr [String] text
|
76
|
+
attr_accessor :text
|
77
|
+
|
78
|
+
# Compatibility with response JSON
|
79
|
+
alias_method :annotationGuid=, :guid=
|
80
|
+
|
81
|
+
# Human-readable accessors
|
82
|
+
alias_accessor :session_guid, :sessionGuid
|
83
|
+
alias_accessor :document_guid, :documentGuid
|
84
|
+
alias_accessor :creator_guid, :creatorGuid
|
85
|
+
alias_accessor :reply_guid, :replyGuid
|
86
|
+
alias_accessor :created_on, :createdOn
|
87
|
+
alias_accessor :annotation_position, :annotationPosition
|
88
|
+
|
89
|
+
#added in release 1.5.8
|
90
|
+
alias_accessor :page_number, :pageNumber
|
91
|
+
alias_accessor :server_time, :serverTime
|
92
|
+
|
93
|
+
#added in release 1.7.0
|
94
|
+
alias_accessor :pen_color, :penColor
|
95
|
+
alias_accessor :pen_width, :penWidth
|
96
|
+
alias_accessor :pen_style, :penStyle
|
97
|
+
alias_accessor :creator_name, :creatorName
|
98
|
+
alias_accessor :creator_email, :creatorEmail
|
99
|
+
alias_accessor :layer_id, :layerId
|
100
|
+
alias_accessor :background_color, :backgroundColor
|
101
|
+
|
102
|
+
#
|
103
|
+
# Creates new GroupDocs::Document::Annotation.
|
104
|
+
#
|
105
|
+
# @raise [ArgumentError] If document is not passed or is not an instance of GroupDocs::Document
|
106
|
+
#
|
107
|
+
def initialize(options = {}, &blk)
|
108
|
+
super(options, &blk)
|
109
|
+
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
110
|
+
"You have to pass GroupDocs::Document object: #{document.inspect}."
|
111
|
+
end
|
112
|
+
|
113
|
+
#
|
114
|
+
# Updates type with machine-readable format.
|
115
|
+
#
|
116
|
+
# @param [Symbol] type
|
117
|
+
# @raise [ArgumentError] if type is unknown
|
118
|
+
#
|
119
|
+
def type=(type)
|
120
|
+
if type.is_a?(Symbol)
|
121
|
+
type = type.to_s.camelize
|
122
|
+
TYPES.include?(type) or raise ArgumentError, "Unknown type: #{type.inspect}"
|
123
|
+
end
|
124
|
+
|
125
|
+
@type = type
|
126
|
+
end
|
127
|
+
|
128
|
+
#
|
129
|
+
# Returns type in human-readable format.
|
130
|
+
#
|
131
|
+
# @return [Symbol]
|
132
|
+
#
|
133
|
+
def type
|
134
|
+
@type.underscore.to_sym
|
135
|
+
end
|
136
|
+
|
137
|
+
#
|
138
|
+
# Converts access mode to machine-readable format.
|
139
|
+
#
|
140
|
+
# @param [Symbol] mode
|
141
|
+
#
|
142
|
+
def access=(mode)
|
143
|
+
@access = (mode.is_a?(Symbol) ? parse_access_mode(mode) : mode)
|
144
|
+
end
|
145
|
+
|
146
|
+
#
|
147
|
+
# Converts access mode to human-readable format.
|
148
|
+
#
|
149
|
+
# @return [Symbol]
|
150
|
+
#
|
151
|
+
def access
|
152
|
+
parse_access_mode(@access)
|
153
|
+
end
|
154
|
+
|
155
|
+
#
|
156
|
+
# Converts timestamp which is return by API server to Time object.
|
157
|
+
#
|
158
|
+
# @return [Time]
|
159
|
+
#
|
160
|
+
def created_on
|
161
|
+
Time.at(@createdOn / 1000)
|
162
|
+
end
|
163
|
+
|
164
|
+
#
|
165
|
+
# Coverts passed hash to GroupDocs::Document::Rectangle object.
|
166
|
+
#
|
167
|
+
# @param [Hash] options
|
168
|
+
# @return [GroupDocs::Document::Rectangle]
|
169
|
+
#
|
170
|
+
def box=(options)
|
171
|
+
@box = GroupDocs::Document::Rectangle.new(options)
|
172
|
+
end
|
173
|
+
|
174
|
+
#
|
175
|
+
# Converts each reply to GroupDocs::Document::Annotation::Reply object.
|
176
|
+
#
|
177
|
+
# @param [Array<GroupDocs::Document::Annotation::Reply, Hash>] replies
|
178
|
+
#
|
179
|
+
def replies=(replies)
|
180
|
+
if replies
|
181
|
+
@replies = replies.map do |reply|
|
182
|
+
if reply.is_a?(GroupDocs::Document::Annotation::Reply)
|
183
|
+
reply
|
184
|
+
else
|
185
|
+
reply.merge!(:annotation => self)
|
186
|
+
Document::Annotation::Reply.new(reply)
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
#
|
193
|
+
# Adds reply to annotation.
|
194
|
+
#
|
195
|
+
# @param [GroupDocs::Document::Annotation::Reply] reply
|
196
|
+
# @raise [ArgumentError] if reply is not GroupDocs::Document::Annotation::Reply object
|
197
|
+
#
|
198
|
+
def add_reply(reply)
|
199
|
+
reply.is_a?(GroupDocs::Document::Annotation::Reply) or raise ArgumentError,
|
200
|
+
"Reply should be GroupDocs::Document::Annotation::Reply object, received: #{reply.inspect}"
|
201
|
+
|
202
|
+
@replies ||= Array.new
|
203
|
+
@replies << reply
|
204
|
+
end
|
205
|
+
|
206
|
+
#
|
207
|
+
# Creates new annotation.
|
208
|
+
#
|
209
|
+
# @example
|
210
|
+
# document = GroupDocs::Storage::Folder.list!.first.to_document
|
211
|
+
# annotation = GroupDocs::Document::Annotation.new(document: document)
|
212
|
+
# annotation.create!
|
213
|
+
#
|
214
|
+
# @param [Hash] info Annotation info
|
215
|
+
# @option info [Array] :box
|
216
|
+
# @option info [Array] :annotationPosition
|
217
|
+
# @param [Hash] access Access credentials
|
218
|
+
# @option access [String] :client_id
|
219
|
+
# @option access [String] :private_key
|
220
|
+
#
|
221
|
+
def create!(info, access = {})
|
222
|
+
json = Api::Request.new do |request|
|
223
|
+
request[:access] = access
|
224
|
+
request[:method] = :POST
|
225
|
+
request[:path] = "/ant/{{client_id}}/files/#{document.file.guid}/annotations"
|
226
|
+
request[:request_body] = info
|
227
|
+
end.execute!
|
228
|
+
|
229
|
+
json.each do |field, value|
|
230
|
+
send(:"#{field}=", value) if respond_to?(:"#{field}=")
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
|
235
|
+
#
|
236
|
+
# Removes annotation.
|
237
|
+
#
|
238
|
+
# @param [Hash] access Access credentials
|
239
|
+
# @option access [String] :client_id
|
240
|
+
# @option access [String] :private_key
|
241
|
+
#
|
242
|
+
def remove!(access = {})
|
243
|
+
Api::Request.new do |request|
|
244
|
+
request[:access] = access
|
245
|
+
request[:method] = :DELETE
|
246
|
+
request[:path] = "/ant/{{client_id}}/annotations/#{guid}"
|
247
|
+
end.execute!
|
248
|
+
end
|
249
|
+
|
250
|
+
#
|
251
|
+
# added in release 1.6.0
|
252
|
+
#
|
253
|
+
# @example
|
254
|
+
# document = GroupDocs::Storage::Folder.list!.first.to_document
|
255
|
+
# annotation = GroupDocs::Document::Annotation.new(document: document)
|
256
|
+
# annotation.remove_annotations!
|
257
|
+
#
|
258
|
+
# Removes all annotations from document.
|
259
|
+
#
|
260
|
+
# @param [Hash] access Access credentials
|
261
|
+
# @option access [String] :client_id
|
262
|
+
# @option access [String] :private_key
|
263
|
+
#
|
264
|
+
def remove_annotations!(access = {})
|
265
|
+
json = Api::Request.new do |request|
|
266
|
+
request[:access] = access
|
267
|
+
request[:method] = :DELETE
|
268
|
+
request[:path] = "/ant/{{client_id}}/files/#{document.file.guid}/annotations"
|
269
|
+
end.execute!
|
270
|
+
json[:delete_annotation_results]
|
271
|
+
end
|
272
|
+
|
273
|
+
#
|
274
|
+
# Return an array of replies..
|
275
|
+
#
|
276
|
+
# @param [Hash] options
|
277
|
+
# @option options [Time] :after
|
278
|
+
# @param [Hash] access Access credentials
|
279
|
+
# @option access [String] :client_id
|
280
|
+
# @option access [String] :private_key
|
281
|
+
# @return [Array<GroupDocs::Document::Annotation::Reply>]
|
282
|
+
#
|
283
|
+
# @raise [ArgumentError] If :after option is passed but it's not an instance of Time
|
284
|
+
#
|
285
|
+
def replies!(options = {}, access = {})
|
286
|
+
Document::Annotation::Reply.get!(self, options, access)
|
287
|
+
end
|
288
|
+
|
289
|
+
#
|
290
|
+
# Moves annotation to given coordinates.
|
291
|
+
#
|
292
|
+
# @param [Integer, Float] x
|
293
|
+
# @param [Integer, Float] y
|
294
|
+
# @param [Hash] access Access credentials
|
295
|
+
# @option access [String] :client_id
|
296
|
+
# @option access [String] :private_key
|
297
|
+
#
|
298
|
+
def move!(x, y, access = {})
|
299
|
+
Api::Request.new do |request|
|
300
|
+
request[:access] = access
|
301
|
+
request[:method] = :PUT
|
302
|
+
request[:path] = "/ant/{{client_id}}/annotations/#{guid}/position"
|
303
|
+
request[:request_body] = { :x => x, :y => y }
|
304
|
+
end.execute!
|
305
|
+
|
306
|
+
self.annotation_position = { :x => x, :y => y }
|
307
|
+
end
|
308
|
+
|
309
|
+
#
|
310
|
+
# Changed in release 1.5.8
|
311
|
+
#
|
312
|
+
# Moves annotation marker to given coordinates.
|
313
|
+
#
|
314
|
+
# @param [GroupDocs::Annotation::Marker] marker Marker position
|
315
|
+
# @param [Hash] access Access credentials
|
316
|
+
# @option access [String] :client_id
|
317
|
+
# @option access [String] :private_key
|
318
|
+
#
|
319
|
+
def move_marker!(marker, access = {})
|
320
|
+
marker.is_a?(GroupDocs::Document::Annotation::MarkerPosition) or raise ArgumentError,
|
321
|
+
"Marker should be GroupDocs::Document::Annotation::MarkerPosition object, received: #{marker.inspect}"
|
322
|
+
Api::Request.new do |request|
|
323
|
+
request[:access] = access
|
324
|
+
request[:method] = :PUT
|
325
|
+
request[:path] = "/ant/{{client_id}}/annotations/#{guid}/markerPosition"
|
326
|
+
request[:request_body] = marker
|
327
|
+
end.execute!
|
328
|
+
|
329
|
+
if box && page_number
|
330
|
+
box.x = marker.position[:x]
|
331
|
+
box.y = marker.position[:y]
|
332
|
+
page_number = marker.page
|
333
|
+
else
|
334
|
+
self.box = { :x => marker.position[:x], :y => marker.position[:y] }
|
335
|
+
self.page_number = marker.page
|
336
|
+
end
|
337
|
+
end
|
338
|
+
|
339
|
+
#
|
340
|
+
# Sets access mode.
|
341
|
+
#
|
342
|
+
# @param [Symbol] mode
|
343
|
+
# @param [Hash] access Access credentials
|
344
|
+
# @option access [String] :client_id
|
345
|
+
# @option access [String] :private_key
|
346
|
+
#
|
347
|
+
def set_access!(mode, access = {})
|
348
|
+
Api::Request.new do |request|
|
349
|
+
request[:access] = access
|
350
|
+
request[:method] = :PUT
|
351
|
+
request[:path] = "/ant/{{client_id}}/annotations/#{guid}/annotationAccess"
|
352
|
+
request[:request_body] = %w(public private).index(mode.to_s)
|
353
|
+
end.execute!
|
354
|
+
|
355
|
+
self.access = mode
|
356
|
+
end
|
357
|
+
|
358
|
+
#
|
359
|
+
# Resize annotation.
|
360
|
+
#
|
361
|
+
# @param [Integer, Float] x
|
362
|
+
# @param [Integer, Float] y
|
363
|
+
# @param [Hash] access Access credentials
|
364
|
+
# @option access [String] :client_id
|
365
|
+
# @option access [String] :private_key
|
366
|
+
#
|
367
|
+
def resize!(x, y, access = {})
|
368
|
+
Api::Request.new do |request|
|
369
|
+
request[:access] = access
|
370
|
+
request[:method] = :PUT
|
371
|
+
request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
|
372
|
+
request[:request_body] = { :width => x, :height => y }
|
373
|
+
end.execute!
|
374
|
+
self.box = { :width => x, :height => y }
|
375
|
+
|
376
|
+
end
|
377
|
+
|
378
|
+
#
|
379
|
+
# Save Text Of Text Field.
|
380
|
+
#
|
381
|
+
# @param [String] fieldText
|
382
|
+
# @param [String] fontFamily
|
383
|
+
# @param [Integer, Float] fontSize
|
384
|
+
# @param [Hash] access Access credentials
|
385
|
+
# @option access [String] :client_id
|
386
|
+
# @option access [String] :private_key
|
387
|
+
#
|
388
|
+
def text_info!(fieldText, fontFamily, fontSize, access = {})
|
389
|
+
Api::Request.new do |request|
|
390
|
+
request[:access] = access
|
391
|
+
request[:method] = :PUT
|
392
|
+
request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
|
393
|
+
request[:request_body] = { :fieldText => fieldText, :fontFamily => fontFamily, :fontSize => fontSize }
|
394
|
+
end.execute!
|
395
|
+
|
396
|
+
self.fieldText = fieldText
|
397
|
+
self.fontFamily = fontFamily
|
398
|
+
self.fontSize = fontSize
|
399
|
+
end
|
400
|
+
|
401
|
+
#
|
402
|
+
# Save Text Of Text Color.
|
403
|
+
#
|
404
|
+
# @param [Integer, Float] fontColor
|
405
|
+
# @param [Hash] access Access credentials
|
406
|
+
# @option access [String] :client_id
|
407
|
+
# @option access [String] :private_key
|
408
|
+
#
|
409
|
+
def text_color!(font_color, access = {})
|
410
|
+
Api::Request.new do |request|
|
411
|
+
request[:access] = access
|
412
|
+
request[:method] = :PUT
|
413
|
+
request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
|
414
|
+
request[:request_body] = { :fontColor => font_color }
|
415
|
+
end.execute!
|
416
|
+
|
417
|
+
self.fontColor = font_color
|
418
|
+
end
|
419
|
+
|
420
|
+
end # Document::Annotation
|
421
|
+
end # GroupDocs
|