From d139693632b3beb92f6efdede84483506533ec8e Mon Sep 17 00:00:00 2001 From: Reinier Balt Date: Mon, 29 Jul 2013 12:23:52 +0200 Subject: [PATCH] implement switching grouping --- app/assets/javascripts/application.js | 3 +- app/assets/javascripts/keybindings.js.coffee | 4 +- app/assets/javascripts/tracks.js.coffee | 48 ++++++++++++------- app/assets/stylesheets/tracks.css.scss | 40 +++++++++++----- app/views/layouts/application.html.erb | 2 +- app/views/projects/_go_project.html.erb | 4 +- app/views/shared/_add_new_action.html.erb | 2 +- app/views/shared/_keyboard_shortcuts.html.erb | 27 +++++++---- app/views/todos/_todo.html.erb | 10 ++-- app/views/todos/_todo_sub_menu.html.erb | 5 ++ app/views/todos/index.html.erb | 18 ++++--- 11 files changed, 107 insertions(+), 56 deletions(-) diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 29e3bcf7..250672c7 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -23,9 +23,10 @@ // require jquery-ui-1.10.0.custom.min // require jquery.ui.touch-punch.min // require jquery.blockUI -// require jquery.cookie // require jquery.form // require jquery.jeditable.mini // require jquery.simulate.drag-sortable // require jquery.truncator + +//= require jquery.cookie //= require swf_fu diff --git a/app/assets/javascripts/keybindings.js.coffee b/app/assets/javascripts/keybindings.js.coffee index 7e50096c..b6033a44 100644 --- a/app/assets/javascripts/keybindings.js.coffee +++ b/app/assets/javascripts/keybindings.js.coffee @@ -57,8 +57,8 @@ $ -> Mousetrap.bind 'g s', -> TracksApp.go_starred() # VIEW - Mousetrap.bind 'v p', -> alert("group by project") - Mousetrap.bind 'v c', -> alert("group by context") + Mousetrap.bind 'v p', -> TracksApp.group_view_by_project() + Mousetrap.bind 'v c', -> TracksApp.group_view_by_context() # Item Selection Mousetrap.bind 'j', -> TracksApp.selectNext() diff --git a/app/assets/javascripts/tracks.js.coffee b/app/assets/javascripts/tracks.js.coffee index 60db63db..ad929d7d 100644 --- a/app/assets/javascripts/tracks.js.coffee +++ b/app/assets/javascripts/tracks.js.coffee @@ -7,6 +7,7 @@ TracksApp = go_projects: -> TracksApp.goto_page "/projects" go_starred: -> TracksApp.goto_page "/tag/starred" + # TODO: refactor to work for contexts and projects and tags go_project: -> $("input#tracks-goto-project").val("") $('div#tracks-go-project-dialog').on 'shown', -> $("input#tracks-goto-project").focus() @@ -68,29 +69,42 @@ TracksApp = unless TracksApp.selectPrevNext(false)? TracksApp.selectTodo($("div.todo-item").first()) + show_note: (node) -> + notes_id = node.attr("data-note-id") + notes_div = $("div#" + notes_id ) + notes_div.toggleClass("hide") + todo_item = $(this).parent().parent().parent().parent().parent() + TracksApp.selectTodo(todo_item) + + refresh_page: -> + location.reload(true) + + group_view_by: (state) -> + $.cookie('group_view_by', state) + + group_view_by_context: -> + TracksApp.group_view_by('context') + TracksApp.refresh_page() + + group_view_by_project: -> + TracksApp.group_view_by('project') + TracksApp.refresh_page() + + # Make TracksApp globally accessible. From http://stackoverflow.com/questions/4214731/coffeescript-global-variables root = exports ? this root.TracksApp = TracksApp $ -> - $("a#menu-keyboard-shotcuts").click -> $('div#tracks-shortcuts-dialog').modal() - - $("a.button-add-todo").click -> TracksApp.add_todo() - $("a.button-home").click -> TracksApp.go_home() - $("a.button-goto").click -> TracksApp.go_menu() - - $("i.icon-book").click -> - notes_id = $( this ).attr("data-note-id") - notes_div = $("div#" + notes_id ) - notes_div.toggleClass("hide") - todo_item = $(this).parent().parent().parent().parent() - TracksApp.selectTodo(todo_item) - - $("span.todo-item-description-container").click -> - TracksApp.selectTodo( $(this).parent().parent().parent() ) + $("a#menu-keyboard-shotcuts").click -> $('div#tracks-shortcuts-dialog').modal() + $("a.button-add-todo").click -> TracksApp.add_todo() + $("a.button-home").click -> TracksApp.go_home() + $("a.button-goto").click -> TracksApp.go_menu() + $("i.icon-book").click -> TracksApp.show_note( $(this) ) + $("span.todo-item-description-container").click -> TracksApp.selectTodo( $(this).parent().parent().parent() ) $('.ajax-typeahead').typeahead - minLength: 3, + minLength: 2, source: (query, process) -> typeaheadURL = $(this)[0].$element[0].dataset.link return $.ajax @@ -101,4 +115,4 @@ $ -> success: (json) -> $("input#tracks-json-result").val(json) map = $.map json, (data, item) -> data.value - return process(map) + return process(map) \ No newline at end of file diff --git a/app/assets/stylesheets/tracks.css.scss b/app/assets/stylesheets/tracks.css.scss index 3cff04ca..d4cfe78e 100644 --- a/app/assets/stylesheets/tracks.css.scss +++ b/app/assets/stylesheets/tracks.css.scss @@ -57,13 +57,12 @@ div.todo-item { border: 3px solid #EEE; border-width: 0px 0px 1px 0px; padding: 0px 3px 0px 3px; - min-height: none; line-height: none; + [class*="span"] { min-height: 0px; } - div.row { margin-left: 0px; } @@ -74,19 +73,26 @@ div.todo-item { margin-right: 10px; color: #666; } - i.icon-star-empty, i.icon-play-sign, i.icon-book, i.icon-refresh { + span.todo-description-icons { color: #BBB; /* light gray */ + cursor: pointer; } - i.icon-star { - color: #F89406; /* orange */ + span.todo-item-icons { + color: #BBB; /* light gray */ + display: block; + margin-right: 5px; + float:left; + cursor: pointer; + i.icon-check-empty { + color: #333; + } + i.icon-star { + color: #F89406; /* orange */ + } } span.todo-description { margin-right: 10px; - } - span.todo-item-icons { - display: block; - margin-right: 10px; - float:left; + cursor: pointer; } span.todo-item-description-container { display: inline-block; @@ -126,6 +132,8 @@ div.selected-item { span.tags { .label { + margin-right: 1px; + background-color: #BBB; a:hover, a:focus { text-decoration: none; } @@ -134,8 +142,6 @@ span.tags { color: #FFF; font-weight: normal; } - margin-right: 1px; - background-color: #BBB; } } @@ -149,6 +155,12 @@ div.todos-container { a { color: #444; } + span.add-note-link { + a { + color: #BBB; + font-size: 14px; + } + } } } @@ -164,6 +176,10 @@ div#tracks-go-project-dialog { } } +div.paginate_header { + text-align: center; +} + /* Generic */ div.hide_me { diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 22799a4e..0b9f152a 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -59,4 +59,4 @@ <%= javascript_include_tag "application" %> - + \ No newline at end of file diff --git a/app/views/projects/_go_project.html.erb b/app/views/projects/_go_project.html.erb index 592b7381..d6b5d6d6 100644 --- a/app/views/projects/_go_project.html.erb +++ b/app/views/projects/_go_project.html.erb @@ -6,7 +6,7 @@ @@ -14,4 +14,4 @@ -` \ No newline at end of file + \ No newline at end of file diff --git a/app/views/shared/_add_new_action.html.erb b/app/views/shared/_add_new_action.html.erb index 0544379b..456593fb 100644 --- a/app/views/shared/_add_new_action.html.erb +++ b/app/views/shared/_add_new_action.html.erb @@ -14,4 +14,4 @@ -` \ No newline at end of file + \ No newline at end of file diff --git a/app/views/shared/_keyboard_shortcuts.html.erb b/app/views/shared/_keyboard_shortcuts.html.erb index 1a386ecc..af0e6af3 100644 --- a/app/views/shared/_keyboard_shortcuts.html.erb +++ b/app/views/shared/_keyboard_shortcuts.html.erb @@ -4,17 +4,24 @@

Keyboard Shortcuts