groupdocs 1.6.0 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (171) hide show
  1. data/CHANGELOG.md +34 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +3 -0
  4. data/examples/api-samples/public/docs/sample01.html +23 -23
  5. data/examples/api-samples/public/docs/sample02.html +27 -27
  6. data/examples/api-samples/public/docs/sample03.html +81 -69
  7. data/examples/api-samples/public/docs/sample04.html +29 -29
  8. data/examples/api-samples/public/docs/sample05.html +48 -48
  9. data/examples/api-samples/public/docs/sample06.html +47 -46
  10. data/examples/api-samples/public/docs/sample07.html +35 -35
  11. data/examples/api-samples/public/docs/sample08.html +45 -45
  12. data/examples/api-samples/public/docs/sample09.html +57 -57
  13. data/examples/api-samples/public/docs/sample10.html +41 -41
  14. data/examples/api-samples/public/docs/sample11.html +96 -118
  15. data/examples/api-samples/public/docs/sample12.html +29 -50
  16. data/examples/api-samples/public/docs/sample13.html +36 -44
  17. data/examples/api-samples/public/docs/sample14.html +29 -29
  18. data/examples/api-samples/public/docs/sample15.html +24 -24
  19. data/examples/api-samples/public/docs/sample16.html +32 -32
  20. data/examples/api-samples/public/docs/sample17.html +38 -38
  21. data/examples/api-samples/public/docs/sample18.html +105 -101
  22. data/examples/api-samples/public/docs/sample19.html +101 -101
  23. data/examples/api-samples/public/docs/sample20.html +42 -42
  24. data/examples/api-samples/public/docs/sample21.html +109 -109
  25. data/examples/api-samples/public/docs/sample22.html +56 -56
  26. data/examples/api-samples/public/docs/sample23.html +39 -39
  27. data/examples/api-samples/public/docs/sample24.html +36 -36
  28. data/examples/api-samples/public/docs/sample25.html +67 -67
  29. data/examples/api-samples/public/docs/sample26.html +23 -23
  30. data/examples/api-samples/public/docs/sample27.html +72 -72
  31. data/examples/api-samples/public/docs/sample28.html +46 -45
  32. data/examples/api-samples/public/docs/sample29.html +30 -30
  33. data/examples/api-samples/public/docs/sample30.html +30 -30
  34. data/examples/api-samples/public/docs/sample31.html +114 -114
  35. data/examples/api-samples/public/docs/sample32.html +96 -96
  36. data/examples/api-samples/public/docs/sample33.html +56 -56
  37. data/examples/api-samples/public/docs/sample34.html +27 -27
  38. data/examples/api-samples/public/docs/sample35.html +134 -135
  39. data/examples/api-samples/public/docs/sample36.html +32 -32
  40. data/examples/api-samples/public/docs/sample37.html +103 -103
  41. data/examples/api-samples/public/docs/sample38.html +76 -76
  42. data/examples/api-samples/public/docs/sample39.html +136 -136
  43. data/examples/api-samples/public/docs/sample40.html +104 -104
  44. data/examples/api-samples/public/docs/sample41.html +137 -137
  45. data/examples/api-samples/public/docs/sample42.html +61 -61
  46. data/examples/api-samples/public/docs/sample43.html +72 -72
  47. data/examples/api-samples/public/docs/sample44.html +751 -0
  48. data/examples/api-samples/public/docs/sample45.html +236 -0
  49. data/examples/api-samples/public/templates/merge_field3_doc.docx +0 -0
  50. data/examples/api-samples/samples/sample01.rb +2 -2
  51. data/examples/api-samples/samples/sample02.rb +2 -2
  52. data/examples/api-samples/samples/sample03.rb +2 -2
  53. data/examples/api-samples/samples/sample04.rb +2 -2
  54. data/examples/api-samples/samples/sample05.rb +2 -2
  55. data/examples/api-samples/samples/sample06.rb +2 -2
  56. data/examples/api-samples/samples/sample07.rb +2 -2
  57. data/examples/api-samples/samples/sample08.rb +2 -2
  58. data/examples/api-samples/samples/sample09.rb +2 -2
  59. data/examples/api-samples/samples/sample10.rb +2 -2
  60. data/examples/api-samples/samples/sample11.rb +2 -2
  61. data/examples/api-samples/samples/sample12.rb +2 -2
  62. data/examples/api-samples/samples/sample13.rb +2 -2
  63. data/examples/api-samples/samples/sample14.rb +2 -2
  64. data/examples/api-samples/samples/sample15.rb +2 -2
  65. data/examples/api-samples/samples/sample16.rb +2 -2
  66. data/examples/api-samples/samples/sample17.rb +2 -2
  67. data/examples/api-samples/samples/sample18.rb +2 -2
  68. data/examples/api-samples/samples/sample19.rb +2 -2
  69. data/examples/api-samples/samples/sample20.rb +2 -2
  70. data/examples/api-samples/samples/sample21.rb +2 -2
  71. data/examples/api-samples/samples/sample22.rb +2 -2
  72. data/examples/api-samples/samples/sample23.rb +2 -2
  73. data/examples/api-samples/samples/sample24.rb +2 -2
  74. data/examples/api-samples/samples/sample25.rb +2 -2
  75. data/examples/api-samples/samples/sample26.rb +2 -2
  76. data/examples/api-samples/samples/sample27.rb +2 -2
  77. data/examples/api-samples/samples/sample28.rb +2 -2
  78. data/examples/api-samples/samples/sample29.rb +2 -2
  79. data/examples/api-samples/samples/sample30.rb +2 -2
  80. data/examples/api-samples/samples/sample31.rb +2 -2
  81. data/examples/api-samples/samples/sample32.rb +2 -2
  82. data/examples/api-samples/samples/sample33.rb +2 -2
  83. data/examples/api-samples/samples/sample34.rb +2 -2
  84. data/examples/api-samples/samples/sample35.rb +4 -4
  85. data/examples/api-samples/samples/sample36.rb +2 -2
  86. data/examples/api-samples/samples/sample37.rb +2 -2
  87. data/examples/api-samples/samples/sample38.rb +2 -2
  88. data/examples/api-samples/samples/sample39.rb +2 -2
  89. data/examples/api-samples/samples/sample40.rb +2 -2
  90. data/examples/api-samples/samples/sample41.rb +2 -2
  91. data/examples/api-samples/samples/sample42.rb +2 -2
  92. data/examples/api-samples/samples/sample43.rb +2 -2
  93. data/examples/api-samples/samples/sample44.rb +188 -0
  94. data/examples/api-samples/samples/sample45.rb +74 -0
  95. data/examples/api-samples/views/_others_samples.haml +47 -43
  96. data/examples/api-samples/views/index.haml +55 -44
  97. data/examples/api-samples/views/layout.haml +1 -6
  98. data/examples/api-samples/views/sample01.haml +62 -57
  99. data/examples/api-samples/views/sample02.haml +52 -46
  100. data/examples/api-samples/views/sample03.haml +78 -73
  101. data/examples/api-samples/views/sample04.haml +51 -45
  102. data/examples/api-samples/views/sample05.haml +77 -71
  103. data/examples/api-samples/views/sample06.haml +58 -52
  104. data/examples/api-samples/views/sample07.haml +51 -45
  105. data/examples/api-samples/views/sample08.haml +90 -84
  106. data/examples/api-samples/views/sample09.haml +86 -80
  107. data/examples/api-samples/views/sample10.haml +83 -77
  108. data/examples/api-samples/views/sample11.haml +124 -120
  109. data/examples/api-samples/views/sample12.haml +65 -59
  110. data/examples/api-samples/views/sample13.haml +62 -56
  111. data/examples/api-samples/views/sample14.haml +57 -51
  112. data/examples/api-samples/views/sample15.haml +49 -43
  113. data/examples/api-samples/views/sample16.haml +49 -43
  114. data/examples/api-samples/views/sample17.haml +53 -47
  115. data/examples/api-samples/views/sample18.haml +140 -134
  116. data/examples/api-samples/views/sample19.haml +87 -81
  117. data/examples/api-samples/views/sample20.haml +53 -47
  118. data/examples/api-samples/views/sample21.haml +115 -111
  119. data/examples/api-samples/views/sample22.haml +94 -88
  120. data/examples/api-samples/views/sample23.haml +83 -78
  121. data/examples/api-samples/views/sample24.haml +54 -48
  122. data/examples/api-samples/views/sample25.haml +89 -83
  123. data/examples/api-samples/views/sample26.haml +62 -57
  124. data/examples/api-samples/views/sample27.haml +114 -109
  125. data/examples/api-samples/views/sample28.haml +55 -49
  126. data/examples/api-samples/views/sample29.haml +67 -69
  127. data/examples/api-samples/views/sample30.haml +54 -48
  128. data/examples/api-samples/views/sample31.haml +106 -100
  129. data/examples/api-samples/views/sample32.haml +90 -84
  130. data/examples/api-samples/views/sample33.haml +60 -54
  131. data/examples/api-samples/views/sample34.haml +51 -46
  132. data/examples/api-samples/views/sample35.haml +84 -78
  133. data/examples/api-samples/views/sample36.haml +63 -58
  134. data/examples/api-samples/views/sample37.haml +122 -116
  135. data/examples/api-samples/views/sample38.haml +104 -98
  136. data/examples/api-samples/views/sample39.haml +6 -2
  137. data/examples/api-samples/views/sample40.haml +94 -89
  138. data/examples/api-samples/views/sample41.haml +127 -123
  139. data/examples/api-samples/views/sample42.haml +60 -54
  140. data/examples/api-samples/views/sample43.haml +81 -77
  141. data/examples/api-samples/views/sample44.haml +85 -0
  142. data/examples/api-samples/views/sample45.haml +85 -0
  143. data/groupdocs.gemspec +2 -0
  144. data/lib/groupdocs/datasource/field.rb +9 -0
  145. data/lib/groupdocs/document.rb +66 -4
  146. data/lib/groupdocs/document/annotation.rb +11 -6
  147. data/lib/groupdocs/document/editor.rb +53 -0
  148. data/lib/groupdocs/document/field.rb +16 -0
  149. data/lib/groupdocs/document/style.rb +30 -0
  150. data/lib/groupdocs/job.rb +24 -0
  151. data/lib/groupdocs/questionnaire.rb +2 -0
  152. data/lib/groupdocs/questionnaire/collector.rb +52 -0
  153. data/lib/groupdocs/questionnaire/collector_style.rb +54 -0
  154. data/lib/groupdocs/questionnaire/question.rb +9 -0
  155. data/lib/groupdocs/questionnaire/style/base_font.rb +17 -0
  156. data/lib/groupdocs/questionnaire/style/question_title.rb +17 -0
  157. data/lib/groupdocs/questionnaire/style/title.rb +17 -0
  158. data/lib/groupdocs/signature/envelope.rb +43 -8
  159. data/lib/groupdocs/signature/form.rb +113 -12
  160. data/lib/groupdocs/signature/recipient.rb +38 -3
  161. data/lib/groupdocs/signature/shared/field_methods.rb +4 -2
  162. data/lib/groupdocs/signature/template.rb +20 -1
  163. data/lib/groupdocs/storage/file.rb +3 -2
  164. data/lib/groupdocs/user.rb +148 -0
  165. data/lib/groupdocs/version.rb +1 -1
  166. data/spec/groupdocs/api/helpers/access_rights_helper_spec.rb +5 -5
  167. data/spec/groupdocs/document/annotation_spec.rb +1 -1
  168. data/spec/groupdocs/signature/envelope_spec.rb +1 -1
  169. data/spec/groupdocs/user_spec.rb +4 -4
  170. data/spec/support/shared_examples/signature/shared/field_methods.rb +5 -4
  171. metadata +18 -3
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample16' do
2
+ get '/sample-16-how-to-insert-assembly-questionnaire-into-webpage' do
3
3
  haml :sample16
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample16' do
7
+ post '/sample-16-how-to-insert-assembly-questionnaire-into-webpage' do
8
8
  #Set variables
9
9
  set :fileId, params[:fileId]
10
10
  set :base_path, params[:basePath]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample17' do
2
+ get '/sample-17-how-to-upload-a-file-into-the-storage-and-compress-it-into-zip-archive' do
3
3
  haml :sample17
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample17' do
7
+ post '/sample-17-how-to-upload-a-file-into-the-storage-and-compress-it-into-zip-archive' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -1,5 +1,5 @@
1
1
  #GET request
2
- get '/sample18' do
2
+ get '/sample-18-how-to-convert-doc-to-docx-docx-to-doc-docx-to-pdf-ppt-to-pdf' do
3
3
  haml :sample18
4
4
  end
5
5
 
@@ -71,7 +71,7 @@ end
71
71
 
72
72
 
73
73
  #POST request
74
- post '/sample18' do
74
+ post '/sample-18-how-to-convert-doc-to-docx-docx-to-doc-docx-to-pdf-ppt-to-pdf' do
75
75
  #Set variables
76
76
  set :client_id, params[:clientId]
77
77
  set :private_key, params[:privateKey]
@@ -1,5 +1,5 @@
1
1
  #GET request
2
- get '/sample19' do
2
+ get '/sample-19-how-to-compare-documents' do
3
3
  haml :sample19
4
4
  end
5
5
 
@@ -69,7 +69,7 @@ get '/sample19/downloads/:filename' do |filename|
69
69
  end
70
70
 
71
71
  #POST request
72
- post '/sample19' do
72
+ post '/sample-19-how-to-compare-documents' do
73
73
  #Set variables
74
74
  set :client_id, params[:clientId]
75
75
  set :private_key, params[:privateKey]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample20' do
2
+ get '/sample-20-how-to-get-compare-change-list-for-document' do
3
3
  haml :sample20
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample20' do
7
+ post '/sample-20-how-to-get-compare-change-list-for-document' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -1,5 +1,5 @@
1
1
  #GET request
2
- get '/sample21' do
2
+ get '/sample-21-how-to-create-and-upload-envelop-to-groupdocs-account' do
3
3
  haml :sample21
4
4
  end
5
5
 
@@ -70,7 +70,7 @@ get '/sample21/downloads/:filename' do |filename|
70
70
  end
71
71
 
72
72
  #POST request
73
- post '/sample21' do
73
+ post '/sample-21-how-to-create-and-upload-envelop-to-groupdocs-account' do
74
74
  #Set variables
75
75
  set :client_id, params[:clientId]
76
76
  set :private_key, params[:privateKey]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample22' do
2
+ get '/sample-22-how-to-create-or-update-user-and-add-him-to-collaborators' do
3
3
  haml :sample22
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample22' do
7
+ post '/sample-22-how-to-create-or-update-user-and-add-him-to-collaborators' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample23' do
2
+ get '/sample-23-how-to-view-document-pages-as-images' do
3
3
  haml :sample23
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample23' do
7
+ post '/sample-23-how-to-view-document-pages-as-images' do
8
8
 
9
9
  #Set variables
10
10
  set :client_id, params[:clientId]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample24' do
2
+ get '/sample-24-how-to-use-storageapi-to-upload-fil-from-url-to-groupdocs-account' do
3
3
  haml :sample24
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample24' do
7
+ post '/sample-24-how-to-use-storageapi-to-upload-fil-from-url-to-groupdocs-account' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample25' do
2
+ get '/sample-25-how-to-merge-assemble-and-convert-document' do
3
3
  haml :sample25
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample25' do
7
+ post '/sample-25-how-to-merge-assemble-and-convert-document' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample26' do
2
+ get '/sample-26-how-to-use-login-method-in-the-api' do
3
3
  haml :sample26
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample26' do
7
+ post '/sample-26-how-to-use-login-method-in-the-api' do
8
8
  set :email, params[:login]
9
9
  set :password, params[:password]
10
10
  set :base_path, params[:basePath]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample27' do
2
+ get '/sample-27-how-to-create-your-own-questionnaire-using-forms-and-show-the-result-document' do
3
3
  haml :sample27
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample27' do
7
+ post '/sample-27-how-to-create-your-own-questionnaire-using-forms-and-show-the-result-document' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample28' do
2
+ get '/sample-28-how-to-delete-all-annotations-from-document' do
3
3
  haml :sample28
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample28' do
7
+ post '/sample-28-how-to-delete-all-annotations-from-document' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample29' do
2
+ get '/sample-29-how-to-use-filepicker-io-to-upload-document-and-get-it\'s-url' do
3
3
  haml :sample29
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample29' do
7
+ post '/sample-29-how-to-use-filepicker-io-to-upload-document-and-get-it\'s-url' do
8
8
 
9
9
  #Set variables
10
10
  set :client_id, params[:clientId]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample30' do
2
+ get '/sample-30-how-to-delete-file-from-groupdocs-storage' do
3
3
  haml :sample30
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample30' do
7
+ post '/sample-30-how-to-delete-file-from-groupdocs-storage' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -1,5 +1,5 @@
1
1
  #GET request
2
- get '/sample31' do
2
+ get '/sample-31-how-to-dynamically-create-signature-form-using-data-from-html-form' do
3
3
  haml :sample31
4
4
  end
5
5
 
@@ -71,7 +71,7 @@ end
71
71
 
72
72
 
73
73
  #POST request
74
- post '/sample31' do
74
+ post '/sample-31-how-to-dynamically-create-signature-form-using-data-from-html-form' do
75
75
  #Set variables
76
76
  set :client_id, params[:clientId]
77
77
  set :private_key, params[:privateKey]
@@ -1,5 +1,5 @@
1
1
  #GET request
2
- get '/sample32' do
2
+ get '/sample-32-how-to-create-signature-form-publish-it-and-configure-notification-via-callback' do
3
3
  haml :sample32
4
4
  end
5
5
 
@@ -67,7 +67,7 @@ post '/sample32/callback' do
67
67
  end
68
68
 
69
69
  #POST request
70
- post '/sample32' do
70
+ post '/sample-32-how-to-create-signature-form-publish-it-and-configure-notification-via-callback' do
71
71
  #Set variables
72
72
  set :client_id, params[:clientId]
73
73
  set :private_key, params[:privateKey]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample33' do
2
+ get '/sample-33-how-to-convert-several-html-documents-into-one-pdf-document' do
3
3
  haml :sample33
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample33' do
7
+ post '/sample-33-how-to-convert-several-html-documents-into-one-pdf-document' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample34' do
2
+ get '/sample-34-how-to-create-folder-in-the-groupdocs-account' do
3
3
  haml :sample34
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample34' do
7
+ post '/sample-34-how-to-create-folder-in-the-groupdocs-account' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -1,11 +1,11 @@
1
1
  #GET request
2
- get '/sample35' do
2
+ get '/sample-35-how-to-get-fields-and-their-data-from-pdf-file' do
3
3
  haml :sample35
4
4
  end
5
5
 
6
6
 
7
7
  #POST request
8
- post '/sample35' do
8
+ post '/sample-35-how-to-get-fields-and-their-data-from-pdf-file' do
9
9
  #Set variables
10
10
  set :client_id, params[:clientId]
11
11
  set :private_key, params[:privateKey]
@@ -104,12 +104,12 @@ post '/sample35' do
104
104
  end
105
105
 
106
106
  #GET request
107
- get '/sample35/check' do
107
+ get '//sample-35-how-to-get-fields-and-their-data-from-pdf-file/check' do
108
108
  haml :sample35
109
109
  end
110
110
 
111
111
  #POST request
112
- post '/sample35/check' do
112
+ post '//sample-35-how-to-get-fields-and-their-data-from-pdf-file/check' do
113
113
  set :client_id, params[:clientId]
114
114
  set :private_key, params[:privateKey]
115
115
  set :base_path, params[:basePath]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample36' do
2
+ get '/sample-36-how-to-download-signed-documents-when-envelope-was-signed' do
3
3
  haml :sample36
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample36' do
7
+ post '/sample-36-how-to-download-signed-documents-when-envelope-was-signed' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -1,5 +1,5 @@
1
1
  #Route the handler url "/sample37"
2
- get '/sample37' do
2
+ get '/sample-37-how-to-create-envelop-and-download-signed-document-when-envelop-was-signed-using-callback' do
3
3
  haml :sample37
4
4
  end
5
5
 
@@ -36,7 +36,7 @@ get '/sample37/downloads/:filename' do |filename|
36
36
  end
37
37
 
38
38
  #Route the handler url "/sample37". The function block creates new envelope
39
- post '/sample37' do
39
+ post '/sample-37-how-to-create-envelop-and-download-signed-document-when-envelop-was-signed-using-callback' do
40
40
  #Set variables from form
41
41
  set :client_id, params[:clientId]
42
42
  set :private_key, params[:privateKey]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample38' do
2
+ get '/sample-38-how-to-create-new-user-and-add-him-as-collaborator-to-doc-with-annotations' do
3
3
  haml :sample38
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample38' do
7
+ post '/sample-38-how-to-create-new-user-and-add-him-as-collaborator-to-doc-with-annotations' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -1,5 +1,5 @@
1
1
  #GET request
2
- get '/sample39' do
2
+ get '/sample-39-how-to-add-a-signature-to-a-document-and-re-direct-after-signing-with-groupdocs-widget' do
3
3
  haml :sample39
4
4
  end
5
5
 
@@ -136,7 +136,7 @@ end
136
136
 
137
137
 
138
138
  #POST request
139
- post '/sample39' do
139
+ post '/sample-39-how-to-add-a-signature-to-a-document-and-re-direct-after-signing-with-groupdocs-widget' do
140
140
  #Set variables
141
141
  set :client_id, params[:clientId]
142
142
  set :private_key, params[:privateKey]
@@ -1,5 +1,5 @@
1
1
  #GET request
2
- get '/sample40' do
2
+ get '/sample-40-how-to-set-callback-for-signature-form-and-re-direct-when-it-was-signed' do
3
3
  haml :sample40
4
4
  end
5
5
 
@@ -88,7 +88,7 @@ end
88
88
 
89
89
 
90
90
  #POST request
91
- post '/sample40' do
91
+ post '/sample-40-how-to-set-callback-for-signature-form-and-re-direct-when-it-was-signed' do
92
92
  #Set variables
93
93
  set :client_id, params[:clientId]
94
94
  set :private_key, params[:privateKey]
@@ -1,5 +1,5 @@
1
1
  #GET request
2
- get '/sample41' do
2
+ get '/sample-41-how-to-set-callback-for-annotation-and-manage-user-rights' do
3
3
  haml :sample41
4
4
  end
5
5
 
@@ -80,7 +80,7 @@ end
80
80
 
81
81
 
82
82
  #POST request
83
- post '/sample41' do
83
+ post '/sample-41-how-to-set-callback-for-annotation-and-manage-user-rights' do
84
84
  #Set variables
85
85
  set :client_id, params[:clientId]
86
86
  set :private_key, params[:privateKey]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample42' do
2
+ get '/sample-42-how-to-download-document-with-annotations-using-groupdocs' do
3
3
  haml :sample42
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample42' do
7
+ post '/sample-42-how-to-download-document-with-annotations-using-groupdocs' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -1,10 +1,10 @@
1
1
  #GET request
2
- get '/sample43' do
2
+ get '/sample-43-how-to-add-numeration-in-the-doc-file' do
3
3
  haml :sample43
4
4
  end
5
5
 
6
6
  #POST request
7
- post '/sample43' do
7
+ post '/sample-43-how-to-add-numeration-in-the-doc-file' do
8
8
  #Set variables
9
9
  set :client_id, params[:clientId]
10
10
  set :private_key, params[:privateKey]
@@ -0,0 +1,188 @@
1
+ #GET request
2
+ get '/sample-44-how-to-assemble-document-and-add-multiple-signatures-and-signers-to-a-document' do
3
+ haml :sample44
4
+ end
5
+
6
+ #POST request
7
+ post '/sample-44-how-to-assemble-document-and-add-multiple-signatures-and-signers-to-a-document' do
8
+ #Set variables
9
+ set :client_id, params[:clientId]
10
+ set :private_key, params[:privateKey]
11
+ set :file_id, params[:fileId]
12
+ set :first_name, params[:firstName]
13
+ set :last_name, params[:lastName]
14
+ set :first_email, params[:firstEmail]
15
+ set :second_email, params[:secondEmail]
16
+ set :gender, params[:gender]
17
+ set :base_path, params[:basePath]
18
+
19
+ #Set download path
20
+ downloads_path = "#{File.dirname(__FILE__)}/../public/downloads"
21
+
22
+ #Remove all files from download directory or create folder if it not there
23
+ if File.directory?(downloads_path)
24
+ Dir.foreach(downloads_path) { |f| fn = File.join(downloads_path, f); File.delete(fn) if f != '.' && f != '..' }
25
+ else
26
+ Dir::mkdir(downloads_path)
27
+ end
28
+
29
+ begin
30
+ #Check required variables
31
+ raise 'Please enter all required parameters' if settings.client_id.empty? or settings.private_key.empty? or settings.first_email.empty? or settings.second_email.empty? or settings.first_name.empty?
32
+
33
+ #Prepare base path
34
+ if settings.base_path.empty?
35
+ base_path = 'https://api.groupdocs.com'
36
+ elsif settings.base_path.match('/v2.0')
37
+ base_path = settings.base_path.split('/v2.0')[0]
38
+ else
39
+ base_path = settings.base_path
40
+ end
41
+
42
+ #Configure your access to API server
43
+ GroupDocs.configure do |groupdocs|
44
+ groupdocs.client_id = settings.client_id
45
+ groupdocs.private_key = settings.private_key
46
+ #Optionally specify API server and version
47
+ groupdocs.api_server = base_path # default is 'https://api.groupdocs.com'
48
+ end
49
+
50
+ (settings.last_name.nil? or settings.last_name.empty?) ? settings.last_name = settings.first_name : settings.last_name
51
+
52
+ second_signer_name = settings.first_name + "2"
53
+ second_signer_last_name = settings.last_name + "2"
54
+ #Construct path
55
+
56
+ file_path = "#{Dir.tmpdir}/#{params[:file][:filename]}"
57
+ #Open file
58
+ File.open(file_path, 'wb') { |f| f.write(params[:file][:tempfile].read) }
59
+ # Make a request to API using client_id and private_key
60
+ file = GroupDocs::Storage::File.upload!(file_path, {})
61
+
62
+ #Raise exception if something went wrong
63
+ raise 'No such file' unless file.is_a?(GroupDocs::Storage::File)
64
+
65
+ #Make GroupDocs::Storage::Document instance
66
+ document = file.to_document
67
+
68
+ #Create datasource with fields
69
+ datasource = GroupDocs::DataSource.new
70
+
71
+ #Get arry of document's fields
72
+ enteredData = {"name" => settings.first_name, "gender" => settings.gender}
73
+
74
+ #Create Field instance and fill the fields
75
+ datasource.fields = enteredData.map { |key, value| GroupDocs::DataSource::Field.new(name: key, type: :text, values: Array.new() << value) }
76
+
77
+
78
+ #Adds datasource.
79
+ datasource.add!()
80
+
81
+ #Creates new job to merge datasource into document.
82
+ job = document.datasource!(datasource)
83
+ sleep 10 #Wait for merge and convert
84
+
85
+ #Returns an hash of input and output documents associated to job.
86
+ document = job.documents!()
87
+
88
+ #Set converted document GUID
89
+ guid = document[:inputs][0].outputs[0].guid
90
+ file = GroupDocs::Storage::File.new({:guid => guid})
91
+
92
+ #Set converted document Name
93
+ file_name = document[:inputs][0].outputs[0].name
94
+
95
+ #Create envelope using user id and entered by user name
96
+ envelope = GroupDocs::Signature::Envelope.new
97
+ envelope.name = file_name
98
+ envelope.create!({})
99
+
100
+ #Add uploaded document to envelope
101
+ envelope.add_document!(file.to_document, {})
102
+
103
+ #Get role list for current user
104
+ roles = GroupDocs::Signature::Role.get!({})
105
+
106
+ #Create new first recipient
107
+ first_recipient = GroupDocs::Signature::Recipient.new
108
+ first_recipient.email = settings.first_email
109
+ first_recipient.first_name = settings.first_name
110
+ first_recipient.last_name = settings.last_name
111
+ first_recipient.role_id = roles.detect { |role| role.name == 'Signer' }.id
112
+
113
+ #Create new second recipient
114
+ second_recipient = GroupDocs::Signature::Recipient.new
115
+ second_recipient.email = settings.second_email
116
+ second_recipient.first_name = second_signer_name
117
+ second_recipient.last_name = second_signer_last_name
118
+ second_recipient.role_id = roles.detect { |role| role.name == 'Signer' }.id
119
+
120
+ #Add first recipient to envelope
121
+ first_recipient = envelope.add_recipient!(first_recipient)
122
+
123
+ #Add second recipient to envelope
124
+ second_recipient = envelope.add_recipient!(second_recipient)
125
+
126
+ #Get document id
127
+ document = envelope.documents!({})
128
+
129
+
130
+ #Get field and add the location to field
131
+ field1 = GroupDocs::Signature::Field.get!({}).detect { |f| f.type == :signature }
132
+ field1.location = {:location_x => 0.15, :location_y => 0.23, :location_w => 150, :location_h => 50, :page => 1}
133
+ field1.name = 'singlIndex1'
134
+
135
+ #Add field to envelope
136
+ envelope.add_field!(field1, document[0], first_recipient, {})
137
+
138
+ #Get field and add the location to field
139
+ field2 = GroupDocs::Signature::Field.get!({}).detect { |f| f.type == :signature }
140
+ field2.location = {:location_x => 0.35, :location_y => 0.23, :location_w => 150, :location_h => 50, :page => 1}
141
+ field2.name = 'singlIndex2'
142
+
143
+ #Add field to envelope
144
+ envelope.add_field!(field2, document[0], second_recipient, {})
145
+
146
+ #Send envelop
147
+ envelope.send!()
148
+
149
+ #Prepare to sign first url
150
+ first_iframe = "/signature2/signembed/#{envelope.id}/#{first_recipient.id}"
151
+ #Construct result string
152
+ first_url = GroupDocs::Api::Request.new(:path => first_iframe).prepare_and_sign_url
153
+
154
+ #Prepare to sign second url
155
+ second_iframe = "/signature2/signembed/#{envelope.id}/#{second_recipient.id}"
156
+ #Construct result string
157
+ second_url = GroupDocs::Api::Request.new(:path => second_iframe).prepare_and_sign_url
158
+
159
+ #Generate iframes URL
160
+ case base_path
161
+ when 'https://stage-api-groupdocs.dynabic.com'
162
+ first_iframe = "https://stage-api-groupdocs.dynabic.com#{first_url}"
163
+ second_iframe = "https://stage-api-groupdocs.dynabic.com#{second_url}"
164
+ when 'https://dev-api-groupdocs.dynabic.com'
165
+ first_iframe = "https://dev-apps.groupdocs.com#{first_url}"
166
+ second_iframe = "https://dev-apps.groupdocs.com#{second_url}"
167
+ else
168
+ first_iframe = "https://apps.groupdocs.com#{first_url}"
169
+ second_iframe = "https://apps.groupdocs.com#{second_url}"
170
+ end
171
+
172
+ #Set iframe with document GUID or raise an error
173
+ if guid
174
+ #Make first iframe
175
+ first_iframe = "<p><span style=\"color: green\">Document for first signer</span></p><iframe id='downloadframe' src='#{first_iframe}' width='800' height='1000'></iframe><br>"
176
+ #Make second iframe
177
+ second_iframe = "<p><span style=\"color: green\">Document for second signer</span></p><iframe id='downloadframe' src='#{second_iframe}' width='800' height='1000'></iframe>"
178
+ else
179
+ raise 'File was not converted'
180
+ end
181
+
182
+ rescue Exception => e
183
+ err = e.message
184
+ end
185
+
186
+ #Set variables for template
187
+ haml :sample44, :locals => {:userId => settings.client_id, :privateKey => settings.private_key, :first_iframe => first_iframe, :second_iframe => second_iframe, :err => err}
188
+ end