From df1e538f93506e5d1d9627a8d92267fa52031250 Mon Sep 17 00:00:00 2001 From: jamyang-tamang <61526136+jamyang-tamang@users.noreply.github.com> Date: Sun, 14 Mar 2021 22:46:05 -0400 Subject: [PATCH 1/6] Sprint1 --- app/assets/stylesheets/general.scss | 4 ++-- app/assets/stylesheets/header.scss | 6 +++++- app/assets/stylesheets/vertical.scss | 13 ++++++++----- app/views/analyses/index.html.erb | 2 +- app/views/assignment_groups/_modify_form.html.erb | 8 ++++++++ app/views/assignment_groups/index.html.erb | 2 +- app/views/datasets/index.html.erb | 2 +- app/views/examples/index.html.erb | 2 +- app/views/layouts/_header.html.erb | 13 +++++-------- app/views/search/show.html.erb | 8 ++++---- app/views/software/index.html.erb | 2 +- config/environments/development.rb | 2 +- 12 files changed, 38 insertions(+), 26 deletions(-) diff --git a/app/assets/stylesheets/general.scss b/app/assets/stylesheets/general.scss index b4f056a2..6b796904 100644 --- a/app/assets/stylesheets/general.scss +++ b/app/assets/stylesheets/general.scss @@ -3,8 +3,8 @@ } .main-view-container { - padding-right: 1em; - padding-left: 1em; + padding-right: .25em; + padding-left: .25em; } .inline { diff --git a/app/assets/stylesheets/header.scss b/app/assets/stylesheets/header.scss index 6c8e8009..15aff61e 100644 --- a/app/assets/stylesheets/header.scss +++ b/app/assets/stylesheets/header.scss @@ -9,12 +9,16 @@ } .version { - font-size: 55%; + font-size: 60%; } #verticals-nav { display: inline-block; + a { + font-size: 16px; + } + ul { vertical-align: top; display: inline-block; diff --git a/app/assets/stylesheets/vertical.scss b/app/assets/stylesheets/vertical.scss index 6e13532d..0f75bea1 100644 --- a/app/assets/stylesheets/vertical.scss +++ b/app/assets/stylesheets/vertical.scss @@ -88,6 +88,7 @@ li .snippet { padding-left: .5em; padding-right: .5em; color: white; + background-color: brown; a, a:active, a:hover, a:visited { color: white; } @@ -326,6 +327,7 @@ ul.authors, ul.instructors { .vertical-index .assignment_group.index-entry { height: 500px; + border: 20px, solid, #0000; .item-content { height: 275px; } @@ -362,12 +364,13 @@ ul.authors, ul.instructors { .analysis-page, .software-page, .dataset-page, .example-page { - + background-color: #d3d3d3; .thumbnail-wrapper.show-view { - margin-top: 20px; + margin-top: 50px; background-size: cover; background-position-x: 50%; background-position-y: center; + border: 5px solid #45b6fe; height: 175px; @@ -375,8 +378,6 @@ ul.authors, ul.instructors { display: block; overflow: hidden; - // border-bottom: 1px solid #ccc; - img { width: 100%; } @@ -384,11 +385,13 @@ ul.authors, ul.instructors { } .assignment-page { + background-color: #d3d3d3; .thumbnail-wrapper.show-view { - //margin-top: 20px; + margin-bottom: 20px; background-size: cover; background-position-x: 50%; background-position-y: center; + border: 5px solid #45b6fe; height: 175px; diff --git a/app/views/analyses/index.html.erb b/app/views/analyses/index.html.erb index a3af6e2b..b6a4b100 100644 --- a/app/views/analyses/index.html.erb +++ b/app/views/analyses/index.html.erb @@ -6,7 +6,7 @@ <% if can_edit? %> <%= link_to(new_analysis_path) do %> - <% end %> diff --git a/app/views/assignment_groups/_modify_form.html.erb b/app/views/assignment_groups/_modify_form.html.erb index 597f2d9e..e95b6f74 100644 --- a/app/views/assignment_groups/_modify_form.html.erb +++ b/app/views/assignment_groups/_modify_form.html.erb @@ -71,7 +71,15 @@ editor_options: bootsy_editing_options %> +
+ <%= f.label :WebLinks %>
+ <% provide("Connect web resources") %> + + + +
+ <% if logged_in? %> @@ -85,12 +82,12 @@ -
- + + <% end %> diff --git a/app/views/search/show.html.erb b/app/views/search/show.html.erb index bf9023c8..612e8b70 100644 --- a/app/views/search/show.html.erb +++ b/app/views/search/show.html.erb @@ -18,10 +18,10 @@

- - Advanced search + +

-
- <%= f.label :WebLinks %>
- <% provide("Connect web resources") %> - - - -
- + <% if defined? @assignment_id %> +
+
+ <% if can_edit? %> + <%= f.label :weblinks %> + + + + + + <% end %> + + +
+
+ +
+ Versions of assignment by class: + <% if can_edit? %> + + + + + + <% end %> + + +
+ + + <% end %> + + + <%= assignment.full_title %> + (<%= oxford_comma_list assignment.instructors.map{|i| i.last_name} %>, + <%= assignment.semester %>) + + + <% end %> - - -<% if false %> -
- <%= assignment_group.name %> - - <%= assignment_group.summary %> - - <% assignment_group.assignments.each do |assignment| %> -
- - <%= assignment.full_title %> - (<%= oxford_comma_list assignment.instructors.map{|i| i.last_name} %>, - <%= assignment.semester %>) - -
<% end %> - -
-<% end %> + + <%end%> \ No newline at end of file diff --git a/app/views/assignment_groups/_assignment_group_homepage.html.erb b/app/views/assignment_groups/_assignment_group_homepage.html.erb index 674fcaad..9a164a4d 100644 --- a/app/views/assignment_groups/_assignment_group_homepage.html.erb +++ b/app/views/assignment_groups/_assignment_group_homepage.html.erb @@ -50,26 +50,27 @@ title_max = 100 "> <% end %> -
- - -
- style="background-image: url('<%= assignment_group.thumbnail.tile.url %>')" - <%# image_tag(assignment_group.thumbnail.tile.url) %> - <% else %> - style="background: #888888;" - <% end %> - > - - - + +
+<% end %> + <% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %>
<% end %> diff --git a/app/views/assignment_groups/_modify_form.html.erb b/app/views/assignment_groups/_modify_form.html.erb index 071ad55e..b5aa6401 100644 --- a/app/views/assignment_groups/_modify_form.html.erb +++ b/app/views/assignment_groups/_modify_form.html.erb @@ -128,8 +128,10 @@

--> <%= f.submit "Save", - id: "form-submit", class: "btn btn-primary" %> + id: "form-submit", class: "btn btn-primary", :name => "button_press", :value => "Save" %> + <%= f.submit "Draft", + id: "form-submit", class: "btn btn-warning", :name => "button_press", :value => "Draft"%> diff --git a/app/views/assignment_results/_modify_form.html.erb b/app/views/assignment_results/_modify_form.html.erb index 5a407dbf..b11edb25 100644 --- a/app/views/assignment_results/_modify_form.html.erb +++ b/app/views/assignment_results/_modify_form.html.erb @@ -112,7 +112,7 @@ rows: 10, class: "form-control add-to-vertical unchanged", editor_options: bootsy_editing_options %> - + <%= f.submit "Save", id: "form-submit", class: "btn btn-primary" %> diff --git a/app/views/datasets/_dataset.html.erb b/app/views/datasets/_dataset.html.erb index 17973ce7..d0f2bb87 100644 --- a/app/views/datasets/_dataset.html.erb +++ b/app/views/datasets/_dataset.html.erb @@ -12,6 +12,7 @@ versions_limit = -1 ## most recent
<% end %> +<% if dataset.is_draft != true || dataset.creator == current_user %>
+<% end %> <% end %> \ No newline at end of file diff --git a/app/views/datasets/_dataset_homepage.html.erb b/app/views/datasets/_dataset_homepage.html.erb index db196bd2..91c6794e 100644 --- a/app/views/datasets/_dataset_homepage.html.erb +++ b/app/views/datasets/_dataset_homepage.html.erb @@ -49,7 +49,7 @@ title_max = 100 <% end %> "> <% end %> - +<% if dataset.is_draft != true || dataset.creator == current_user %>
+<%end%> <% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %>
diff --git a/app/views/datasets/_modify_form.html.erb b/app/views/datasets/_modify_form.html.erb index 1e7b62c7..63cf6f78 100644 --- a/app/views/datasets/_modify_form.html.erb +++ b/app/views/datasets/_modify_form.html.erb @@ -49,9 +49,11 @@

<%= f.submit "Save", - id: "form-submit", class: "btn btn-primary" %> + id: "form-submit", class: "btn btn-primary", :name => "button_press", :value => "Save" %> - + <%= f.submit "Draft", + id: "form-submit", class: "btn btn-warning", :name => "button_press", :value => "Draft"%> + diff --git a/app/views/examples/_example.html.erb b/app/views/examples/_example.html.erb index b56deec9..df3e5e41 100644 --- a/app/views/examples/_example.html.erb +++ b/app/views/examples/_example.html.erb @@ -11,7 +11,7 @@ versions_limit = -1 ## most recent <% if @i % itemsPerRow == 0 %>
<% end %> - +<% if example.is_draft != true || example.creator == current_user %>
<%# End col-md-3 %> - +<%end%> <% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %>
<% end %> diff --git a/app/views/examples/_example_homepage.html.erb b/app/views/examples/_example_homepage.html.erb index 7e39f0d9..2d6a9501 100644 --- a/app/views/examples/_example_homepage.html.erb +++ b/app/views/examples/_example_homepage.html.erb @@ -49,7 +49,7 @@ title_max = 100 <% end %> "> <% end %> - +<% if example.is_draft != true || example.creator == current_user %>
@@ -68,7 +68,7 @@ title_max = 100
- +<%end%> <% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %> <% end %> diff --git a/app/views/examples/_modify_form.html.erb b/app/views/examples/_modify_form.html.erb index 88bcbd77..3e1e6531 100644 --- a/app/views/examples/_modify_form.html.erb +++ b/app/views/examples/_modify_form.html.erb @@ -47,7 +47,11 @@ editor_options: bootsy_editing_options %> - <%= f.submit "Save", id: "form-submit", class: "btn btn-primary" %> + <%= f.submit "Save", + id: "form-submit", class: "btn btn-primary", :name => "button_press", :value => "Save" %> + + <%= f.submit "Draft", + id: "form-submit", class: "btn btn-warning", :name => "button_press", :value => "Draft"%> diff --git a/app/views/software/_software.html.erb b/app/views/software/_software.html.erb index 0977a6fc..4bf09bb7 100644 --- a/app/views/software/_software.html.erb +++ b/app/views/software/_software.html.erb @@ -12,69 +12,71 @@ versions_limit = -1 ## most recent
<% end %> -
-
- <%= render(partial: "verticals_shared/listing_thumbnail", - locals: {vertical: software}) %> - -
+<% if (software.is_draft != true || software.creator == current_user) %> +
+
<%= get_snippet(software.name, title_max) %> - - <%= get_snippet(software.summary, summary_max) %> + data-analysis-id="<%= software.id %>" + ><%= render(partial: "verticals_shared/listing_thumbnail", + locals: {vertical: software}) %> + +
+ <%= get_snippet(software.name, title_max) %> + + <%= get_snippet(software.summary, summary_max) %> +
+ +
+
<%# End col-md-3 %> - + <% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %>
-
<%# End col-md-3 %> + <% end %> -<% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %> -
-<% end %> - -<% @i += 1 %> + <% @i += 1 %> -<% if false %> -
+ <% if false %> +
- <%= link_to software.name, software_path(software) %> + <%= link_to software.name, software_path(software) %> - <%= software.summary %> + <%= software.summary %> -
+ +
+ <% end %> <% end %> \ No newline at end of file diff --git a/app/views/software/_software_homepage.html.erb b/app/views/software/_software_homepage.html.erb index 29b8aa1a..6e8d53b6 100644 --- a/app/views/software/_software_homepage.html.erb +++ b/app/views/software/_software_homepage.html.erb @@ -50,6 +50,7 @@ title_max = 100 "> <% end %> +<% if (software.is_draft != true || software.creator == current_user) %>
@@ -68,7 +69,7 @@ title_max = 100
- +<%end%> <% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %> <% end %> diff --git a/config/routes.rb b/config/routes.rb index 7d673e4c..61473b8f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -6,6 +6,7 @@ get 'password_resets/edit' get 'signup' => 'users#new' get 'login' => 'sessions#new' + get 'about' => 'about#index' post 'login' => 'sessions#create' delete 'logout' => 'sessions#destroy' get 'users' => 'users#index' diff --git a/db/development b/db/development new file mode 100644 index 00000000..e69de29b diff --git a/db/migrate/20210406034358_add_is_draft_to_assignment_group.rb b/db/migrate/20210406034358_add_is_draft_to_assignment_group.rb new file mode 100644 index 00000000..8c26c840 --- /dev/null +++ b/db/migrate/20210406034358_add_is_draft_to_assignment_group.rb @@ -0,0 +1,5 @@ +class AddIsDraftToAssignmentGroup < ActiveRecord::Migration[6.1] + def change + add_column :assignment_groups, :is_draft, :boolean + end +end diff --git a/db/schema.rb b/db/schema.rb index 41e0e702..3eeac405 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2021_03_22_202940) do +ActiveRecord::Schema.define(version: 2021_04_06_034358) do create_table "analyses", force: :cascade do |t| t.string "name" @@ -66,6 +66,7 @@ t.integer "creator_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.boolean "is_draft" end create_table "assignment_groups_authors", id: false, force: :cascade do |t| diff --git a/test/controllers/about_controller_test.rb b/test/controllers/about_controller_test.rb new file mode 100644 index 00000000..c0921efd --- /dev/null +++ b/test/controllers/about_controller_test.rb @@ -0,0 +1,8 @@ +require "test_helper" + +class AboutControllerTest < ActionDispatch::IntegrationTest + test "should get index" do + get about_index_url + assert_response :success + end +end From ae16c4bb123408a6b4c4b842d37b1d5cbad13bf8 Mon Sep 17 00:00:00 2001 From: jamyang-tamang <61526136+jamyang-tamang@users.noreply.github.com> Date: Wed, 21 Apr 2021 11:43:50 -0400 Subject: [PATCH 4/6] updated search results If a result of a search is a draft, it will not pop up until the user logged in is the creator of the draft --- .../analyses/_analysis_search_result.html.erb | 42 +++++----- .../_assignment_group_search_result.html.erb | 47 +++++------ .../datasets/_dataset_search_result.html.erb | 26 ++++--- .../examples/_example_search_result.html.erb | 78 ++++++++++--------- .../software/_software_search_result.html.erb | 48 ++++++------ 5 files changed, 125 insertions(+), 116 deletions(-) diff --git a/app/views/analyses/_analysis_search_result.html.erb b/app/views/analyses/_analysis_search_result.html.erb index f7bfb0b1..f443398b 100644 --- a/app/views/analyses/_analysis_search_result.html.erb +++ b/app/views/analyses/_analysis_search_result.html.erb @@ -1,23 +1,25 @@ -
+<% if analysis.is_draft != true || analysis.creator == current_user %> +
- <%= link_to analysis.name, analysis_path(analysis) %> + <%= link_to analysis.name, analysis_path(analysis) %> - <%= analysis.summary %> + <%= analysis.summary %> - - -
\ No newline at end of file + + Added on <%= analysis.created_at.strftime('%B %d, %Y') %> by <%= analysis.creator.username %> + — + Used in <%= analysis.assignments.size %> + <%= 'assignment'.pluralize(analysis.assignments.size) %> and + <%= analysis.examples.size %> + <%= 'example'.pluralize(analysis.examples.size) %>
+ <% if analysis.software.size > 0 %> + Implemented in + <%= analysis.software.map{|s|link_to s.name, get_vertical_path(s)}.join(',').html_safe + %>
+ <% end %> + <%= render(partial: "tags/tag_badge", + collection: sort_by(analysis.tags, :text), as: :tag) %> +
+ +
+<%end%> \ No newline at end of file diff --git a/app/views/assignment_groups/_assignment_group_search_result.html.erb b/app/views/assignment_groups/_assignment_group_search_result.html.erb index 73ac1134..bb381005 100644 --- a/app/views/assignment_groups/_assignment_group_search_result.html.erb +++ b/app/views/assignment_groups/_assignment_group_search_result.html.erb @@ -1,3 +1,4 @@ +<% if assignment_group.is_draft != true || assignment_group.creator == current_user %>
<%= assignment_group.name %> @@ -10,31 +11,31 @@ <%= assignment_group.summary %> - - <% if assignment_group.assignments.size > 0 %> - Versions: -
- <% assignment_group.assignments.each do |assignment| %> -
- <%= assignment.full_title %> - (<%= oxford_comma_list assignment.instructors.map{|i| i.last_name} %>, - <%= assignment.semester %>) + <% if assignment_group.assignments.size > 0 %> + Versions: +
+ <% assignment_group.assignments.each do |assignment| %> +
+ <%= assignment.full_title %> + (<%= oxford_comma_list assignment.instructors.map{|i| i.last_name} %>, + <%= assignment.semester %>) +
+ <% end %>
<% end %> -
- <% end %> -
+ <%= render(partial: "tags/tag_badge", + collection: sort_by(assignment_group.tags, :text), as: :tag) %> + +
+<%end%> diff --git a/app/views/datasets/_dataset_search_result.html.erb b/app/views/datasets/_dataset_search_result.html.erb index 4175f377..4e844c54 100644 --- a/app/views/datasets/_dataset_search_result.html.erb +++ b/app/views/datasets/_dataset_search_result.html.erb @@ -1,17 +1,19 @@ -
+<% if dataset.is_draft != true || dataset.creator == current_user %> +
- <%= link_to dataset.name, dataset_path(dataset) %> + <%= link_to dataset.name, dataset_path(dataset) %> - <%= dataset.summary %> + <%= dataset.summary %> - - -
\ No newline at end of file +
+<%end%> \ No newline at end of file diff --git a/app/views/examples/_example_search_result.html.erb b/app/views/examples/_example_search_result.html.erb index 1d3b8dc7..4085872a 100644 --- a/app/views/examples/_example_search_result.html.erb +++ b/app/views/examples/_example_search_result.html.erb @@ -1,44 +1,46 @@ -
+<% if example.is_draft != true || example.creator == current_user %> +
- <%= link_to example.title, example_path(example) %> + <%= link_to example.title, example_path(example) %> - + - <% if example.summary.nil? %> - <% clean_description = strip_tags example.description %> - <% clean_description = clean_description[0..100] + '...' if - clean_description.size > 100 %> - <% else %> - <% clean_description = example.summary %> - <% end %> - <%= clean_description %> + <% if example.summary.nil? %> + <% clean_description = strip_tags example.description %> + <% clean_description = clean_description[0..100] + '...' if + clean_description.size > 100 %> + <% else %> + <% clean_description = example.summary %> + <% end %> + <%= clean_description %> - -
\ No newline at end of file +
+<%end%> \ No newline at end of file diff --git a/app/views/software/_software_search_result.html.erb b/app/views/software/_software_search_result.html.erb index c18384df..1be2745f 100644 --- a/app/views/software/_software_search_result.html.erb +++ b/app/views/software/_software_search_result.html.erb @@ -1,28 +1,30 @@ -
+<% if (software.is_draft != true || software.creator == current_user) %> +
- <%= link_to software.name, software_path(software) %> + <%= link_to software.name, software_path(software) %> - <%= software.summary %> + <%= software.summary %> -
\ No newline at end of file + <%= render(partial: "tags/tag_badge", + collection: sort_by(software.tags, :text), as: :tag) %> + + +
+<% end %> \ No newline at end of file From fa90d9c5aa0b347c1733bf4a95e5b1ac3571f10b Mon Sep 17 00:00:00 2001 From: jamyang-tamang <61526136+jamyang-tamang@users.noreply.github.com> Date: Mon, 26 Apr 2021 16:13:43 -0400 Subject: [PATCH 5/6] Updated Is_draft checking Updated it such that data being populated is being checked on the controller end, for homepage and verticals. Search still populates everything, but visibility is modified based on is_draft and user that is logged in. --- app/controllers/analyses_controller.rb | 23 +- .../assignment_groups_controller.rb | 22 +- app/controllers/datasets_controller.rb | 22 +- app/controllers/examples_controller.rb | 23 +- app/controllers/homepage_controller.rb | 10 +- app/controllers/software_controller.rb | 23 +- app/views/analyses/_analysis.html.erb | 115 +++++---- .../analyses/_analysis_homepage.html.erb | 34 ++- .../_assignment_group.html.erb | 237 +++++++++--------- .../_assignment_group_homepage.html.erb | 38 +-- app/views/datasets/_dataset.html.erb | 2 - app/views/datasets/_dataset_homepage.html.erb | 38 +-- app/views/examples/_example.html.erb | 4 +- app/views/examples/_example_homepage.html.erb | 38 +-- app/views/examples/show.html.erb | 2 +- app/views/software/_software.html.erb | 65 +++-- .../software/_software_homepage.html.erb | 37 ++- 17 files changed, 403 insertions(+), 330 deletions(-) diff --git a/app/controllers/analyses_controller.rb b/app/controllers/analyses_controller.rb index c8255cbc..dc5b6c6f 100644 --- a/app/controllers/analyses_controller.rb +++ b/app/controllers/analyses_controller.rb @@ -8,17 +8,26 @@ class AnalysesController < ApplicationController before_action :get_redirect_path def index - @analyses = Analysis.all.sort_by { |e| e.name } + @analyses = Analysis.where({creator: current_user}).or(Analysis.where({is_draft: false})).sort_by { |e| e.name } end def connect_index - @analyses = Analysis.all.sort_by { |e| e.name } + @analyses = Analysis.where({creator: current_user}).or(Analysis.where({is_draft: false})).sort_by { |e| e.name } if @vertical.class == Analysis @analyses.delete(@vertical) end end def show + if (@analysis.is_draft and @analysis.creator != current_user) + error = "You are unauthorised to view this assignment." + respond_to do |format| + format.json {render json: {success: false, error: error}} + format.html do + render file: "#{Rails.root}/public/404.html" , status: 404 + end + end + end end def new @@ -66,9 +75,17 @@ def create ## and deleted altogether if the resource isn't associated with another ## vertical entry. def update + if params[:button_press] == "Save" + @data[:is_draft] = false + @success_message = "Analysis created successfully!" + else + @data[:is_draft] = true + @success_message = "Analysis saved as draft!" + end + begin ActiveRecord::Base.transaction do - @analysis.update(@data.permit(:name, :description, :summary, :thumbnail)) + @analysis.update(@data.permit(:name, :description, :summary, :thumbnail, :is_draft)) @analysis.save! @analysis.reindex_associations diff --git a/app/controllers/assignment_groups_controller.rb b/app/controllers/assignment_groups_controller.rb index 2efe775b..3697398b 100644 --- a/app/controllers/assignment_groups_controller.rb +++ b/app/controllers/assignment_groups_controller.rb @@ -9,17 +9,26 @@ class AssignmentGroupsController < ApplicationController before_action :get_redirect_path def index - @assignment_groups = AssignmentGroup.all.sort_by { |e| e.name } + @assignment_groups = AssignmentGroup.where({creator: current_user}).or(AssignmentGroup.where({is_draft: false})).sort_by { |e| e.name } end def connect_index - @assignment_groups = AssignmentGroup.all.sort_by { |e| e.name } + @assignment_groups = AssignmentGroup.where({creator: current_user}).or(AssignmentGroup.where({is_draft: false})).sort_by { |e| e.name } if @vertical.class == AssignmentGroup @assignment_groups.delete(@vertical) end end def show + if (@assignment_group.is_draft and @assignment_group.creator != current_user) + error = "You are unauthorised to view this assignment." + respond_to do |format| + format.json {render json: {success: false, error: error}} + format.html do + render file: "#{Rails.root}/public/404.html" , status: 404 + end + end + end end def new @@ -63,7 +72,14 @@ def create ## and deleted altogether if the resource isn't associated with another ## vertical entry. def update - + if params[:button_press] == "Save" + @data[:is_draft] = false + @success_message = "Assignment created successfully!" + else + @data[:is_draft] = true + @success_message = "Assignment saved as draft!" + end + begin ActiveRecord::Base.transaction do @data[:authors] = @authors if params.require(:assignment_group).has_key?(:authors) diff --git a/app/controllers/datasets_controller.rb b/app/controllers/datasets_controller.rb index b76f53ce..4c9c510b 100644 --- a/app/controllers/datasets_controller.rb +++ b/app/controllers/datasets_controller.rb @@ -8,17 +8,26 @@ class DatasetsController < ApplicationController before_action :get_redirect_path def index - @datasets = Dataset.all.sort_by { |e| e.name } + @datasets = Dataset.where({creator: current_user}).or(Dataset.where({is_draft: false})).sort_by { |e| e.name } end def connect_index - @datasets = Dataset.all.sort_by { |e| e.name } + @datasets = Dataset.where({creator: current_user}).or(Dataset.where({is_draft: false})).sort_by { |e| e.name } if @vertical.class == Dataset @datasets.delete(@vertical) end end def show + if (@dataset.is_draft and @dataset.creator != current_user) + error = "You are unauthorised to view this assignment." + respond_to do |format| + format.json {render json: {success: false, error: error}} + format.html do + render file: "#{Rails.root}/public/404.html" , status: 404 + end + end + end end def new @@ -67,9 +76,16 @@ def create ## and deleted altogether if the resource isn't associated with another ## vertical entry. def update + if params[:button_press] == "Save" + @data[:is_draft] = false + @success_message = "Draft published!" + else + @data[:is_draft] = true + @success_message = "Draft updated!" + end begin ActiveRecord::Base.transaction do - @dataset.update(@data.permit(:name, :description, :summary, :thumbnail)) + @dataset.update(@data.permit(:name, :description, :summary, :thumbnail, :is_draft)) @dataset.save! @dataset.reindex_associations diff --git a/app/controllers/examples_controller.rb b/app/controllers/examples_controller.rb index 7a4a4357..94f59ced 100644 --- a/app/controllers/examples_controller.rb +++ b/app/controllers/examples_controller.rb @@ -8,6 +8,15 @@ class ExamplesController < ApplicationController before_action :get_redirect_path def show + if (@example.is_draft and @example.creator != current_user) + error = "You are unauthorised to view this assignment." + respond_to do |format| + format.json {render json: {success: false, error: error}} + format.html do + render file: "#{Rails.root}/public/404.html" , status: 404 + end + end + end end def new @@ -17,11 +26,11 @@ def edit end def index - @examples = Example.all.sort_by{|e| e.title} + @examples = Example.where({creator: current_user}).or(Example.where({is_draft: false})).sort_by { |e| e.title } end def connect_index - @examples = Example.all.sort_by { |e| e.title } + @examples = Example.where({creator: current_user}).or(Example.where({is_draft: false})).sort_by { |e| e.title } if @vertical.class == Example @examples.delete(@vertical) end @@ -36,6 +45,7 @@ def create @params[:is_draft] = true @success_message = "Dataset saved as draft!" end + @example = Example.new(@params) begin # if @params[:summary].nil? or @params[:summary].size == 0 @@ -56,7 +66,14 @@ def create end def update - + if params[:button_press] == "Save" + @params[:is_draft] = false + @success_message = "Dataset created successfully!" + else + @params[:is_draft] = true + @success_message = "Dataset saved as draft!" + end + begin @example.update! @params @example.reindex_associations diff --git a/app/controllers/homepage_controller.rb b/app/controllers/homepage_controller.rb index 44afdd07..dfc6ac5a 100644 --- a/app/controllers/homepage_controller.rb +++ b/app/controllers/homepage_controller.rb @@ -1,9 +1,9 @@ class HomepageController < ApplicationController def show - @analyses = Analysis.last(9).reverse - @assignment_groups = AssignmentGroup.last(9).reverse - @datasets = Dataset.last(9).reverse - @examples = Example.last(9).reverse - @software = Software.last(9).reverse + @analyses = Analysis.where({creator: current_user}).or(Analysis.where({is_draft: false})).last(9).reverse + @assignment_groups = AssignmentGroup.where({creator: current_user}).or(AssignmentGroup.where({is_draft: false})).last(9).reverse + @datasets = Dataset.where({creator: current_user}).or(Dataset.where({is_draft: false})).last(9).reverse + @examples = Example.where({creator: current_user}).or(Example.where({is_draft: false})).last(9).reverse + @software = Software.where({creator: current_user}).or(Software.where({is_draft: false})).last(9).reverse end end diff --git a/app/controllers/software_controller.rb b/app/controllers/software_controller.rb index 0f448d2e..8371c39a 100644 --- a/app/controllers/software_controller.rb +++ b/app/controllers/software_controller.rb @@ -8,17 +8,26 @@ class SoftwareController < ApplicationController before_action :get_redirect_path def index - @software = Software.all.sort_by { |e| e.name } + @software = Software.where({creator: current_user}).or(Software.where({is_draft: false})).sort_by { |e| e.name } end def connect_index - @software = Software.all.sort_by { |e| e.name } + @softwares = Software.where({creator: current_user}).or(Software.where({is_draft: false})).sort_by { |e| e.name } if @vertical.class == Software @software.delete(@vertical) end end def show + if (@software.is_draft and @software.creator != current_user) + error = "You are unauthorised to view this assignment." + respond_to do |format| + format.json {render json: {success: false, error: error}} + format.html do + render file: "#{Rails.root}/public/404.html" , status: 404 + end + end + end end def new @@ -67,9 +76,17 @@ def create ## and deleted altogether if the resource isn't associated with another ## vertical entry. def update + if params[:button_press] == "Save" + @data[:is_draft] = false + @success_message = "Software created successfully!" + else + @data[:is_draft] = true + @success_message = "Software saved as draft!" + end + begin ActiveRecord::Base.transaction do - @software.update!(@data.permit(:name, :description, :summary, :thumbnail)) + @software.update!(@data.permit(:name, :description, :summary, :thumbnail, :is_draft)) @software.reindex_associations respond_with_success get_redirect_path(software_path(@software)) diff --git a/app/views/analyses/_analysis.html.erb b/app/views/analyses/_analysis.html.erb index 515ac912..077c6cc1 100644 --- a/app/views/analyses/_analysis.html.erb +++ b/app/views/analyses/_analysis.html.erb @@ -11,70 +11,69 @@ versions_limit = -1 ## most recent <% if @i % itemsPerRow == 0 %>
<% end %> -<% if analysis.is_draft != true || analysis.creator == current_user %> -
-
- <%= render(partial: "verticals_shared/listing_thumbnail", - locals: {vertical: analysis}) %> - -
- <%= get_snippet(analysis.name, title_max) %> - - - <%= get_snippet(analysis.summary, summary_max) %> -
- - -
-
<%# End col-md-3 %> - - <% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %> -
- <% end %> - - <% @i += 1 %> +
+
+ <%= render(partial: "verticals_shared/listing_thumbnail", + locals: {vertical: analysis}) %> - <% if false %> -
+
+ <%= get_snippet(analysis.name, title_max) %> - <%= link_to analysis.name, analysis_path(analysis) %> - <%= analysis.summary %> + <%= get_snippet(analysis.summary, summary_max) %> +
+ - <%end%> +
+
<%# End col-md-3 %> + +<% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %> +
+<% end %> + +<% @i += 1 %> + + +<% if false %> +
+ + <%= link_to analysis.name, analysis_path(analysis) %> + + <%= analysis.summary %> + + + Added on <%= analysis.created_at.strftime('%B %d, %Y') %> by <%= analysis.creator.username %> + — + + Used in <%= analysis.assignments.size %> + <%= 'assignment'.pluralize(analysis.assignments.size) %> and + <%= analysis.examples.size %> + <%= 'example'.pluralize(analysis.examples.size) %>
+ <% if analysis.software.size > 0 %> + Implemented in + <%= analysis.software.map{|s|link_to s.name, get_vertical_path(s)}.join(',').html_safe + %>
+ <% end %> + + <%= render(partial: "tags/tag_badge", + collection: sort_by(analysis.tags, :text), as: :tag) %> +
+ +
<%end%> \ No newline at end of file diff --git a/app/views/analyses/_analysis_homepage.html.erb b/app/views/analyses/_analysis_homepage.html.erb index b903f4ba..c2be25fb 100644 --- a/app/views/analyses/_analysis_homepage.html.erb +++ b/app/views/analyses/_analysis_homepage.html.erb @@ -50,25 +50,23 @@ title_max = 100 "> <% end %> -<% if analysis.is_draft != true || analysis.creator == current_user %> -
- -
- style="background-image: url('<%= analysis.thumbnail.tile.url %>')" - <%# image_tag(analysis.thumbnail.tile.url) %> - <% else %> - style="background: #888888;" - <% end %> - > - -
- <%= analysis.name %> -
+
+ +
<% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %>
<% end %> diff --git a/app/views/assignment_groups/_assignment_group.html.erb b/app/views/assignment_groups/_assignment_group.html.erb index 6a7aa869..1a7e6b2a 100644 --- a/app/views/assignment_groups/_assignment_group.html.erb +++ b/app/views/assignment_groups/_assignment_group.html.erb @@ -11,139 +11,136 @@ field_of_study_max = 300;
<% end %> -<% if assignment_group.is_draft != true || assignment_group.creator == current_user %> -
-
- <%= render(partial: "verticals_shared/listing_thumbnail", - locals: {vertical: assignment_group}) %> - -
- <%= get_snippet(assignment_group.name, title_max) %> - - - - <%= get_snippet(assignment_group.summary, summary_max) %> - - - <%# Lists the most recently added versions. %> - <% if assignment_group.assignments.size > 0 %> - Versions: -
- <% assignment_group.assignments.order(created_at: :desc).each do |assignment| %> - - <% end %> -
- <% end %> -
- - <%# End col-md-3 %> - <%= assignment_group.summary %> +<% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %> +
+<% end %> +<% @i += 1 %> - <% if assignment_group.assignments.size > 0 %> - Versions: -
- <% assignment_group.assignments.each do |assignment| %> -
- <%= assignment.full_title %> - (<%= oxford_comma_list assignment.instructors.map{|i| i.last_name} %>, - <%= assignment.semester %>) -
- <% end %> -
- <% end %> +<% if false %> +
+ <%= assignment_group.name %> + + - + <% if assignment_group.assignments.size > 0 %> + Versions: +
+ <% assignment_group.assignments.each do |assignment| %> +
+ <%= assignment.full_title %> + (<%= oxford_comma_list assignment.instructors.map{|i| i.last_name} %>, + <%= assignment.semester %>) +
+ <% end %>
<% end %> + +
+<% end %> + + +<% if false %> +
+ <%= assignment_group.name %> + + <%= assignment_group.summary %> + + <% assignment_group.assignments.each do |assignment| %> +
+ + <%= assignment.full_title %> + (<%= oxford_comma_list assignment.instructors.map{|i| i.last_name} %>, + <%= assignment.semester %>) - <% if false %> -
- <%= assignment_group.name %> - - <%= assignment_group.summary %> - - <% assignment_group.assignments.each do |assignment| %> -
- - <%= assignment.full_title %> - (<%= oxford_comma_list assignment.instructors.map{|i| i.last_name} %>, - <%= assignment.semester %>) - - -
- <% end %> + +
+ <% end %> -
- <% end %> - - <%end%> \ No newline at end of file +
+<% end %> \ No newline at end of file diff --git a/app/views/assignment_groups/_assignment_group_homepage.html.erb b/app/views/assignment_groups/_assignment_group_homepage.html.erb index 9a164a4d..fabbb600 100644 --- a/app/views/assignment_groups/_assignment_group_homepage.html.erb +++ b/app/views/assignment_groups/_assignment_group_homepage.html.erb @@ -50,26 +50,26 @@ title_max = 100 "> <% end %> -<% if assignment_group.is_draft != true || assignment_group.creator == current_user %> - diff --git a/app/views/datasets/_dataset.html.erb b/app/views/datasets/_dataset.html.erb index d0f2bb87..17973ce7 100644 --- a/app/views/datasets/_dataset.html.erb +++ b/app/views/datasets/_dataset.html.erb @@ -12,7 +12,6 @@ versions_limit = -1 ## most recent
<% end %> -<% if dataset.is_draft != true || dataset.creator == current_user %>
-<% end %> <% end %> \ No newline at end of file diff --git a/app/views/datasets/_dataset_homepage.html.erb b/app/views/datasets/_dataset_homepage.html.erb index 91c6794e..1e96840b 100644 --- a/app/views/datasets/_dataset_homepage.html.erb +++ b/app/views/datasets/_dataset_homepage.html.erb @@ -49,26 +49,26 @@ title_max = 100 <% end %> "> <% end %> -<% if dataset.is_draft != true || dataset.creator == current_user %> - diff --git a/app/views/examples/_example.html.erb b/app/views/examples/_example.html.erb index df3e5e41..b56deec9 100644 --- a/app/views/examples/_example.html.erb +++ b/app/views/examples/_example.html.erb @@ -11,7 +11,7 @@ versions_limit = -1 ## most recent <% if @i % itemsPerRow == 0 %>
<% end %> -<% if example.is_draft != true || example.creator == current_user %> + <%# End col-md-3 %> -<%end%> + <% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %>
<% end %> diff --git a/app/views/examples/_example_homepage.html.erb b/app/views/examples/_example_homepage.html.erb index 2d6a9501..29cc5278 100644 --- a/app/views/examples/_example_homepage.html.erb +++ b/app/views/examples/_example_homepage.html.erb @@ -49,26 +49,26 @@ title_max = 100 <% end %> "> <% end %> -<% if example.is_draft != true || example.creator == current_user %> - <% end %> diff --git a/app/views/examples/show.html.erb b/app/views/examples/show.html.erb index a64b1b0e..68d083da 100644 --- a/app/views/examples/show.html.erb +++ b/app/views/examples/show.html.erb @@ -21,7 +21,7 @@ <% end %> <%= link_to @example, method: :delete, data: { confirm: "Are you sure you want to delete this page?"} do - %> <% end %> diff --git a/app/views/software/_software.html.erb b/app/views/software/_software.html.erb index 4bf09bb7..0e453be4 100644 --- a/app/views/software/_software.html.erb +++ b/app/views/software/_software.html.erb @@ -12,45 +12,45 @@ versions_limit = -1 ## most recent
<% end %> -<% if (software.is_draft != true || software.creator == current_user) %> -
-
+ +
+
+ <%= render(partial: "verticals_shared/listing_thumbnail", + locals: {vertical: software}) %> + +
<%= render(partial: "verticals_shared/listing_thumbnail", - locals: {vertical: software}) %> - -
- <%= get_snippet(software.name, title_max) %> - - <%= get_snippet(software.summary, summary_max) %> -
- - + data-analysis-id="<%= software.id %>"><%= get_snippet(software.name, title_max) %> + + <%= get_snippet(software.summary, summary_max) %>
-
<%# End col-md-3 %> - <% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %> +
- <% end %> +
<%# End col-md-3 %> + +<% if @i == @total-1 || @i % itemsPerRow == itemsPerRow-1 %> +
+<% end %> - <% @i += 1 %> +<% @i += 1 %> - <% if false %> +<% if false %>
<%= link_to software.name, software_path(software) %> @@ -78,5 +78,4 @@ versions_limit = -1 ## most recent
- <% end %> <% end %> \ No newline at end of file diff --git a/app/views/software/_software_homepage.html.erb b/app/views/software/_software_homepage.html.erb index 6e8d53b6..ddde350b 100644 --- a/app/views/software/_software_homepage.html.erb +++ b/app/views/software/_software_homepage.html.erb @@ -50,26 +50,25 @@ title_max = 100 "> <% end %> -<% if (software.is_draft != true || software.creator == current_user) %> - <% end %> From 7265631bc269bb0524bd9a8767dac907b3c98364 Mon Sep 17 00:00:00 2001 From: jamyang-tamang Date: Wed, 5 May 2021 14:31:58 -0400 Subject: [PATCH 6/6] Made UI Changes Made UI changes to make app more vibrant --- app/assets/stylesheets/general.scss | 9 ++++++--- app/assets/stylesheets/header.scss | 18 ++++++++++++++++++ app/controllers/search_controller.rb | 2 +- app/controllers/web_resources_controller.rb | 8 ++++++++ config/environments/development.rb | 4 ++++ ...0421162115_add_is_draft_to_web_resources.rb | 5 +++++ db/migrate/20210426142559_create_abouts.rb | 11 +++++++++++ db/schema.rb | 11 ++++++++++- .../assets/stylesheets/bootstrap/_navbar.scss | 2 +- .../assets/stylesheets/bootstrap/_theme.scss | 1 + 10 files changed, 65 insertions(+), 6 deletions(-) create mode 100644 db/migrate/20210421162115_add_is_draft_to_web_resources.rb create mode 100644 db/migrate/20210426142559_create_abouts.rb diff --git a/app/assets/stylesheets/general.scss b/app/assets/stylesheets/general.scss index 6b796904..1d8c404c 100644 --- a/app/assets/stylesheets/general.scss +++ b/app/assets/stylesheets/general.scss @@ -79,9 +79,12 @@ h3 { overflow: auto; } -.selected-vertical { - border-bottom: 2px solid steelblue; -} +// .selected-vertical{ +// font-size: 16px; +// border-radius: 0 0 20px 20px; +// margin: 0 15px 0 15px; +// background-color: #ff0072; +// } /* Verticals */ diff --git a/app/assets/stylesheets/header.scss b/app/assets/stylesheets/header.scss index 15aff61e..6e639404 100644 --- a/app/assets/stylesheets/header.scss +++ b/app/assets/stylesheets/header.scss @@ -6,6 +6,7 @@ #header { text-align: center; + background-color: aliceblue; } .version { @@ -17,6 +18,23 @@ a { font-size: 16px; + border-radius: 0 0 10px 10px; + margin: 0 15px 0 15px; + background-color: white; + } + + .selected-vertical > a{ + font-size: 16px; + border-radius: 0 0 10px 10px; + margin: 0 15px 0 15px; + color: white; + background-color: #A288E3 !important; + } + + a:hover{ + background-color: grey; + color:white; + font-style: italic; } ul { diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 36f23808..b23765fc 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -183,7 +183,7 @@ def get_vertical_map def valid_vertical(vertical) - return @vertical_map.key? vertical + return @vertical_map.key? vertical end diff --git a/app/controllers/web_resources_controller.rb b/app/controllers/web_resources_controller.rb index 7074d772..ad631f5b 100644 --- a/app/controllers/web_resources_controller.rb +++ b/app/controllers/web_resources_controller.rb @@ -22,6 +22,14 @@ def index end def create + @params[:creator] = current_user + if params[:button_press] == "Save" + @params[:is_draft] = false + @success_message = "Web Resource created successfully!" + else + @params[:is_draft] = true + @success_message = "Web Resource saved as draft!" + end @web_resource = WebResource.new @params begin throw Exception("No vertical specified!") if @vertical.nil? diff --git a/config/environments/development.rb b/config/environments/development.rb index d6427ef9..c79fa192 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -44,9 +44,13 @@ # number of complex assets. config.assets.debug = true + # Suppress logger output for asset requests. config.assets.quiet = true + # trigger an error - check with Hank + config.assets.check_precompiled_asset = false + # Raises error for missing translations # config.action_view.raise_on_missing_translations = true diff --git a/db/migrate/20210421162115_add_is_draft_to_web_resources.rb b/db/migrate/20210421162115_add_is_draft_to_web_resources.rb new file mode 100644 index 00000000..3ad749e9 --- /dev/null +++ b/db/migrate/20210421162115_add_is_draft_to_web_resources.rb @@ -0,0 +1,5 @@ +class AddIsDraftToWebResources < ActiveRecord::Migration[6.1] + def change + add_column :web_resources, :is_draft, :boolean + end +end diff --git a/db/migrate/20210426142559_create_abouts.rb b/db/migrate/20210426142559_create_abouts.rb new file mode 100644 index 00000000..1f1b439a --- /dev/null +++ b/db/migrate/20210426142559_create_abouts.rb @@ -0,0 +1,11 @@ +class CreateAbouts < ActiveRecord::Migration[6.1] + def change + create_table :abouts do |t| + t.text :about_summary + t.text :purpose + t.text :contributers + + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 3eeac405..d7a0ff24 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,15 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2021_04_06_034358) do +ActiveRecord::Schema.define(version: 2021_04_26_142559) do + + create_table "abouts", force: :cascade do |t| + t.text "about_summary" + t.text "purpose" + t.text "contributers" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + end create_table "analyses", force: :cascade do |t| t.string "name" @@ -382,6 +390,7 @@ t.text "description" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.boolean "is_draft" end end diff --git a/vendor/bundle/ruby/2.3.0/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss b/vendor/bundle/ruby/2.3.0/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss index 5d9093a9..80b83b59 100644 --- a/vendor/bundle/ruby/2.3.0/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss +++ b/vendor/bundle/ruby/2.3.0/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_navbar.scss @@ -13,7 +13,7 @@ min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode) margin-bottom: $navbar-margin-bottom; border: 1px solid transparent; - + // Prevent floats from breaking the navbar @include clearfix; diff --git a/vendor/bundle/ruby/2.3.0/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_theme.scss b/vendor/bundle/ruby/2.3.0/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_theme.scss index 046eed7a..a06948b1 100644 --- a/vendor/bundle/ruby/2.3.0/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_theme.scss +++ b/vendor/bundle/ruby/2.3.0/gems/bootstrap-sass-3.4.1/assets/stylesheets/bootstrap/_theme.scss @@ -138,6 +138,7 @@ border-radius: $navbar-border-radius; $shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); @include box-shadow($shadow); + background-color: aliceblue !important; .navbar-nav > .open > a, .navbar-nav > .active > a {