mix-rails 0.12.1 → 0.12.2
Sign up to get free protection for your applications and to get access to all the features.
- data/MIX_RAILS_VERSION +1 -1
- data/admix/app/assets/javascripts/admix/application.js.coffee +17 -13
- data/admix/app/assets/stylesheets/admix/application.css +7 -1
- data/admix/app/controllers/admix/inherited_controller.rb +1 -1
- data/admix/lib/admix/version.rb +1 -1
- data/mix-rails-albums/app/assets/javascripts/admix/photos.js.erb +4 -17
- data/mix-rails-albums/app/assets/javascripts/{albums.js → application.js} +0 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/application.js.coffee +12 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/models/.gitkeep +0 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/models/photo.js.coffee +39 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/routers/.gitkeep +0 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/routers/photos_router.js.coffee +36 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/templates/.gitkeep +0 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/templates/photos/edit.jst.ejs +20 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/templates/photos/index.jst.ejs +15 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/templates/photos/modal.hamlc.erb +14 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/templates/photos/new.jst.ejs +20 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/templates/photos/photo.jst.ejs +6 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/templates/photos/show.jst.ejs +12 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/templates/photos/thumbnail.hamlc.erb +16 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/templates/photos/upload_index.hamlc.erb +1 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/views/.gitkeep +0 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/views/photos/edit_view.js.coffee +24 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/views/photos/index_view.js.coffee +20 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/views/photos/new_view.js.coffee +37 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/views/photos/photo_view.js.coffee +19 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/views/photos/show_view.js.coffee +8 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/views/photos/thumbnail_view.js.coffee +30 -0
- data/mix-rails-albums/app/assets/javascripts/backbone/views/photos/upload_index_view.js.coffee +22 -0
- data/mix-rails-albums/app/assets/javascripts/collections/filelist.js +1 -0
- data/mix-rails-albums/app/assets/javascripts/models/fileitem.js +3 -0
- data/mix-rails-albums/app/assets/javascripts/photos/upload.js.coffee.erb +9 -0
- data/mix-rails-albums/app/assets/javascripts/routers/photo_router.js.coffee.erb +7 -0
- data/mix-rails-albums/app/assets/javascripts/templates/photo_modal_edit.hamlc.erb +14 -0
- data/mix-rails-albums/app/assets/javascripts/templates/photo_view.hamlc.erb +1 -1
- data/mix-rails-albums/app/assets/javascripts/views/filelistview.js +2 -0
- data/mix-rails-albums/app/assets/javascripts/views/fileview.js +6 -1
- data/mix-rails-albums/app/assets/javascripts/views/photo_modal_view.js.coffee +25 -0
- data/mix-rails-albums/app/models/photo.rb +2 -2
- data/mix-rails-albums/app/views/admix/photos/_upload.html.haml +2 -2
- data/mix-rails-albums/config/routes.rb +5 -1
- data/mix-rails-albums/lib/mix-rails-albums.rb +1 -1
- data/mix-rails-albums/lib/mix-rails-albums/version.rb +1 -1
- data/mix-rails-albums/script/rails +1 -1
- data/mix-rails-auth/app/models/ability.rb +1 -1
- data/mix-rails-auth/lib/mix-rails-auth/version.rb +1 -1
- data/mix-rails-core/Gemfile +2 -0
- data/mix-rails-core/config/initializers/mongoid.rb +3 -0
- data/mix-rails-core/lib/mix-rails-core.rb +4 -2
- data/mix-rails-core/lib/{mix-rails-core → mix-rails}/concerns/engine.rb +0 -0
- data/mix-rails-core/lib/{mix-rails-core → mix-rails}/engine.rb +0 -0
- data/mix-rails-core/lib/{mix-rails-core → mix-rails}/railtie.rb +0 -0
- data/mix-rails-core/lib/{mix-rails-core → mix-rails}/version.rb +1 -1
- data/mix-rails-core/mix-rails-core.gemspec +1 -0
- data/mix-rails-message-board/lib/mix-rails-message-board/version.rb +1 -1
- data/mix-rails-settings/lib/mix-rails-settings/version.rb +1 -1
- data/mix-rails-songs/lib/mix-rails-songs/version.rb +1 -1
- data/mix-rails-videos/lib/mix-rails-videos/version.rb +1 -1
- data/mix-rails-vouchers/lib/mix-rails-vouchers/version.rb +1 -1
- data/mix-rails-writer/lib/mix-rails-writer/version.rb +1 -1
- data/version.rb +1 -1
- metadata +56 -34
- data/admix/app/assets/javascripts/admix/backbone-min.js +0 -42
- data/admix/app/assets/javascripts/admix/underscore-min.js +0 -1
- data/mix-rails-albums/app/assets/javascripts/colorbox/jquery.colorbox-min.js +0 -4
- data/mix-rails-albums/app/assets/javascripts/photo_uploader.coffee +0 -2
- data/mix-rails-core/app/assets/javascripts/underscore.js +0 -1221
data/MIX_RAILS_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.12.
|
1
|
+
0.12.2
|
@@ -1,17 +1,21 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
1
|
+
#= require jquery
|
2
|
+
#= require jquery_ujs
|
3
|
+
#= require underscore
|
4
|
+
#= require backbone
|
5
|
+
#= require backbone_rails_sync
|
6
|
+
#= require backbone_datalink
|
7
|
+
#= require_tree .
|
8
|
+
#= require jquery/jquery.livequery
|
9
|
+
#= require fancybox
|
10
|
+
#= require jquery.ui.datepicker
|
11
|
+
#= require ../../bootstrap/js/bootstrap.min
|
12
|
+
#= require ./dates
|
13
|
+
#= require ../../nicedit/nicEdit
|
14
|
+
#= require ./nicedit_applier
|
15
|
+
#= require ../../tipsy/src/javascripts/jquery.tipsy
|
16
|
+
#= require ./tipsy_init
|
14
17
|
|
15
18
|
$ ->
|
19
|
+
|
16
20
|
$('.fancybox').livequery ->
|
17
21
|
$(@).fancybox();
|
@@ -8,9 +8,15 @@
|
|
8
8
|
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
9
9
|
* compiled file, but it's generally better to create a new file per style scope.
|
10
10
|
*
|
11
|
-
|
11
|
+
|
12
12
|
*= require jquery.ui.all
|
13
13
|
*= require ../../tipsy/src/stylesheets/tipsy
|
14
14
|
*= require fancybox
|
15
15
|
*= require_tree .
|
16
|
+
*= require_self
|
16
17
|
*/
|
18
|
+
|
19
|
+
.admix-photo-modal {
|
20
|
+
width: 61%;
|
21
|
+
margin-left: -30%;
|
22
|
+
}
|
data/admix/lib/admix/version.rb
CHANGED
@@ -1,6 +1,4 @@
|
|
1
1
|
//= require hamlcoffee
|
2
|
-
//= require ../photo_uploader
|
3
|
-
//
|
4
2
|
//= require_tree ../models
|
5
3
|
//= require_tree ../collections
|
6
4
|
//= require_tree ../views
|
@@ -9,25 +7,14 @@
|
|
9
7
|
|
10
8
|
<% url = Rails.application.routes.url_helpers %>
|
11
9
|
|
12
|
-
|
13
|
-
_.extend(Backbone.Model.prototype, {
|
14
|
-
set: function(attrs, options) {
|
15
|
-
if ('_id' in attrs) { this.id = attrs._id; }
|
16
|
-
oldSet.apply(this, [attrs, options]);
|
17
|
-
return this;
|
18
|
-
}
|
19
|
-
});
|
10
|
+
new PhotoRouter();
|
20
11
|
|
12
|
+
jQuery(function() {
|
21
13
|
|
22
|
-
|
23
|
-
|
24
|
-
var fileZip, fileZipView;
|
25
|
-
|
26
|
-
|
14
|
+
var fileZip, fileZipView, fileListView;
|
27
15
|
var fileList = new FileList();
|
28
16
|
fileList.url = $("#files").data('url');
|
29
|
-
|
30
|
-
|
17
|
+
|
31
18
|
jQuery("#uploader").change(function(el) {
|
32
19
|
|
33
20
|
var files = el.currentTarget.files;
|
File without changes
|
File without changes
|
@@ -0,0 +1,39 @@
|
|
1
|
+
class Application.Models.Photo extends Backbone.Model
|
2
|
+
paramRoot: 'photo'
|
3
|
+
idAttribute: '_id'
|
4
|
+
defaults:
|
5
|
+
image: null
|
6
|
+
description: null
|
7
|
+
progress: 0
|
8
|
+
|
9
|
+
initialize: ->
|
10
|
+
@on 'add', @onAdd, @
|
11
|
+
|
12
|
+
onAdd: ->
|
13
|
+
xhr = new XMLHttpRequest()
|
14
|
+
xhr.open "POST", @url
|
15
|
+
datas = new FormData()
|
16
|
+
datas.append "image", @get("image")
|
17
|
+
xhr.upload.addEventListener "progress", (e) =>
|
18
|
+
if e.lengthComputable
|
19
|
+
currentState = (e.loaded / e.total) * 100
|
20
|
+
@set progress: currentState
|
21
|
+
|
22
|
+
xhr.onreadystatechange = (e) =>
|
23
|
+
if e.currentTarget.readyState is 4
|
24
|
+
@set progress: 100
|
25
|
+
@trigger "uploadCompleted"
|
26
|
+
if xhr.responseText
|
27
|
+
responseObject = JSON.parse(xhr.responseText)
|
28
|
+
@set responseObject
|
29
|
+
else
|
30
|
+
console.log "Não foi possível enviar o arquivo"
|
31
|
+
|
32
|
+
|
33
|
+
# Start send the file.
|
34
|
+
xhr.send datas
|
35
|
+
|
36
|
+
class Application.Collections.PhotosCollection extends Backbone.Collection
|
37
|
+
model: Application.Models.Photo
|
38
|
+
url: '/photos'
|
39
|
+
|
File without changes
|
@@ -0,0 +1,36 @@
|
|
1
|
+
class Application.Routers.PhotosRouter extends Backbone.Router
|
2
|
+
initialize: (options) ->
|
3
|
+
@photos = new Application.Collections.PhotosCollection()
|
4
|
+
@photos.reset options.photos
|
5
|
+
|
6
|
+
routes:
|
7
|
+
"new" : "newPhoto"
|
8
|
+
"index" : "index"
|
9
|
+
"upload_index" : "upload_index"
|
10
|
+
":id/edit" : "edit"
|
11
|
+
":id" : "show"
|
12
|
+
".*" : "index"
|
13
|
+
|
14
|
+
newPhoto: ->
|
15
|
+
@view = new Application.Views.Photos.NewView(collection: @photos)
|
16
|
+
$("#photos").html(@view.render().el)
|
17
|
+
|
18
|
+
index: ->
|
19
|
+
@view = new Application.Views.Photos.IndexView(photos: @photos)
|
20
|
+
$("#photos").html(@view.render().el)
|
21
|
+
|
22
|
+
upload_index: ->
|
23
|
+
@view = new Application.Views.Photos.UploadIndexView(photos: @photos)
|
24
|
+
$("#photos").html(@view.render().el)
|
25
|
+
|
26
|
+
show: (id) ->
|
27
|
+
photo = @photos.get(id)
|
28
|
+
|
29
|
+
@view = new Application.Views.Photos.ShowView(model: photo)
|
30
|
+
$("#photos").html(@view.render().el)
|
31
|
+
|
32
|
+
edit: (id) ->
|
33
|
+
photo = @photos.get(id)
|
34
|
+
|
35
|
+
@view = new Application.Views.Photos.EditView(model: photo)
|
36
|
+
$("#photos").html(@view.render().el)
|
File without changes
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<h1>Edit photo</h1>
|
2
|
+
|
3
|
+
<form id="edit-photo" name="photo">
|
4
|
+
<div class="field">
|
5
|
+
<label for="image"> image:</label>
|
6
|
+
<input type="text" name="image" id="image" value="<%= image %>" >
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div class="field">
|
10
|
+
<label for="description"> description:</label>
|
11
|
+
<input type="text" name="description" id="description" value="<%= description %>" >
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<div class="actions">
|
15
|
+
<input type="submit" value="Update Photo" />
|
16
|
+
</div>
|
17
|
+
|
18
|
+
</form>
|
19
|
+
|
20
|
+
<a href="#/index">Back</a>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
.modal.hide.fade.admix-photo-modal{id: "photo-modal-#{@id}"}
|
2
|
+
.modal-header
|
3
|
+
%button.close{"aria-hidden" => "true", "data-dismiss" => "modal", :type => "button"} ×
|
4
|
+
%h3 Detalhes da foto
|
5
|
+
.modal-body
|
6
|
+
.edit-area.pull-right
|
7
|
+
%textarea.span5{id: "input_photo_description_#{@id}",placeholder: 'Adicione uma descrição para esta foto.'}
|
8
|
+
#{@description}
|
9
|
+
.photo
|
10
|
+
%img{src: @image.medium.url}
|
11
|
+
%p One fine body…
|
12
|
+
.modal-footer
|
13
|
+
%a.btn{href:"#", "data-dismiss": "modal"} Cancelar
|
14
|
+
%a.btn.btn-primary.save{:href => "#"} Salvar mudanças
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<h1>New photo</h1>
|
2
|
+
|
3
|
+
<form id="new-photo" name="photo">
|
4
|
+
<div class="field">
|
5
|
+
<label for="image"> image:</label>
|
6
|
+
<input type="text" name="image" id="image" value="<%= image %>" >
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div class="field">
|
10
|
+
<label for="description"> description:</label>
|
11
|
+
<input type="text" name="description" id="description" value="<%= description %>" >
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<div class="actions">
|
15
|
+
<input type="submit" value="Create Photo" />
|
16
|
+
</div>
|
17
|
+
|
18
|
+
</form>
|
19
|
+
|
20
|
+
<a href="#/index">Back</a>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
.thumbnail.file-item
|
2
|
+
.file-title
|
3
|
+
= @title
|
4
|
+
%a.link-popover{"data-content" => "<i class=icon-edit></i> Edit"}
|
5
|
+
.loading-file
|
6
|
+
- if @image.url
|
7
|
+
%a.photo-link{href: "#"}
|
8
|
+
%img{src: ROOT_PATH + @image.thumb.url}
|
9
|
+
- else
|
10
|
+
%img{src: "http://placehold.it/130x90&text=Carregando"}
|
11
|
+
-if (@progress != null && @progress < 100)
|
12
|
+
%div{class: (@progress < 100) ? 'progress progress-striped active' : 'progress'}
|
13
|
+
.bar{style: "width:#{@progress}%;"}
|
14
|
+
.caption
|
15
|
+
%a.file-action.delete{href: "#"}
|
16
|
+
<%= image_tag "albums/delete.png" %>
|
@@ -0,0 +1 @@
|
|
1
|
+
.photos-container
|
File without changes
|
@@ -0,0 +1,24 @@
|
|
1
|
+
Application.Views.Photos ||= {}
|
2
|
+
|
3
|
+
class Application.Views.Photos.EditView extends Backbone.View
|
4
|
+
template: JST["backbone/templates/photos/edit"]
|
5
|
+
|
6
|
+
events:
|
7
|
+
"submit #edit-photo": "update"
|
8
|
+
|
9
|
+
update: (e) ->
|
10
|
+
e.preventDefault()
|
11
|
+
e.stopPropagation()
|
12
|
+
|
13
|
+
@model.save(null,
|
14
|
+
success: (photo) =>
|
15
|
+
@model = photo
|
16
|
+
window.location.hash = "/#{@model.id}"
|
17
|
+
)
|
18
|
+
|
19
|
+
render: ->
|
20
|
+
@$el.html(@template(@model.toJSON() ))
|
21
|
+
|
22
|
+
this.$("form").backboneLink(@model)
|
23
|
+
|
24
|
+
return this
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Application.Views.Photos ||= {}
|
2
|
+
|
3
|
+
class Application.Views.Photos.IndexView extends Backbone.View
|
4
|
+
template: JST["backbone/templates/photos/index"]
|
5
|
+
|
6
|
+
initialize: () ->
|
7
|
+
@options.photos.bind('reset', @addAll)
|
8
|
+
|
9
|
+
addAll: () =>
|
10
|
+
@options.photos.each(@addOne)
|
11
|
+
|
12
|
+
addOne: (photo) =>
|
13
|
+
view = new Application.Views.Photos.PhotoView({model : photo})
|
14
|
+
@$("tbody").append(view.render().el)
|
15
|
+
|
16
|
+
render: =>
|
17
|
+
@$el.html(@template(photos: @options.photos.toJSON() ))
|
18
|
+
@addAll()
|
19
|
+
|
20
|
+
return this
|
@@ -0,0 +1,37 @@
|
|
1
|
+
Application.Views.Photos ||= {}
|
2
|
+
|
3
|
+
class Application.Views.Photos.NewView extends Backbone.View
|
4
|
+
template: JST["backbone/templates/photos/new"]
|
5
|
+
|
6
|
+
events:
|
7
|
+
"submit #new-photo": "save"
|
8
|
+
|
9
|
+
constructor: (options) ->
|
10
|
+
super(options)
|
11
|
+
@model = new @collection.model()
|
12
|
+
|
13
|
+
@model.bind("change:errors", () =>
|
14
|
+
this.render()
|
15
|
+
)
|
16
|
+
|
17
|
+
save: (e) ->
|
18
|
+
e.preventDefault()
|
19
|
+
e.stopPropagation()
|
20
|
+
|
21
|
+
@model.unset("errors")
|
22
|
+
|
23
|
+
@collection.create(@model.toJSON(),
|
24
|
+
success: (photo) =>
|
25
|
+
@model = photo
|
26
|
+
window.location.hash = "/#{@model.id}"
|
27
|
+
|
28
|
+
error: (photo, jqXHR) =>
|
29
|
+
@model.set({errors: $.parseJSON(jqXHR.responseText)})
|
30
|
+
)
|
31
|
+
|
32
|
+
render: ->
|
33
|
+
@$el.html(@template(@model.toJSON() ))
|
34
|
+
|
35
|
+
this.$("form").backboneLink(@model)
|
36
|
+
|
37
|
+
return this
|
@@ -0,0 +1,19 @@
|
|
1
|
+
Application.Views.Photos ||= {}
|
2
|
+
|
3
|
+
class Application.Views.Photos.PhotoView extends Backbone.View
|
4
|
+
template: JST["backbone/templates/photos/photo"]
|
5
|
+
|
6
|
+
events:
|
7
|
+
"click .destroy" : "destroy"
|
8
|
+
|
9
|
+
tagName: "tr"
|
10
|
+
|
11
|
+
destroy: () ->
|
12
|
+
@model.destroy()
|
13
|
+
this.remove()
|
14
|
+
|
15
|
+
return false
|
16
|
+
|
17
|
+
render: ->
|
18
|
+
@$el.html(@template(@model.toJSON() ))
|
19
|
+
return this
|