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
@@ -59,14 +59,16 @@
59
59
  <div class="pilwrap ">
60
60
  <a class="pilcrow" href="#section-3">&#182;</a>
61
61
  </div>
62
- <p>set variables</p>
62
+ <p>Set variables</p>
63
63
 
64
64
  </div>
65
65
 
66
- <div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:client_id</span>]
67
- set <span class="symbol">:private_key</span>, params[<span class="symbol">:private_key</span>]
66
+ <div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:clientId</span>]
67
+ set <span class="symbol">:private_key</span>, params[<span class="symbol">:privateKey</span>]
68
68
  set <span class="symbol">:guid</span>, params[<span class="symbol">:fileId</span>]
69
69
  set <span class="symbol">:email</span>, params[<span class="symbol">:email</span>]
70
+ set <span class="symbol">:source</span>, params[<span class="symbol">:source</span>]
71
+ set <span class="symbol">:base_path</span>, params[<span class="symbol">:basePath</span>]
70
72
 
71
73
  <span class="keyword">begin</span></pre></div></div>
72
74
 
@@ -79,11 +81,14 @@
79
81
  <div class="pilwrap ">
80
82
  <a class="pilcrow" href="#section-4">&#182;</a>
81
83
  </div>
82
- <p>check required variables</p>
84
+ <p>Check required variables</p>
83
85
 
84
86
  </div>
85
87
 
86
- <div class="content"><div class='highlight'><pre> raise <span class="string">'Please enter all required parameters'</span> <span class="keyword">if</span> settings.client_id.empty? <span class="keyword">or</span> settings.private_key.empty? <span class="keyword">or</span> settings.guid.empty? <span class="keyword">or</span> settings.email.empty?</pre></div></div>
88
+ <div class="content"><div class='highlight'><pre> raise <span class="string">'Please enter all required parameters'</span> <span class="keyword">if</span> settings.client_id.empty? <span class="keyword">or</span> settings.private_key.empty? <span class="keyword">or</span> settings.guid.empty? <span class="keyword">or</span> settings.email.empty?
89
+
90
+
91
+ <span class="keyword">if</span> settings.base_path.empty? <span class="keyword">then</span> settings.base_path = <span class="string">'https://api.groupdocs.com'</span> <span class="keyword">end</span></pre></div></div>
87
92
 
88
93
  </li>
89
94
 
@@ -94,15 +99,13 @@
94
99
  <div class="pilwrap ">
95
100
  <a class="pilcrow" href="#section-5">&#182;</a>
96
101
  </div>
97
- <p>get document by file GUID</p>
102
+ <p>Configure your access to API server</p>
98
103
 
99
104
  </div>
100
105
 
101
- <div class="content"><div class='highlight'><pre> file = <span class="keyword">nil</span>
102
- <span class="keyword">case</span> settings.source
103
- <span class="keyword">when</span> <span class="string">'guid'</span>
104
- file = <span class="constant">GroupDocs::Storage::File</span>.new({<span class="symbol">:guid</span> =&gt; settings.guid})
105
- <span class="keyword">when</span> <span class="string">'local'</span></pre></div></div>
106
+ <div class="content"><div class='highlight'><pre> <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs|
107
+ groupdocs.client_id = settings.client_id
108
+ groupdocs.private_key = settings.private_key</pre></div></div>
106
109
 
107
110
  </li>
108
111
 
@@ -113,11 +116,12 @@
113
116
  <div class="pilwrap ">
114
117
  <a class="pilcrow" href="#section-6">&#182;</a>
115
118
  </div>
116
- <p>construct path</p>
119
+ <p>Optionally specify API server and version</p>
117
120
 
118
121
  </div>
119
122
 
120
- <div class="content"><div class='highlight'><pre> filepath = <span class="string">"<span class="subst">#{<span class="constant">Dir</span>.tmpdir}</span>/<span class="subst">#{params[<span class="symbol">:file</span>][<span class="symbol">:filename</span>]}</span>"</span></pre></div></div>
123
+ <div class="content"><div class='highlight'><pre> groupdocs.api_server = settings.base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
124
+ <span class="keyword">end</span></pre></div></div>
121
125
 
122
126
  </li>
123
127
 
@@ -128,11 +132,16 @@
128
132
  <div class="pilwrap ">
129
133
  <a class="pilcrow" href="#section-7">&#182;</a>
130
134
  </div>
131
- <p>open file</p>
135
+ <p>Get document by file GUID</p>
132
136
 
133
137
  </div>
134
138
 
135
- <div class="content"><div class='highlight'><pre> <span class="constant">File</span>.open(filepath, <span class="string">'wb'</span>) { |f| f.write(params[<span class="symbol">:file</span>][<span class="symbol">:tempfile</span>].read) }</pre></div></div>
139
+ <div class="content"><div class='highlight'><pre> file = <span class="keyword">nil</span>
140
+ <span class="keyword">case</span> settings.source
141
+ <span class="keyword">when</span> <span class="string">'guid'</span>
142
+ file = <span class="constant">GroupDocs::Storage::File</span>.new({<span class="symbol">:guid</span> =&gt; settings.guid}).to_document.metadata!()
143
+ file = file.last_view.document.file
144
+ <span class="keyword">when</span> <span class="string">'local'</span></pre></div></div>
136
145
 
137
146
  </li>
138
147
 
@@ -143,13 +152,43 @@
143
152
  <div class="pilwrap ">
144
153
  <a class="pilcrow" href="#section-8">&#182;</a>
145
154
  </div>
146
- <p>make a request to API using client_id and private_key</p>
155
+ <p>Construct path</p>
147
156
 
148
157
  </div>
149
158
 
150
- <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.upload!(filepath, {}, <span class="symbol">client_id:</span> settings.client_id, <span class="symbol">private_key:</span> settings.private_key)
159
+ <div class="content"><div class='highlight'><pre> filepath = <span class="string">"<span class="subst">#{<span class="constant">Dir</span>.tmpdir}</span>/<span class="subst">#{params[<span class="symbol">:file</span>][<span class="symbol">:filename</span>]}</span>"</span></pre></div></div>
160
+
161
+ </li>
162
+
163
+
164
+ <li id="section-9">
165
+ <div class="annotation">
166
+
167
+ <div class="pilwrap ">
168
+ <a class="pilcrow" href="#section-9">&#182;</a>
169
+ </div>
170
+ <p>Open file</p>
171
+
172
+ </div>
173
+
174
+ <div class="content"><div class='highlight'><pre> <span class="constant">File</span>.open(filepath, <span class="string">'wb'</span>) { |f| f.write(params[<span class="symbol">:file</span>][<span class="symbol">:tempfile</span>].read) }</pre></div></div>
175
+
176
+ </li>
177
+
178
+
179
+ <li id="section-10">
180
+ <div class="annotation">
181
+
182
+ <div class="pilwrap ">
183
+ <a class="pilcrow" href="#section-10">&#182;</a>
184
+ </div>
185
+ <p>Make a request to API using client_id and private_key</p>
186
+
187
+ </div>
188
+
189
+ <div class="content"><div class='highlight'><pre> file = <span class="constant">GroupDocs::Storage::File</span>.upload!(filepath, {})
151
190
  <span class="keyword">when</span> <span class="string">'url'</span>
152
- file = <span class="constant">GroupDocs::Storage::File</span>.upload_web!(settings.url, <span class="symbol">client_id:</span> settings.client_id, <span class="symbol">private_key:</span> settings.private_key)
191
+ file = <span class="constant">GroupDocs::Storage::File</span>.upload_web!(settings.url)
153
192
  <span class="keyword">else</span>
154
193
  raise <span class="string">'Wrong GUID source.'</span>
155
194
  <span class="keyword">end</span></pre></div></div>
@@ -157,28 +196,28 @@
157
196
  </li>
158
197
 
159
198
 
160
- <li id="section-9">
199
+ <li id="section-11">
161
200
  <div class="annotation">
162
201
 
163
202
  <div class="pilwrap ">
164
- <a class="pilcrow" href="#section-9">&#182;</a>
203
+ <a class="pilcrow" href="#section-11">&#182;</a>
165
204
  </div>
166
205
  <p>Share document. Make a request to API using client_id and private_key</p>
167
206
 
168
207
  </div>
169
208
 
170
- <div class="content"><div class='highlight'><pre> shared = file.to_document.sharers_set!(settings.email.split(<span class="string">' '</span>), {<span class="symbol">:client_id</span> =&gt; settings.client_id, <span class="symbol">:private_key</span> =&gt; settings.private_key})</pre></div></div>
209
+ <div class="content"><div class='highlight'><pre> shared = file.to_document.sharers_set!(settings.email.split(<span class="string">' '</span>))</pre></div></div>
171
210
 
172
211
  </li>
173
212
 
174
213
 
175
- <li id="section-10">
214
+ <li id="section-12">
176
215
  <div class="annotation">
177
216
 
178
217
  <div class="pilwrap ">
179
- <a class="pilcrow" href="#section-10">&#182;</a>
218
+ <a class="pilcrow" href="#section-12">&#182;</a>
180
219
  </div>
181
- <p>result</p>
220
+ <p>Result</p>
182
221
 
183
222
  </div>
184
223
 
@@ -192,17 +231,17 @@
192
231
  </li>
193
232
 
194
233
 
195
- <li id="section-11">
234
+ <li id="section-13">
196
235
  <div class="annotation">
197
236
 
198
237
  <div class="pilwrap ">
199
- <a class="pilcrow" href="#section-11">&#182;</a>
238
+ <a class="pilcrow" href="#section-13">&#182;</a>
200
239
  </div>
201
- <p>set variables for template</p>
240
+ <p>Set variables for template</p>
202
241
 
203
242
  </div>
204
243
 
205
- <div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample10</span>, <span class="symbol">:locals</span> =&gt; {<span class="symbol">:client_id</span> =&gt; settings.client_id, <span class="symbol">:private_key</span> =&gt; settings.private_key, <span class="symbol">:guid</span> =&gt; settings.guid, <span class="symbol">:email</span> =&gt; settings.email, <span class="symbol">:shared</span> =&gt; shared_emails, <span class="symbol">:err</span> =&gt; err}
244
+ <div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample10</span>, <span class="symbol">:locals</span> =&gt; {<span class="symbol">:clientId</span> =&gt; settings.client_id, <span class="symbol">:privateKey</span> =&gt; settings.private_key, <span class="symbol">:guid</span> =&gt; settings.guid, <span class="symbol">:email</span> =&gt; settings.email, <span class="symbol">:shared</span> =&gt; shared_emails, <span class="symbol">:err</span> =&gt; err}
206
245
  <span class="keyword">end</span></pre></div></div>
207
246
 
208
247
  </li>
@@ -59,14 +59,16 @@
59
59
  <div class="pilwrap ">
60
60
  <a class="pilcrow" href="#section-3">&#182;</a>
61
61
  </div>
62
- <p>set variables</p>
62
+ <p>Set variables</p>
63
63
 
64
64
  </div>
65
65
 
66
- <div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:client_id</span>]
67
- set <span class="symbol">:private_key</span>, params[<span class="symbol">:private_key</span>]
66
+ <div class="content"><div class='highlight'><pre> set <span class="symbol">:client_id</span>, params[<span class="symbol">:clientId</span>]
67
+ set <span class="symbol">:private_key</span>, params[<span class="symbol">:privateKey</span>]
68
68
  set <span class="symbol">:file_id</span>, params[<span class="symbol">:fileId</span>]
69
- set <span class="symbol">:annotation_type</span>, params[<span class="symbol">:annotation_type</span>]
69
+ set <span class="symbol">:annotation_type</span>, params[<span class="symbol">:annotationType</span>]
70
+ set <span class="symbol">:annotation_id</span>, params[<span class="symbol">:annotationId</span>]
71
+ set <span class="symbol">:base_path</span>, params[<span class="symbol">:basePath</span>]
70
72
 
71
73
  <span class="keyword">begin</span></pre></div></div>
72
74
 
@@ -79,11 +81,13 @@
79
81
  <div class="pilwrap ">
80
82
  <a class="pilcrow" href="#section-4">&#182;</a>
81
83
  </div>
82
- <p>check required variables</p>
84
+ <p>Check required variables</p>
83
85
 
84
86
  </div>
85
87
 
86
- <div class="content"><div class='highlight'><pre> raise <span class="string">'Please enter all required parameters'</span> <span class="keyword">if</span> settings.client_id.empty? <span class="keyword">or</span> settings.private_key.empty? <span class="keyword">or</span> settings.file_id.empty? <span class="keyword">or</span> settings.annotation_type.empty?</pre></div></div>
88
+ <div class="content"><div class='highlight'><pre> raise <span class="string">'Please enter all required parameters'</span> <span class="keyword">if</span> settings.client_id.empty? <span class="keyword">or</span> settings.private_key.empty? <span class="keyword">or</span> settings.file_id.empty? <span class="keyword">or</span> settings.annotation_type.empty?
89
+
90
+ <span class="keyword">if</span> settings.base_path.empty? <span class="keyword">then</span> settings.base_path = <span class="string">'https://api.groupdocs.com'</span> <span class="keyword">end</span></pre></div></div>
87
91
 
88
92
  </li>
89
93
 
@@ -94,11 +98,13 @@
94
98
  <div class="pilwrap ">
95
99
  <a class="pilcrow" href="#section-5">&#182;</a>
96
100
  </div>
97
- <p>annotation types</p>
101
+ <p>Configure your access to API server</p>
98
102
 
99
103
  </div>
100
104
 
101
- <div class="content"><div class='highlight'><pre> types = {<span class="symbol">:text</span> =&gt; <span class="number">0</span>, <span class="symbol">:area</span> =&gt; <span class="number">1</span>, <span class="symbol">:point</span> =&gt; <span class="number">2</span>}</pre></div></div>
105
+ <div class="content"><div class='highlight'><pre> <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs|
106
+ groupdocs.client_id = settings.client_id
107
+ groupdocs.private_key = settings.private_key</pre></div></div>
102
108
 
103
109
  </li>
104
110
 
@@ -109,11 +115,17 @@
109
115
  <div class="pilwrap ">
110
116
  <a class="pilcrow" href="#section-6">&#182;</a>
111
117
  </div>
112
- <p>required parameters</p>
118
+ <p>Optionally specify API server and version</p>
113
119
 
114
120
  </div>
115
121
 
116
- <div class="content"><div class='highlight'><pre> all_params = all_params = [<span class="string">'annotation_type'</span>, <span class="string">'box_x'</span>, <span class="string">'box_y'</span>, <span class="string">'text'</span>]</pre></div></div>
122
+ <div class="content"><div class='highlight'><pre> groupdocs.api_server = settings.base_path <span class="comment"># default is 'https://api.groupdocs.com'</span>
123
+ <span class="keyword">end</span>
124
+
125
+ <span class="keyword">if</span> settings.annotation_id != <span class="string">''</span>
126
+
127
+ file = <span class="constant">GroupDocs::Storage::File</span>.new({<span class="symbol">:guid</span> =&gt; settings.file_id}).to_document
128
+ annotation = file.annotations!()</pre></div></div>
117
129
 
118
130
  </li>
119
131
 
@@ -124,12 +136,59 @@
124
136
  <div class="pilwrap ">
125
137
  <a class="pilcrow" href="#section-7">&#182;</a>
126
138
  </div>
127
- <p>added required parameters depends on annotation type [&#39;text&#39; or &#39;area&#39;]</p>
139
+ <p>Remove annotation from document</p>
140
+
141
+ </div>
142
+
143
+ <div class="content"><div class='highlight'><pre> remove = annotation.last.remove!()
144
+ message = <span class="string">"You delete the annotation id = <span class="subst">#{remove[<span class="symbol">:guid</span>]}</span> "</span>
145
+ <span class="keyword">else</span></pre></div></div>
146
+
147
+ </li>
148
+
149
+
150
+ <li id="section-8">
151
+ <div class="annotation">
152
+
153
+ <div class="pilwrap ">
154
+ <a class="pilcrow" href="#section-8">&#182;</a>
155
+ </div>
156
+ <p>Annotation types</p>
157
+
158
+ </div>
159
+
160
+ <div class="content"><div class='highlight'><pre> types = {<span class="symbol">:text</span> =&gt; <span class="string">"0"</span>, <span class="symbol">:area</span> =&gt; <span class="string">"1"</span>, <span class="symbol">:point</span> =&gt; <span class="string">"2"</span>}</pre></div></div>
161
+
162
+ </li>
163
+
164
+
165
+ <li id="section-9">
166
+ <div class="annotation">
167
+
168
+ <div class="pilwrap ">
169
+ <a class="pilcrow" href="#section-9">&#182;</a>
170
+ </div>
171
+ <p>Required parameters</p>
172
+
173
+ </div>
174
+
175
+ <div class="content"><div class='highlight'><pre> all_params = all_params = [<span class="string">'annotation_type'</span>, <span class="string">'box_x'</span>, <span class="string">'box_y'</span>, <span class="string">'text'</span>]</pre></div></div>
176
+
177
+ </li>
178
+
179
+
180
+ <li id="section-10">
181
+ <div class="annotation">
182
+
183
+ <div class="pilwrap ">
184
+ <a class="pilcrow" href="#section-10">&#182;</a>
185
+ </div>
186
+ <p>Added required parameters depends on annotation type [&#39;text&#39; or &#39;area&#39;]</p>
128
187
 
129
188
  </div>
130
189
 
131
190
  <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> settings.annotation_type == <span class="string">'text'</span>
132
- all_params = all_params | [<span class="string">'box_width'</span>, <span class="string">'box_height'</span>, <span class="string">'annotationPosition_x'</span>, <span class="string">'annotationPosition_y'</span>]
191
+ all_params = all_params | [<span class="string">'box_width'</span>, <span class="string">'box_height'</span>, <span class="string">'annotationPosition_x'</span>, <span class="string">'annotationPosition_y'</span>, <span class="string">'range-position'</span>, <span class="string">'range-length'</span>]
133
192
  <span class="keyword">elsif</span> settings.annotation_type == <span class="string">'area'</span>
134
193
  all_params = all_params | [<span class="string">'box_width'</span>, <span class="string">'box_height'</span>]
135
194
  <span class="keyword">end</span></pre></div></div>
@@ -137,13 +196,13 @@
137
196
  </li>
138
197
 
139
198
 
140
- <li id="section-8">
199
+ <li id="section-11">
141
200
  <div class="annotation">
142
201
 
143
202
  <div class="pilwrap ">
144
- <a class="pilcrow" href="#section-8">&#182;</a>
203
+ <a class="pilcrow" href="#section-11">&#182;</a>
145
204
  </div>
146
- <p>checking required parameters</p>
205
+ <p>Checking required parameters</p>
147
206
 
148
207
  </div>
149
208
 
@@ -154,29 +213,30 @@
154
213
  </li>
155
214
 
156
215
 
157
- <li id="section-9">
216
+ <li id="section-12">
158
217
  <div class="annotation">
159
218
 
160
219
  <div class="pilwrap ">
161
- <a class="pilcrow" href="#section-9">&#182;</a>
220
+ <a class="pilcrow" href="#section-12">&#182;</a>
162
221
  </div>
163
- <p>make a request to API using client_id and private_key</p>
222
+ <p>Make a request to API using client_id and private_key</p>
164
223
 
165
224
  </div>
166
225
 
167
- <div class="content"><div class='highlight'><pre> files_list = <span class="constant">GroupDocs::Storage::Folder</span>.list!(<span class="string">'/'</span>, {}, {<span class="symbol">:client_id</span> =&gt; settings.client_id, <span class="symbol">:private_key</span> =&gt; settings.private_key})
226
+ <div class="content"><div class='highlight'><pre> files_list = <span class="constant">GroupDocs::Storage::Folder</span>.list!(<span class="string">'/'</span>, {})
227
+
168
228
  document = <span class="string">''</span></pre></div></div>
169
229
 
170
230
  </li>
171
231
 
172
232
 
173
- <li id="section-10">
233
+ <li id="section-13">
174
234
  <div class="annotation">
175
235
 
176
236
  <div class="pilwrap ">
177
- <a class="pilcrow" href="#section-10">&#182;</a>
237
+ <a class="pilcrow" href="#section-13">&#182;</a>
178
238
  </div>
179
- <p>get document by file ID</p>
239
+ <p>Get document by file ID</p>
180
240
 
181
241
  </div>
182
242
 
@@ -191,103 +251,151 @@
191
251
  </li>
192
252
 
193
253
 
194
- <li id="section-11">
254
+ <li id="section-14">
195
255
  <div class="annotation">
196
256
 
197
257
  <div class="pilwrap ">
198
- <a class="pilcrow" href="#section-11">&#182;</a>
258
+ <a class="pilcrow" href="#section-14">&#182;</a>
199
259
  </div>
200
- <p>start create new annotation</p>
260
+ <p>Start create new annotation</p>
201
261
 
202
262
  </div>
203
263
 
204
264
  <div class="content"><div class='highlight'><pre> annotation = <span class="constant">GroupDocs::Document::Annotation</span>.new(<span class="symbol">document:</span> document.to_document)
205
- annotation.type = types[settings.annotation_type]</pre></div></div>
265
+
266
+
267
+ info = <span class="keyword">nil</span></pre></div></div>
206
268
 
207
269
  </li>
208
270
 
209
271
 
210
- <li id="section-12">
272
+ <li id="section-15">
211
273
  <div class="annotation">
212
274
 
213
275
  <div class="pilwrap ">
214
- <a class="pilcrow" href="#section-12">&#182;</a>
276
+ <a class="pilcrow" href="#section-15">&#182;</a>
215
277
  </div>
216
- <p>construct requestBody depends on annotation type
217
- text annotation</p>
278
+ <p>Construct requestBody depends on annotation type
279
+ Text annotation</p>
218
280
 
219
281
  </div>
220
282
 
221
283
  <div class="content"><div class='highlight'><pre> <span class="keyword">if</span> settings.annotation_type == <span class="string">'text'</span>
222
- annotation.box = {<span class="symbol">x:</span> params[<span class="string">'box_x'</span>], <span class="symbol">y:</span> params[<span class="string">'box_y'</span>], <span class="symbol">width:</span> params[<span class="string">'box_width'</span>], <span class="symbol">height:</span> params[<span class="string">'box_height'</span>]}
223
- annotation.annotationPosition = {<span class="symbol">x:</span> params[<span class="string">'annotationPosition_x'</span>], <span class="symbol">y:</span> params[<span class="string">'annotationPosition_y'</span>]}</pre></div></div>
284
+ annotation.box = <span class="constant">GroupDocs::Document::Rectangle</span>.new ({<span class="symbol">x:</span> params[<span class="string">'box_x'</span>], <span class="symbol">y:</span> params[<span class="string">'box_y'</span>], <span class="symbol">width:</span> params[<span class="string">'box_width'</span>], <span class="symbol">height:</span> params[<span class="string">'box_height'</span>]})
285
+ annotation.annotationPosition = {<span class="symbol">x:</span> params[<span class="string">'annotationPosition_x'</span>], <span class="symbol">y:</span> params[<span class="string">'annotationPosition_y'</span>]}
286
+ range = {<span class="symbol">position:</span> params[<span class="string">'range-position'</span>], <span class="symbol">length:</span> params[<span class="string">'range-length'</span>]}
287
+ info = {<span class="symbol">:box</span> =&gt; annotation_box, <span class="symbol">:annotationPosition</span> =&gt; annotation_annotationPosition, <span class="symbol">:range</span> =&gt; range, <span class="symbol">:type</span> =&gt; types[settings.annotation_type.to_sym], <span class="symbol">:replies</span> =&gt; [{<span class="symbol">:text</span> =&gt; params[<span class="string">'text'</span>]}]}</pre></div></div>
224
288
 
225
289
  </li>
226
290
 
227
291
 
228
- <li id="section-13">
292
+ <li id="section-16">
229
293
  <div class="annotation">
230
294
 
231
295
  <div class="pilwrap ">
232
- <a class="pilcrow" href="#section-13">&#182;</a>
296
+ <a class="pilcrow" href="#section-16">&#182;</a>
233
297
  </div>
234
- <p>area annotation</p>
298
+ <p>Area annotation</p>
235
299
 
236
300
  </div>
237
301
 
238
302
  <div class="content"><div class='highlight'><pre> <span class="keyword">elsif</span> settings.annotation_type == <span class="string">'area'</span>
239
- annotation.box = {<span class="symbol">x:</span> params[<span class="string">'box_x'</span>], <span class="symbol">y:</span> params[<span class="string">'box_y'</span>], <span class="symbol">width:</span> params[<span class="string">'box_width'</span>], <span class="symbol">height:</span> params[<span class="string">'box_height'</span>]}
240
- annotation.annotationPosition = {<span class="symbol">x:</span> <span class="number">0</span>, <span class="symbol">y:</span> <span class="number">0</span>}</pre></div></div>
303
+ annotation_box = {<span class="symbol">x:</span> params[<span class="string">'box_x'</span>], <span class="symbol">y:</span> params[<span class="string">'box_y'</span>], <span class="symbol">width:</span> params[<span class="string">'box_width'</span>], <span class="symbol">height:</span> params[<span class="string">'box_height'</span>]}
304
+ annotation_annotationPosition = {<span class="symbol">x:</span> <span class="number">0</span>, <span class="symbol">y:</span> <span class="number">0</span>}
305
+ info = {<span class="symbol">:box</span> =&gt; annotation_box, <span class="symbol">:annotationPosition</span> =&gt; annotation_annotationPosition, <span class="symbol">:type</span> =&gt; types[settings.annotation_type.to_sym], <span class="symbol">:replies</span> =&gt; [{<span class="symbol">:text</span> =&gt; params[<span class="string">'text'</span>]}]}</pre></div></div>
241
306
 
242
307
  </li>
243
308
 
244
309
 
245
- <li id="section-14">
310
+ <li id="section-17">
246
311
  <div class="annotation">
247
312
 
248
313
  <div class="pilwrap ">
249
- <a class="pilcrow" href="#section-14">&#182;</a>
314
+ <a class="pilcrow" href="#section-17">&#182;</a>
250
315
  </div>
251
- <p>point annotation</p>
316
+ <p>Point annotation</p>
252
317
 
253
318
  </div>
254
319
 
255
320
  <div class="content"><div class='highlight'><pre> <span class="keyword">elsif</span> settings.annotation_type == <span class="string">'point'</span>
256
- annotation.box = {<span class="symbol">x:</span> params[<span class="string">'box_x'</span>], <span class="symbol">y:</span> params[<span class="string">'box_y'</span>], <span class="symbol">width:</span> <span class="number">0</span>, <span class="symbol">height:</span> <span class="number">0</span>}
257
- annotation.annotationPosition = {<span class="symbol">x:</span> <span class="number">0</span>, <span class="symbol">y:</span> <span class="number">0</span>}
321
+ annotation_box = {<span class="symbol">x:</span> params[<span class="string">'box_x'</span>], <span class="symbol">y:</span> params[<span class="string">'box_y'</span>], <span class="symbol">width:</span> <span class="number">0</span>, <span class="symbol">height:</span> <span class="number">0</span>}
322
+ annotation_annotationPosition = {<span class="symbol">x:</span> <span class="number">0</span>, <span class="symbol">y:</span> <span class="number">0</span>}
323
+
324
+ info = {<span class="symbol">:box</span> =&gt; annotation_box, <span class="symbol">:annotationPosition</span> =&gt; annotation_annotationPosition, <span class="symbol">:type</span> =&gt; types[settings.annotation_type.to_sym], <span class="symbol">:replies</span> =&gt; [{<span class="symbol">:text</span> =&gt; params[<span class="string">'text'</span>]}] }
258
325
  <span class="keyword">end</span></pre></div></div>
259
326
 
260
327
  </li>
261
328
 
262
329
 
263
- <li id="section-15">
330
+ <li id="section-18">
264
331
  <div class="annotation">
265
332
 
266
333
  <div class="pilwrap ">
267
- <a class="pilcrow" href="#section-15">&#182;</a>
334
+ <a class="pilcrow" href="#section-18">&#182;</a>
268
335
  </div>
269
- <p>call create method</p>
336
+ <p>Call create method</p>
270
337
 
271
338
  </div>
272
339
 
273
- <div class="content"><div class='highlight'><pre> annotation.create!({<span class="symbol">:client_id</span> =&gt; settings.client_id, <span class="symbol">:private_key</span> =&gt; settings.private_key})</pre></div></div>
340
+ <div class="content"><div class='highlight'><pre> annotation.create!(info)
341
+ id = annotation.document.file.id</pre></div></div>
274
342
 
275
343
  </li>
276
344
 
277
345
 
278
- <li id="section-16">
346
+ <li id="section-19">
279
347
  <div class="annotation">
280
348
 
281
349
  <div class="pilwrap ">
282
- <a class="pilcrow" href="#section-16">&#182;</a>
350
+ <a class="pilcrow" href="#section-19">&#182;</a>
283
351
  </div>
284
- <p>add annotation reply</p>
352
+ <p>Get document guid</p>
285
353
 
286
354
  </div>
287
355
 
288
- <div class="content"><div class='highlight'><pre> reply = <span class="constant">GroupDocs::Document::Annotation::Reply</span>.new(<span class="symbol">annotation:</span> annotation)
289
- reply.text = params[<span class="string">'text'</span>]
290
- reply.create!({<span class="symbol">:client_id</span> =&gt; settings.client_id, <span class="symbol">:private_key</span> =&gt; settings.private_key})
356
+ <div class="content"><div class='highlight'><pre> guid = annotation.document.file.guid
357
+
358
+ <span class="keyword">case</span> settings.base_path
359
+
360
+ <span class="keyword">when</span> <span class="string">'https://stage-api-groupdocs.dynabic.com'</span>
361
+ url = <span class="string">"http://stage-apps-groupdocs.dynabic.com/document-annotation2/embed/<span class="subst">#{guid}</span>"</span>
362
+ <span class="keyword">when</span> <span class="string">'https://dev-api-groupdocs.dynabic.com'</span>
363
+ url = <span class="string">"http://dev-apps-groupdocs.dynabic.com/document-annotation2/embed/<span class="subst">#{guid}</span>"</span>
364
+ <span class="keyword">else</span>
365
+ url = <span class="string">"http://apps.groupdocs.com/document-annotation2/embed/<span class="subst">#{guid}</span>"</span>
366
+ <span class="keyword">end</span></pre></div></div>
367
+
368
+ </li>
369
+
370
+
371
+ <li id="section-20">
372
+ <div class="annotation">
373
+
374
+ <div class="pilwrap ">
375
+ <a class="pilcrow" href="#section-20">&#182;</a>
376
+ </div>
377
+ <p>Add the signature in url</p>
378
+
379
+ </div>
380
+
381
+ <div class="content"><div class='highlight'><pre> url = <span class="constant">GroupDocs::Api::Request</span>.new(<span class="symbol">:path</span> =&gt; url).prepare_and_sign_url</pre></div></div>
382
+
383
+ </li>
384
+
385
+
386
+ <li id="section-21">
387
+ <div class="annotation">
388
+
389
+ <div class="pilwrap ">
390
+ <a class="pilcrow" href="#section-21">&#182;</a>
391
+ </div>
392
+ <p>Set iframe with document GUID</p>
393
+
394
+ </div>
395
+
396
+ <div class="content"><div class='highlight'><pre> iframe = <span class="string">"&lt;iframe src='<span class="subst">#{url}</span>' frameborder='0' width='720' height='600'&gt;&lt;/iframe&gt;"</span>
397
+
398
+ <span class="keyword">end</span>
291
399
 
292
400
  <span class="keyword">end</span>
293
401
 
@@ -298,17 +406,25 @@ text annotation</p>
298
406
  </li>
299
407
 
300
408
 
301
- <li id="section-17">
409
+ <li id="section-22">
302
410
  <div class="annotation">
303
411
 
304
412
  <div class="pilwrap ">
305
- <a class="pilcrow" href="#section-17">&#182;</a>
413
+ <a class="pilcrow" href="#section-22">&#182;</a>
306
414
  </div>
307
415
  <p>set variables for template</p>
308
416
 
309
417
  </div>
310
418
 
311
- <div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample11</span>, <span class="symbol">:locals</span> =&gt; {<span class="symbol">:userId</span> =&gt; settings.client_id, <span class="symbol">:privateKey</span> =&gt; settings.private_key, <span class="symbol">:fileId</span> =&gt; settings.file_id, <span class="symbol">:annotationType</span> =&gt; settings.annotation_type, <span class="symbol">:annotationId</span> =&gt; (<span class="keyword">defined</span>? annotation.id) ? annotation.id <span class="symbol">:</span> <span class="keyword">nil</span>, <span class="symbol">:annotationText</span> =&gt; params[<span class="string">'text'</span>], <span class="symbol">:err</span> =&gt; err}
419
+ <div class="content"><div class='highlight'><pre> haml <span class="symbol">:sample11</span>, <span class="symbol">:locals</span> =&gt; {<span class="symbol">:clientId</span> =&gt; settings.client_id,
420
+ <span class="symbol">:privateKey</span> =&gt; settings.private_key,
421
+ <span class="symbol">:fileId</span> =&gt; settings.file_id,
422
+ <span class="symbol">:annotationType</span> =&gt; settings.annotation_type,
423
+ <span class="symbol">:annotationId</span> =&gt; id,
424
+ <span class="symbol">:annotationText</span> =&gt; params[<span class="string">'text'</span>],
425
+ <span class="symbol">:err</span> =&gt; err,
426
+ <span class="symbol">:iframe</span> =&gt; iframe,
427
+ <span class="symbol">:message</span> =&gt; message}
312
428
  <span class="keyword">end</span></pre></div></div>
313
429
 
314
430
  </li>