bongo 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ce4dd77a9fc008273306f922165ff31509143f51588ae6f488087d853db864ff
4
- data.tar.gz: eb4b5d788c873a3c679c64743cf3939f694a4d56bdd7381519172908913c207c
3
+ metadata.gz: f2bc70af78c51e19b4b5604d0c34c6e07e3cf30a89d60800a0e4c6cf25b03506
4
+ data.tar.gz: 02eb299fee060a5b1521c60e34ce38570849a265a5c2a330bfd28340686a125e
5
5
  SHA512:
6
- metadata.gz: 7666e84d7589c96924e94da0b6ab1d6b1711f602f6426301d3d7bea705cb2dfd3bf58e8a364cb93c218c2d427881beb42ae3f6d216a5874adfcf1a5820878836
7
- data.tar.gz: 734ac01420f543dc176a2fa9035142a8f9c9d2993641b724cbb545f112b6f7d435882cb14b9999474a7d8f5d18ba3a038bfa09620cf2160b0c8271953ae2fe80
6
+ metadata.gz: c3bc88b9d3bea48d39eac422ffd9d5396ee2037347ace140acfd2eec6109ee7c31891eed7aa00eb49f263fe9c8e28bed72412f78d67d2db0720ee12208c007f8
7
+ data.tar.gz: 360242447c9b911dad60780486b26739603bd31ee9af8b47aad668b42a9ae671d6fb172ab9f2e17a805d93c1493661916538907b5ca84e7ebd40dd54145014a6
@@ -0,0 +1,51 @@
1
+ (function() {
2
+ var HOST = "<%= Bongo::Engine.routes.url_helpers.files_path %>"
3
+
4
+ addEventListener("trix-attachment-add", function(event) {
5
+ if (event.attachment.file) {
6
+ uploadFileAttachment(event.attachment)
7
+ }
8
+ })
9
+
10
+ function uploadFileAttachment(attachment) {
11
+ uploadFile(attachment.file, setProgress, setAttributes)
12
+
13
+ function setProgress(progress) {
14
+ attachment.setUploadProgress(progress)
15
+ }
16
+
17
+ function setAttributes(attributes) {
18
+ attachment.setAttributes(attributes)
19
+ }
20
+ }
21
+
22
+ function uploadFile(file, progressCallback, successCallback) {
23
+ var formData = createFormData(file)
24
+ var xhr = new XMLHttpRequest()
25
+
26
+ xhr.open("POST", HOST, true)
27
+
28
+ xhr.upload.addEventListener("progress", function(event) {
29
+ var progress = event.loaded / event.total * 100
30
+ progressCallback(progress)
31
+ })
32
+
33
+ xhr.addEventListener("load", function(event) {
34
+ if (xhr.status == 200) {
35
+ var attributes = {
36
+ url: xhr.response
37
+ }
38
+ successCallback(attributes)
39
+ }
40
+ })
41
+
42
+ xhr.send(formData)
43
+ }
44
+
45
+ function createFormData(file) {
46
+ var data = new FormData()
47
+ data.append("Content-Type", file.type)
48
+ data.append("file", file)
49
+ return data
50
+ }
51
+ })();
@@ -0,0 +1,22 @@
1
+ require_dependency "bongo/application_controller"
2
+
3
+ require "aws-sdk-s3"
4
+
5
+ module Bongo
6
+ class FilesController < ApplicationController
7
+ before_action :authenticate_user!
8
+
9
+ skip_before_action :verify_authenticity_token
10
+
11
+ def create
12
+ extension = File.extname(params[:file].original_filename)
13
+ s3 = Aws::S3::Resource.new
14
+ obj = s3.bucket(ENV["AWS_S3_BUCKET"]).object(SecureRandom.uuid + extension)
15
+ obj.upload_file(params[:file])
16
+
17
+ respond_to do |format|
18
+ format.json { render json: obj.public_url }
19
+ end
20
+ end
21
+ end
22
+ end
@@ -2,7 +2,9 @@
2
2
  <article>
3
3
  <h2><%= link_to article.title, article %></h2>
4
4
  <small><%= article.publish_at ? l(article.publish_at, format: :long) : "Unpublished draft"%></small>
5
- <p><%= simple_format article.text %></p>
5
+ <main class="trix-content">
6
+ <%= article.text.html_safe %>
7
+ </main>
6
8
  </article>
7
9
  <br>
8
10
  <% end %>
@@ -3,7 +3,9 @@
3
3
  <h2><%= @article.title %></h2>
4
4
  <small><%= @article.publish_at ? l(@article.publish_at, format: :long) : "Unpublished draft"%></small>
5
5
  </header>
6
- <main><%= simple_format @article.text %></main>
6
+ <main class="trix-content">
7
+ <%= @article.text.html_safe %>
8
+ </main>
7
9
  </article>
8
10
 
9
11
  <br>
data/config/routes.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  Bongo::Engine.routes.draw do
2
2
  root to: "articles#index"
3
3
  resources :articles
4
+ resources :files, only: :create
4
5
  end
data/lib/bongo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Bongo
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bongo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Hutterer
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 7.0.5
41
+ - !ruby/object:Gem::Dependency
42
+ name: aws-sdk-s3
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1'
41
55
  description: Rails engine for blogging using MongoDB.
42
56
  email:
43
57
  - tohu@tuta.io
@@ -50,11 +64,13 @@ files:
50
64
  - Rakefile
51
65
  - app/assets/config/bongo_manifest.js
52
66
  - app/assets/javascripts/bongo/application.js
67
+ - app/assets/javascripts/bongo/attachments.js.erb
53
68
  - app/assets/javascripts/bongo/trix.js
54
69
  - app/assets/stylesheets/bongo/application.css
55
70
  - app/assets/stylesheets/bongo/trix.css
56
71
  - app/controllers/bongo/application_controller.rb
57
72
  - app/controllers/bongo/articles_controller.rb
73
+ - app/controllers/bongo/files_controller.rb
58
74
  - app/helpers/bongo/application_helper.rb
59
75
  - app/helpers/bongo/articles_helper.rb
60
76
  - app/jobs/bongo/application_job.rb