groupdocs 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +41 -0
- data/examples/README.md +2 -3
- data/examples/api-samples/Gemfile +5 -0
- data/examples/api-samples/Gemfile.lock +27 -0
- data/examples/api-samples/README.md +12 -0
- data/examples/api-samples/app.rb +17 -0
- data/examples/api-samples/public/css/style.css +166 -0
- data/examples/api-samples/samples/sample1.rb +17 -0
- data/examples/api-samples/samples/sample10.rb +36 -0
- data/examples/api-samples/samples/sample2.rb +19 -0
- data/examples/api-samples/samples/sample3.rb +23 -0
- data/examples/api-samples/samples/sample4.rb +31 -0
- data/examples/api-samples/samples/sample5.rb +44 -0
- data/examples/api-samples/samples/sample6.rb +3 -0
- data/examples/api-samples/samples/sample7.rb +33 -0
- data/examples/api-samples/samples/sample8.rb +40 -0
- data/examples/api-samples/samples/sample9.rb +22 -0
- data/examples/api-samples/views/index.haml +23 -0
- data/examples/api-samples/views/layout.haml +7 -0
- data/examples/api-samples/views/sample1.haml +71 -0
- data/examples/api-samples/views/sample10.haml +69 -0
- data/examples/api-samples/views/sample2.haml +59 -0
- data/examples/api-samples/views/sample3.haml +62 -0
- data/examples/api-samples/views/sample4.haml +58 -0
- data/examples/api-samples/views/sample5.haml +62 -0
- data/examples/api-samples/views/sample6.haml +145 -0
- data/examples/api-samples/views/sample7.haml +59 -0
- data/examples/api-samples/views/sample8.haml +75 -0
- data/examples/api-samples/views/sample9.haml +61 -0
- data/examples/{annotations → viewer}/Gemfile +0 -0
- data/examples/viewer/app.rb +52 -0
- data/groupdocs.gemspec +5 -4
- data/lib/groupdocs/api.rb +1 -0
- data/lib/groupdocs/api/entity.rb +2 -0
- data/lib/groupdocs/api/helpers.rb +2 -0
- data/lib/groupdocs/api/helpers/accessor_helper.rb +30 -0
- data/lib/groupdocs/api/helpers/mime_helper.rb +21 -0
- data/lib/groupdocs/api/helpers/rest_helper.rb +3 -2
- data/lib/groupdocs/api/request.rb +1 -3
- data/lib/groupdocs/datasource.rb +1 -2
- data/lib/groupdocs/document.rb +133 -3
- data/lib/groupdocs/document/annotation.rb +14 -13
- data/lib/groupdocs/document/annotation/reply.rb +4 -8
- data/lib/groupdocs/document/annotation/reviewer.rb +2 -4
- data/lib/groupdocs/document/field.rb +10 -8
- data/lib/groupdocs/document/rectangle.rb +10 -18
- data/lib/groupdocs/job.rb +1 -1
- data/lib/groupdocs/questionnaire.rb +138 -44
- data/lib/groupdocs/questionnaire/collector.rb +262 -0
- data/lib/groupdocs/questionnaire/execution.rb +93 -10
- data/lib/groupdocs/questionnaire/question.rb +1 -2
- data/lib/groupdocs/signature.rb +16 -24
- data/lib/groupdocs/signature/contact.rb +2 -4
- data/lib/groupdocs/signature/envelope.rb +3 -6
- data/lib/groupdocs/signature/envelope/log.rb +2 -4
- data/lib/groupdocs/signature/field.rb +21 -42
- data/lib/groupdocs/signature/field/location.rb +18 -36
- data/lib/groupdocs/signature/form.rb +9 -18
- data/lib/groupdocs/signature/list.rb +1 -2
- data/lib/groupdocs/signature/recipient.rb +3 -6
- data/lib/groupdocs/signature/role.rb +4 -8
- data/lib/groupdocs/signature/shared/entity_fields.rb +12 -20
- data/lib/groupdocs/signature/template.rb +1 -2
- data/lib/groupdocs/storage/file.rb +3 -1
- data/lib/groupdocs/storage/folder.rb +7 -1
- data/lib/groupdocs/subscription.rb +6 -12
- data/lib/groupdocs/subscription/limit.rb +4 -8
- data/lib/groupdocs/user.rb +3 -6
- data/lib/groupdocs/version.rb +1 -1
- data/spec/groupdocs/api/helpers/accessor_helper_spec.rb +16 -0
- data/spec/groupdocs/api/helpers/mime_helper_spec.rb +16 -0
- data/spec/groupdocs/api/helpers/rest_helper_spec.rb +4 -0
- data/spec/groupdocs/api/request_spec.rb +3 -5
- data/spec/groupdocs/datasource/field_spec.rb +3 -6
- data/spec/groupdocs/datasource_spec.rb +8 -15
- data/spec/groupdocs/document/annotation/reply_spec.rb +13 -24
- data/spec/groupdocs/document/annotation/reviewer_spec.rb +5 -9
- data/spec/groupdocs/document/annotation_spec.rb +35 -40
- data/spec/groupdocs/document/change_spec.rb +6 -11
- data/spec/groupdocs/document/field_spec.rb +13 -13
- data/spec/groupdocs/document/metadata_spec.rb +5 -10
- data/spec/groupdocs/document/rectangle_spec.rb +6 -18
- data/spec/groupdocs/document/view_spec.rb +3 -6
- data/spec/groupdocs/document_spec.rb +123 -10
- data/spec/groupdocs/job_spec.rb +9 -18
- data/spec/groupdocs/questionnaire/collector_spec.rb +201 -0
- data/spec/groupdocs/questionnaire/execution_spec.rb +91 -23
- data/spec/groupdocs/questionnaire/page_spec.rb +3 -6
- data/spec/groupdocs/questionnaire/question/answer_spec.rb +2 -4
- data/spec/groupdocs/questionnaire/question_spec.rb +7 -14
- data/spec/groupdocs/questionnaire_spec.rb +117 -41
- data/spec/groupdocs/signature/contact_spec.rb +9 -17
- data/spec/groupdocs/signature/envelope/log_spec.rb +8 -16
- data/spec/groupdocs/signature/envelope_spec.rb +9 -17
- data/spec/groupdocs/signature/field/location_spec.rb +32 -65
- data/spec/groupdocs/signature/field_spec.rb +48 -95
- data/spec/groupdocs/signature/form_spec.rb +22 -43
- data/spec/groupdocs/signature/list_spec.rb +6 -11
- data/spec/groupdocs/signature/recipient_spec.rb +11 -22
- data/spec/groupdocs/signature/role_spec.rb +11 -21
- data/spec/groupdocs/signature/template_spec.rb +2 -4
- data/spec/groupdocs/signature_spec.rb +28 -54
- data/spec/groupdocs/storage/file_spec.rb +14 -26
- data/spec/groupdocs/storage/folder_spec.rb +16 -22
- data/spec/groupdocs/storage/package_spec.rb +2 -4
- data/spec/groupdocs/subscription/limit_spec.rb +8 -16
- data/spec/groupdocs/subscription_spec.rb +11 -22
- data/spec/groupdocs/user_spec.rb +21 -41
- data/spec/groupdocs_spec.rb +4 -8
- data/spec/spec_helper.rb +12 -0
- data/spec/support/files/signature.png +0 -0
- data/spec/support/json/annotation_list.json +6 -6
- data/spec/support/json/comparison_changes.json +8 -8
- data/spec/support/json/document_fields.json +8 -8
- data/spec/support/json/document_page_images_get.json +20 -0
- data/spec/support/json/questionnaire_collector.json +17 -0
- data/spec/support/json/questionnaire_collectors.json +38 -0
- data/spec/support/json/questionnaire_collectors_add.json +10 -0
- data/spec/support/json/questionnaire_create.json +3 -1
- data/spec/support/json/{questionnaire_execution_create.json → questionnaire_execution_add.json} +1 -1
- data/spec/support/json/questionnaire_get.json +3 -0
- data/spec/support/json/questionnaires_get.json +36 -18
- data/spec/support/json/sign_documents.json +16 -0
- data/spec/support/json/templates_get.json +21 -0
- data/spec/support/shared_examples/api/entity.rb +2 -0
- data/spec/support/shared_examples/api/helpers/access_mode_helper.rb +1 -2
- data/spec/support/shared_examples/api/helpers/status_helper.rb +1 -2
- data/spec/support/shared_examples/signature/shared/entity_fields.rb +22 -43
- metadata +82 -16
- data/examples/annotations/app.rb +0 -67
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,44 @@
|
|
1
|
+
## v1.2
|
2
|
+
|
3
|
+
**New**
|
4
|
+
|
5
|
+
* Added `Annotation::Collector` class
|
6
|
+
* Added `Collector.get!`
|
7
|
+
* Added `Collector#add!`
|
8
|
+
* Added `Collector#update!`
|
9
|
+
* Added `Collector#remove!`
|
10
|
+
* Added `Collector#executions!`
|
11
|
+
* Added `Collector#add_execution!`
|
12
|
+
* Added `Collector#fill!`
|
13
|
+
* Added `Document.templates!`
|
14
|
+
* Added `Questionnaire#executions!`
|
15
|
+
* Added `Questionnaire#collectors!`
|
16
|
+
* Added `Questionnaire#metadata!`
|
17
|
+
* Added `Questionnaire#update_metadata!`
|
18
|
+
* Added `Questionnaire#fields!`
|
19
|
+
* Added `Execution.get!`
|
20
|
+
* Added `Execution#delete!`
|
21
|
+
* Added `Execution#fill!`
|
22
|
+
* Added `Document.sign_documents!`
|
23
|
+
* Added `Document#page_images!`
|
24
|
+
* Added MIME helper
|
25
|
+
|
26
|
+
**Changes**
|
27
|
+
|
28
|
+
* Fixed `Questionnaire#create!`
|
29
|
+
* Fixed `Field#rectangle=`
|
30
|
+
* Fixed `File#download!`
|
31
|
+
* Fixed `Folder#list!` params handling (see issue #30)
|
32
|
+
* Fixed coordinates-related responses (they now have downcased fields)
|
33
|
+
* Fixed `Job#add_datasource!`
|
34
|
+
* `Questionnaire.all!` now accepts optional paging and status filter params
|
35
|
+
* New attributes for a lot of entities
|
36
|
+
|
37
|
+
**Removed**
|
38
|
+
|
39
|
+
* Removed `Questionnaire#create_execution!`
|
40
|
+
|
41
|
+
|
1
42
|
## v1.1
|
2
43
|
|
3
44
|
**New**
|
data/examples/README.md
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
## Examples
|
2
2
|
|
3
|
-
###
|
4
|
-
|
3
|
+
### Viewer
|
5
4
|
Grab the copy of examples
|
6
5
|
|
7
6
|
gem install bundler # unless it's already installed
|
8
7
|
git clone git@github.com:groupdocs/groupdocs-ruby.git
|
9
|
-
cd groupdocs-ruby/examples/
|
8
|
+
cd groupdocs-ruby/examples/viewer
|
10
9
|
bundle install --path vendor/bundle
|
11
10
|
bundle exec ruby app.rb
|
12
11
|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
groupdocs (1.1.0)
|
5
|
+
json (~> 1.7)
|
6
|
+
rest-client (~> 1.6)
|
7
|
+
haml (3.1.7)
|
8
|
+
json (1.7.5)
|
9
|
+
mime-types (1.19)
|
10
|
+
rack (1.4.1)
|
11
|
+
rack-protection (1.2.0)
|
12
|
+
rack
|
13
|
+
rest-client (1.6.7)
|
14
|
+
mime-types (>= 1.16)
|
15
|
+
sinatra (1.3.3)
|
16
|
+
rack (~> 1.3, >= 1.3.6)
|
17
|
+
rack-protection (~> 1.2)
|
18
|
+
tilt (~> 1.3, >= 1.3.3)
|
19
|
+
tilt (1.3.3)
|
20
|
+
|
21
|
+
PLATFORMS
|
22
|
+
ruby
|
23
|
+
|
24
|
+
DEPENDENCIES
|
25
|
+
groupdocs
|
26
|
+
haml
|
27
|
+
sinatra
|
@@ -0,0 +1,12 @@
|
|
1
|
+
## Examples
|
2
|
+
|
3
|
+
### Viewer
|
4
|
+
Grab the copy of examples
|
5
|
+
|
6
|
+
gem install bundler # unless it's already installed
|
7
|
+
git clone git@github.com:groupdocs/groupdocs-ruby.git
|
8
|
+
cd groupdocs-ruby/examples/viewer
|
9
|
+
bundle install --path vendor/bundle
|
10
|
+
bundle exec ruby app.rb
|
11
|
+
|
12
|
+
Now open `http://localhost:4567` and try it!
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'sinatra'
|
2
|
+
require 'groupdocs'
|
3
|
+
require 'haml'
|
4
|
+
require 'pp'
|
5
|
+
|
6
|
+
GroupDocs.api_version = '2.0'
|
7
|
+
|
8
|
+
get '/' do
|
9
|
+
haml :index
|
10
|
+
end
|
11
|
+
|
12
|
+
get '/style.css' do
|
13
|
+
sass :style
|
14
|
+
end
|
15
|
+
|
16
|
+
Dir["samples/*.rb"].each {|file| require_relative file }
|
17
|
+
|
@@ -0,0 +1,166 @@
|
|
1
|
+
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,
|
2
|
+
p,blockquote,pre,a,abbr,acronym,address,big,code,em,img,
|
3
|
+
small,strong,sub,sup,tt,b,u,i,center,
|
4
|
+
ol,ul,li,table,caption,tbody,tfoot,thead,tr,th,td {
|
5
|
+
margin:0;
|
6
|
+
padding:0;
|
7
|
+
border:0;
|
8
|
+
font-size:100%;
|
9
|
+
font:inherit;
|
10
|
+
vertical-align:baseline;
|
11
|
+
}
|
12
|
+
body { line-height:1; }
|
13
|
+
ol,ul { list-style:none; }
|
14
|
+
blockquote,q { quotes:none; }
|
15
|
+
blockquote:before,
|
16
|
+
blockquote:after,
|
17
|
+
q:before,q:after {
|
18
|
+
content:'';
|
19
|
+
content:none;
|
20
|
+
}
|
21
|
+
table {
|
22
|
+
border-collapse:collapse;
|
23
|
+
border-spacing:0;
|
24
|
+
}
|
25
|
+
@font-face {
|
26
|
+
font-family:qlassik;
|
27
|
+
src:url("../fonts/qlassik.eot");
|
28
|
+
}
|
29
|
+
@font-face {
|
30
|
+
font-family:qlassik;
|
31
|
+
src:url("../fonts/qlassik.otf") format("opentype");
|
32
|
+
}
|
33
|
+
@font-face {
|
34
|
+
font-family:monaco;
|
35
|
+
src:url("../fonts/monaco.eot");
|
36
|
+
}
|
37
|
+
@font-face {
|
38
|
+
font-family:monaco;
|
39
|
+
src:url("../fonts/monaco.ttf");
|
40
|
+
}
|
41
|
+
html {
|
42
|
+
font-family:verdana,helvetica,geneva,sans-serif;
|
43
|
+
font-size:15px;
|
44
|
+
background:#000;
|
45
|
+
overflow-y:scroll;
|
46
|
+
}
|
47
|
+
body {
|
48
|
+
background:#fff;
|
49
|
+
margin:20px auto;
|
50
|
+
width:980px;
|
51
|
+
border-radius:15px;
|
52
|
+
-moz-border-radius:15px;
|
53
|
+
-webkit-border-radius:15px;
|
54
|
+
}
|
55
|
+
h1,h2,h3,h4,h5 {
|
56
|
+
font-family:qlassik;
|
57
|
+
text-shadow:0 2px 5px #999;
|
58
|
+
clear:both;
|
59
|
+
}
|
60
|
+
h1 { font-size:64px; }
|
61
|
+
h2 { font-size:40px; }
|
62
|
+
h3 { font-size:36px; }
|
63
|
+
h4 { font-size:28px; }
|
64
|
+
h5 { font-size:21px; }
|
65
|
+
blockquote {
|
66
|
+
padding:10px;
|
67
|
+
border:1px solid #666;
|
68
|
+
margin:0 auto 15px auto;
|
69
|
+
width:610px;
|
70
|
+
border-radius:10px;
|
71
|
+
-moz-border-radius:10px;
|
72
|
+
-webkit-border-radius:10px;
|
73
|
+
}
|
74
|
+
blockquote:first-child {
|
75
|
+
margin-top:15px;
|
76
|
+
}
|
77
|
+
p,ul,ol {
|
78
|
+
line-height:18px;
|
79
|
+
margin-bottom:15px;
|
80
|
+
}
|
81
|
+
p:last-child { margin-bottom:0; }
|
82
|
+
ul,ol { margin:0 45px 15px 45px; }
|
83
|
+
li { list-style-type:disc; }
|
84
|
+
pre,code,tt {
|
85
|
+
font-family:monaco;
|
86
|
+
font-size:13px;
|
87
|
+
line-height:16px;
|
88
|
+
}
|
89
|
+
pre {
|
90
|
+
background:#ccc;
|
91
|
+
padding:15px;
|
92
|
+
margin-bottom:15px;
|
93
|
+
}
|
94
|
+
pre:last-child { margin-bottom:0; }
|
95
|
+
code,tt {
|
96
|
+
background:#ccc;
|
97
|
+
padding:2px 5px;
|
98
|
+
}
|
99
|
+
small { font-size:0.6em; }
|
100
|
+
a { text-decoration:none; }
|
101
|
+
a:link,a:visited { color:#069; }
|
102
|
+
a:hover { color:#09c; }
|
103
|
+
table {
|
104
|
+
margin-bottom:15px;
|
105
|
+
width:100%;
|
106
|
+
}
|
107
|
+
th,td {
|
108
|
+
font-size:15px;
|
109
|
+
line-height:15px;
|
110
|
+
padding:5px 15px 5px 5px;
|
111
|
+
vertical-align:top;
|
112
|
+
}
|
113
|
+
th {
|
114
|
+
font-size:11px;
|
115
|
+
font-variant:small-caps;
|
116
|
+
text-align:left;
|
117
|
+
vertical-align:top;
|
118
|
+
}
|
119
|
+
td:last-child {
|
120
|
+
padding-right:3px;
|
121
|
+
}
|
122
|
+
tr.odd { background:#ccc; }
|
123
|
+
div.header,div.content,div.footer { padding:30px; }
|
124
|
+
div.content h3,div.content h4 { margin-bottom:15px; }
|
125
|
+
div.content table {
|
126
|
+
border:1px solid #666;
|
127
|
+
margin:0 auto 15px auto;
|
128
|
+
width:640px;
|
129
|
+
}
|
130
|
+
div.content tr { border:1px solid #666; }
|
131
|
+
div.content th {
|
132
|
+
font-family:qlassik;
|
133
|
+
font-size:18px;
|
134
|
+
text-transform:uppercase;
|
135
|
+
color:#fff;
|
136
|
+
background:#666;
|
137
|
+
}
|
138
|
+
div.content th,div.content td { padding:8px; }
|
139
|
+
div.content td.pass { background:#cfc; }
|
140
|
+
div.content td.fail { background:#fcc; }
|
141
|
+
div.header {
|
142
|
+
background:#999;
|
143
|
+
border-radius:15px 15px 0 0;
|
144
|
+
-moz-border-radius:15px 15px 0 0;
|
145
|
+
-webkit-border-radius:15px 15px 0 0;
|
146
|
+
}
|
147
|
+
div.header h4 {
|
148
|
+
font-family:qlassik;
|
149
|
+
text-align:center;
|
150
|
+
color:#333;
|
151
|
+
}
|
152
|
+
div.header h1 {
|
153
|
+
color:#fff;
|
154
|
+
font-size:72px;
|
155
|
+
text-align:center;
|
156
|
+
text-shadow:0 2px 5px #000;
|
157
|
+
}
|
158
|
+
div.footer {
|
159
|
+
background:#333;
|
160
|
+
}
|
161
|
+
div.footer h5 {
|
162
|
+
color:#666;
|
163
|
+
text-align:center;
|
164
|
+
text-shadow:0 2px 5px #000;
|
165
|
+
margin:0;
|
166
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
get '/sample1' do
|
2
|
+
|
3
|
+
haml :sample1
|
4
|
+
end
|
5
|
+
|
6
|
+
post '/sample1' do
|
7
|
+
set :client_id, params[:client_id]
|
8
|
+
set :private_key, params[:private_key]
|
9
|
+
begin
|
10
|
+
raise "Please enter all required parameters" if settings.client_id.empty? or settings.private_key.empty?
|
11
|
+
user = GroupDocs::User.get!({:client_id => settings.client_id, :private_key => settings.private_key})
|
12
|
+
rescue Exception => e
|
13
|
+
err = e.message
|
14
|
+
end
|
15
|
+
|
16
|
+
haml :sample1, :locals => { :userId => settings.client_id, :privateKey => settings.private_key, :user => user, :err => err }
|
17
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
get '/sample10' do
|
2
|
+
haml :sample10
|
3
|
+
end
|
4
|
+
|
5
|
+
post '/sample10' do
|
6
|
+
set :client_id, params[:client_id]
|
7
|
+
set :private_key, params[:private_key]
|
8
|
+
set :guid, params[:guid]
|
9
|
+
set :email, params[:email]
|
10
|
+
begin
|
11
|
+
raise "Please enter all required parameters" if settings.client_id.empty? or settings.private_key.empty? or settings.guid.empty? or settings.email.empty?
|
12
|
+
|
13
|
+
files_list = GroupDocs::Storage::Folder.list!('/', {}, { :client_id => settings.client_id, :private_key => settings.private_key})
|
14
|
+
name = nil
|
15
|
+
doc = nil
|
16
|
+
files_list.each do |element|
|
17
|
+
if element.class.name.split('::').last == 'Folder'
|
18
|
+
next
|
19
|
+
end
|
20
|
+
|
21
|
+
if element.guid == settings.guid
|
22
|
+
name = element.name
|
23
|
+
doc = element
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
shared = doc.to_document.sharers_set!(settings.email.split(" "), { :client_id => settings.client_id, :private_key => settings.private_key});
|
28
|
+
if shared
|
29
|
+
shared_emails = settings.email
|
30
|
+
end
|
31
|
+
rescue Exception => e
|
32
|
+
err = e.message
|
33
|
+
end
|
34
|
+
|
35
|
+
haml :sample10, :locals => { :client_id => settings.client_id, :private_key => settings.private_key, :guid => settings.guid, :email=>settings.email, :shared => shared_emails, :err => err }
|
36
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
get '/sample2' do
|
2
|
+
haml :sample2
|
3
|
+
end
|
4
|
+
|
5
|
+
post '/sample2' do
|
6
|
+
set :client_id, params[:client_id]
|
7
|
+
set :private_key, params[:private_key]
|
8
|
+
|
9
|
+
begin
|
10
|
+
raise "Please enter all required parameters" if settings.client_id.empty? or settings.private_key.empty?
|
11
|
+
files_list = GroupDocs::Storage::Folder.list!('/', {}, { :client_id => settings.client_id, :private_key => settings.private_key})
|
12
|
+
filelist = ''
|
13
|
+
files_list.each {|element| filelist += element.name + '<br />'}
|
14
|
+
rescue Exception => e
|
15
|
+
err = e.message
|
16
|
+
end
|
17
|
+
|
18
|
+
haml :sample2, :locals => { :userId => settings.client_id, :privateKey => settings.private_key, :filelist => filelist, :err => err }
|
19
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
get '/sample3' do
|
2
|
+
|
3
|
+
haml :sample3
|
4
|
+
end
|
5
|
+
|
6
|
+
post '/sample3' do
|
7
|
+
set :client_id, params[:client_id]
|
8
|
+
set :private_key, params[:private_key]
|
9
|
+
begin
|
10
|
+
raise "Please enter all required parameters" if settings.client_id.empty? or settings.private_key.empty?
|
11
|
+
|
12
|
+
filepath = "#{Dir.tmpdir}/#{params[:file][:filename]}"
|
13
|
+
File.open(filepath, 'wb') { |f| f.write(params[:file][:tempfile].read) }
|
14
|
+
file = GroupDocs::Storage::File.upload!(filepath, {}, client_id: settings.client_id, private_key: settings.private_key)
|
15
|
+
massage = "<p>File was uploaded to GroupDocs. Here you can see your <strong>#{params[:file][:filename]}</strong> file in the GroupDocs Embedded Viewer.</p>"
|
16
|
+
iframe = "<iframe src='https://apps.groupdocs.com/document-viewer/Embed/#{file.guid}' frameborder='0' width='720' height='600'></iframe>"
|
17
|
+
|
18
|
+
rescue Exception => e
|
19
|
+
err = e.message
|
20
|
+
end
|
21
|
+
|
22
|
+
haml :sample3, :locals => { :userId => settings.client_id, :privateKey => settings.private_key, :iframe=>iframe, :massage => massage, :err => err }
|
23
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
get '/sample4' do
|
2
|
+
haml :sample4
|
3
|
+
end
|
4
|
+
|
5
|
+
post '/sample4' do
|
6
|
+
set :client_id, params[:client_id]
|
7
|
+
set :private_key, params[:private_key]
|
8
|
+
set :file_id, params[:file_id]
|
9
|
+
begin
|
10
|
+
raise "Please enter all required parameters" if settings.client_id.empty? or settings.private_key.empty? or settings.file_id.empty?
|
11
|
+
|
12
|
+
files_list = GroupDocs::Storage::Folder.list!('/', {}, { :client_id => settings.client_id, :private_key => settings.private_key})
|
13
|
+
dowload_file = ''
|
14
|
+
|
15
|
+
files_list.each do |element|
|
16
|
+
if element.id == Integer(settings.file_id)
|
17
|
+
dowload_file = element
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
dowloaded_file = dowload_file.download!(File.dirname(__FILE__), { :client_id => settings.client_id, :private_key => settings.private_key})
|
22
|
+
unless dowloaded_file.empty?
|
23
|
+
massage = "<font color='green'>File was downloaded to the <font color='blue'>#{dowloaded_file}</font> folder</font> <br />"
|
24
|
+
end
|
25
|
+
|
26
|
+
rescue Exception => e
|
27
|
+
err = e.message
|
28
|
+
end
|
29
|
+
|
30
|
+
haml :sample4, :locals => { :userId => settings.client_id, :privateKey => settings.private_key, :file_id => settings.file_id, :massage => massage, :err => err }
|
31
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
get '/sample5' do
|
2
|
+
haml :sample5
|
3
|
+
end
|
4
|
+
|
5
|
+
post '/sample5' do
|
6
|
+
set :client_id, params[:client_id]
|
7
|
+
set :private_key, params[:private_key]
|
8
|
+
set :file_id, params[:file_id]
|
9
|
+
set :copy, params[:copy]
|
10
|
+
set :move, params[:move]
|
11
|
+
set :dest_path, params[:dest_path]
|
12
|
+
|
13
|
+
begin
|
14
|
+
raise "Please enter all required parameters" if settings.client_id.empty? or settings.private_key.empty? or settings.file_id.empty?
|
15
|
+
|
16
|
+
files_list = GroupDocs::Storage::Folder.list!('/', {}, { :client_id => settings.client_id, :private_key => settings.private_key})
|
17
|
+
manipulate_file = nil
|
18
|
+
files_list.each do |element|
|
19
|
+
if element.id == Integer(settings.file_id)
|
20
|
+
manipulate_file = element
|
21
|
+
end
|
22
|
+
end
|
23
|
+
raise "No file with such FileID" if manipulate_file.nil?
|
24
|
+
|
25
|
+
unless settings.copy.nil?
|
26
|
+
file = manipulate_file.copy!(settings.dest_path, {}, { :client_id => settings.client_id, :private_key => settings.private_key})
|
27
|
+
button = settings.copy
|
28
|
+
end
|
29
|
+
|
30
|
+
unless settings.move.nil?
|
31
|
+
file = manipulate_file.move!(settings.dest_path, {}, { :client_id => settings.client_id, :private_key => settings.private_key})
|
32
|
+
button = settings.move
|
33
|
+
end
|
34
|
+
|
35
|
+
if file
|
36
|
+
massage = "File was #{button}'ed to the #{settings.dest_path} folder"
|
37
|
+
end
|
38
|
+
|
39
|
+
rescue Exception => e
|
40
|
+
err = e.message
|
41
|
+
end
|
42
|
+
|
43
|
+
haml :sample5, :locals => { :userId => settings.client_id, :privateKey => settings.private_key, :file_id => settings.file_id, :dest_path => settings.dest_path, :massage => massage, :err => err }
|
44
|
+
end
|