diff options
| author | mo <mo.khan@gmail.com> | 2017-09-02 22:46:07 +0000 |
|---|---|---|
| committer | mo <mo.khan@gmail.com> | 2017-09-02 22:46:07 +0000 |
| commit | 4d6fd17c8f1d7ee0ecb46e8323b61e4006bf39a4 (patch) | |
| tree | e9d098503da331c6b50c339166d1dd8f4a7c3c5f /app/assets/javascripts | |
| parent | 85b4e006052f51dfb7fb02ee1fe7d6914cb6b17c (diff) | |
| parent | 6a6daa8c8d9223d6f3b29897bc23df386f28428b (diff) | |
Merge branch 'bootstrap' into 'master'
Bootstrap
Closes #10
See merge request !2
Diffstat (limited to 'app/assets/javascripts')
71 files changed, 388 insertions, 417 deletions
diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 1f73af92..88e4080e 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -1,11 +1,10 @@ //= require jquery -//= require jquery.turbolinks //= require jquery_ujs -//= require turbolinks //= require jquery.ui.all //= require jquery.validate //= require jquery.embedly //= require tag-it +//= require popper //= require bootstrap //= require bootstrap-multiselect //= require underscore @@ -14,17 +13,8 @@ //= require backbone.marionette //= require backbone_rails_sync //= require backbone_datalink -//= require backbone/cakeside //= require backbone-model-file-upload -//= require_tree . +//= require cakeside +//= require_self -var initialize = function(){ - $('.tooltip-item').tooltip(); - $(window).scroll(function(){ - if ($(window).scrollTop() >= ($(document).height() - $(window).height())*0.8){ - $('.more-button').trigger('click'); - } - }); -}; -$(document).ready(initialize); -$(document).on("page:load", initialize); +CakeSide.Behaviour.install(); 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 30d53f86..00000000 --- a/app/assets/javascripts/backbone/templates/cakes/delete_modal.jst.ejs +++ /dev/null @@ -1,24 +0,0 @@ -<div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h2>Are you ABSOLUTELY sure?</h2> -</div> -<div class="modal-body"> - <% if (hasError()) { %> - <div class="alert"> - <button type="button" class="close" data-dismiss="alert">×</button> - <strong>Error!</strong> <%= errorMessage %> - </div> - <% } %> - <p> - This action <b>CANNOT</b> be undone. - This will permanently delete <b><%= name %></b> photos, and comments. - </p> - <p> - Please type in the name of the cake to confirm. - <input id="confirmation-textbox" type="text" class="input-xxlarge" 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"> - <a href="#" class="btn" data-dismiss="modal">Cancel</a> - <button id="remove-button" type="submit" class="btn btn-danger" disabled="disabled">I understand the consequences, delete this cake</button> -</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 e589075f..00000000 --- a/app/assets/javascripts/backbone/templates/cakes/edit.jst.ejs +++ /dev/null @@ -1,56 +0,0 @@ -<div class="row-fluid"> - <div class="span12"> - <h1><small>Edit</small> <%= cake.name %></h1> - <hr /> - <form id="edit-cake" name="cake" class="form-horizontal"> - <fieldset> - <div class="control-group"> - <label class="control-label"></label> - <div class="controls"> - <a class="btn btn-primary add-photo">Upload Photo...</a> - </div> - </div> - <div class="control-group"> - <label class="control-label" for="cake_name">Name*</label> - <div class="controls"> - <input class="input-xxlarge" id="cake_name" name="name" type="text" value="<%= cake.name %>" /> - </div> - </div> - <div class="control-group"> - <label class="control-label">Category</label> - <div class="controls"> - <select id="cake_category_id" name="category_id"> - <% _.each(categories, function(category) { %> - <option value="<%= category.id %>"><%= category.name %></option> - <% }); %> - </select> - </div> - </div> - <div class="control-group"> - <label class="control-label" for="cake_story">Description</label> - <div class="controls"> - <textarea class="input-xxlarge" id="cake_story" name="story" rows="3"><%= cake.story %></textarea> - </div> - </div> - <div class="control-group"> - <label for="cake_tags" class="control-label">Tags</label> - <div class="controls"> - <% 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="input-xxlarge" autocomplete="off" /> - </div> - </div> - <div class="form-actions"> - <button id='save-button' type="submit" class="btn btn-primary">Publish</button> - <a href="#cakes/<%= cake.id %>" class="btn">Cancel</a> - </div> - </fieldset> - </form> - </div> -</div> -<div class="row-fluid"> - <ul class="thumbnails"></ul> -</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 ad14b2a8..00000000 --- a/app/assets/javascripts/backbone/templates/cakes/new.jst.ejs +++ /dev/null @@ -1,26 +0,0 @@ -<h1>Share cake</h1> -<hr /> -<form id="new-cake" name="cake" class="form-horizontal"> - <fieldset> - <div class="control-group"> - <label class="control-label" for="cake_name">Name*</label> - <div class="controls"> - <input class="input-xxlarge" id="cake_name" name="name" type="text"> - </div> - </div> - <div class="control-group"> - <label class="control-label">Category</label> - <div class="controls"> - <select id="cake_category_id" name="category_id"> - <% _.each(categories, function(category) { %> - <option value="<%= category.id %>"><%= category.name %></option> - <% }); %> - </select> - </div> - </div> - <div class="form-actions"> - <button id='save-button' type="submit" class="btn btn-primary">Create</button> - <a href="#cakes" class="btn">Cancel</a> - </div> - </fieldset> -</form> 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 6a32afdf..00000000 --- a/app/assets/javascripts/backbone/templates/cakes/show.jst.ejs +++ /dev/null @@ -1,50 +0,0 @@ -<div class="row-fluid"> - <div class="span12"> - <p> - <a href="#cakes/<%= id %>/edit" class="btn"> - <i class="icon-edit"></i> <strong>Edit</strong> - </a> - <a class="btn add-photo"> - <i class="icon-plus"></i><strong>Add Photo</strong> - </a> - <a href="<%= Routes.cake_favorites_path(id) %>" class="btn"> - <i class="icon-heart"></i> <strong>Fan Club</strong> - </a> - <a id="remove-cake-button" class="btn btn-danger pull-right"> - <i class="icon-white icon-remove"></i> <strong>Delete this cake</strong> - </a> - </p> - </div> -</div> -<div class="row-fluid"> - <div class="span6"> - <% if (hasImage()) { %> - <% photo = randomPhoto()%> - <a href="#cakes/<%= id %>/photos/<%= photo.id %>"> - <img class="thumbnail" src="<%= photo.large_url %>" alt="<%= name %>" /> - </a> - <% } %> - </div> - <div class="span6"> - <h1><a href="#cakes/<%= id %>"><%= name %></a></h1> - <span> <i class="icon-tags"></i> </span> - <% if (typeof(tags) === "string") { %> - <% _.each(tags.split(','), function(tag){ %> - <a href="<%= Routes.creation_tag_path(tag) %>"> - <span class="label"><%= tag %></span> - </a> - <% }); %> - <% } else { %> - <% _.each(tags, function(tag){ %> - <a href="<%= Routes.creation_tag_path(tag.name) %>"> - <span class="label"><%= tag.name %></span> - </a> - <% }); %> - <% } %> - <hr /> - <p><%= story %></p> - </div> -</div> -<div class="row-fluid"> - <ul class="thumbnails"></ul> -</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 66533081..00000000 --- a/app/assets/javascripts/backbone/templates/cakes/thumbnail.jst.ejs +++ /dev/null @@ -1,11 +0,0 @@ -<div class="thumbnail"> - <% if (uploading()) { %> - <div class="progress progress-striped active"> - <div class="bar" style="width: <%= percentComplete %>%;"></div> - </div> - <% } else { %> - <a href="#cakes/<%= cake_id %>/photos/<%= id %>"> - <img src="<%= thumb_url %>" /> - </a> - <% } %> -</div> 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 7f7a7dfb..00000000 --- a/app/assets/javascripts/backbone/templates/photos/new-modal.jst.ejs +++ /dev/null @@ -1,18 +0,0 @@ -<div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> - <h4>Upload Photo</h4> -</div> -<div class="modal-body"> - <span class="btn btn-default btn-file"> - + Browse... <input id="photo-attachment" name="attachment" type="file" accept="image/*"> - </span> - <p class='pull-right'> - <input id="watermark" name="watermark" maxlength="30" size="30" type="text" placeholder="watermark" /> on CakeSide.com - <a class="tooltip-item" data-placement="right" rel="tooltip" href="#" data-original-title="Watermark your name or company on each uploaded image" data-animation="true"><i class="icon-question-sign"></i></a> - </p> - <img id="preview-image" src="#" alt="your image" class="hide hidden-phone" /> -</div> -<div class="modal-footer"> - <a href="#" class="btn" data-dismiss="modal">Cancel</a> - <button id="upload-photo-button" type="submit" class="btn btn-primary">Upload Photo</button> -</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 5a9903f2..00000000 --- a/app/assets/javascripts/backbone/templates/profiles/show.jst.ejs +++ /dev/null @@ -1,59 +0,0 @@ -<h1>Public Profile</h1> -<hr /> -<div id="status-message" class="alert alert-error hidden"> - <a class="close" data-dismiss="alert" href="#">×</a> -</div> -<form id="profile-form" class="form-horizontal"> - <fieldset> - <div class="control-group"> - <label class="control-label" for="user_name">Name</label> - <div class="controls"> - <input class="input-xlarge" id="user_name" name="user[name]" type="text" value="<%= name %>"> - <span class="help-inline"></span> - </div> - </div> - <div class="control-group"> - <label class="control-label" for="user_email">Email</label> - <div class="controls"> - <input class="input-xlarge" id="user_email" name="user[email]" type="email" value="<%= email %>"> - <span class="help-inline"></span> - </div> - </div> - <div class="control-group"> - <label class="control-label" for="user_website">URL</label> - <div class="controls"> - <input class="input-xlarge url" id="user_website" name="user[website]" placeholder="https://www.cakeside.com" type="url" value="<%= website %>"> - <span class="help-inline"></span> - </div> - </div> - <div class="control-group"> - <label class="control-label" for="user_city">Location</label> - <div class="controls"> - <input class="input-xlarge" id="user_city" name="user[city]" type="text" value="<%= city %>"> - <span class="help-inline"></span> - </div> - </div> - <div class="control-group"> - <label class="control-label" for="user_twitter">Twitter username</label> - <div class="controls"> - <div class="input-prepend"> - <span class="add-on">@</span> - <input class="input-xlarge" 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> - <div class="control-group"> - <label class="control-label" for="user_facebook">Facebook</label> - <div class="controls"> - <input class="input-xlarge" 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> - </div> - <div class="form-actions"> - <input id="save-button" type="submit" class="btn btn-primary" value="Update profile"> - <button id="cancel-button" type="reset" class="btn">Cancel</button> - </div> - </fieldset> -</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 16bc5fed..00000000 --- a/app/assets/javascripts/backbone/templates/tutorials/new.jst.ejs +++ /dev/null @@ -1,33 +0,0 @@ -<h1>Share a tutorial link</h1> -<hr /> -<form id="new-tutorial" name='tutorial' class='form-horizontal'> - <fieldset> - <div id="url-group" class="control-group"> - <label class="control-label" for="tutorial_url">Tutorial URL</label> - <div class="controls"> - <input class="input-xxlarge" id="tutorial_url" name="url" type="text" value="<%= url %>" placeholder="http://www.cakeside.com/" autofocus> - </div> - </div> - <div class="control-group"> - <label for="tags" class="control-label">Tags</label> - <div class="controls"> - <input type="text" id="tutorial_tags" name="tags" value="" class="input-xxlarge" autocomplete="off" /> - <p class="help-block"> - Note: help people find this tutorial by adding some keyword tags - </p> - </div> - </div> - <div class="form-actions"> - <button id='save-button' type="submit" class="btn btn-primary">Save</button> - <a href="#tutorials" class="btn">Cancel</a> - </div> - </fieldset> -</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/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/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/thumbnail_view.js.coffee b/app/assets/javascripts/backbone/views/cakes/thumbnail_view.js.coffee deleted file mode 100644 index 5e772232..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: 'li' - className: 'span2' - modelEvents: - 'sync': 'render' - 'change:percentComplete': 'render' - - templateHelpers: - uploading: -> - typeof(@percentComplete) != "undefined" && @percentComplete != 100 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/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() diff --git a/app/assets/javascripts/backbone/cakeside.js.coffee b/app/assets/javascripts/cakeside.js.coffee index 6f468e52..f49ccd22 100644 --- a/app/assets/javascripts/backbone/cakeside.js.coffee +++ b/app/assets/javascripts/cakeside.js.coffee @@ -1,16 +1,18 @@ #= require_self +#= require_tree ./infrastructure #= require_tree ./templates #= require_tree ./models -#= require_tree ./views +#= require ./views #= require_tree ./controllers #= require_tree ./routers +#= require_tree ./service window.CakeSide = Models: {} Collections: {} Routers: {} Views: {} - Controllers: {} + Controllers: { My: {} } initialize: (data) -> $(document).ajaxSend (event, xhr) -> if data.access_token @@ -23,13 +25,13 @@ window.CakeSide = CakeSide.Application.addInitializer (options) -> new CakeSide.Routers.CakesRouter - controller: new CakeSide.Controllers.CakesController() + controller: new CakeSide.Controllers.My.CakesController() new CakeSide.Routers.TutorialsRouter - controller: new CakeSide.Controllers.TutorialsController() + controller: new CakeSide.Controllers.My.TutorialsController() new CakeSide.Routers.DashboardRouter - controller: new CakeSide.Controllers.DashboardController() + controller: new CakeSide.Controllers.My.DashboardController() new CakeSide.Routers.ProfileRouter - controller: new CakeSide.Controllers.ProfileController() + controller: new CakeSide.Controllers.My.ProfileController() CakeSide.Application.on 'start', -> if Backbone.history diff --git a/app/assets/javascripts/backbone/controllers/cakes_controller.js.coffee b/app/assets/javascripts/controllers/my/cakes_controller.js.coffee index 70d99253..6a56d6bc 100644 --- a/app/assets/javascripts/backbone/controllers/cakes_controller.js.coffee +++ b/app/assets/javascripts/controllers/my/cakes_controller.js.coffee @@ -1,5 +1,5 @@ -class CakeSide.Controllers.CakesController extends Marionette.Controller - views: CakeSide.Views.Cakes +class CakeSide.Controllers.My.CakesController extends Marionette.Controller + views: CakeSide.Views.My.Cakes initialize: (options) -> @content_region = CakeSide.Application.content_region @cakes = CakeSide.Application.request('CakesRepository') @@ -30,5 +30,5 @@ class CakeSide.Controllers.CakesController extends Marionette.Controller #@comment_view.hide() selectTab: -> - $('.nav-list').children().removeClass('active') - $('#cakes-tab').addClass('active') + $('.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/controllers/my/dashboard_controller.js.coffee index 23169914..734aedc9 100644 --- a/app/assets/javascripts/backbone/controllers/dashboard_controller.js.coffee +++ b/app/assets/javascripts/controllers/my/dashboard_controller.js.coffee @@ -1,4 +1,4 @@ -class CakeSide.Controllers.DashboardController extends Marionette.Controller +class CakeSide.Controllers.My.DashboardController extends Marionette.Controller initialize: (options) -> #@comment_view = CakeSide.Application.request('CommentView') diff --git a/app/assets/javascripts/backbone/controllers/profile_controller.js.coffee b/app/assets/javascripts/controllers/my/profile_controller.js.coffee index 984cf4d7..c429c035 100644 --- a/app/assets/javascripts/backbone/controllers/profile_controller.js.coffee +++ b/app/assets/javascripts/controllers/my/profile_controller.js.coffee @@ -1,5 +1,5 @@ -class CakeSide.Controllers.ProfileController extends Marionette.Controller - views: CakeSide.Views.Profiles +class CakeSide.Controllers.My.ProfileController extends Marionette.Controller + views: CakeSide.Views.My.Profiles initialize: (options) -> @content_region = CakeSide.Application.content_region #@comment_view = CakeSide.Application.request('CommentView') @@ -14,5 +14,5 @@ class CakeSide.Controllers.ProfileController extends Marionette.Controller @content_region.show(new @views.ShowView(model: profile)) selectTab: -> - $('.nav-list').children().removeClass('active') - $('#profile-tab').addClass('active') + $('.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/controllers/my/tutorials_controller.js.coffee index 5f1997c4..dcee92d5 100644 --- a/app/assets/javascripts/backbone/controllers/tutorials_controller.js.coffee +++ b/app/assets/javascripts/controllers/my/tutorials_controller.js.coffee @@ -1,5 +1,5 @@ -class CakeSide.Controllers.TutorialsController extends Marionette.Controller - views: CakeSide.Views.Tutorials +class CakeSide.Controllers.My.TutorialsController extends Marionette.Controller + views: CakeSide.Views.My.Tutorials initialize: (options) -> @content_region = CakeSide.Application.content_region @tutorials = CakeSide.Application.request('TutorialsRepository') @@ -25,5 +25,5 @@ class CakeSide.Controllers.TutorialsController extends Marionette.Controller #url: tutorial.get('url') selectTab: -> - $('.nav-list').children().removeClass('active') - $('#tutorial-tab').addClass('active') + $('.nav-link').removeClass('active') + $('a[href="/my#tutorials/new"]').addClass('active') diff --git a/app/assets/javascripts/infrastructure/auto_view.js.coffee b/app/assets/javascripts/infrastructure/auto_view.js.coffee new file mode 100644 index 00000000..4966221a --- /dev/null +++ b/app/assets/javascripts/infrastructure/auto_view.js.coffee @@ -0,0 +1,23 @@ +class CakeSide.AutoView extends Backbone.View + @views: {} + @constructors: {} + + @viewName: (name) -> + @constructors[name] = this + @::name = name + + @install: (element) -> + name = $(element).data('autoview') + constructor = @constructors[name] + if constructor == undefined + console.error("Could not find autoview for #{name}") + return + + view = new constructor + el: element + $el: $(element) + view.render() + @views[name] ?= [] + @views[name].push(view) + + render: -> { } diff --git a/app/assets/javascripts/infrastructure/auto_view_setup.js.coffee b/app/assets/javascripts/infrastructure/auto_view_setup.js.coffee new file mode 100644 index 00000000..c0d71fe2 --- /dev/null +++ b/app/assets/javascripts/infrastructure/auto_view_setup.js.coffee @@ -0,0 +1,8 @@ +#= require ./behaviour + +class CakeSide.AutoViewSetup extends CakeSide.Behaviour + @on "load" + + execute: -> + for element in $('[data-autoview]') + CakeSide.AutoView.install(element) diff --git a/app/assets/javascripts/infrastructure/behaviour.js.coffee b/app/assets/javascripts/infrastructure/behaviour.js.coffee new file mode 100644 index 00000000..a5354e25 --- /dev/null +++ b/app/assets/javascripts/infrastructure/behaviour.js.coffee @@ -0,0 +1,12 @@ +class CakeSide.Behaviour + @events: {} + + @on: (event) -> + @events[event] ?= [] + @events[event].push(@) + + @install: -> + for event of @events + window.addEventListener event, () => + for behaviour in @events[event] + new behaviour().execute() diff --git a/app/assets/javascripts/infrastructure/infinite_scroll.js.coffee b/app/assets/javascripts/infrastructure/infinite_scroll.js.coffee new file mode 100644 index 00000000..ab7d2b61 --- /dev/null +++ b/app/assets/javascripts/infrastructure/infinite_scroll.js.coffee @@ -0,0 +1,11 @@ +#= require ./behaviour + +class CakeSide.InfiniteScroll extends CakeSide.Behaviour + @on "scroll" + + execute: -> + $moreButton = $('[data-infinite-scroll]') + return if $moreButton.length == 0 + + if $(window).scrollTop() >= ($(document).height() - $(window).height())*0.8 + $moreButton.trigger('click') diff --git a/app/assets/javascripts/backbone/models/.gitkeep b/app/assets/javascripts/models/.gitkeep index e69de29b..e69de29b 100644 --- a/app/assets/javascripts/backbone/models/.gitkeep +++ b/app/assets/javascripts/models/.gitkeep diff --git a/app/assets/javascripts/backbone/models/cake.js.coffee b/app/assets/javascripts/models/cake.js.coffee index 7f925394..7f925394 100644 --- a/app/assets/javascripts/backbone/models/cake.js.coffee +++ b/app/assets/javascripts/models/cake.js.coffee diff --git a/app/assets/javascripts/backbone/models/category.js.coffee b/app/assets/javascripts/models/category.js.coffee index 98437966..98437966 100644 --- a/app/assets/javascripts/backbone/models/category.js.coffee +++ b/app/assets/javascripts/models/category.js.coffee diff --git a/app/assets/javascripts/backbone/models/photo.js.coffee b/app/assets/javascripts/models/photo.js.coffee index eb1cff76..eb1cff76 100644 --- a/app/assets/javascripts/backbone/models/photo.js.coffee +++ b/app/assets/javascripts/models/photo.js.coffee diff --git a/app/assets/javascripts/backbone/models/profile.js.coffee b/app/assets/javascripts/models/profile.js.coffee index 189d83e4..189d83e4 100644 --- a/app/assets/javascripts/backbone/models/profile.js.coffee +++ b/app/assets/javascripts/models/profile.js.coffee diff --git a/app/assets/javascripts/backbone/models/tutorials.js.coffee b/app/assets/javascripts/models/tutorials.js.coffee index 9e2e8a1f..9e2e8a1f 100644 --- a/app/assets/javascripts/backbone/models/tutorials.js.coffee +++ b/app/assets/javascripts/models/tutorials.js.coffee diff --git a/app/assets/javascripts/backbone/routers/.gitkeep b/app/assets/javascripts/routers/.gitkeep index e69de29b..e69de29b 100644 --- a/app/assets/javascripts/backbone/routers/.gitkeep +++ b/app/assets/javascripts/routers/.gitkeep diff --git a/app/assets/javascripts/backbone/routers/cakes_router.js.coffee b/app/assets/javascripts/routers/cakes_router.js.coffee index 5a0922ae..5a0922ae 100644 --- a/app/assets/javascripts/backbone/routers/cakes_router.js.coffee +++ b/app/assets/javascripts/routers/cakes_router.js.coffee diff --git a/app/assets/javascripts/backbone/routers/dashboard_router.js.coffee b/app/assets/javascripts/routers/dashboard_router.js.coffee index 513b2f04..513b2f04 100644 --- a/app/assets/javascripts/backbone/routers/dashboard_router.js.coffee +++ b/app/assets/javascripts/routers/dashboard_router.js.coffee diff --git a/app/assets/javascripts/backbone/routers/profile_router.js.coffee b/app/assets/javascripts/routers/profile_router.js.coffee index cf83d4ae..cf83d4ae 100644 --- a/app/assets/javascripts/backbone/routers/profile_router.js.coffee +++ b/app/assets/javascripts/routers/profile_router.js.coffee diff --git a/app/assets/javascripts/backbone/routers/tutorials_router.js.coffee b/app/assets/javascripts/routers/tutorials_router.js.coffee index 9c942e88..9c942e88 100644 --- a/app/assets/javascripts/backbone/routers/tutorials_router.js.coffee +++ b/app/assets/javascripts/routers/tutorials_router.js.coffee diff --git a/app/assets/javascripts/service/embedly_service.js.coffee b/app/assets/javascripts/service/embedly_service.js.coffee index 634bc4d0..d447267c 100644 --- a/app/assets/javascripts/service/embedly_service.js.coffee +++ b/app/assets/javascripts/service/embedly_service.js.coffee @@ -1,3 +1,3 @@ -class window.EmbedlyService +class CakeSide.EmbedlyService retrieve_info_on: (url, callback) -> $.embedly.extract(url, {}).progress(callback) diff --git a/app/assets/javascripts/backbone/templates/.gitkeep b/app/assets/javascripts/templates/.gitkeep index e69de29b..e69de29b 100644 --- a/app/assets/javascripts/backbone/templates/.gitkeep +++ b/app/assets/javascripts/templates/.gitkeep diff --git a/app/assets/javascripts/backbone/templates/cakes/cake.jst.ejs b/app/assets/javascripts/templates/my/cakes/cake.jst.ejs index e9800ad5..e9800ad5 100644 --- a/app/assets/javascripts/backbone/templates/cakes/cake.jst.ejs +++ b/app/assets/javascripts/templates/my/cakes/cake.jst.ejs diff --git a/app/assets/javascripts/templates/my/cakes/delete_modal.jst.ejs b/app/assets/javascripts/templates/my/cakes/delete_modal.jst.ejs new file mode 100644 index 00000000..370109d5 --- /dev/null +++ b/app/assets/javascripts/templates/my/cakes/delete_modal.jst.ejs @@ -0,0 +1,32 @@ +<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/templates/my/cakes/edit.jst.ejs b/app/assets/javascripts/templates/my/cakes/edit.jst.ejs new file mode 100644 index 00000000..cab7fc92 --- /dev/null +++ b/app/assets/javascripts/templates/my/cakes/edit.jst.ejs @@ -0,0 +1,39 @@ +<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/templates/my/cakes/new.jst.ejs b/app/assets/javascripts/templates/my/cakes/new.jst.ejs new file mode 100644 index 00000000..cc26c43b --- /dev/null +++ b/app/assets/javascripts/templates/my/cakes/new.jst.ejs @@ -0,0 +1,18 @@ +<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/templates/my/cakes/no_cakes.jst.ejs index 9d8787ba..9d8787ba 100644 --- a/app/assets/javascripts/backbone/templates/cakes/no_cakes.jst.ejs +++ b/app/assets/javascripts/templates/my/cakes/no_cakes.jst.ejs diff --git a/app/assets/javascripts/templates/my/cakes/show.jst.ejs b/app/assets/javascripts/templates/my/cakes/show.jst.ejs new file mode 100644 index 00000000..45fb0cd8 --- /dev/null +++ b/app/assets/javascripts/templates/my/cakes/show.jst.ejs @@ -0,0 +1,26 @@ +<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/templates/my/cakes/thumbnail.jst.ejs b/app/assets/javascripts/templates/my/cakes/thumbnail.jst.ejs new file mode 100644 index 00000000..7ae1bef3 --- /dev/null +++ b/app/assets/javascripts/templates/my/cakes/thumbnail.jst.ejs @@ -0,0 +1,8 @@ +<% 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/templates/my/photos/new-modal.jst.ejs b/app/assets/javascripts/templates/my/photos/new-modal.jst.ejs new file mode 100644 index 00000000..c138b423 --- /dev/null +++ b/app/assets/javascripts/templates/my/photos/new-modal.jst.ejs @@ -0,0 +1,24 @@ +<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/templates/my/profiles/show.jst.ejs b/app/assets/javascripts/templates/my/profiles/show.jst.ejs new file mode 100644 index 00000000..7e861e11 --- /dev/null +++ b/app/assets/javascripts/templates/my/profiles/show.jst.ejs @@ -0,0 +1,45 @@ +<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="" 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="https://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/templates/my/tutorials/new.jst.ejs b/app/assets/javascripts/templates/my/tutorials/new.jst.ejs new file mode 100644 index 00000000..965a62f1 --- /dev/null +++ b/app/assets/javascripts/templates/my/tutorials/new.jst.ejs @@ -0,0 +1,23 @@ +<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/templates/my/tutorials/no_tutorials.jst.ejs index ab9705b1..ab9705b1 100644 --- a/app/assets/javascripts/backbone/templates/tutorials/no_tutorials.jst.ejs +++ b/app/assets/javascripts/templates/my/tutorials/no_tutorials.jst.ejs diff --git a/app/assets/javascripts/backbone/templates/tutorials/show.jst.ejs b/app/assets/javascripts/templates/my/tutorials/show.jst.ejs index a0ebe2b9..7dcbea00 100644 --- a/app/assets/javascripts/backbone/templates/tutorials/show.jst.ejs +++ b/app/assets/javascripts/templates/my/tutorials/show.jst.ejs @@ -1,5 +1,5 @@ -<div class="row-fluid"> - <div class="span12"> +<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 %>" /> diff --git a/app/assets/javascripts/backbone/templates/tutorials/tutorial.jst.ejs b/app/assets/javascripts/templates/my/tutorials/tutorial.jst.ejs index 431f24b6..255344d7 100644 --- a/app/assets/javascripts/backbone/templates/tutorials/tutorial.jst.ejs +++ b/app/assets/javascripts/templates/my/tutorials/tutorial.jst.ejs @@ -1,4 +1,4 @@ -<a href="#tutorials/<%= id %>" class="pull-left"> +<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"> diff --git a/app/assets/javascripts/backbone/views/.gitkeep b/app/assets/javascripts/views/.gitkeep index e69de29b..e69de29b 100644 --- a/app/assets/javascripts/backbone/views/.gitkeep +++ b/app/assets/javascripts/views/.gitkeep diff --git a/app/assets/javascripts/views/cakes/show_page.js.coffee b/app/assets/javascripts/views/cakes/show_page.js.coffee new file mode 100644 index 00000000..c83a3c45 --- /dev/null +++ b/app/assets/javascripts/views/cakes/show_page.js.coffee @@ -0,0 +1,7 @@ +#= require infrastructure/auto_view + +class CakeSide.Views.Cakes.ShowPage extends CakeSide.AutoView + @viewName "cakes#show" + + render: -> + console.log(@name) diff --git a/app/assets/javascripts/backbone/views/disqus_view.js.coffee b/app/assets/javascripts/views/disqus_view.js.coffee index 1379691a..1379691a 100644 --- a/app/assets/javascripts/backbone/views/disqus_view.js.coffee +++ b/app/assets/javascripts/views/disqus_view.js.coffee diff --git a/app/assets/javascripts/backbone/views/error_view.js.coffee b/app/assets/javascripts/views/error_view.js.coffee index 86f907e0..0d232fca 100644 --- a/app/assets/javascripts/backbone/views/error_view.js.coffee +++ b/app/assets/javascripts/views/error_view.js.coffee @@ -1,5 +1,3 @@ -CakeSide.Views.Cakes ||= {} - class CakeSide.Views.ErrorView extends Backbone.View initialize: (options) -> @attributesWithErrors = options.attributesWithErrors diff --git a/app/assets/javascripts/views/index.js.coffee b/app/assets/javascripts/views/index.js.coffee new file mode 100644 index 00000000..2ca99abd --- /dev/null +++ b/app/assets/javascripts/views/index.js.coffee @@ -0,0 +1,9 @@ +#= require_self +#= require_tree . + +CakeSide.Views.Cakes ||= {} +CakeSide.Views.My ||= {} +CakeSide.Views.My.Cakes ||= {} +CakeSide.Views.My.Photos ||= {} +CakeSide.Views.My.Profiles ||= {} +CakeSide.Views.My.Tutorials ||= {} diff --git a/app/assets/javascripts/backbone/views/cakes/cake_view.js.coffee b/app/assets/javascripts/views/my/cakes/cake_view.js.coffee index f0faf97e..86c83a1e 100644 --- a/app/assets/javascripts/backbone/views/cakes/cake_view.js.coffee +++ b/app/assets/javascripts/views/my/cakes/cake_view.js.coffee @@ -1,7 +1,5 @@ -CakeSide.Views.Cakes ||= {} - -class CakeSide.Views.Cakes.CakeView extends Marionette.ItemView - template: JST["backbone/templates/cakes/cake"] +class CakeSide.Views.My.Cakes.CakeView extends Marionette.ItemView + template: JST["templates/my/cakes/cake"] tagName: 'div' className: 'media' templateHelpers: diff --git a/app/assets/javascripts/backbone/views/cakes/delete_cake_modal_view.js.coffee b/app/assets/javascripts/views/my/cakes/delete_cake_modal_view.js.coffee index 85253924..447932ac 100644 --- a/app/assets/javascripts/backbone/views/cakes/delete_cake_modal_view.js.coffee +++ b/app/assets/javascripts/views/my/cakes/delete_cake_modal_view.js.coffee @@ -1,7 +1,5 @@ -CakeSide.Views.Cakes ||= {} - -class CakeSide.Views.Cakes.DeleteCakeModalView extends Marionette.ItemView - template: JST["backbone/templates/cakes/delete_modal"] +class CakeSide.Views.My.Cakes.DeleteCakeModalView extends Marionette.ItemView + template: JST["templates/my/cakes/delete_modal"] ui: remove_button: "#remove-button" confirmation_textbox: '#confirmation-textbox' diff --git a/app/assets/javascripts/backbone/views/cakes/edit_view.js.coffee b/app/assets/javascripts/views/my/cakes/edit_view.js.coffee index c568ca95..f3957598 100644 --- a/app/assets/javascripts/backbone/views/cakes/edit_view.js.coffee +++ b/app/assets/javascripts/views/my/cakes/edit_view.js.coffee @@ -1,10 +1,9 @@ -#= require backbone/views/cakes/thumbnail_view -CakeSide.Views.Cakes ||= {} +#= require views/my/cakes/thumbnail_view -class CakeSide.Views.Cakes.EditView extends Marionette.CompositeView - template : JST["backbone/templates/cakes/edit"] - childView: CakeSide.Views.Cakes.ThumbnailView - childViewContainer: '.thumbnails' +class CakeSide.Views.My.Cakes.EditView extends Marionette.CompositeView + template : JST["templates/my/cakes/edit"] + childView: CakeSide.Views.My.Cakes.ThumbnailView + childViewContainer: '.card-columns' ui: name: "#cake_name" description: "#cake_story" diff --git a/app/assets/javascripts/views/my/cakes/index_view.js.coffee b/app/assets/javascripts/views/my/cakes/index_view.js.coffee new file mode 100644 index 00000000..45805332 --- /dev/null +++ b/app/assets/javascripts/views/my/cakes/index_view.js.coffee @@ -0,0 +1,7 @@ +#= require views/my/cakes/no_cakes_view + +class CakeSide.Views.My.Cakes.IndexView extends Marionette.CollectionView + childView: CakeSide.Views.My.Cakes.CakeView + emptyView: CakeSide.Views.My.Cakes.NoCakesView + className: '' + tagName: 'div' diff --git a/app/assets/javascripts/backbone/views/cakes/new_view.js.coffee b/app/assets/javascripts/views/my/cakes/new_view.js.coffee index 321be655..6988af8a 100644 --- a/app/assets/javascripts/backbone/views/cakes/new_view.js.coffee +++ b/app/assets/javascripts/views/my/cakes/new_view.js.coffee @@ -1,7 +1,5 @@ -CakeSide.Views.Cakes ||= {} - -class CakeSide.Views.Cakes.NewView extends Marionette.ItemView - template: JST["backbone/templates/cakes/new"] +class CakeSide.Views.My.Cakes.NewView extends Marionette.ItemView + template: JST["templates/my/cakes/new"] ui: name: "#cake_name" category: "#cake_category_id" diff --git a/app/assets/javascripts/views/my/cakes/no_cakes_view.js.coffee b/app/assets/javascripts/views/my/cakes/no_cakes_view.js.coffee new file mode 100644 index 00000000..17f190cc --- /dev/null +++ b/app/assets/javascripts/views/my/cakes/no_cakes_view.js.coffee @@ -0,0 +1,3 @@ +class CakeSide.Views.My.Cakes.NoCakesView extends Marionette.ItemView + template: JST["templates/my/cakes/no_cakes"] + tagName: 'li' diff --git a/app/assets/javascripts/backbone/views/cakes/show_view.js.coffee b/app/assets/javascripts/views/my/cakes/show_view.js.coffee index d180b80a..6050a9e6 100644 --- a/app/assets/javascripts/backbone/views/cakes/show_view.js.coffee +++ b/app/assets/javascripts/views/my/cakes/show_view.js.coffee @@ -1,10 +1,9 @@ -#= require backbone/views/cakes/thumbnail_view -CakeSide.Views.Cakes ||= {} +#= require views/my/cakes/thumbnail_view -class CakeSide.Views.Cakes.ShowView extends Marionette.CompositeView - template: JST["backbone/templates/cakes/show"] - childView: CakeSide.Views.Cakes.ThumbnailView - childViewContainer: '.thumbnails' +class CakeSide.Views.My.Cakes.ShowView extends Marionette.CompositeView + template: JST["templates/my/cakes/show"] + childView: CakeSide.Views.My.Cakes.ThumbnailView + childViewContainer: '.card-columns' events: "click .add-photo": "launchAddPhoto" diff --git a/app/assets/javascripts/views/my/cakes/thumbnail_view.js.coffee b/app/assets/javascripts/views/my/cakes/thumbnail_view.js.coffee new file mode 100644 index 00000000..fda5ea13 --- /dev/null +++ b/app/assets/javascripts/views/my/cakes/thumbnail_view.js.coffee @@ -0,0 +1,11 @@ +class CakeSide.Views.My.Cakes.ThumbnailView extends Marionette.ItemView + template: JST['templates/my/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/photos/new_modal_view.js.coffee b/app/assets/javascripts/views/my/photos/new_modal_view.js.coffee index 0972bc52..b2c868c5 100644 --- a/app/assets/javascripts/backbone/views/photos/new_modal_view.js.coffee +++ b/app/assets/javascripts/views/my/photos/new_modal_view.js.coffee @@ -1,7 +1,5 @@ -CakeSide.Views.Photos ||= {} - -class CakeSide.Views.Photos.NewModalView extends Marionette.ItemView - template: JST["backbone/templates/photos/new-modal"] +class CakeSide.Views.My.Photos.NewModalView extends Marionette.ItemView + template: JST["templates/my/photos/new-modal"] ui: watermark: '#watermark' upload_button: "#upload-photo-button" @@ -17,9 +15,6 @@ class CakeSide.Views.Photos.NewModalView extends Marionette.ItemView @cake = options.cake @model = new @collection.model(cake_id: @cake.id) - onRender: -> - @$('.tooltip-item').tooltip() - save: (e) -> e.preventDefault() e.stopPropagation() diff --git a/app/assets/javascripts/backbone/views/profiles/show_view.js.coffee b/app/assets/javascripts/views/my/profiles/show_view.js.coffee index ef694f4b..91076e5e 100644 --- a/app/assets/javascripts/backbone/views/profiles/show_view.js.coffee +++ b/app/assets/javascripts/views/my/profiles/show_view.js.coffee @@ -1,7 +1,5 @@ -CakeSide.Views.Profiles ||= {} - -class CakeSide.Views.Profiles.ShowView extends Marionette.ItemView - template: JST["backbone/templates/profiles/show"] +class CakeSide.Views.My.Profiles.ShowView extends Marionette.ItemView + template: JST["templates/my/profiles/show"] ui: name: '#user_name' email: '#user_email' @@ -37,8 +35,8 @@ class CakeSide.Views.Profiles.ShowView extends Marionette.ItemView savedSuccessfully: (profile) => @disableSaveButton() - @ui.status.removeClass('hidden') - @ui.status.removeClass('alert-error') + @ui.status.removeClass('hide') + @ui.status.removeClass('alert-danger') @ui.status.html("Saved!") couldNotSave: => @@ -52,12 +50,12 @@ class CakeSide.Views.Profiles.ShowView extends Marionette.ItemView displayError: -> @disableSaveButton() - @ui.status.addClass('alert-error') - @ui.status.removeClass('hidden') + @ui.status.addClass('alert-danger') + @ui.status.removeClass('hide') @ui.status.html(@model.validationError) refreshStatus: -> - @ui.status.addClass('hidden') + @ui.status.addClass('hide') @enableSaveButton() @model.set('name', @ui.name.val()) @model.set('email', @ui.email.val()) @@ -69,4 +67,3 @@ class CakeSide.Views.Profiles.ShowView extends Marionette.ItemView cancel: -> @enableSaveButton() - diff --git a/app/assets/javascripts/views/my/tutorials/index_view.js.coffee b/app/assets/javascripts/views/my/tutorials/index_view.js.coffee new file mode 100644 index 00000000..83692962 --- /dev/null +++ b/app/assets/javascripts/views/my/tutorials/index_view.js.coffee @@ -0,0 +1,8 @@ +#= require views/my/tutorials/no_tutorials_view +#= require views/my/tutorials/tutorial_view + +class CakeSide.Views.My.Tutorials.IndexView extends Marionette.CollectionView + childView: CakeSide.Views.My.Tutorials.TutorialView + emptyView: CakeSide.Views.My.Tutorials.NoTutorialsView + className: '' + tagName: 'div' diff --git a/app/assets/javascripts/backbone/views/tutorials/new_view.js.coffee b/app/assets/javascripts/views/my/tutorials/new_view.js.coffee index e8ba976f..4c915fc7 100644 --- a/app/assets/javascripts/backbone/views/tutorials/new_view.js.coffee +++ b/app/assets/javascripts/views/my/tutorials/new_view.js.coffee @@ -1,6 +1,7 @@ #= require service/embedly_service -class CakeSide.Views.Tutorials.NewView extends Marionette.ItemView - template: JST['backbone/templates/tutorials/new'] + +class CakeSide.Views.My.Tutorials.NewView extends Marionette.ItemView + template: JST['templates/my/tutorials/new'] ui: url: '#tutorial_url' url_group: '#url-group' @@ -18,7 +19,7 @@ class CakeSide.Views.Tutorials.NewView extends Marionette.ItemView initialize: -> @model = new @collection.model() - @service = new EmbedlyService() + @service = new CakeSide.EmbedlyService() loadUrl: -> if @model.isValidUrl(@ui.url.val()) diff --git a/app/assets/javascripts/views/my/tutorials/no_tutorials_view.js.coffee b/app/assets/javascripts/views/my/tutorials/no_tutorials_view.js.coffee new file mode 100644 index 00000000..9b2cf3c5 --- /dev/null +++ b/app/assets/javascripts/views/my/tutorials/no_tutorials_view.js.coffee @@ -0,0 +1,3 @@ +class CakeSide.Views.My.Tutorials.NoTutorialsView extends Marionette.ItemView + template: JST['templates/my/tutorials/no_tutorials'] + tagName: 'li' diff --git a/app/assets/javascripts/views/my/tutorials/show_view.js.coffee b/app/assets/javascripts/views/my/tutorials/show_view.js.coffee new file mode 100644 index 00000000..8ea4a484 --- /dev/null +++ b/app/assets/javascripts/views/my/tutorials/show_view.js.coffee @@ -0,0 +1,5 @@ +class CakeSide.Views.My.Tutorials.ShowView extends Marionette.ItemView + template: JST["templates/my/tutorials/show"] + templateHelpers: + displayDate: (date) -> + date diff --git a/app/assets/javascripts/views/my/tutorials/tutorial_view.js.coffee b/app/assets/javascripts/views/my/tutorials/tutorial_view.js.coffee new file mode 100644 index 00000000..99631ba2 --- /dev/null +++ b/app/assets/javascripts/views/my/tutorials/tutorial_view.js.coffee @@ -0,0 +1,8 @@ +class CakeSide.Views.My.Tutorials.TutorialView extends Marionette.ItemView + template: JST['templates/my/tutorials/tutorial'] + tagName: 'div' + className: 'media' + + templateHelpers: + displayDate: (date) -> + new Date(date).toLocaleDateString() |
