groupdocs 1.5.7 → 1.5.8

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.
Files changed (177) hide show
  1. data/CHANGELOG.md +51 -0
  2. data/examples/api-samples/Gemfile +1 -1
  3. data/examples/api-samples/Gemfile.lock +43 -0
  4. data/examples/api-samples/public/docs/{sample2.html → sample01.html} +39 -19
  5. data/examples/api-samples/public/docs/{sample3.html → sample02.html} +28 -22
  6. data/examples/api-samples/public/docs/sample03.html +285 -0
  7. data/examples/api-samples/public/docs/{sample4.html → sample04.html} +30 -36
  8. data/examples/api-samples/public/docs/{sample5.html → sample05.html} +68 -31
  9. data/examples/api-samples/public/docs/sample06.html +299 -0
  10. data/examples/api-samples/public/docs/{sample7.html → sample07.html} +53 -18
  11. data/examples/api-samples/public/docs/{sample8.html → sample08.html} +64 -41
  12. data/examples/api-samples/public/docs/sample09.html +260 -0
  13. data/examples/api-samples/public/docs/sample10.html +67 -28
  14. data/examples/api-samples/public/docs/sample11.html +171 -55
  15. data/examples/api-samples/public/docs/sample12.html +53 -17
  16. data/examples/api-samples/public/docs/sample13.html +52 -16
  17. data/examples/api-samples/public/docs/sample14.html +51 -8
  18. data/examples/api-samples/public/docs/sample15.html +46 -10
  19. data/examples/api-samples/public/docs/sample16.html +81 -7
  20. data/examples/api-samples/public/docs/sample17.html +103 -15
  21. data/examples/api-samples/public/docs/sample18.html +117 -41
  22. data/examples/api-samples/public/docs/sample19.html +410 -36
  23. data/examples/api-samples/public/docs/sample20.html +46 -10
  24. data/examples/api-samples/public/docs/sample21.html +504 -45
  25. data/examples/api-samples/public/docs/sample22.html +166 -28
  26. data/examples/api-samples/public/docs/sample23.html +61 -25
  27. data/examples/api-samples/public/docs/sample24.html +100 -12
  28. data/examples/api-samples/public/docs/sample25.html +123 -49
  29. data/examples/api-samples/public/docs/sample26.html +41 -8
  30. data/examples/api-samples/public/docs/sample27.html +125 -50
  31. data/examples/api-samples/public/docs/sample28.html +27 -9
  32. data/examples/api-samples/public/docs/sample29.html +10 -10
  33. data/examples/api-samples/public/docs/sample30.html +70 -14
  34. data/examples/api-samples/public/docs/sample31.html +108 -67
  35. data/examples/api-samples/public/docs/sample32.html +71 -99
  36. data/examples/api-samples/public/docs/sample33.html +107 -32
  37. data/examples/api-samples/public/docs/{sample1.html → sample34.html} +58 -18
  38. data/examples/api-samples/public/docs/sample35.html +666 -0
  39. data/examples/api-samples/public/docs/{sample6.html → sample36.html} +56 -37
  40. data/examples/api-samples/public/docs/sample37.html +815 -0
  41. data/examples/api-samples/public/docs/sample38.html +508 -0
  42. data/examples/api-samples/public/docs/sample39.html +921 -0
  43. data/examples/api-samples/public/docs/sample40.html +510 -0
  44. data/examples/api-samples/public/docs/sample41.html +452 -0
  45. data/examples/api-samples/public/docs/sample42.html +311 -0
  46. data/examples/api-samples/public/templates/test_all_fields2.pdf +0 -0
  47. data/examples/api-samples/samples/sample01.rb +37 -0
  48. data/examples/api-samples/samples/sample02.rb +41 -0
  49. data/examples/api-samples/samples/sample03.rb +73 -0
  50. data/examples/api-samples/samples/sample04.rb +47 -0
  51. data/examples/api-samples/samples/{sample5.rb → sample05.rb} +26 -14
  52. data/examples/api-samples/samples/sample06.rb +80 -0
  53. data/examples/api-samples/samples/sample07.rb +52 -0
  54. data/examples/api-samples/samples/sample08.rb +69 -0
  55. data/examples/api-samples/samples/sample09.rb +83 -0
  56. data/examples/api-samples/samples/sample10.rb +29 -15
  57. data/examples/api-samples/samples/sample11.rb +89 -37
  58. data/examples/api-samples/samples/sample12.rb +22 -11
  59. data/examples/api-samples/samples/sample13.rb +22 -10
  60. data/examples/api-samples/samples/sample14.rb +23 -5
  61. data/examples/api-samples/samples/sample15.rb +18 -7
  62. data/examples/api-samples/samples/sample16.rb +28 -4
  63. data/examples/api-samples/samples/sample17.rb +31 -5
  64. data/examples/api-samples/samples/sample18.rb +36 -8
  65. data/examples/api-samples/samples/sample19.rb +138 -18
  66. data/examples/api-samples/samples/sample20.rb +14 -3
  67. data/examples/api-samples/samples/sample21.rb +162 -23
  68. data/examples/api-samples/samples/sample22.rb +73 -22
  69. data/examples/api-samples/samples/sample23.rb +17 -6
  70. data/examples/api-samples/samples/sample24.rb +34 -7
  71. data/examples/api-samples/samples/sample25.rb +37 -12
  72. data/examples/api-samples/samples/sample26.rb +12 -5
  73. data/examples/api-samples/samples/sample27.rb +38 -12
  74. data/examples/api-samples/samples/sample28.rb +25 -6
  75. data/examples/api-samples/samples/sample29.rb +12 -12
  76. data/examples/api-samples/samples/sample30.rb +27 -15
  77. data/examples/api-samples/samples/sample31.rb +44 -33
  78. data/examples/api-samples/samples/sample32.rb +43 -41
  79. data/examples/api-samples/samples/sample33.rb +42 -14
  80. data/examples/api-samples/samples/sample34.rb +40 -0
  81. data/examples/api-samples/samples/sample35.rb +224 -0
  82. data/examples/api-samples/samples/sample36.rb +58 -0
  83. data/examples/api-samples/samples/sample37.rb +229 -0
  84. data/examples/api-samples/samples/sample38.rb +128 -0
  85. data/examples/api-samples/samples/sample39.rb +252 -0
  86. data/examples/api-samples/samples/sample40.rb +164 -0
  87. data/examples/api-samples/samples/sample41.rb +118 -0
  88. data/examples/api-samples/samples/sample42.rb +97 -0
  89. data/examples/api-samples/views/_others_samples.haml +25 -11
  90. data/examples/api-samples/views/index.haml +23 -11
  91. data/examples/api-samples/views/popup.haml +32 -0
  92. data/examples/api-samples/views/{sample1.haml → sample01.haml} +12 -7
  93. data/examples/api-samples/views/{sample2.haml → sample02.haml} +20 -15
  94. data/examples/api-samples/views/sample03.haml +83 -0
  95. data/examples/api-samples/views/sample04.haml +49 -0
  96. data/examples/api-samples/views/{sample5.haml → sample05.haml} +19 -14
  97. data/examples/api-samples/views/sample06.haml +53 -0
  98. data/examples/api-samples/views/sample07.haml +47 -0
  99. data/examples/api-samples/views/{sample8.haml → sample08.haml} +17 -12
  100. data/examples/api-samples/views/{sample9.haml → sample09.haml} +19 -4
  101. data/examples/api-samples/views/sample10.haml +18 -13
  102. data/examples/api-samples/views/sample11.haml +48 -19
  103. data/examples/api-samples/views/sample12.haml +26 -21
  104. data/examples/api-samples/views/sample13.haml +18 -12
  105. data/examples/api-samples/views/sample14.haml +21 -15
  106. data/examples/api-samples/views/sample15.haml +16 -9
  107. data/examples/api-samples/views/sample16.haml +18 -5
  108. data/examples/api-samples/views/sample17.haml +14 -9
  109. data/examples/api-samples/views/sample18.haml +13 -7
  110. data/examples/api-samples/views/sample19.haml +37 -8
  111. data/examples/api-samples/views/sample20.haml +13 -8
  112. data/examples/api-samples/views/sample21.haml +71 -13
  113. data/examples/api-samples/views/sample22.haml +53 -16
  114. data/examples/api-samples/views/sample23.haml +9 -4
  115. data/examples/api-samples/views/sample24.haml +9 -4
  116. data/examples/api-samples/views/sample25.haml +18 -13
  117. data/examples/api-samples/views/sample26.haml +8 -3
  118. data/examples/api-samples/views/sample27.haml +20 -14
  119. data/examples/api-samples/views/sample28.haml +16 -10
  120. data/examples/api-samples/views/sample29.haml +4 -4
  121. data/examples/api-samples/views/sample30.haml +16 -10
  122. data/examples/api-samples/views/sample31.haml +39 -32
  123. data/examples/api-samples/views/sample32.haml +25 -36
  124. data/examples/api-samples/views/sample33.haml +14 -17
  125. data/examples/api-samples/views/sample34.haml +48 -0
  126. data/examples/api-samples/views/sample35.haml +95 -0
  127. data/examples/api-samples/views/sample36.haml +64 -0
  128. data/examples/api-samples/views/sample37.haml +124 -0
  129. data/examples/api-samples/views/sample38.haml +115 -0
  130. data/examples/api-samples/views/sample39.haml +236 -0
  131. data/examples/api-samples/views/sample40.haml +95 -0
  132. data/examples/api-samples/views/{sample4.haml → sample41.haml} +90 -72
  133. data/examples/api-samples/views/sample42.haml +59 -0
  134. data/lib/groupdocs/api/helpers/rest_helper.rb +13 -1
  135. data/lib/groupdocs/datasource.rb +2 -1
  136. data/lib/groupdocs/document.rb +101 -13
  137. data/lib/groupdocs/document/annotation.rb +28 -13
  138. data/lib/groupdocs/document/annotation/marker.rb +18 -0
  139. data/lib/groupdocs/document/annotation/reply.rb +9 -2
  140. data/lib/groupdocs/document/field.rb +5 -1
  141. data/lib/groupdocs/job.rb +12 -2
  142. data/lib/groupdocs/questionnaire.rb +174 -4
  143. data/lib/groupdocs/questionnaire/collector.rb +21 -0
  144. data/lib/groupdocs/questionnaire/question.rb +19 -0
  145. data/lib/groupdocs/questionnaire/question/answer.rb +5 -0
  146. data/lib/groupdocs/questionnaire/question/conditions.rb +20 -0
  147. data/lib/groupdocs/signature.rb +36 -308
  148. data/lib/groupdocs/signature/envelope.rb +146 -4
  149. data/lib/groupdocs/signature/field.rb +20 -1
  150. data/lib/groupdocs/signature/field/location.rb +18 -7
  151. data/lib/groupdocs/signature/form.rb +199 -10
  152. data/lib/groupdocs/signature/shared/document_methods.rb +38 -0
  153. data/lib/groupdocs/signature/shared/entity_methods.rb +0 -1
  154. data/lib/groupdocs/signature/shared/field_methods.rb +13 -38
  155. data/lib/groupdocs/signature/shared/recipient_methods.rb +8 -0
  156. data/lib/groupdocs/signature/template.rb +3 -1
  157. data/lib/groupdocs/storage.rb +4 -1
  158. data/lib/groupdocs/storage/file.rb +18 -1
  159. data/lib/groupdocs/subscription.rb +8 -3
  160. data/lib/groupdocs/user.rb +8 -0
  161. data/lib/groupdocs/version.rb +1 -1
  162. data/spec/groupdocs/document/annotation_spec.rb +1 -14
  163. data/spec/groupdocs/subscription_spec.rb +2 -2
  164. metadata +86 -32
  165. checksums.yaml +0 -15
  166. data/examples/api-samples/public/docs/sample9.html +0 -200
  167. data/examples/api-samples/samples/sample1.rb +0 -25
  168. data/examples/api-samples/samples/sample2.rb +0 -29
  169. data/examples/api-samples/samples/sample3.rb +0 -33
  170. data/examples/api-samples/samples/sample4.rb +0 -51
  171. data/examples/api-samples/samples/sample6.rb +0 -49
  172. data/examples/api-samples/samples/sample7.rb +0 -42
  173. data/examples/api-samples/samples/sample8.rb +0 -61
  174. data/examples/api-samples/samples/sample9.rb +0 -48
  175. data/examples/api-samples/views/sample3.haml +0 -44
  176. data/examples/api-samples/views/sample6.haml +0 -49
  177. data/examples/api-samples/views/sample7.haml +0 -42
@@ -0,0 +1,59 @@
1
+ %h3{:style => 'text-align:center;'}
2
+ %a{:href => '/'} GroupDocs Ruby SDK Samples
3
+ \- Sample42
4
+ .samplecontent{:style => 'padding:10px;'}
5
+ %span.description
6
+ %i
7
+ This sample will show how to download document with annotations using GroupDocs Ruby SDK.
8
+
9
+ %br/
10
+ %br/
11
+ /
12
+ %span.documentation
13
+ %a{:href => '/docs/sample42.html'} Builtin documentation for this sample
14
+
15
+ %br/
16
+ %br/
17
+ %p
18
+ You entered:
19
+ %p
20
+ ClientID = #{(defined? userId) ? userId : ''}
21
+ %p
22
+ PrivateKey = #{(defined? privateKey) ? privateKey : ''}
23
+ %p
24
+ %font{:color => 'red'} #{(defined? err) ? err : ''}
25
+ %br/
26
+ #requestForm{:style => 'padding:20px; border:1px solid black;'}
27
+ %p Enter data for request and press "Make request" button
28
+ %form{:action => '/sample42', :enctype => 'multipart/form-data', :method => 'post'}
29
+ %label{:for => 'clientId'} GroupDocs ClientID
30
+ %br/
31
+ %input{:type=>'text', :name=>'clientId'}
32
+ %br/
33
+ %label{:for => 'privateKey'} GroupDocs PrivateKey
34
+ %br/
35
+ %input{:type=>'text', :name=>'privateKey'}
36
+ %br/
37
+ %label{:for=>'fileId', :id=>'guid'} File ID (GUID)
38
+ %br/
39
+ %input{:type=>'text', :name=>'fileId'}
40
+ %br/
41
+ %label{:for => 'basePath'} Base Path
42
+ %span{:class => 'optional'} (Optional)
43
+ %br/
44
+ %input{:type=>'text', :name=>'basePath'}
45
+ %br/
46
+ %br/
47
+ %input{:type => 'submit', :value => 'Make request'}
48
+
49
+ %br/
50
+ %br/
51
+ %br/
52
+ %div{:style => 'padding:20px; border:1px solid black;'}
53
+ %p
54
+ Results:
55
+ %br/
56
+ #{(defined? message)? message : ''}
57
+ #{(defined? iframe) ? iframe : ''}
58
+
59
+ = partial :_others_samples
@@ -37,12 +37,15 @@ module GroupDocs
37
37
  end
38
38
  end
39
39
 
40
+ #
41
+ # Changed in release 1.5.8
40
42
  #
41
43
  # Sends request to API server.
42
44
  #
43
45
  # @api private
44
46
  #
45
47
  def send_request
48
+
46
49
  self.response = case options[:method]
47
50
  when :get, :download
48
51
  resource[options[:path]].get(options[:headers])
@@ -51,7 +54,16 @@ module GroupDocs
51
54
  when :put
52
55
  resource[options[:path]].put(options[:request_body], options[:headers])
53
56
  when :delete
54
- resource[options[:path]].delete(options[:headers])
57
+ if options[:request_body]
58
+ url = GroupDocs.api_server + options[:path]
59
+ RestClient::Request.execute(options.merge(
60
+ :method => :delete,
61
+ :url => url,
62
+ :payload => options[:request_body],
63
+ :headers => options[:headers]))
64
+ else
65
+ resource[options[:path]].delete(options[:headers])
66
+ end
55
67
  else
56
68
  raise UnsupportedMethodError, "Unsupported HTTP method: #{options[:method].inspect}"
57
69
  end
@@ -241,8 +241,9 @@ module GroupDocs
241
241
  request[:path] = "/merge/{{client_id}}/jobs/#{job.id}/files/#{file_id}/datasources"
242
242
  request[:request_body] = datasource.fields
243
243
  end.execute!
244
-
245
244
  end
246
245
 
246
+
247
+
247
248
  end # DataSource
248
249
  end # GroupDocs
@@ -178,7 +178,6 @@ module GroupDocs
178
178
  metadata.views_count = json[:views_count]
179
179
  if json[:last_view]
180
180
  metadata.last_view = json[:last_view]
181
-
182
181
  end
183
182
  end
184
183
  end
@@ -590,7 +589,7 @@ module GroupDocs
590
589
  # @example
591
590
  # file = GroupDocs::Storage::Folder.list!.last
592
591
  # document = file.to_document
593
- # document.thumbnails! first_page: 0, page_count: 1, passwordSalt: ***
592
+ # document.representations! first_page: 0, page_count: 1, passwordSalt: ***
594
593
  #
595
594
  # @param [Hash] options
596
595
  # @option options [Integer] :page_number Start page to return image for (starting with 0)
@@ -645,7 +644,7 @@ module GroupDocs
645
644
  api = Api::Request.new do |request|
646
645
  request[:access] = access
647
646
  request[:method] = :PUT
648
- request[:path] = "/doc/{{client_id}}/files/#{file.guid}/accessinfo"
647
+ request[:path] = "/doc/{{client_id}}/files/#{file.id}/accessinfo"
649
648
  end
650
649
  api.add_params(:mode => ACCESS_MODES[mode])
651
650
  json = api.execute!
@@ -1061,6 +1060,7 @@ module GroupDocs
1061
1060
  end
1062
1061
 
1063
1062
  #
1063
+ # Changed in release 1.5.8
1064
1064
  # Returns document details.
1065
1065
  #
1066
1066
  # @param [Hash] access Access credentials
@@ -1072,13 +1072,14 @@ module GroupDocs
1072
1072
  api = Api::Request.new do |request|
1073
1073
  request[:access] = access
1074
1074
  request[:method] = :GET
1075
- request[:path] = "/comparison/{{client_id}}/comparison/document"
1075
+ request[:path] = "/comparison/{{client_id}}document"
1076
1076
  end
1077
1077
  api.add_params(:guid => file.guid)
1078
1078
  api.execute!
1079
1079
  end
1080
1080
 
1081
1081
  #
1082
+ # Changed in release 1.5.8
1082
1083
  # Schedules a job for comparing document with given.
1083
1084
  #
1084
1085
  # @param [GroupDocs::Document] document
@@ -1096,7 +1097,7 @@ module GroupDocs
1096
1097
  api = Api::Request.new do |request|
1097
1098
  request[:access] = access
1098
1099
  request[:method] = :GET
1099
- request[:path] = "/comparison/{{client_id}}/comparison/compare"
1100
+ request[:path] = "/comparison/{{client_id}}/compare"
1100
1101
  end
1101
1102
  api.add_params(:source => file.guid, :target => document.file.guid, :callback => callback)
1102
1103
  json = api.execute!
@@ -1124,10 +1125,9 @@ module GroupDocs
1124
1125
  api = Api::Request.new do |request|
1125
1126
  request[:access] = access
1126
1127
  request[:method] = :PUT
1127
- request[:path] = "/comparison/{{client_id}}/comparison/changes"
1128
+ request[:path] = "/comparison/public/#{file.guid}/changes"
1128
1129
  request[:request_body] = changes
1129
1130
  end
1130
- api.add_params(:resultFileId => file.guid)
1131
1131
  json = api.execute!
1132
1132
 
1133
1133
  json[:changes].map do |change|
@@ -1136,6 +1136,7 @@ module GroupDocs
1136
1136
  end
1137
1137
 
1138
1138
  #
1139
+ # @Changed in realese 1.5.8
1139
1140
  # Returns an array of changes in document.
1140
1141
  #
1141
1142
  # @example
@@ -1154,9 +1155,8 @@ module GroupDocs
1154
1155
  api = Api::Request.new do |request|
1155
1156
  request[:access] = access
1156
1157
  request[:method] = :GET
1157
- request[:path] = '/comparison/{{client_id}}/comparison/changes'
1158
+ request[:path] = '/comparison/public/#{file.guid}/changes'
1158
1159
  end
1159
- api.add_params(:resultFileId => file.guid)
1160
1160
  json = api.execute!
1161
1161
 
1162
1162
  json[:changes].map do |change|
@@ -1165,11 +1165,19 @@ module GroupDocs
1165
1165
  end
1166
1166
 
1167
1167
  #
1168
+ # Changed in realese 1.5.8
1168
1169
  # Download comparison result file.
1169
1170
  #
1171
+ # @example
1172
+ # document_one = GroupDocs::Storage::Folder.list![0].to_document
1173
+ # document_two = GroupDocs::Storage::Folder.list![1].to_document
1174
+ # job = document_one.compare!(document_two)
1175
+ # sleep(5) # wait for server to finish comparing
1176
+ # result = job.documents![:outputs].first
1177
+ # result.download!("#{File.dirname(__FILE__)}", {:format => 'pdf'})
1178
+ #
1170
1179
  # @param [Hash] options
1171
- # @option format [String] :format Comparison result file GUID
1172
- # @option resultFileId [String] :resultFileId Comparison result file GUID
1180
+ # @option format [String] :format Comparison result file GUID #
1173
1181
  # @param [Hash] access Access credentials
1174
1182
  # @option access [String] :client_id
1175
1183
  # @option access [String] :private_key
@@ -1179,12 +1187,17 @@ module GroupDocs
1179
1187
  api = Api::Request.new do |request|
1180
1188
  request[:access] = access
1181
1189
  request[:method] = :DOWNLOAD
1182
- request[:path] = "/comparison/{{client_id}}/comparison/download"
1190
+ request[:path] = "/comparison/public/#{file.guid}/download"
1183
1191
  end
1184
1192
  api.add_params(options)
1185
1193
  response = api.execute!
1186
1194
 
1187
- filepath = "#{path}/#{file.name}"
1195
+ if file.name.split('.').last != options[:format]
1196
+ file_name = file.name.delete!(file.name.split('.').last) + options[:format]
1197
+ else
1198
+ file_name = file.name
1199
+ end
1200
+ filepath = "#{path}/#{file_name}"
1188
1201
  Object::File.open(filepath, 'wb') do |file|
1189
1202
  file.write(response)
1190
1203
  end
@@ -1357,6 +1370,7 @@ module GroupDocs
1357
1370
  # Pass all unknown methods to file.
1358
1371
  #
1359
1372
 
1373
+
1360
1374
  def method_missing(method, *args, &blk)
1361
1375
  file.respond_to?(method) ? file.send(method, *args, &blk) : super
1362
1376
  end
@@ -1365,5 +1379,79 @@ module GroupDocs
1365
1379
  super or file.respond_to?(method)
1366
1380
  end
1367
1381
 
1382
+
1383
+ #
1384
+ # added in release 1.5.8
1385
+ #
1386
+ # Returns document hyperlinks
1387
+ #
1388
+ # @param [Hash] access Access credentials
1389
+ # @option access [String] :client_id
1390
+ # @option access [String] :private_key
1391
+ #
1392
+ def hyperlinks!(access = {})
1393
+ json = Api::Request.new do |request|
1394
+ request[:access] = access
1395
+ request[:method] = :GET
1396
+ request[:path] = "/doc/{{client_id}}/files/#{file.guid}/hyperlinks"
1397
+ end.execute!
1398
+
1399
+ json[:links]
1400
+ end
1401
+
1402
+ #
1403
+ # Changed in release 1.5.8
1404
+ #
1405
+ #
1406
+ # Public Sign document
1407
+ #
1408
+ # @param [String] document Document GUID
1409
+ # @param [Hash] settings Settings of the signing document
1410
+ # @param settings [String] waterMarkText
1411
+ # @param settings [String] waterMarkImage
1412
+ # @param settings [String] name (required)
1413
+ # @param settings [Double] top (required)
1414
+ # @param settings [Double] left (required)
1415
+ # @param settings [Double] width (required)
1416
+ # @param settings [Double] height (required)
1417
+ # @param settings [String] placeSignatureOn (required)
1418
+ # @param settings [String] data
1419
+ # @param [Hash] access Access credentials
1420
+ # @option access [String] :client_id
1421
+ # @option access [String] :private_key
1422
+ # @return [Array]
1423
+ #
1424
+ def public_sign_document!(options = {}, access = {})
1425
+ json = Api::Request.new do |request|
1426
+ request[:access] = access
1427
+ request[:method] = :POST
1428
+ request[:path] = "/signature/public/documents/#{file.guid}/sign"
1429
+ request[:request_body] = options
1430
+ end.execute!
1431
+
1432
+ json[:jobId]
1433
+ end
1434
+
1435
+ #
1436
+ # Changed in release 1.5.8
1437
+ #
1438
+ #
1439
+ # Get document fields
1440
+ #
1441
+ # @param [String] document Document GUID
1442
+ # @param [Hash] settings Settings of the signing document
1443
+ # @param [Hash] access Access credentials
1444
+ # @option access [String] :client_id
1445
+ # @option access [String] :private_key
1446
+ # @return [Array]
1447
+ #
1448
+ def self.public_fields!(access = {})
1449
+ Api::Request.new do |request|
1450
+ request[:access] = access
1451
+ request[:method] = :GET
1452
+ request[:path] = "/signature/public/documents/#{file.guid}/fields"
1453
+ end.execute!
1454
+ end
1455
+
1368
1456
  end # Document
1369
1457
  end # GroupDocs
@@ -6,6 +6,8 @@ module GroupDocs
6
6
 
7
7
  include Api::Helpers::AccessMode
8
8
 
9
+ #AnnotationType = { Text: 0, Area: 1, Point: 2, TextStrikeout: 3, Polyline: 4, TextField: 5, Watermark: 6 }
10
+
9
11
  TYPES = %w(Text Area Point TextStrikeout Polyline)
10
12
 
11
13
  # @attr [GroupDocs::Document] document
@@ -44,6 +46,13 @@ module GroupDocs
44
46
  #@attr [String]Font Color
45
47
  attr_accessor :fontColor
46
48
 
49
+ #added in release 1.5.8
50
+ #@attr [Int]pageNumber
51
+ attr_accessor :pageNumber
52
+ #@attr [Long] serverTime
53
+ attr_accessor :serverTime
54
+ #attr [Array]
55
+
47
56
  # Compatibility with response JSON
48
57
  alias_method :annotationGuid=, :guid=
49
58
 
@@ -54,8 +63,10 @@ module GroupDocs
54
63
  alias_accessor :reply_guid, :replyGuid
55
64
  alias_accessor :created_on, :createdOn
56
65
  alias_accessor :annotation_position, :annotationPosition
57
- alias_accessor :position, :annotationPosition
58
-
66
+
67
+ #added in release 1.5.8
68
+ alias_accessor :page_number, :pageNumber
69
+ alias_accessor :server_time, :serverTime
59
70
 
60
71
  #
61
72
  # Creates new GroupDocs::Document::Annotation.
@@ -196,7 +207,7 @@ module GroupDocs
196
207
  # @option access [String] :client_id
197
208
  # @option access [String] :private_key
198
209
  #
199
- def self.remove!(guid, access = {})
210
+ def remove!(access = {})
200
211
  Api::Request.new do |request|
201
212
  request[:access] = access
202
213
  request[:method] = :DELETE
@@ -240,28 +251,33 @@ module GroupDocs
240
251
  self.annotation_position = { :x => x, :y => y }
241
252
  end
242
253
 
254
+ #
255
+ # Changed in release 1.5.8
243
256
  #
244
257
  # Moves annotation marker to given coordinates.
245
258
  #
246
- # @param [Integer, Float] x
247
- # @param [Integer, Float] y
259
+ # @param [GroupDocs::Annotation::Marker] marker Marker position
248
260
  # @param [Hash] access Access credentials
249
261
  # @option access [String] :client_id
250
262
  # @option access [String] :private_key
251
263
  #
252
- def move_marker!(x, y, access = {})
264
+ def move_marker!(marker, access = {})
265
+ marker.is_a?(GroupDocs::Document::Annotation::MarkerPosition) or raise ArgumentError,
266
+ "Marker should be GroupDocs::Document::Annotation::MarkerPosition object, received: #{marker.inspect}"
253
267
  Api::Request.new do |request|
254
268
  request[:access] = access
255
269
  request[:method] = :PUT
256
270
  request[:path] = "/ant/{{client_id}}/annotations/#{guid}/markerPosition"
257
- request[:request_body] = { :x => x, :y => y }
271
+ request[:request_body] = marker
258
272
  end.execute!
259
273
 
260
- if box
261
- box.x = x
262
- box.y = y
274
+ if box && page_number
275
+ box.x = marker.position[:x]
276
+ box.y = marker.position[:y]
277
+ page_number = marker.page
263
278
  else
264
- self.box = { :x => x, :y => y }
279
+ self.box = { :x => marker.position[:x], :y => marker.position[:y] }
280
+ self.page_number = marker.page
265
281
  end
266
282
  end
267
283
 
@@ -300,9 +316,8 @@ module GroupDocs
300
316
  request[:path] = "/ant/{{client_id}}/annotations/#{guid}/size"
301
317
  request[:request_body] = { :width => x, :height => y }
302
318
  end.execute!
319
+ self.box = { :width => x, :height => y }
303
320
 
304
- self.width = x
305
- self.height = y
306
321
  end
307
322
 
308
323
  #
@@ -0,0 +1,18 @@
1
+ # added in release 1.5.8
2
+ module GroupDocs
3
+ class Document::Annotation::MarkerPosition
4
+
5
+ #
6
+ # example
7
+ # marker = GroupDocs::Document::Annotation::MarkerPosition.new()
8
+ # marker.position = {:x => 100, :y => 100}
9
+ # marker.page = 1
10
+
11
+ # @attr [Array](x,y) position
12
+ attr_accessor :position
13
+
14
+ # @attr [Int] page
15
+ attr_accessor :page
16
+
17
+ end
18
+ end
@@ -49,16 +49,23 @@ module GroupDocs
49
49
  attr_accessor :userGuid
50
50
  # @attr [String] userName
51
51
  attr_accessor :userName
52
- # @attr [String] text
53
- attr_accessor :text
54
52
  # @attr [Time] repliedOn
55
53
  attr_accessor :repliedOn
56
54
 
55
+ # added in release 1.5.8
56
+ # @attr [String] parentReplyGuid
57
+ attr_accessor :parentReplyGuid
58
+ # @attr [Boolean] isAvatarExist
59
+ attr_accessor :isAvatarExist
60
+
57
61
  # Human-readable accessors
58
62
  alias_accessor :annotation_guid, :annotationGuid
59
63
  alias_accessor :user_guid, :userGuid
60
64
  alias_accessor :user_name, :userName
61
65
  alias_accessor :replied_on, :repliedOn
66
+ # added in release 1.5.8
67
+ alias_accessor :parent_reply_guid, :parentReplyGuid
68
+ alias_accessor :is_avatar_exist, :isAvatarExist
62
69
 
63
70
  #
64
71
  # Creates new GroupDocs::Document::Annotation.