groupdocs 1.5.7 → 1.5.8
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +51 -0
- data/examples/api-samples/Gemfile +1 -1
- data/examples/api-samples/Gemfile.lock +43 -0
- data/examples/api-samples/public/docs/{sample2.html → sample01.html} +39 -19
- data/examples/api-samples/public/docs/{sample3.html → sample02.html} +28 -22
- data/examples/api-samples/public/docs/sample03.html +285 -0
- data/examples/api-samples/public/docs/{sample4.html → sample04.html} +30 -36
- data/examples/api-samples/public/docs/{sample5.html → sample05.html} +68 -31
- data/examples/api-samples/public/docs/sample06.html +299 -0
- data/examples/api-samples/public/docs/{sample7.html → sample07.html} +53 -18
- data/examples/api-samples/public/docs/{sample8.html → sample08.html} +64 -41
- data/examples/api-samples/public/docs/sample09.html +260 -0
- data/examples/api-samples/public/docs/sample10.html +67 -28
- data/examples/api-samples/public/docs/sample11.html +171 -55
- data/examples/api-samples/public/docs/sample12.html +53 -17
- data/examples/api-samples/public/docs/sample13.html +52 -16
- data/examples/api-samples/public/docs/sample14.html +51 -8
- data/examples/api-samples/public/docs/sample15.html +46 -10
- data/examples/api-samples/public/docs/sample16.html +81 -7
- data/examples/api-samples/public/docs/sample17.html +103 -15
- data/examples/api-samples/public/docs/sample18.html +117 -41
- data/examples/api-samples/public/docs/sample19.html +410 -36
- data/examples/api-samples/public/docs/sample20.html +46 -10
- data/examples/api-samples/public/docs/sample21.html +504 -45
- data/examples/api-samples/public/docs/sample22.html +166 -28
- data/examples/api-samples/public/docs/sample23.html +61 -25
- data/examples/api-samples/public/docs/sample24.html +100 -12
- data/examples/api-samples/public/docs/sample25.html +123 -49
- data/examples/api-samples/public/docs/sample26.html +41 -8
- data/examples/api-samples/public/docs/sample27.html +125 -50
- data/examples/api-samples/public/docs/sample28.html +27 -9
- data/examples/api-samples/public/docs/sample29.html +10 -10
- data/examples/api-samples/public/docs/sample30.html +70 -14
- data/examples/api-samples/public/docs/sample31.html +108 -67
- data/examples/api-samples/public/docs/sample32.html +71 -99
- data/examples/api-samples/public/docs/sample33.html +107 -32
- data/examples/api-samples/public/docs/{sample1.html → sample34.html} +58 -18
- data/examples/api-samples/public/docs/sample35.html +666 -0
- data/examples/api-samples/public/docs/{sample6.html → sample36.html} +56 -37
- data/examples/api-samples/public/docs/sample37.html +815 -0
- data/examples/api-samples/public/docs/sample38.html +508 -0
- data/examples/api-samples/public/docs/sample39.html +921 -0
- data/examples/api-samples/public/docs/sample40.html +510 -0
- data/examples/api-samples/public/docs/sample41.html +452 -0
- data/examples/api-samples/public/docs/sample42.html +311 -0
- data/examples/api-samples/public/templates/test_all_fields2.pdf +0 -0
- data/examples/api-samples/samples/sample01.rb +37 -0
- data/examples/api-samples/samples/sample02.rb +41 -0
- data/examples/api-samples/samples/sample03.rb +73 -0
- data/examples/api-samples/samples/sample04.rb +47 -0
- data/examples/api-samples/samples/{sample5.rb → sample05.rb} +26 -14
- data/examples/api-samples/samples/sample06.rb +80 -0
- data/examples/api-samples/samples/sample07.rb +52 -0
- data/examples/api-samples/samples/sample08.rb +69 -0
- data/examples/api-samples/samples/sample09.rb +83 -0
- data/examples/api-samples/samples/sample10.rb +29 -15
- data/examples/api-samples/samples/sample11.rb +89 -37
- data/examples/api-samples/samples/sample12.rb +22 -11
- data/examples/api-samples/samples/sample13.rb +22 -10
- data/examples/api-samples/samples/sample14.rb +23 -5
- data/examples/api-samples/samples/sample15.rb +18 -7
- data/examples/api-samples/samples/sample16.rb +28 -4
- data/examples/api-samples/samples/sample17.rb +31 -5
- data/examples/api-samples/samples/sample18.rb +36 -8
- data/examples/api-samples/samples/sample19.rb +138 -18
- data/examples/api-samples/samples/sample20.rb +14 -3
- data/examples/api-samples/samples/sample21.rb +162 -23
- data/examples/api-samples/samples/sample22.rb +73 -22
- data/examples/api-samples/samples/sample23.rb +17 -6
- data/examples/api-samples/samples/sample24.rb +34 -7
- data/examples/api-samples/samples/sample25.rb +37 -12
- data/examples/api-samples/samples/sample26.rb +12 -5
- data/examples/api-samples/samples/sample27.rb +38 -12
- data/examples/api-samples/samples/sample28.rb +25 -6
- data/examples/api-samples/samples/sample29.rb +12 -12
- data/examples/api-samples/samples/sample30.rb +27 -15
- data/examples/api-samples/samples/sample31.rb +44 -33
- data/examples/api-samples/samples/sample32.rb +43 -41
- data/examples/api-samples/samples/sample33.rb +42 -14
- data/examples/api-samples/samples/sample34.rb +40 -0
- data/examples/api-samples/samples/sample35.rb +224 -0
- data/examples/api-samples/samples/sample36.rb +58 -0
- data/examples/api-samples/samples/sample37.rb +229 -0
- data/examples/api-samples/samples/sample38.rb +128 -0
- data/examples/api-samples/samples/sample39.rb +252 -0
- data/examples/api-samples/samples/sample40.rb +164 -0
- data/examples/api-samples/samples/sample41.rb +118 -0
- data/examples/api-samples/samples/sample42.rb +97 -0
- data/examples/api-samples/views/_others_samples.haml +25 -11
- data/examples/api-samples/views/index.haml +23 -11
- data/examples/api-samples/views/popup.haml +32 -0
- data/examples/api-samples/views/{sample1.haml → sample01.haml} +12 -7
- data/examples/api-samples/views/{sample2.haml → sample02.haml} +20 -15
- data/examples/api-samples/views/sample03.haml +83 -0
- data/examples/api-samples/views/sample04.haml +49 -0
- data/examples/api-samples/views/{sample5.haml → sample05.haml} +19 -14
- data/examples/api-samples/views/sample06.haml +53 -0
- data/examples/api-samples/views/sample07.haml +47 -0
- data/examples/api-samples/views/{sample8.haml → sample08.haml} +17 -12
- data/examples/api-samples/views/{sample9.haml → sample09.haml} +19 -4
- data/examples/api-samples/views/sample10.haml +18 -13
- data/examples/api-samples/views/sample11.haml +48 -19
- data/examples/api-samples/views/sample12.haml +26 -21
- data/examples/api-samples/views/sample13.haml +18 -12
- data/examples/api-samples/views/sample14.haml +21 -15
- data/examples/api-samples/views/sample15.haml +16 -9
- data/examples/api-samples/views/sample16.haml +18 -5
- data/examples/api-samples/views/sample17.haml +14 -9
- data/examples/api-samples/views/sample18.haml +13 -7
- data/examples/api-samples/views/sample19.haml +37 -8
- data/examples/api-samples/views/sample20.haml +13 -8
- data/examples/api-samples/views/sample21.haml +71 -13
- data/examples/api-samples/views/sample22.haml +53 -16
- data/examples/api-samples/views/sample23.haml +9 -4
- data/examples/api-samples/views/sample24.haml +9 -4
- data/examples/api-samples/views/sample25.haml +18 -13
- data/examples/api-samples/views/sample26.haml +8 -3
- data/examples/api-samples/views/sample27.haml +20 -14
- data/examples/api-samples/views/sample28.haml +16 -10
- data/examples/api-samples/views/sample29.haml +4 -4
- data/examples/api-samples/views/sample30.haml +16 -10
- data/examples/api-samples/views/sample31.haml +39 -32
- data/examples/api-samples/views/sample32.haml +25 -36
- data/examples/api-samples/views/sample33.haml +14 -17
- data/examples/api-samples/views/sample34.haml +48 -0
- data/examples/api-samples/views/sample35.haml +95 -0
- data/examples/api-samples/views/sample36.haml +64 -0
- data/examples/api-samples/views/sample37.haml +124 -0
- data/examples/api-samples/views/sample38.haml +115 -0
- data/examples/api-samples/views/sample39.haml +236 -0
- data/examples/api-samples/views/sample40.haml +95 -0
- data/examples/api-samples/views/{sample4.haml → sample41.haml} +90 -72
- data/examples/api-samples/views/sample42.haml +59 -0
- data/lib/groupdocs/api/helpers/rest_helper.rb +13 -1
- data/lib/groupdocs/datasource.rb +2 -1
- data/lib/groupdocs/document.rb +101 -13
- data/lib/groupdocs/document/annotation.rb +28 -13
- data/lib/groupdocs/document/annotation/marker.rb +18 -0
- data/lib/groupdocs/document/annotation/reply.rb +9 -2
- data/lib/groupdocs/document/field.rb +5 -1
- data/lib/groupdocs/job.rb +12 -2
- data/lib/groupdocs/questionnaire.rb +174 -4
- data/lib/groupdocs/questionnaire/collector.rb +21 -0
- data/lib/groupdocs/questionnaire/question.rb +19 -0
- data/lib/groupdocs/questionnaire/question/answer.rb +5 -0
- data/lib/groupdocs/questionnaire/question/conditions.rb +20 -0
- data/lib/groupdocs/signature.rb +36 -308
- data/lib/groupdocs/signature/envelope.rb +146 -4
- data/lib/groupdocs/signature/field.rb +20 -1
- data/lib/groupdocs/signature/field/location.rb +18 -7
- data/lib/groupdocs/signature/form.rb +199 -10
- data/lib/groupdocs/signature/shared/document_methods.rb +38 -0
- data/lib/groupdocs/signature/shared/entity_methods.rb +0 -1
- data/lib/groupdocs/signature/shared/field_methods.rb +13 -38
- data/lib/groupdocs/signature/shared/recipient_methods.rb +8 -0
- data/lib/groupdocs/signature/template.rb +3 -1
- data/lib/groupdocs/storage.rb +4 -1
- data/lib/groupdocs/storage/file.rb +18 -1
- data/lib/groupdocs/subscription.rb +8 -3
- data/lib/groupdocs/user.rb +8 -0
- data/lib/groupdocs/version.rb +1 -1
- data/spec/groupdocs/document/annotation_spec.rb +1 -14
- data/spec/groupdocs/subscription_spec.rb +2 -2
- metadata +86 -32
- checksums.yaml +0 -15
- data/examples/api-samples/public/docs/sample9.html +0 -200
- data/examples/api-samples/samples/sample1.rb +0 -25
- data/examples/api-samples/samples/sample2.rb +0 -29
- data/examples/api-samples/samples/sample3.rb +0 -33
- data/examples/api-samples/samples/sample4.rb +0 -51
- data/examples/api-samples/samples/sample6.rb +0 -49
- data/examples/api-samples/samples/sample7.rb +0 -42
- data/examples/api-samples/samples/sample8.rb +0 -61
- data/examples/api-samples/samples/sample9.rb +0 -48
- data/examples/api-samples/views/sample3.haml +0 -44
- data/examples/api-samples/views/sample6.haml +0 -49
- data/examples/api-samples/views/sample7.haml +0 -42
@@ -109,6 +109,8 @@ module GroupDocs
|
|
109
109
|
STATUSES.invert[@status]
|
110
110
|
end
|
111
111
|
|
112
|
+
#
|
113
|
+
# Changed in release 1.5.8
|
112
114
|
#
|
113
115
|
# Adds recipient to envelope.
|
114
116
|
#
|
@@ -142,7 +144,9 @@ module GroupDocs
|
|
142
144
|
:lastname => recipient.last_name,
|
143
145
|
:role => recipient.role_id,
|
144
146
|
:order => recipient.order)
|
145
|
-
api.execute!
|
147
|
+
json = api.execute!
|
148
|
+
Signature::Recipient.new(json[:recipient])
|
149
|
+
|
146
150
|
end
|
147
151
|
|
148
152
|
#
|
@@ -297,7 +301,7 @@ module GroupDocs
|
|
297
301
|
# @option access [String] :private_key
|
298
302
|
# @raise [ArgumentError] if recipient is not GroupDocs::Signature::Recipient
|
299
303
|
#
|
300
|
-
def sign!(recipient, options = {},
|
304
|
+
def sign!(recipient, options = {}, access = {})
|
301
305
|
recipient.is_a?(GroupDocs::Signature::Recipient) or raise ArgumentError,
|
302
306
|
"Recipient should be GroupDocs::Signature::Recipient object, received: #{recipient.inspect}"
|
303
307
|
|
@@ -362,7 +366,9 @@ module GroupDocs
|
|
362
366
|
end
|
363
367
|
|
364
368
|
#
|
365
|
-
#
|
369
|
+
# Changed in release 1.5.8
|
370
|
+
#
|
371
|
+
# Downloads signed document to given path.
|
366
372
|
#
|
367
373
|
# @param [GroupDocs::Document] document Signed document
|
368
374
|
# @param [String] path Directory to download file to
|
@@ -381,7 +387,7 @@ module GroupDocs
|
|
381
387
|
request[:path] = "/signature/{{client_id}}/envelopes/#{id}/document/#{document.file.guid}"
|
382
388
|
end.execute!
|
383
389
|
|
384
|
-
filepath = "#{path}/#{name}.pdf"
|
390
|
+
document.file.name ? filepath = "#{path}/#{document.file.name}" : filepath = "#{path}/#{name}.pdf"
|
385
391
|
|
386
392
|
Object::File.open(filepath, 'wb') do |file|
|
387
393
|
file.write(response)
|
@@ -483,6 +489,7 @@ module GroupDocs
|
|
483
489
|
end.execute!
|
484
490
|
|
485
491
|
filepath = "#{path}/#{name}."
|
492
|
+
|
486
493
|
if documents!.size == 1
|
487
494
|
filepath << 'pdf'
|
488
495
|
else
|
@@ -545,5 +552,140 @@ module GroupDocs
|
|
545
552
|
|
546
553
|
end
|
547
554
|
|
555
|
+
#
|
556
|
+
# Modify signature envelope field location.
|
557
|
+
#
|
558
|
+
# @example Modify field location in envelope
|
559
|
+
# envelope = GroupDocs::Signature::Envelope.get!("g94h5g84hj9g4gf23i40j")
|
560
|
+
# document = envelope.documents!.first
|
561
|
+
# recipient = envelope.recipients!.first
|
562
|
+
# field = envelope.fields!(document, recipient).first
|
563
|
+
# location = field.locations.first
|
564
|
+
# envelope.modify_field_location! location, field, document, recipient
|
565
|
+
#
|
566
|
+
# @param [GroupDocs::Signature::Field::Location] location
|
567
|
+
# @param [GroupDocs::Signature::Field] field
|
568
|
+
# @param [GroupDocs::Document] document
|
569
|
+
# @param [GroupDocs::Signature::Recipient] recipient
|
570
|
+
# @param [Integer] order Location order
|
571
|
+
# @param [Hash] access Access credentials
|
572
|
+
# @option access [String] :client_id
|
573
|
+
# @option access [String] :private_key
|
574
|
+
# @raise [ArgumentError] if location is not GroupDocs::Signature::Field::Location
|
575
|
+
# @raise [ArgumentError] if field is not GroupDocs::Signature::Field
|
576
|
+
# @raise [ArgumentError] if document is not GroupDocs::Document
|
577
|
+
# @raise [ArgumentError] if recipient is not GroupDocs::Signature::Recipient
|
578
|
+
#
|
579
|
+
def modify_field_location!(location, field, document, recipient, order, access = {})
|
580
|
+
location.is_a?(GroupDocs::Signature::Field::Location) or raise ArgumentError,
|
581
|
+
"Location should be GroupDocs::Signature::Field::Location object, received: #{location.inspect}"
|
582
|
+
field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
|
583
|
+
"Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
|
584
|
+
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
585
|
+
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
586
|
+
recipient.is_a?(GroupDocs::Signature::Recipient) or raise ArgumentError,
|
587
|
+
"Recipient should be GroupDocs::Signature::Recipient object, received: #{recipient.inspect}"
|
588
|
+
|
589
|
+
api = Api::Request.new do |request|
|
590
|
+
request[:access] = access
|
591
|
+
request[:method] = :PUT
|
592
|
+
request[:path] = "/signature/{{client_id}}/envelopes/#{id}/documents/#{document.file.guid}/recipient/#{recipient.id}/fields/#{field.id}/locations/#{location.id}"
|
593
|
+
end
|
594
|
+
api.add_params(:order => order)
|
595
|
+
api.execute!
|
596
|
+
end
|
597
|
+
|
598
|
+
#
|
599
|
+
# Changed in release 1.5.8
|
600
|
+
#
|
601
|
+
# Get signature envelope.
|
602
|
+
#
|
603
|
+
# @param [GroupDocs::Signature::Recipient] recipient Recipient GUID
|
604
|
+
# @param [Hash] access Access credentials
|
605
|
+
# @option access [String] :client_id
|
606
|
+
# @option access [String] :private_key
|
607
|
+
# @return [Array]
|
608
|
+
#
|
609
|
+
def public_get!(recipient, access = {})
|
610
|
+
recipient.is_a?(GroupDocs::Signature::Recipient) or raise ArgumentError,
|
611
|
+
"Recipient should be GroupDocs::Signature::Recipient object, received: #{recipient.inspect}"
|
612
|
+
|
613
|
+
json = Api::Request.new do |request|
|
614
|
+
request[:access] = access
|
615
|
+
request[:method] = :GET
|
616
|
+
request[:path] = "/signature/public/envelopes/#{id}/recipient/#{recipient.id}"
|
617
|
+
end.execute!
|
618
|
+
|
619
|
+
Signature::Envelope.new(json[:envelope])
|
620
|
+
end
|
621
|
+
|
622
|
+
#
|
623
|
+
# Changed in release 1.5.8
|
624
|
+
#
|
625
|
+
# Public downloads signed documents to given path.
|
626
|
+
#
|
627
|
+
# If there is only one file in envelope, it's saved as PDF.
|
628
|
+
# If there are two or more files in envelope, it's saved as ZIP.
|
629
|
+
#
|
630
|
+
# @param [String] path Directory to download file to
|
631
|
+
# @param [GroupDocs::Signature::Recipient] recipient Recipient GUID
|
632
|
+
# @param [Hash] access Access credentials
|
633
|
+
# @option access [String] :client_id
|
634
|
+
# @option access [String] :private_key
|
635
|
+
# @return [Array]
|
636
|
+
#
|
637
|
+
def public_signed_documents!(path, recipient, access = {})
|
638
|
+
recipient.is_a?(GroupDocs::Signature::Recipient) or raise ArgumentError,
|
639
|
+
"Recipient should be GroupDocs::Signature::Recipient object, received: #{recipient.inspect}"
|
640
|
+
json = Api::Request.new do |request|
|
641
|
+
request[:access] = access
|
642
|
+
request[:method] = :DOWNLOAD
|
643
|
+
request[:path] = "/signature/public/envelopes/#{id}/recipient/#{recipient.id}/documents/get"
|
644
|
+
end.execute!
|
645
|
+
filepath = "#{path}/#{name}."
|
646
|
+
if documents!.size == 1
|
647
|
+
filepath << 'pdf'
|
648
|
+
else
|
649
|
+
filepath << 'zip'
|
650
|
+
end
|
651
|
+
|
652
|
+
Object::File.open(filepath, 'wb') do |file|
|
653
|
+
file.write(json)
|
654
|
+
end
|
655
|
+
|
656
|
+
filepath
|
657
|
+
end
|
658
|
+
|
659
|
+
|
660
|
+
#
|
661
|
+
# Changed in release 1.5.8
|
662
|
+
#
|
663
|
+
#
|
664
|
+
# Get signed envelope field data.
|
665
|
+
#
|
666
|
+
# @param [GroupDocs::Signature::Recipient] recipient Recipient GUID
|
667
|
+
# @param [GroupDocs::Signature::Field] field Field GUID
|
668
|
+
# @param [Hash] access Access credentials
|
669
|
+
# @option access [String] :client_id
|
670
|
+
# @option access [String] :private_key
|
671
|
+
# @return [Array]
|
672
|
+
#
|
673
|
+
def date!(recipient, field, access = {})
|
674
|
+
field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
|
675
|
+
"Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
|
676
|
+
recipient.is_a?(GroupDocs::Signature::Recipient) or raise ArgumentError,
|
677
|
+
"Recipient should be GroupDocs::Signature::Recipient object, received: #{recipient.inspect}"
|
678
|
+
|
679
|
+
Api::Request.new do |request|
|
680
|
+
request[:access] = access
|
681
|
+
request[:method] = :GET
|
682
|
+
request[:path] = "/signature/public/envelopes/#{id}/fields/recipient/#{recipient.id}/field/#{field.id}"
|
683
|
+
end.execute!
|
684
|
+
|
685
|
+
end
|
686
|
+
|
687
|
+
|
688
|
+
|
689
|
+
|
548
690
|
end # Signature::Envelope
|
549
691
|
end # GroupDocs
|
@@ -70,7 +70,7 @@ module GroupDocs
|
|
70
70
|
attr_accessor :isSystem
|
71
71
|
# @attr [Boolean] mandatory
|
72
72
|
attr_accessor :mandatory
|
73
|
-
# @attr [
|
73
|
+
# @attr [Integer] fieldType
|
74
74
|
attr_accessor :fieldType
|
75
75
|
# @attr [Array<String>] acceptableValues
|
76
76
|
attr_accessor :acceptableValues
|
@@ -91,6 +91,19 @@ module GroupDocs
|
|
91
91
|
# @attr [Array<GroupDocs::Signature::Field::Location>] locations
|
92
92
|
attr_accessor :locations
|
93
93
|
|
94
|
+
# added in realise 1.5.8
|
95
|
+
# @attr [Integer] pageWidth
|
96
|
+
attr_accessor :pageWidth
|
97
|
+
# @attr [Integer] pageHeight
|
98
|
+
attr_accessor :pageHeight
|
99
|
+
# @attr [String] groupName
|
100
|
+
attr_accessor :groupName
|
101
|
+
# @attr [String] settings
|
102
|
+
attr_accessor :settings
|
103
|
+
# @attr [Integer] align
|
104
|
+
attr_accessor :align
|
105
|
+
# @attr [String] guidanceText
|
106
|
+
attr_accessor :guidanceText
|
94
107
|
|
95
108
|
# Human-readable accessors
|
96
109
|
alias_accessor :template_id, :templateId
|
@@ -113,6 +126,12 @@ module GroupDocs
|
|
113
126
|
alias_accessor :default_value, :defaultValue
|
114
127
|
alias_accessor :text_rows, :textRows
|
115
128
|
alias_accessor :text_columns, :textColumns
|
129
|
+
# added in release 1.5.8
|
130
|
+
alias_accessor :page_width, :pageWidth
|
131
|
+
alias_accessor :page_height, :pageHeight
|
132
|
+
alias_accessor :group_name, :groupName
|
133
|
+
alias_accessor :guidance_text, :guidanceText
|
134
|
+
|
116
135
|
|
117
136
|
#
|
118
137
|
# Converts location to GroupDocs::Signature::Field::Location object.
|
@@ -7,15 +7,15 @@ module GroupDocs
|
|
7
7
|
attr_accessor :documentId
|
8
8
|
# @attr [String] fieldId
|
9
9
|
attr_accessor :fieldId
|
10
|
-
# @attr [Integer] page
|
10
|
+
# @attr [Integer] page (required)
|
11
11
|
attr_accessor :page
|
12
|
-
# @attr [Float] locationX
|
12
|
+
# @attr [Float] locationX (required)
|
13
13
|
attr_accessor :locationX
|
14
|
-
# @attr [Float] locationY
|
14
|
+
# @attr [Float] locationY (required)
|
15
15
|
attr_accessor :locationY
|
16
|
-
# @attr [Float] locationWidth
|
16
|
+
# @attr [Float] locationWidth (required)
|
17
17
|
attr_accessor :locationWidth
|
18
|
-
# @attr [Float] locationHeight
|
18
|
+
# @attr [Float] locationHeight (required)
|
19
19
|
attr_accessor :locationHeight
|
20
20
|
# @attr [String] fontName
|
21
21
|
attr_accessor :fontName
|
@@ -34,6 +34,15 @@ module GroupDocs
|
|
34
34
|
# @attr [String] page
|
35
35
|
attr_accessor :page
|
36
36
|
|
37
|
+
# added in realise 1.5.8
|
38
|
+
# @attr [Integer] pageWidth
|
39
|
+
attr_accessor :pageWidth
|
40
|
+
# @attr [Integer] pageHeight
|
41
|
+
attr_accessor :pageHeight
|
42
|
+
# @attr [Integer] align
|
43
|
+
attr_accessor :align
|
44
|
+
|
45
|
+
|
37
46
|
# Human-readable accessors
|
38
47
|
alias_accessor :document_id, :documentId
|
39
48
|
alias_accessor :field_id, :fieldId
|
@@ -53,8 +62,10 @@ module GroupDocs
|
|
53
62
|
alias_accessor :font_bold, :fontBold
|
54
63
|
alias_accessor :font_italic, :fontItalic
|
55
64
|
alias_accessor :font_underline, :fontUnderline
|
56
|
-
alias_accessor :
|
57
|
-
|
65
|
+
alias_accessor :force_new_field, :forceNewField
|
66
|
+
# added in release 1.5.8
|
67
|
+
alias_accessor :page_width, :pageWidth
|
68
|
+
alias_accessor :page_height, :pageHeight
|
58
69
|
|
59
70
|
end # Signature::Field::Location
|
60
71
|
end # GroupDocs
|
@@ -30,7 +30,7 @@ module GroupDocs
|
|
30
30
|
# @param [Hash] access Access credentials
|
31
31
|
# @option access [String] :client_id
|
32
32
|
# @option access [String] :private_key
|
33
|
-
# @return [Array<GroupDocs::Signature::
|
33
|
+
# @return [Array<GroupDocs::Signature::Form>]
|
34
34
|
#
|
35
35
|
def self.all!(options = {}, access = {})
|
36
36
|
status_id = options.delete(:status_id)
|
@@ -117,7 +117,7 @@ module GroupDocs
|
|
117
117
|
alias_accessor :can_participant_download_form, :canParticipantDownloadForm
|
118
118
|
alias_accessor :water_mark_text, :waterMarkText
|
119
119
|
alias_accessor :water_mark_image, :waterMarkImage
|
120
|
-
alias_accessor :
|
120
|
+
alias_accessor :notify_owner_on_sign, :notifyOwnerOnSign
|
121
121
|
|
122
122
|
|
123
123
|
#
|
@@ -154,7 +154,7 @@ module GroupDocs
|
|
154
154
|
# @example
|
155
155
|
# form = GroupDocs::Signature::Form.new
|
156
156
|
# form.name = "Form"
|
157
|
-
# form.create!
|
157
|
+
# form.create!
|
158
158
|
#
|
159
159
|
# @param [Hash] options Hash of options
|
160
160
|
# @option options [String] :template_id Template GUID to create form from
|
@@ -258,24 +258,30 @@ module GroupDocs
|
|
258
258
|
end.execute!
|
259
259
|
end
|
260
260
|
|
261
|
+
#
|
262
|
+
# Changed in release 1.5.8
|
261
263
|
#
|
262
264
|
# Returns an array of fields for document per participant.
|
263
265
|
#
|
264
266
|
# @param [GroupDocs::Document] document
|
267
|
+
# @param [Hash] options
|
268
|
+
# @option options [String] :field Field GUID
|
265
269
|
# @param [Hash] access Access credentials
|
266
270
|
# @option access [String] :client_id
|
267
271
|
# @option access [String] :private_key
|
268
272
|
# @raise [ArgumentError] if document is not GroupDocs::Document
|
269
273
|
#
|
270
|
-
def fields!(document, access = {})
|
274
|
+
def fields!(document, options = {}, access = {})
|
271
275
|
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
272
276
|
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
273
277
|
|
274
|
-
|
278
|
+
api = Api::Request.new do |request|
|
275
279
|
request[:access] = access
|
276
280
|
request[:method] = :GET
|
277
281
|
request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/#{document.file.guid}/fields"
|
278
|
-
end
|
282
|
+
end
|
283
|
+
api.add_params(options)
|
284
|
+
json = api.execute!
|
279
285
|
|
280
286
|
json[:fields].map do |field|
|
281
287
|
Signature::Field.new(field)
|
@@ -347,7 +353,7 @@ module GroupDocs
|
|
347
353
|
# @raise [ArgumentError] if field is not GroupDocs::Signature::Field
|
348
354
|
# @raise [ArgumentError] if document is not GroupDocs::Document
|
349
355
|
#
|
350
|
-
def modify_field_location!(location, field, document,
|
356
|
+
def modify_field_location!(location, field, document, access = {})
|
351
357
|
location.is_a?(GroupDocs::Signature::Field::Location) or raise ArgumentError,
|
352
358
|
"Location should be GroupDocs::Signature::Field::Location object, received: #{location.inspect}"
|
353
359
|
field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
|
@@ -388,9 +394,8 @@ module GroupDocs
|
|
388
394
|
#
|
389
395
|
# @example
|
390
396
|
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
391
|
-
# document =
|
392
|
-
#
|
393
|
-
# field = envelope.fields!(document, recipient).first
|
397
|
+
# document = form.documents!.first
|
398
|
+
# field = form.fields!(document).first
|
394
399
|
# field.name = "Field"
|
395
400
|
# envelope.modify_field! field, document
|
396
401
|
#
|
@@ -416,6 +421,8 @@ module GroupDocs
|
|
416
421
|
end.execute!
|
417
422
|
end
|
418
423
|
|
424
|
+
#
|
425
|
+
# Changed in release 1.5.8
|
419
426
|
#
|
420
427
|
# Downloads signed documents to given path.
|
421
428
|
# If there is only one file in envelope, it's saved as PDF.
|
@@ -434,6 +441,188 @@ module GroupDocs
|
|
434
441
|
request[:path] = "/signature/{{client_id}}/forms/#{id}/documents/get"
|
435
442
|
end.execute!
|
436
443
|
|
444
|
+
filepath = "#{path}/#{name}.zip"
|
445
|
+
|
446
|
+
|
447
|
+
Object::File.open(filepath, 'wb') do |file|
|
448
|
+
file.write(response)
|
449
|
+
end
|
450
|
+
|
451
|
+
filepath
|
452
|
+
end
|
453
|
+
|
454
|
+
#
|
455
|
+
# Changed in release 1.5.8
|
456
|
+
#
|
457
|
+
# Public fill signature form.
|
458
|
+
#
|
459
|
+
# @param [String] form Form GUID
|
460
|
+
# @param [Hash] access Access credentials
|
461
|
+
# @option access [String] :client_id
|
462
|
+
# @option access [String] :private_key
|
463
|
+
# @return [Array]
|
464
|
+
#
|
465
|
+
def public_fill!(access = {})
|
466
|
+
Api::Request.new do |request|
|
467
|
+
request[:access] = access
|
468
|
+
request[:method] = :GET
|
469
|
+
request[:path] = "/signature/public/forms/#{id}/fill"
|
470
|
+
end.execute!
|
471
|
+
end
|
472
|
+
|
473
|
+
#
|
474
|
+
# Changed in release 1.5.8
|
475
|
+
#
|
476
|
+
# Public fill form field.
|
477
|
+
#
|
478
|
+
# @example Fill single line field
|
479
|
+
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
480
|
+
# document = form.documents!.first
|
481
|
+
# field = form.fields!(document).first
|
482
|
+
# fill_form = form.public_fill!
|
483
|
+
# participant = fill_form[:participant][:id]
|
484
|
+
# envelope.fill_field! "my_data", field, document, participant
|
485
|
+
#
|
486
|
+
# @example Fill signature field
|
487
|
+
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
488
|
+
# document = form.documents!.first
|
489
|
+
# field = form.fields!(document).first
|
490
|
+
# fill_form = form.public_fill!
|
491
|
+
# participant = fill_form[:participant][:id]
|
492
|
+
# signature = GroupDocs::Signature.get!.first
|
493
|
+
# form.fill_field! signature, field, document, participant
|
494
|
+
#
|
495
|
+
# @example Fill checkbox field
|
496
|
+
# form = GroupDocs::Signature::Form.get!("g94h5g84hj9g4gf23i40j")
|
497
|
+
# document = form.documents!.first
|
498
|
+
# field = form.fields!(document).first
|
499
|
+
# fill_form = form.public_fill!
|
500
|
+
# participant = fill_form[:participant][:id]
|
501
|
+
# form.fill_field! false, field, document, participant
|
502
|
+
#
|
503
|
+
#
|
504
|
+
# @param [GroupDocs::Document] document Document GUID
|
505
|
+
# @param [String] participant Participant ID
|
506
|
+
# @param [GroupDocs::Signature::Field] field Field GUID
|
507
|
+
# @param [String] authentication Authentication signature
|
508
|
+
# @param [File Stream] value Data to be placed in field
|
509
|
+
# @param [Hash] access Access credentials
|
510
|
+
# @option access [String] :client_id
|
511
|
+
# @option access [String] :private_key
|
512
|
+
# @return [Array]
|
513
|
+
#
|
514
|
+
def public_fill_field!(value, field, document, participant, authentication, access = {})
|
515
|
+
field.is_a?(GroupDocs::Signature::Field) or raise ArgumentError,
|
516
|
+
"Field should be GroupDocs::Signature::Field object, received: #{field.inspect}"
|
517
|
+
document.is_a?(GroupDocs::Document) or raise ArgumentError,
|
518
|
+
"Document should be GroupDocs::Document object, received: #{document.inspect}"
|
519
|
+
|
520
|
+
api = Api::Request.new do |request|
|
521
|
+
request[:access] = access
|
522
|
+
request[:method] = :PUT
|
523
|
+
request[:path] = "/signature/public/forms/#{id}/documents/#{document.guid}/participant/#{participant}/field/#{field.id}"
|
524
|
+
request[:request_body] = value
|
525
|
+
request[:plain] = true
|
526
|
+
end
|
527
|
+
api.add_params(:participantAuthSignature => authentication)
|
528
|
+
json = api.execute!
|
529
|
+
Signature::Field.new(json[:field])
|
530
|
+
end
|
531
|
+
|
532
|
+
#
|
533
|
+
# Changed in release 1.5.8
|
534
|
+
#
|
535
|
+
# Public sign form.
|
536
|
+
#
|
537
|
+
# @param [String] form Form GUID
|
538
|
+
# @param [String] participant Participant GUID
|
539
|
+
# @param [String] authentication Authentication signature
|
540
|
+
# @param [String] participant_name Participant Name
|
541
|
+
# @param [Hash] access Access credentials
|
542
|
+
# @option access [String] :client_id
|
543
|
+
# @option access [String] :private_key
|
544
|
+
# @return [Array]
|
545
|
+
#
|
546
|
+
def sign!( participant, authentication, participant_name, access = {})
|
547
|
+
api = Api::Request.new do |request|
|
548
|
+
request[:access] = access
|
549
|
+
request[:method] = :PUT
|
550
|
+
request[:path] = "/signature/public/forms/#{id}/participant/#{participant}/sign"
|
551
|
+
end
|
552
|
+
api.add_params(:participantAuthSignature => authentication, :name => participant_name)
|
553
|
+
api.execute!
|
554
|
+
end
|
555
|
+
|
556
|
+
#
|
557
|
+
# Changed in release 1.5.8
|
558
|
+
#
|
559
|
+
#
|
560
|
+
# Get form fields for document in form per participant
|
561
|
+
#
|
562
|
+
# @param [Hash] options
|
563
|
+
# @option [String] :document Document GUID
|
564
|
+
# @option [String] :participant Participant GUID
|
565
|
+
# @param [Hash] access Access credentials
|
566
|
+
# @option access [String] :client_id
|
567
|
+
# @option access [String] :private_key
|
568
|
+
# @return [Array]
|
569
|
+
#
|
570
|
+
def public_fields!(options = {}, access = {})
|
571
|
+
api = Api::Request.new do |request|
|
572
|
+
request[:access] = access
|
573
|
+
request[:method] = :GET
|
574
|
+
request[:path] = "/signature/public/forms/#{id}/fields"
|
575
|
+
end
|
576
|
+
api.add_params(options)
|
577
|
+
json = api.execute!
|
578
|
+
|
579
|
+
json[:fields].map do |field|
|
580
|
+
Signature::Field.new(field)
|
581
|
+
end
|
582
|
+
end
|
583
|
+
|
584
|
+
#
|
585
|
+
# Changed in release 1.5.8
|
586
|
+
#
|
587
|
+
#
|
588
|
+
# Get signature form participant.
|
589
|
+
#
|
590
|
+
# @param [String] participant Participant GUID
|
591
|
+
# @param [Hash] access Access credentials
|
592
|
+
# @option access [String] :client_id
|
593
|
+
# @option access [String] :private_key
|
594
|
+
# @return [Array]
|
595
|
+
#
|
596
|
+
def participant!(participant, access = {})
|
597
|
+
json = Api::Request.new do |request|
|
598
|
+
request[:access] = access
|
599
|
+
request[:method] = :GET
|
600
|
+
request[:path] = "/signature/public/forms/#{form}/participants/#{participant}"
|
601
|
+
end.execute!
|
602
|
+
|
603
|
+
json[:participant]
|
604
|
+
end
|
605
|
+
|
606
|
+
#
|
607
|
+
# Changed in release 1.5.8
|
608
|
+
#
|
609
|
+
#
|
610
|
+
# Get signed form documents.
|
611
|
+
#
|
612
|
+
# @param [String] participant Participant GUID
|
613
|
+
# @param [Hash] access Access credentials
|
614
|
+
# @option access [String] :client_id
|
615
|
+
# @option access [String] :private_key
|
616
|
+
# @return [Array]
|
617
|
+
#
|
618
|
+
def public_signed_documents!(path, participant, access = {})
|
619
|
+
response = Api::Request.new do |request|
|
620
|
+
request[:access] = access
|
621
|
+
request[:method] = :DOWNLOAD
|
622
|
+
request[:path] = "/signature/public/forms/#{id}/participant/#{participant}/documents/get"
|
623
|
+
end.execute!
|
624
|
+
|
625
|
+
|
437
626
|
filepath = "#{path}/#{name}."
|
438
627
|
if documents!.size == 1
|
439
628
|
filepath << 'pdf'
|