groupdocs 1.5.7 → 1.5.8

Sign up to get free protection for your applications and to get access to all the features.
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>