diff options
| author | mo <mokha@cisco.com> | 2017-09-02 14:48:43 -0600 |
|---|---|---|
| committer | mo <mokha@cisco.com> | 2017-09-02 14:48:43 -0600 |
| commit | b8dfe131c6c5fe9d0e5b4ee2d271feeb5d411502 (patch) | |
| tree | 05b475a8b6442e2a43d9529c42362a3460df7d13 /app/assets/javascripts/backbone | |
| parent | bba21d02643d632fee5fa4bdbc876d44832ccf4b (diff) | |
promote backbone subdirectory up to root.
Diffstat (limited to 'app/assets/javascripts/backbone')
48 files changed, 0 insertions, 1092 deletions
diff --git a/app/assets/javascripts/backbone/cakeside.js.coffee b/app/assets/javascripts/backbone/cakeside.js.coffee deleted file mode 100644 index 6f468e52..00000000 --- a/app/assets/javascripts/backbone/cakeside.js.coffee +++ /dev/null @@ -1,67 +0,0 @@ -#= require_self -#= require_tree ./templates -#= require_tree ./models -#= require_tree ./views -#= require_tree ./controllers -#= require_tree ./routers - -window.CakeSide = - Models: {} - Collections: {} - Routers: {} - Views: {} - Controllers: {} - initialize: (data) -> - $(document).ajaxSend (event, xhr) -> - if data.access_token - xhr.setRequestHeader "Authorization", "Token token=#{data.access_token}" - - CakeSide.Application = new Marionette.Application() - CakeSide.Application.addRegions - content_region: '#backbone-content' - comment_region: '#disqus_thread' - - CakeSide.Application.addInitializer (options) -> - new CakeSide.Routers.CakesRouter - controller: new CakeSide.Controllers.CakesController() - new CakeSide.Routers.TutorialsRouter - controller: new CakeSide.Controllers.TutorialsController() - new CakeSide.Routers.DashboardRouter - controller: new CakeSide.Controllers.DashboardController() - new CakeSide.Routers.ProfileRouter - controller: new CakeSide.Controllers.ProfileController() - - CakeSide.Application.on 'start', -> - if Backbone.history - Backbone.history.start() - - @cakes = new CakeSide.Collections.CakesCollection() - @categories = new CakeSide.Collections.CategoriesCollection() - @tutorials = new CakeSide.Collections.TutorialsCollection() - - #@disqus_view = new CakeSide.Views.DisqusView - #disqus_shortname: data.disqus_shortname - #CakeSide.Application.reqres.setHandler 'CommentView', => - #@disqus_view - CakeSide.Application.reqres.setHandler 'CakesRepository', => - @cakes - CakeSide.Application.reqres.setHandler 'CategoriesRepository', => - @categories - @photos_cache = {} - CakeSide.Application.reqres.setHandler 'PhotosRepository', (cake_id) => - if @photos_cache[cake_id] - @photos_cache[cake_id] - else - photos = new CakeSide.Collections.PhotosCollection(cake_id: cake_id) - @photos_cache[cake_id] = photos - photos.fetch(reset: true) - photos - CakeSide.Application.reqres.setHandler 'TutorialsRepository', => - @tutorials - CakeSide.Application.reqres.setHandler 'ProfilesRepository', => - @profiles ||= new CakeSide.Collections.ProfilesCollection() - - @categories.fetch(reset: true) - @tutorials.fetch(reset: true) - @cakes.fetch(reset: true).done -> - CakeSide.Application.start() diff --git a/app/assets/javascripts/backbone/controllers/cakes_controller.js.coffee b/app/assets/javascripts/backbone/controllers/cakes_controller.js.coffee deleted file mode 100644 index 3167248b..00000000 --- a/app/assets/javascripts/backbone/controllers/cakes_controller.js.coffee +++ /dev/null @@ -1,34 +0,0 @@ -class CakeSide.Controllers.CakesController extends Marionette.Controller - views: CakeSide.Views.Cakes - initialize: (options) -> - @content_region = CakeSide.Application.content_region - @cakes = CakeSide.Application.request('CakesRepository') - #@comment_view = CakeSide.Application.request('CommentView') - - index: -> - @selectTab() - #@comment_view.hide() - @content_region.show(new @views.IndexView(collection: @cakes)) - - show: (id, photo_id) -> - @selectTab() - cake = @cakes.get(id) - @content_region.show(new @views.ShowView(model: cake, photo_id: photo_id)) - #@comment_view.render - #identifier: "c-#{cake.id}" - #title: cake.get('name') - #url: cake.public_url() - - newCake: -> - @selectTab() - #@comment_view.hide() - @content_region.show(new @views.NewView(collection: @cakes)) - - edit: (id) -> - @selectTab() - @content_region.show(new @views.EditView(model: @cakes.get(id))) - #@comment_view.hide() - - selectTab: -> - $('.nav-link').removeClass('active') - $('a[href="/my#cakes/new"]').addClass('active') diff --git a/app/assets/javascripts/backbone/controllers/dashboard_controller.js.coffee b/app/assets/javascripts/backbone/controllers/dashboard_controller.js.coffee deleted file mode 100644 index 23169914..00000000 --- a/app/assets/javascripts/backbone/controllers/dashboard_controller.js.coffee +++ /dev/null @@ -1,6 +0,0 @@ -class CakeSide.Controllers.DashboardController extends Marionette.Controller - initialize: (options) -> - #@comment_view = CakeSide.Application.request('CommentView') - - index: -> - #@comment_view.hide() diff --git a/app/assets/javascripts/backbone/controllers/profile_controller.js.coffee b/app/assets/javascripts/backbone/controllers/profile_controller.js.coffee deleted file mode 100644 index c8577e2a..00000000 --- a/app/assets/javascripts/backbone/controllers/profile_controller.js.coffee +++ /dev/null @@ -1,18 +0,0 @@ -class CakeSide.Controllers.ProfileController extends Marionette.Controller - views: CakeSide.Views.Profiles - initialize: (options) -> - @content_region = CakeSide.Application.content_region - #@comment_view = CakeSide.Application.request('CommentView') - - show: (id) -> - @selectTab() - #@comment_view.hide() - profile = new CakeSide.Models.Profile - id: id - profile.fetch - success: => - @content_region.show(new @views.ShowView(model: profile)) - - selectTab: -> - $('.nav-link').removeClass('active') - $('a[href="/my#profile/me"]').addClass('active') diff --git a/app/assets/javascripts/backbone/controllers/tutorials_controller.js.coffee b/app/assets/javascripts/backbone/controllers/tutorials_controller.js.coffee deleted file mode 100644 index 732bea3e..00000000 --- a/app/assets/javascripts/backbone/controllers/tutorials_controller.js.coffee +++ /dev/null @@ -1,29 +0,0 @@ -class CakeSide.Controllers.TutorialsController extends Marionette.Controller - views: CakeSide.Views.Tutorials - initialize: (options) -> - @content_region = CakeSide.Application.content_region - @tutorials = CakeSide.Application.request('TutorialsRepository') - #@comment_view = CakeSide.Application.request('CommentView') - - index: -> - @selectTab() - #@comment_view.hide() - @content_region.show(new @views.IndexView(collection: @tutorials)) - - new: -> - @selectTab() - #@comment_view.hide() - @content_region.show(new @views.NewView(collection: @tutorials)) - - show: (id) -> - @selectTab() - tutorial = @tutorials.get(id) - @content_region.show(new @views.ShowView(model: tutorial)) - #@comment_view.render - #identifier: "t-#{tutorial.id}" - #title: tutorial.get('heading') - #url: tutorial.get('url') - - selectTab: -> - $('.nav-link').removeClass('active') - $('a[href="/my#tutorials/new"]').addClass('active') diff --git a/app/assets/javascripts/backbone/models/.gitkeep b/app/assets/javascripts/backbone/models/.gitkeep deleted file mode 100644 index e69de29b..00000000 --- a/app/assets/javascripts/backbone/models/.gitkeep +++ /dev/null diff --git a/app/assets/javascripts/backbone/models/cake.js.coffee b/app/assets/javascripts/backbone/models/cake.js.coffee deleted file mode 100644 index 7f925394..00000000 --- a/app/assets/javascripts/backbone/models/cake.js.coffee +++ /dev/null @@ -1,27 +0,0 @@ -class CakeSide.Models.Cake extends Backbone.Model - paramRoot: 'cake' - - defaults: - id: null - name: null - story: null - created_at: null - updated_at: null - category_id: null - - validate: (attributes, options) -> - return "Name can't be blank" unless attributes.name && attributes.name.trim() - return "Category can't be blank" unless attributes.category_id - - photos: -> - CakeSide.Application.request('PhotosRepository', @id) - - public_url: -> - "#{window.location.origin}/creations/#{@get('slug')}" - - category_id: -> - @get('category_id') || @get('category').id - -class CakeSide.Collections.CakesCollection extends Backbone.Collection - model: CakeSide.Models.Cake - url: '/api/v1/cakes' diff --git a/app/assets/javascripts/backbone/models/category.js.coffee b/app/assets/javascripts/backbone/models/category.js.coffee deleted file mode 100644 index 98437966..00000000 --- a/app/assets/javascripts/backbone/models/category.js.coffee +++ /dev/null @@ -1,10 +0,0 @@ -class CakeSide.Models.Category extends Backbone.Model - paramRoot: 'category' - - defaults: - name: null - slug: null - -class CakeSide.Collections.CategoriesCollection extends Backbone.Collection - model: CakeSide.Models.Category - url: '/api/v1/categories' diff --git a/app/assets/javascripts/backbone/models/photo.js.coffee b/app/assets/javascripts/backbone/models/photo.js.coffee deleted file mode 100644 index eb1cff76..00000000 --- a/app/assets/javascripts/backbone/models/photo.js.coffee +++ /dev/null @@ -1,30 +0,0 @@ -class CakeSide.Models.Photo extends Backbone.Model - paramRoot: 'photo' - fileAttribute: 'image' - - defaults: - id: null - cake_id: null - content_type: null - original_filename: null - thumb_url: null - large_url: null - original_url: null - created_at: null - updated_at: null - - initialize: (options) -> - @set('cake_id', options.cake_id) - if options.id - @url="/api/v1/cakes/#{options.cake_id}/photos/#{options.id}" - else - @url="/api/v1/cakes/#{options.cake_id}/photos" - - super(options) - -class CakeSide.Collections.PhotosCollection extends Backbone.Collection - model: CakeSide.Models.Photo - - initialize: (options) -> - @set('cake_id', options.cake_id) - @url="/api/v1/cakes/#{options.cake_id}/photos" diff --git a/app/assets/javascripts/backbone/models/profile.js.coffee b/app/assets/javascripts/backbone/models/profile.js.coffee deleted file mode 100644 index 189d83e4..00000000 --- a/app/assets/javascripts/backbone/models/profile.js.coffee +++ /dev/null @@ -1,38 +0,0 @@ -class CakeSide.Models.Profile extends Backbone.Model - paramRoot: 'profile' - urlRoot: '/api/v1/profiles' - modelEvents: - "change": "render" - - defaults: - id: null - name: null - email: null - city: null - website: null - facebook: null - twitter: null - - validate: (attributes, options) -> - return "Name can't be blank" unless attributes.name && attributes.name.trim() - return "Email can't be blank" unless attributes.email && attributes.email.trim() - return "Email is invalid" unless @validateEmail(attributes.email) - return "URL is invalid" if attributes.website && !@validateUrl(attributes.website) - return "Twitter handle is invalid" if !@validateTwitter(attributes.twitter) - - validateEmail: (email) -> - regex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ - regex.test(email) - - validateUrl: (url) -> - regex = new RegExp( "^" + "(?:(?:https?|ftp)://)" + "(?:\\S+(?::\\S*)?@)?" + "(?:" + "(?!(?:10|127)(?:\\.\\d{1,3}){3})" + "(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})" + "(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})" + "(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])" + "(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}" + "(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))" + "|" + "(?:(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)" + "(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*" + "(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))" + ")" + "(?::\\d{2,5})?" + "(?:/\\S*)?" + "$", "i") - regex.test(url) - - validateTwitter: (twitter) -> - return true unless twitter - regex = /^@?(\w){1,15}$/ - regex.test(twitter) - -class CakeSide.Collections.ProfilesCollection extends Backbone.Collection - model: CakeSide.Models.Profile - url: '/api/v1/profiles' diff --git a/app/assets/javascripts/backbone/models/tutorials.js.coffee b/app/assets/javascripts/backbone/models/tutorials.js.coffee deleted file mode 100644 index 9e2e8a1f..00000000 --- a/app/assets/javascripts/backbone/models/tutorials.js.coffee +++ /dev/null @@ -1,24 +0,0 @@ -class CakeSide.Models.Tutorial extends Backbone.Model - paramRoot: 'tutorial' - - defaults: - id: null - url: null - image_url: null - heading: null - description: null - - validate: (attributes, options) -> - return "Invalid Url." unless @isValidUrl(attributes.url || '') - return "This tutorial has no photos." unless @hasImage(attributes.image_url) - - isValidUrl: (url) -> - expression = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi; - url.match(new RegExp(expression)) - - hasImage: (image_url) -> - image_url - -class CakeSide.Collections.TutorialsCollection extends Backbone.Collection - model: CakeSide.Models.Tutorial - url: '/api/v1/tutorials' diff --git a/app/assets/javascripts/backbone/routers/.gitkeep b/app/assets/javascripts/backbone/routers/.gitkeep deleted file mode 100644 index e69de29b..00000000 --- a/app/assets/javascripts/backbone/routers/.gitkeep +++ /dev/null diff --git a/app/assets/javascripts/backbone/routers/cakes_router.js.coffee b/app/assets/javascripts/backbone/routers/cakes_router.js.coffee deleted file mode 100644 index 5a0922ae..00000000 --- a/app/assets/javascripts/backbone/routers/cakes_router.js.coffee +++ /dev/null @@ -1,7 +0,0 @@ -class CakeSide.Routers.CakesRouter extends Marionette.AppRouter - appRoutes: - "cakes/new": "newCake" - "cakes/:id/edit": "edit" - "cakes/:id": "show" - "cakes/:id/photos/:photo_id": "show" - "cakes": "index" diff --git a/app/assets/javascripts/backbone/routers/dashboard_router.js.coffee b/app/assets/javascripts/backbone/routers/dashboard_router.js.coffee deleted file mode 100644 index 513b2f04..00000000 --- a/app/assets/javascripts/backbone/routers/dashboard_router.js.coffee +++ /dev/null @@ -1,3 +0,0 @@ -class CakeSide.Routers.DashboardRouter extends Marionette.AppRouter - appRoutes: - "": "index" diff --git a/app/assets/javascripts/backbone/routers/profile_router.js.coffee b/app/assets/javascripts/backbone/routers/profile_router.js.coffee deleted file mode 100644 index cf83d4ae..00000000 --- a/app/assets/javascripts/backbone/routers/profile_router.js.coffee +++ /dev/null @@ -1,3 +0,0 @@ -class CakeSide.Routers.ProfileRouter extends Marionette.AppRouter - appRoutes: - "profile/:id": "show" diff --git a/app/assets/javascripts/backbone/routers/tutorials_router.js.coffee b/app/assets/javascripts/backbone/routers/tutorials_router.js.coffee deleted file mode 100644 index 9c942e88..00000000 --- a/app/assets/javascripts/backbone/routers/tutorials_router.js.coffee +++ /dev/null @@ -1,5 +0,0 @@ -class CakeSide.Routers.TutorialsRouter extends Marionette.AppRouter - appRoutes: - "tutorials": "index" - "tutorials/new": "new" - "tutorials/:id": "show" diff --git a/app/assets/javascripts/backbone/templates/.gitkeep b/app/assets/javascripts/backbone/templates/.gitkeep deleted file mode 100644 index e69de29b..00000000 --- a/app/assets/javascripts/backbone/templates/.gitkeep +++ /dev/null diff --git a/app/assets/javascripts/backbone/templates/cakes/cake.jst.ejs b/app/assets/javascripts/backbone/templates/cakes/cake.jst.ejs deleted file mode 100644 index e9800ad5..00000000 --- a/app/assets/javascripts/backbone/templates/cakes/cake.jst.ejs +++ /dev/null @@ -1,13 +0,0 @@ -<% if(hasImage()) { %> - <% photo = randomPhoto() %> - <a href="#cakes/<%= id %>" class="pull-left"> - <img class="media-object" data-src="<%= photo.thumb_url %>" alt="64x64" style="width: 64px; height: 64px;" src="<%= photo.thumb_url %>"> - </a> -<% } %> -<div class="media-body"> - <h4 class="media-heading"><a href="#cakes/<%= id %>"><%= name %></a></h4> - <p> - <a href="#cakes/<%= id %>/edit"><i class="fa fa-edit"></i>edit</a> - <a href="<%= Routes.cake_favorites_path(id) %>"><i class="fa fa-heart"></i>fanclub</a> - </p> -</div> diff --git a/app/assets/javascripts/backbone/templates/cakes/delete_modal.jst.ejs b/app/assets/javascripts/backbone/templates/cakes/delete_modal.jst.ejs deleted file mode 100644 index 370109d5..00000000 --- a/app/assets/javascripts/backbone/templates/cakes/delete_modal.jst.ejs +++ /dev/null @@ -1,32 +0,0 @@ -<div class="modal-dialog" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <h5 class="modal-title">Are you ABSOLUTELY sure?</h5> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"> - <span aria-hidden="true">×</span> - </button> - </div> - <div class="modal-body"> - <% if (hasError()) { %> - <div class="alert alert-dismissible fade show alert-danger" role="alert"> - <button type="button" class="close" data-dismiss="alert" aria-label="Close"> - <span aria-hidden="true">×</span> - </button> - <strong>Error!</strong> <%= errorMessage %> - </div> - <% } %> - <p> - This action <b>CANNOT</b> be undone. - This will permanently delete <em><%= name %></em> photos, and comments. - </p> - <p> - Please type in the name of the cake to confirm. - <input id="confirmation-textbox" type="text" class="form-control" autofocus="" required="" aria-label="Type in the name of the cake to confirm that you want to delete this repository."> - </p> - </div> - <div class="modal-footer"> - <button id="remove-button" type="button" class="btn btn-danger" disabled="disabled">I understand the consequences, delete this cake</button> - <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> - </div> - </div> -</div> diff --git a/app/assets/javascripts/backbone/templates/cakes/edit.jst.ejs b/app/assets/javascripts/backbone/templates/cakes/edit.jst.ejs deleted file mode 100644 index cab7fc92..00000000 --- a/app/assets/javascripts/backbone/templates/cakes/edit.jst.ejs +++ /dev/null @@ -1,39 +0,0 @@ -<div class="row"> - <div class="col"> - <h1><small>Edit</small> <%= cake.name %></h1> - <hr /> - <form id="edit-cake" name="cake" class="form-horizontal"> - <div class="form-group"> - <a class="btn btn-primary add-photo">Upload Photo...</a> - </div> - <div class="form-group"> - <label class="" for="cake_name">Name</label> - <input class="form-control" id="cake_name" name="name" type="text" value="<%= cake.name %>" required="required" /> - </div> - <div class="form-group"> - <label for="category_id">Category</label> - <select id="cake_category_id" name="category_id" class="form-control"> - <% _.each(categories, function(category) { %> - <option value="<%= category.id %>"><%= category.name %></option> - <% }); %> - </select> - </div> - <div class="form-group"> - <label class="" for="cake_story">Description</label> - <textarea class="form-control" id="cake_story" name="story" rows="3"><%= cake.story %></textarea> - </div> - <div class="form-group"> - <label for="cake_tags" class="">Tags</label> - <% if (typeof(cake.tags) === "string") { %> - <% tags = _.map(cake.tags.split(','), function(x){ return x; }) %> - <% } else { %> - <% tags = _.map(cake.tags, function(x){ return x.name; }) %> - <% } %> - <input name="cake_tags" type="text" id="cake_tags" value="<%= tags %>" class="form-control" autocomplete="off" /> - </div> - <button id='save-button' type="submit" class="btn btn-primary">Publish</button> - <a href="#cakes/<%= cake.id %>" class="btn btn-secondary">Cancel</a> - </form> - </div> -</div> -<div class="card-columns"></div> diff --git a/app/assets/javascripts/backbone/templates/cakes/new.jst.ejs b/app/assets/javascripts/backbone/templates/cakes/new.jst.ejs deleted file mode 100644 index cc26c43b..00000000 --- a/app/assets/javascripts/backbone/templates/cakes/new.jst.ejs +++ /dev/null @@ -1,18 +0,0 @@ -<h1>Share cake</h1> -<hr /> -<form id="new-cake" name="cake" class="form-horizontal"> - <div class="form-group"> - <label for="cake_name">Name</label> - <input class="form-control" id="cake_name" name="name" type="text" required="required"> - </div> - <div class="form-group"> - <label for="category_id">Category</label> - <select id="cake_category_id" name="category_id" class="form-control" required="required"> - <% _.each(categories, function(category) { %> - <option value="<%= category.id %>"><%= category.name %></option> - <% }); %> - </select> - </div> - <button id='save-button' type="submit" class="btn btn-primary">Create</button> - <a href="#cakes" class="btn btn-secondary">Cancel</a> -</form> diff --git a/app/assets/javascripts/backbone/templates/cakes/no_cakes.jst.ejs b/app/assets/javascripts/backbone/templates/cakes/no_cakes.jst.ejs deleted file mode 100644 index 9d8787ba..00000000 --- a/app/assets/javascripts/backbone/templates/cakes/no_cakes.jst.ejs +++ /dev/null @@ -1 +0,0 @@ -<p>You haven't shared any creations yet. <a href="#cakes/new">Get Started</a></p> diff --git a/app/assets/javascripts/backbone/templates/cakes/show.jst.ejs b/app/assets/javascripts/backbone/templates/cakes/show.jst.ejs deleted file mode 100644 index 45fb0cd8..00000000 --- a/app/assets/javascripts/backbone/templates/cakes/show.jst.ejs +++ /dev/null @@ -1,26 +0,0 @@ -<div class="row"> - <div class="col"> - <h1><a href="#cakes/<%= id %>"><%= name %></a></h1> - <hr /> - <% if (typeof(tags) === "string") { %> - <% _.each(tags.split(','), function(tag){ %> - <a href="<%= Routes.creation_tag_path(tag) %>"> - <span class="badge badge-info"><%= tag %></span> - </a> - <% }); %> - <% } else { %> - <% _.each(tags, function(tag){ %> - <a href="<%= Routes.creation_tag_path(tag.name) %>"> - <span class="badge badge-info"><%= tag.name %></span> - </a> - <% }); %> - <% } %> - <div class="float-right"> - <a href="#cakes/<%= id %>/edit" class="btn btn-primary">Edit</a> - <a class="add-photo btn btn-secondary">Add Photo</a> - <a id="remove-cake-button" class="btn btn-danger">Delete this cake</a> - </div> - <p><%= story %></p> - </div> -</div> -<div class="card-columns"></div> diff --git a/app/assets/javascripts/backbone/templates/cakes/thumbnail.jst.ejs b/app/assets/javascripts/backbone/templates/cakes/thumbnail.jst.ejs deleted file mode 100644 index 7ae1bef3..00000000 --- a/app/assets/javascripts/backbone/templates/cakes/thumbnail.jst.ejs +++ /dev/null @@ -1,8 +0,0 @@ -<% if (uploading()) { %> - <div class="progress"> - <div class="progress-bar progress-bar-striped progress-bar-animated bg-success" role="progressbar" style="width: <%= percentComplete %>%" aria-valuenow="<%= percentComplete %>" aria-valuemin="<%= percentComplete %>" aria-valuemax="100"><%= percentComplete %>%</div> - </div> -<% } %> -<a href="#cakes/<%= cake_id %>/photos/<%= id %>"> - <img src="<%= thumb_url %>" class="card-img-top" /> -</a> diff --git a/app/assets/javascripts/backbone/templates/photos/new-modal.jst.ejs b/app/assets/javascripts/backbone/templates/photos/new-modal.jst.ejs deleted file mode 100644 index c138b423..00000000 --- a/app/assets/javascripts/backbone/templates/photos/new-modal.jst.ejs +++ /dev/null @@ -1,24 +0,0 @@ -<div class="modal-dialog" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <h5 class="modal-title">Upload Photo</h5> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"> - <span aria-hidden="true">×</span> - </button> - </div> - <div class="modal-body"> - <form class="form-horizontal"> - <span class="btn btn-default btn-file"> - <input id="photo-attachment" name="attachment" type="file" accept="image/*"> - </span> - <input id="watermark" name="watermark" maxlength="30" size="30" type="text" placeholder="watermark" class="form-control" /> - <small class="form-text muted"> on CakeSide.com</small> - </form> - <img id="preview-image" src="#" alt="your image" class="hide" /> - </div> - <div class="modal-footer"> - <button id="upload-photo-button" type="button" class="btn btn-primary">Save changes</button> - <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> - </div> - </div> -</div> diff --git a/app/assets/javascripts/backbone/templates/profiles/show.jst.ejs b/app/assets/javascripts/backbone/templates/profiles/show.jst.ejs deleted file mode 100644 index 150073d8..00000000 --- a/app/assets/javascripts/backbone/templates/profiles/show.jst.ejs +++ /dev/null @@ -1,45 +0,0 @@ -<h1>Public Profile</h1> -<hr /> -<div id="status-message" class="alert alert-dismissible alert-danger hide" role="alert"> - <button type="button" class="close" data-dismiss="alert" aria-label="Close"> - <span aria-hidden="true">×</span> - </button> -</div> - -<form id="profile-form" class="form-horizontal"> - <div class="form-group"> - <label class="" for="user_name">Name</label> - <input class="form-control" id="user_name" name="user[name]" type="text" value="<%= name %>" required="required"> - <span class="help-inline"></span> - </div> - <div class="form-group"> - <label class="" for="user_email">Email</label> - <input class="form-control" id="user_email" name="user[email]" type="email" value="<%= email %>" required="required"> - <span class="help-inline"></span> - </div> - <div class="form-group"> - <label class="" for="user_website">URL</label> - <input class="form-control url" id="user_website" name="user[website]" placeholder="https://www.cakeside.com" type="url" value="<%= website %>"> - <span class="help-inline"></span> - </div> - <div class="form-group"> - <label class="" for="user_city">Location</label> - <input class="form-control" id="user_city" name="user[city]" type="text" value="<%= city %>"> - <span class="help-inline"></span> - </div> - <div class="form-group"> - <label class="" for="user_twitter">Twitter username</label> - <div class="input-group"> - <span class="input-group-addon">@</span> - <input class="form-control" id="user_twitter" maxlength="15" name="user[twitter]" placeholder="without the @ sign" size="255" type="text" value="<%= twitter %>"> - </div> - <span class="help-inline"></span> - </div> - <div class="form-group"> - <label class="" for="user_facebook">Facebook</label> - <input class="form-control" id="user_facebook" maxlength="255" name="user[facebook]" placeholder="http://www.facebook.com/your_profile" size="255" type="text" value="<%= facebook %>"> - <span class="help-inline"></span> - </div> - <input id="save-button" type="submit" class="btn btn-primary" value="Update profile"> - <button id="cancel-button" type="reset" class="btn">Cancel</button> -</form> diff --git a/app/assets/javascripts/backbone/templates/tutorials/new.jst.ejs b/app/assets/javascripts/backbone/templates/tutorials/new.jst.ejs deleted file mode 100644 index 965a62f1..00000000 --- a/app/assets/javascripts/backbone/templates/tutorials/new.jst.ejs +++ /dev/null @@ -1,23 +0,0 @@ -<h1>Share a tutorial link</h1> -<hr /> -<form id="new-tutorial" name='tutorial' class='form-horizontal'> - <div id="url-group" class="form-group"> - <label for="tutorial_url">Tutorial URL</label> - <input class="form-control" id="tutorial_url" name="url" type="text" value="<%= url %>" placeholder="http://www.cakeside.com/" autofocus> - </div> - <div class="form-group"> - <label for="tags">Tags</label> - <input type="text" id="tutorial_tags" name="tags" value="" class="form-control" autocomplete="off" /> - <p class="help-block"> Note: help people find this tutorial by adding some keyword tags </p> - </div> - <button id='save-button' type="submit" class="btn btn-primary">Save</button> - <a href="#tutorials" class="btn btn-secondary">Cancel</a> -</form> -<div id="preview-panel" class="thumbnail"> - <img class="embed-thumb" src="<%= image_url %>" /> - <div class="caption"> - <h3 class="tutorial-heading"><%= heading %></h3> - <p id="tag-list"></p> - <p class="tutorial-description"><%= description %></p> - </div> -</div> diff --git a/app/assets/javascripts/backbone/templates/tutorials/no_tutorials.jst.ejs b/app/assets/javascripts/backbone/templates/tutorials/no_tutorials.jst.ejs deleted file mode 100644 index ab9705b1..00000000 --- a/app/assets/javascripts/backbone/templates/tutorials/no_tutorials.jst.ejs +++ /dev/null @@ -1 +0,0 @@ -<p>You have no tutorials. <a href="#tutorials/new">Get Started</a></p> diff --git a/app/assets/javascripts/backbone/templates/tutorials/show.jst.ejs b/app/assets/javascripts/backbone/templates/tutorials/show.jst.ejs deleted file mode 100644 index 7dcbea00..00000000 --- a/app/assets/javascripts/backbone/templates/tutorials/show.jst.ejs +++ /dev/null @@ -1,16 +0,0 @@ -<div class="row"> - <div class="col"> - <h3><a href="#tutorials/<%= id %>"><%= heading %></a> <small><%= displayDate(created_at) %></small></h3> - <a href="#tutorials/<%= id %>"> - <img src="<%= image_url %>" /> - </a> - <p> - <% _.each(tags, function(tag) { %> - <a href="/tt/<%= tag.name %>"> - <span class="label"><%= tag.name %></span> - </a> - <% }); %> - </p> - <p><%= description %></p> - </div> -</div> diff --git a/app/assets/javascripts/backbone/templates/tutorials/tutorial.jst.ejs b/app/assets/javascripts/backbone/templates/tutorials/tutorial.jst.ejs deleted file mode 100644 index 255344d7..00000000 --- a/app/assets/javascripts/backbone/templates/tutorials/tutorial.jst.ejs +++ /dev/null @@ -1,7 +0,0 @@ -<a href="#tutorials/<%= id %>" class="float-left"> - <img class="media-object" data-src="<%= image_url %>" alt="64x64" style="width: 64px; height: 64px;" src="<%= image_url %>"> -</a> -<div class="media-body"> - <h4 class="media-heading"><%= heading %></h4> - <%= description %> -</div> diff --git a/app/assets/javascripts/backbone/views/.gitkeep b/app/assets/javascripts/backbone/views/.gitkeep deleted file mode 100644 index e69de29b..00000000 --- a/app/assets/javascripts/backbone/views/.gitkeep +++ /dev/null diff --git a/app/assets/javascripts/backbone/views/cakes/cake_view.js.coffee b/app/assets/javascripts/backbone/views/cakes/cake_view.js.coffee deleted file mode 100644 index f0faf97e..00000000 --- a/app/assets/javascripts/backbone/views/cakes/cake_view.js.coffee +++ /dev/null @@ -1,13 +0,0 @@ -CakeSide.Views.Cakes ||= {} - -class CakeSide.Views.Cakes.CakeView extends Marionette.ItemView - template: JST["backbone/templates/cakes/cake"] - tagName: 'div' - className: 'media' - templateHelpers: - randomPhoto: -> - @photos[Math.floor(Math.random()*@photos.length)] - hasImage: -> - typeof(@photos) != 'undefined' && _.any(@photos) - shrink: (message) -> - message.substring(0, 12) diff --git a/app/assets/javascripts/backbone/views/cakes/delete_cake_modal_view.js.coffee b/app/assets/javascripts/backbone/views/cakes/delete_cake_modal_view.js.coffee deleted file mode 100644 index 85253924..00000000 --- a/app/assets/javascripts/backbone/views/cakes/delete_cake_modal_view.js.coffee +++ /dev/null @@ -1,40 +0,0 @@ -CakeSide.Views.Cakes ||= {} - -class CakeSide.Views.Cakes.DeleteCakeModalView extends Marionette.ItemView - template: JST["backbone/templates/cakes/delete_modal"] - ui: - remove_button: "#remove-button" - confirmation_textbox: '#confirmation-textbox' - - templateHelpers: - hasError: -> - typeof(@errorMessage) != "undefined" - - events: - "click #remove-button": "remove" - 'keyup #confirmation-textbox': 'refreshStatus' - - modelEvents: - 'change:errorMessage':'render' - - remove: (e) -> - e.preventDefault() - e.stopPropagation() - @model.unset('errorMessage') - @model.destroy(success: @successfullyDeleted, error: @errorDeletingCake) - - successfullyDeleted: => - @closeDialog() - window.location.hash = "cakes" - - errorDeletingCake: (model, response, options) -> - model.set('errorMessage', 'Could not delete cake.') - - refreshStatus: -> - if @ui.confirmation_textbox.val() == @model.get('name') - @ui.remove_button.removeAttr('disabled') - else - @ui.remove_button.attr('disabled', 'disabled') - - closeDialog: (photo) -> - $('#modal').modal('hide') diff --git a/app/assets/javascripts/backbone/views/cakes/edit_view.js.coffee b/app/assets/javascripts/backbone/views/cakes/edit_view.js.coffee deleted file mode 100644 index 84883bd3..00000000 --- a/app/assets/javascripts/backbone/views/cakes/edit_view.js.coffee +++ /dev/null @@ -1,80 +0,0 @@ -#= require backbone/views/cakes/thumbnail_view -CakeSide.Views.Cakes ||= {} - -class CakeSide.Views.Cakes.EditView extends Marionette.CompositeView - template : JST["backbone/templates/cakes/edit"] - childView: CakeSide.Views.Cakes.ThumbnailView - childViewContainer: '.card-columns' - ui: - name: "#cake_name" - description: "#cake_story" - category: "#cake_category_id" - tags: "#cake_tags" - save_button: '#save-button' - - modelEvents: - 'invalid': 'displayError' - - events : - "keyup input": "refreshStatus" - "change select": "refreshStatus" - "submit #edit-cake" : "update" - "click .add-photo": "launchAddPhoto" - - constructor: (options) -> - super(options) - @collection = @model.photos() - - update : (e) -> - e.preventDefault() - e.stopPropagation() - @disableSaveButton() - @model.save(null, - success: @savedSuccessfully - error: @couldNotSave - ) - - onRender: -> - @$("#cake_category_id").val(@model.category_id()) - @ui.tags.tagit({ availableTags: ALL_TAGS }) - @disableSaveButton() - - savedSuccessfully: (cake) => - window.location.hash = "cakes/#{cake.id}" - - couldNotSave: (cake, xhr) => - @enableSaveButton() - error = new CakeSide.Views.ErrorView - el: @$('form#edit-cake'), - attributesWithErrors: $.parseJSON(xhr.responseText) - error.render() - - refreshStatus: -> - @enableSaveButton() - @model.set('name', @ui.name.val()) - @model.set('story', @ui.description.val()) - @model.set('category_id', @ui.category.val()) - @model.set('tags', @ui.tags.val()) - @model.isValid() - - displayError: (model, error) -> - @disableSaveButton() - - enableSaveButton: -> - @ui.save_button.removeAttr('disabled') - - disableSaveButton: -> - @ui.save_button.attr('disabled', 'disabled') - - serializeData: -> - { - cake: @model.toJSON(), - categories: CakeSide.Application.request('CategoriesRepository').toJSON(), - } - - launchAddPhoto: -> - @displayModal(new CakeSide.Views.Photos.NewModalView(cake: @model)) - - displayModal: (view) -> - $("#modal").html(view.render().el) - $("#modal").modal() diff --git a/app/assets/javascripts/backbone/views/cakes/index_view.js.coffee b/app/assets/javascripts/backbone/views/cakes/index_view.js.coffee deleted file mode 100644 index 6d6d2f9a..00000000 --- a/app/assets/javascripts/backbone/views/cakes/index_view.js.coffee +++ /dev/null @@ -1,8 +0,0 @@ -#= require backbone/views/cakes/no_cakes_view -CakeSide.Views.Cakes ||= {} - -class CakeSide.Views.Cakes.IndexView extends Marionette.CollectionView - childView: CakeSide.Views.Cakes.CakeView - emptyView: CakeSide.Views.Cakes.NoCakesView - className: '' - tagName: 'div' diff --git a/app/assets/javascripts/backbone/views/cakes/new_view.js.coffee b/app/assets/javascripts/backbone/views/cakes/new_view.js.coffee deleted file mode 100644 index 321be655..00000000 --- a/app/assets/javascripts/backbone/views/cakes/new_view.js.coffee +++ /dev/null @@ -1,63 +0,0 @@ -CakeSide.Views.Cakes ||= {} - -class CakeSide.Views.Cakes.NewView extends Marionette.ItemView - template: JST["backbone/templates/cakes/new"] - ui: - name: "#cake_name" - category: "#cake_category_id" - save_button: '#save-button' - - modelEvents: - 'invalid': 'displayError' - - events: - "keyup input": "refreshStatus" - "change select": "refreshStatus" - "submit #new-cake": "save" - - constructor: (options) -> - super(_.extend(options, { model: new options.collection.model() })) - - save: (e) -> - e.preventDefault() - e.stopPropagation() - @disableSaveButton() - @collection.create(@model, - success: @savedSuccessfully - error: @couldNotSave - ) - - onRender: -> - @$("#cake_category_id").val($("#cake_category_id option:first").val()) - @model.isValid() - - savedSuccessfully: (cake) => - window.location.hash = "cakes/#{cake.id}/edit" - - couldNotSave: (cake, xhr) => - @enableSaveButton() - error = new CakeSide.Views.ErrorView - el: @$('form#new-cake'), - attributesWithErrors: $.parseJSON(xhr.responseText) - error.render() - - refreshStatus: -> - @enableSaveButton() - @model.set('name', @ui.name.val()) - @model.set('category_id', @ui.category.val()) - @model.isValid() - - displayError: (model, error) -> - @disableSaveButton() - - enableSaveButton: -> - @ui.save_button.removeAttr('disabled') - - disableSaveButton: -> - @ui.save_button.attr('disabled', 'disabled') - - serializeData: -> - { - cake: @model.toJSON(), - categories: CakeSide.Application.request('CategoriesRepository').toJSON(), - } diff --git a/app/assets/javascripts/backbone/views/cakes/no_cakes_view.js.coffee b/app/assets/javascripts/backbone/views/cakes/no_cakes_view.js.coffee deleted file mode 100644 index 278d7d37..00000000 --- a/app/assets/javascripts/backbone/views/cakes/no_cakes_view.js.coffee +++ /dev/null @@ -1,5 +0,0 @@ -CakeSide.Views.Cakes ||= {} - -class CakeSide.Views.Cakes.NoCakesView extends Marionette.ItemView - template: JST["backbone/templates/cakes/no_cakes"] - tagName: 'li' diff --git a/app/assets/javascripts/backbone/views/cakes/show_view.js.coffee b/app/assets/javascripts/backbone/views/cakes/show_view.js.coffee deleted file mode 100644 index d225e93f..00000000 --- a/app/assets/javascripts/backbone/views/cakes/show_view.js.coffee +++ /dev/null @@ -1,37 +0,0 @@ -#= require backbone/views/cakes/thumbnail_view -CakeSide.Views.Cakes ||= {} - -class CakeSide.Views.Cakes.ShowView extends Marionette.CompositeView - template: JST["backbone/templates/cakes/show"] - childView: CakeSide.Views.Cakes.ThumbnailView - childViewContainer: '.card-columns' - - events: - "click .add-photo": "launchAddPhoto" - "click #remove-cake-button": "removeCake" - - templateHelpers: - hasImage: -> - typeof(@photos) != 'undefined' && _.any(@photos) - - randomPhoto: -> - if @primary_photo_id - _.find @photos, (photo) => - photo.id.toString() == @primary_photo_id - else - @photos[Math.floor(Math.random()*@photos.length)] - - constructor: (options) -> - super(options) - @collection = @model.photos() - @model.set('primary_photo_id', options.photo_id) if options.photo_id - - launchAddPhoto: -> - @displayModal(new CakeSide.Views.Photos.NewModalView(cake: @model)) - - removeCake: -> - @displayModal(new CakeSide.Views.Cakes.DeleteCakeModalView(model: @model)) - - displayModal: (view) -> - $("#modal").html(view.render().el) - $("#modal").modal() diff --git a/app/assets/javascripts/backbone/views/cakes/thumbnail_view.js.coffee b/app/assets/javascripts/backbone/views/cakes/thumbnail_view.js.coffee deleted file mode 100644 index 085a8f11..00000000 --- a/app/assets/javascripts/backbone/views/cakes/thumbnail_view.js.coffee +++ /dev/null @@ -1,13 +0,0 @@ -CakeSide.Views.Cakes ||= {} - -class CakeSide.Views.Cakes.ThumbnailView extends Marionette.ItemView - template: JST['backbone/templates/cakes/thumbnail'] - tagName: 'div' - className: 'card' - modelEvents: - 'sync': 'render' - 'change:percentComplete': 'render' - - templateHelpers: - uploading: -> - typeof(@percentComplete) != "undefined" && @percentComplete != 100 diff --git a/app/assets/javascripts/backbone/views/disqus_view.js.coffee b/app/assets/javascripts/backbone/views/disqus_view.js.coffee deleted file mode 100644 index 1379691a..00000000 --- a/app/assets/javascripts/backbone/views/disqus_view.js.coffee +++ /dev/null @@ -1,32 +0,0 @@ -class CakeSide.Views.DisqusView extends Backbone.View - el: "#disqus_thread" - initialize: (options) -> - disqus = document.createElement('script') - disqus.type = 'text/javascript' - disqus.async = true - disqus.src = "//#{options.disqus_shortname}.disqus.com/embed.js" - (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(disqus) - - render: (options) -> - try - @$el.removeClass('hidden') - that = @ - DISQUS.reset - reload: true, - config: -> - @page.identifier = options.identifier - @page.title = "CakeSide - #{options.title}" - @page.url = options.url - @callbacks.onNewComment = [that.saveComment] - @ - catch error - console.log(error) - finally - @ - - hide: -> - @$el.addClass('hidden') - - saveComment: (comment) -> - $.post Routes.comments_path(), { id: comment.id, url: document.URL, comment: comment }, (result) -> - console.log(result) diff --git a/app/assets/javascripts/backbone/views/error_view.js.coffee b/app/assets/javascripts/backbone/views/error_view.js.coffee deleted file mode 100644 index 86f907e0..00000000 --- a/app/assets/javascripts/backbone/views/error_view.js.coffee +++ /dev/null @@ -1,27 +0,0 @@ -CakeSide.Views.Cakes ||= {} - -class CakeSide.Views.ErrorView extends Backbone.View - initialize: (options) -> - @attributesWithErrors = options.attributesWithErrors - _.bindAll(@, "clearOldErrors", "renderErrors", "renderError", "fieldFor") - - render: () -> - @clearOldErrors() - @renderErrors() - - clearOldErrors: () -> - @$(".error").removeClass("error") - @$("p.inline-errors").remove() - - renderErrors: () -> - _.each(@attributesWithErrors.errors, @renderError) - - renderError: (errors, attribute) -> - errorString = errors.join(", ") - field = @fieldFor(attribute) - errorTag = $('<p>').addClass('inline-errors').text(errorString) - field.append(errorTag) - field.addClass("error") - - fieldFor: (attribute) -> - @$("#cake_#{attribute}").parent() diff --git a/app/assets/javascripts/backbone/views/photos/new_modal_view.js.coffee b/app/assets/javascripts/backbone/views/photos/new_modal_view.js.coffee deleted file mode 100644 index b618ef16..00000000 --- a/app/assets/javascripts/backbone/views/photos/new_modal_view.js.coffee +++ /dev/null @@ -1,50 +0,0 @@ -CakeSide.Views.Photos ||= {} - -class CakeSide.Views.Photos.NewModalView extends Marionette.ItemView - template: JST["backbone/templates/photos/new-modal"] - ui: - watermark: '#watermark' - upload_button: "#upload-photo-button" - - events: - "click #upload-photo-button": "save" - "change #photo-attachment": "displayPreview" - "keyup #watermark": "updateWatermark" - - constructor: (options) -> - super(options) - @collection = CakeSide.Application.request('PhotosRepository', options.cake.id) - @cake = options.cake - @model = new @collection.model(cake_id: @cake.id) - - save: (e) -> - e.preventDefault() - e.stopPropagation() - @closeDialog() - @model.on('progress', @displayProgress) - @collection.create(@model) - - displayPreview: (event) -> - input = event.currentTarget - if (input.files && input.files[0]) - file = input.files[0] - reader = new FileReader() - reader.onload = (e) -> - $('#preview-image').attr('src', e.target.result) - $('#preview-image').removeClass('hide') - reader.readAsDataURL(file) - @model.set('image', file) - @model.set('thumb_url', event.target.result) - else - $('#preview-image').addClass('hide') - - displayProgress: (progress) -> - percentCompleted = progress*100 - @set('percentComplete', percentCompleted) - - closeDialog: (photo) -> - $('#modal').modal('hide') - @remove() - - updateWatermark: -> - @model.set('watermark', @ui.watermark.val()) diff --git a/app/assets/javascripts/backbone/views/profiles/show_view.js.coffee b/app/assets/javascripts/backbone/views/profiles/show_view.js.coffee deleted file mode 100644 index d7f36ae5..00000000 --- a/app/assets/javascripts/backbone/views/profiles/show_view.js.coffee +++ /dev/null @@ -1,71 +0,0 @@ -CakeSide.Views.Profiles ||= {} - -class CakeSide.Views.Profiles.ShowView extends Marionette.ItemView - template: JST["backbone/templates/profiles/show"] - ui: - name: '#user_name' - email: '#user_email' - city: '#user_city' - website: '#user_website' - facebook: '#user_facebook' - twitter: '#user_twitter' - save_button: '#save-button' - cancel_button: '#cancel-button' - status: '#status-message' - - modelEvents: - 'invalid': 'displayError' - 'sync': 'syncedUp' - - events: - "submit #profile-form": "save" - "keyup input": "refreshStatus" - 'click #cancel-button': 'cancel' - - save: (event) -> - event.preventDefault() - event.stopPropagation() - @disableSaveButton() - @model.save(null, - success: @savedSuccessfully - error: @couldNotSave - ) - - syncedUp: (event) -> - console.log(arguments) - console.log('syncd') - - savedSuccessfully: (profile) => - @disableSaveButton() - @ui.status.removeClass('hide') - @ui.status.removeClass('alert-danger') - @ui.status.html("Saved!") - - couldNotSave: => - console.log('fudge') - - enableSaveButton: -> - @ui.save_button.removeAttr('disabled') - - disableSaveButton: -> - @ui.save_button.attr('disabled', 'disabled') - - displayError: -> - @disableSaveButton() - @ui.status.addClass('alert-danger') - @ui.status.removeClass('hide') - @ui.status.html(@model.validationError) - - refreshStatus: -> - @ui.status.addClass('hide') - @enableSaveButton() - @model.set('name', @ui.name.val()) - @model.set('email', @ui.email.val()) - @model.set('city', @ui.city.val()) - @model.set('website', @ui.website.val()) - @model.set('facebook', @ui.facebook.val()) - @model.set('twitter', @ui.twitter.val()) - @model.isValid() - - cancel: -> - @enableSaveButton() diff --git a/app/assets/javascripts/backbone/views/tutorials/index_view.js.coffee b/app/assets/javascripts/backbone/views/tutorials/index_view.js.coffee deleted file mode 100644 index 6cdce8db..00000000 --- a/app/assets/javascripts/backbone/views/tutorials/index_view.js.coffee +++ /dev/null @@ -1,9 +0,0 @@ -#= require backbone/views/tutorials/no_tutorials_view -#= require backbone/views/tutorials/tutorial_view -CakeSide.Views.Tutorials ||= {} - -class CakeSide.Views.Tutorials.IndexView extends Marionette.CollectionView - childView: CakeSide.Views.Tutorials.TutorialView - emptyView: CakeSide.Views.Tutorials.NoTutorialsView - className: '' - tagName: 'div' diff --git a/app/assets/javascripts/backbone/views/tutorials/new_view.js.coffee b/app/assets/javascripts/backbone/views/tutorials/new_view.js.coffee deleted file mode 100644 index e8ba976f..00000000 --- a/app/assets/javascripts/backbone/views/tutorials/new_view.js.coffee +++ /dev/null @@ -1,68 +0,0 @@ -#= require service/embedly_service -class CakeSide.Views.Tutorials.NewView extends Marionette.ItemView - template: JST['backbone/templates/tutorials/new'] - ui: - url: '#tutorial_url' - url_group: '#url-group' - save_button: '#save-button' - preview: '#preview-panel' - tags: '#tutorial_tags' - - modelEvents: - 'invalid': 'displayError' - 'change:url': 'render' - - events: - 'change #tutorial_url': 'loadUrl' - "submit #new-tutorial": "save" - - initialize: -> - @model = new @collection.model() - @service = new EmbedlyService() - - loadUrl: -> - if @model.isValidUrl(@ui.url.val()) - @service.retrieve_info_on(@ui.url.val(), @updateTutorial) - @validate() - - updateTutorial: (attributes) => - @model.set - url: attributes.url - heading: attributes.title - description: attributes.description - image_url: if _.any(attributes.images) then attributes.images[0].url else '' - author: attributes.provider_name - author_url: attributes.provider_url - - onRender: -> - @ui.tags.tagit({ availableTags: ALL_TAGS }) - - validate: -> - @model.isValid() - - displayError: (model, error) -> - @ui.save_button.attr('disabled', 'disabled') - @ui.preview.hide() - @ui.url_group.addClass("error") - errorTag = $('<span>').addClass('help-inline').text(error) - @ui.url_group.find('.controls').append(errorTag) - - save: (event) -> - event.preventDefault() - event.stopPropagation() - @model.set('tags', @ui.tags.val()) - @ui.save_button.attr('disabled', 'disabled') - @collection.create(@model, - success: @savedSuccessfully - error: @couldNotSave - ) - - savedSuccessfully: (cake) => - window.location.hash = "tutorials" - - couldNotSave: (cake, xhr) => - @ui.save_button.removeAttr('disabled') - error = new CakeSide.Views.ErrorView - el: @$('form#new-tutorial'), - attributesWithErrors: $.parseJSON(xhr.responseText) - error.render() diff --git a/app/assets/javascripts/backbone/views/tutorials/no_tutorials_view.js.coffee b/app/assets/javascripts/backbone/views/tutorials/no_tutorials_view.js.coffee deleted file mode 100644 index 77b2e71c..00000000 --- a/app/assets/javascripts/backbone/views/tutorials/no_tutorials_view.js.coffee +++ /dev/null @@ -1,5 +0,0 @@ -CakeSide.Views.Tutorials ||= {} - -class CakeSide.Views.Tutorials.NoTutorialsView extends Marionette.ItemView - template: JST['backbone/templates/tutorials/no_tutorials'] - tagName: 'li' diff --git a/app/assets/javascripts/backbone/views/tutorials/show_view.js.coffee b/app/assets/javascripts/backbone/views/tutorials/show_view.js.coffee deleted file mode 100644 index 9f6ef782..00000000 --- a/app/assets/javascripts/backbone/views/tutorials/show_view.js.coffee +++ /dev/null @@ -1,7 +0,0 @@ -CakeSide.Views.Tutorials ||= {} - -class CakeSide.Views.Tutorials.ShowView extends Marionette.ItemView - template: JST["backbone/templates/tutorials/show"] - templateHelpers: - displayDate: (date) -> - date diff --git a/app/assets/javascripts/backbone/views/tutorials/tutorial_view.js.coffee b/app/assets/javascripts/backbone/views/tutorials/tutorial_view.js.coffee deleted file mode 100644 index 2766b53e..00000000 --- a/app/assets/javascripts/backbone/views/tutorials/tutorial_view.js.coffee +++ /dev/null @@ -1,10 +0,0 @@ -CakeSide.Views.Tutorials ||= {} - -class CakeSide.Views.Tutorials.TutorialView extends Marionette.ItemView - template: JST['backbone/templates/tutorials/tutorial'] - tagName: 'div' - className: 'media' - - templateHelpers: - displayDate: (date) -> - new Date(date).toLocaleDateString() |
