Compare commits

..

6 Commits

Author SHA1 Message Date
Bilal
062b1d75cd fix MR comments 2020-07-01 11:11:08 +02:00
Bilal
ea025a86b3 fix MR comments 2020-07-01 11:09:47 +02:00
Bilal
c8f314142c fix MR comments 2020-07-01 10:57:55 +02:00
Bilal
2a7deef3c8 sort translations 2020-07-01 09:10:11 +02:00
Bilal
08e475642c improve spec 2020-07-01 09:10:11 +02:00
Bilal
f201580a01 add splash screen for releaseME 2020-07-01 09:10:11 +02:00
11 changed files with 131 additions and 83 deletions

View File

@@ -7,6 +7,7 @@ class ContractTemplatesController < ApplicationController
before_action :set_project, except: [:destroy] before_action :set_project, except: [:destroy]
before_action :set_contract_template, only: [:destroy] before_action :set_contract_template, only: [:destroy]
before_action :show_splash_screen, only: :index
def index def index
@contract_templates = contract_templates.non_archived.order_by_name.paginate(page: params[:page]) @contract_templates = contract_templates.non_archived.order_by_name.paginate(page: params[:page])
@@ -38,6 +39,10 @@ class ContractTemplatesController < ApplicationController
private private
def show_splash_screen
render :splash if contract_templates.non_archived.count.zero?
end
def set_contract_template def set_contract_template
@contract_template = authorize contract_templates.find(params[:id]) @contract_template = authorize contract_templates.find(params[:id])
end end

View File

@@ -4,7 +4,6 @@ class TaskRequestsController < ApplicationController
before_action :set_project before_action :set_project
before_action :build_task_request, only: [:new, :create] before_action :build_task_request, only: [:new, :create]
before_action :set_task_request, only: [:show, :edit, :update, :cancel] before_action :set_task_request, only: [:show, :edit, :update, :cancel]
before_action :show_splash_screen, only: :index
def index def index
@task_requests = task_requests.order_by_recent.paginate(page: params[:page]) @task_requests = task_requests.order_by_recent.paginate(page: params[:page])
@@ -47,10 +46,6 @@ class TaskRequestsController < ApplicationController
private private
def show_splash_screen
render :splash if task_requests.count.zero?
end
def task_request_params def task_request_params
params.require(:task_request).permit(:description, :deadline, :time_allowed, :additional_notes, files: []) params.require(:task_request).permit(:description, :deadline, :time_allowed, :additional_notes, files: [])
end end

View File

@@ -1,13 +1,13 @@
<div class="d-flex flex-row"> <div class="d-flex flex-row">
<div class="d-flex flex-column"> <div class="d-flex flex-column">
<%= product_wordmark :task_me, prefix: t('.headings.welcome'), class: "h2" %> <%= product_wordmark :release_me, prefix: t('.headings.welcome'), class: "h2" %>
<p class="text-muted"><%= t '.headings.subtitle' %> <p class="text-muted"><%= t '.headings.subtitle' %>
</div> </div>
<%= link_to t(".actions.book_demo"), 'https://meetings.hubspot.com/bray2', class: "btn btn-primary border align-self-center h-50 ml-auto mr-2 pb-2", target: '_blank' %> <%= link_to t(".actions.book_demo"), 'https://meetings.hubspot.com/bray2', class: "btn btn-primary border align-self-center h-50 ml-auto mr-2 pb-2", target: '_blank' %>
<% if policy(TaskRequest).new? %> <% if policy(ContractTemplate).new? %>
<%= link_to t(".actions.create_task_request"), [:new, @project, :task_request], class: "btn btn-success border align-self-center h-50 pb-2" %> <%= link_to t(".actions.create_template"), [:new, @project, :contract_template], class: "btn btn-success border align-self-center h-50 pb-2" %>
<% end %> <% end %>
</div> </div>
<hr> <hr>
@@ -36,10 +36,10 @@
<div class="col"> <div class="col">
<h3><%= t '.headings.how_it_works' %></h3> <h3><%= t '.headings.how_it_works' %></h3>
<ol> <ol>
<li><%= t '.list_items.enter_task_request' %></li> <li><%= t '.list_items.create_releases' %></li>
<li><%= t '.list_items.state_deadline' %></li> <li><%= t '.list_items.download_mobile_app' %></li>
<li><%= t '.list_items.enter_number_of_hours' %></li> <li><%= t '.list_items.print_QR_code' %></li>
<li><%= t '.list_items.virtual_assistant_delivers_task' %></li> <li><%= t '.list_items.releases_automatically_organized' %></li>
</ol> </ol>
</div> </div>
</div> </div>
@@ -47,9 +47,9 @@
<div class="col"> <div class="col">
<h3><%= t '.headings.benefits' %></h3> <h3><%= t '.headings.benefits' %></h3>
<ul class="fa-ul ml-5"> <ul class="fa-ul ml-5">
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.reduces_need_for_full_time_staff'))) %> <%= content_tag(:li, fa_icon("check li", text: t('.list_items.all_releases_available'))) %>
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.reduces_workload'))) %> <%= content_tag(:li, fa_icon("check li", text: t('.list_items.manage_large_audience'))) %>
<%= content_tag(:li, fa_icon("check li", text: t('.list_items.spend_per_task'))) %> <%= content_tag(:li, fa_icon("check li", text: t('.list_items.add_tags_and_notes'))) %>
</ul> </ul>
</div> </div>
</div> </div>

View File

@@ -252,6 +252,23 @@ en:
signed_release_count: No. Signed Releases signed_release_count: No. Signed Releases
new: new:
heading: New Release Template heading: New Release Template
splash:
actions:
book_demo: Schedule a Demo
create_template: Create New Release Template
headings:
benefits: Benefits
how_it_works: How It Works
subtitle: The easiest way to create and manage releases.
welcome: Welcome to
list_items:
add_tags_and_notes: Add tags and notes to releases for added organization and searchability
all_releases_available: All release types available including Covid Medical, Appearance, Location and more
create_releases: Create releases for your video shoot
download_mobile_app: Download the ME Suite mobile app
manage_large_audience: Easily manage large audiences with the crowd control feature
print_QR_code: Print out release QR codes
releases_automatically_organized: Releases are automatically organized as theyre submitted
contracts: contracts:
medical_questionnaire: medical_questionnaire:
heading: Medical Questionnaire heading: Medical Questionnaire
@@ -1202,23 +1219,6 @@ en:
heading: New Task Request heading: New Task Request
show: show:
empty: Attached files will appear here. empty: Attached files will appear here.
splash:
actions:
book_demo: Schedule a Demo
create_task_request: Create Task Request
headings:
benefits: Benefits
how_it_works: How It Works
subtitle: Pay-by-the-hour, digitally-enabled remote assistants
welcome: Welcome to
list_items:
enter_number_of_hours: Enter the number of hours you want the task worked on
enter_task_request: Enter your task request
reduces_need_for_full_time_staff: Reduces need to hire full-time staff
reduces_workload: Reduces workload for current staff
spend_per_task: Spend as little as $60 per task
state_deadline: State your deadline
virtual_assistant_delivers_task: Virtual assistant delivers task via TaskME portal
task_request: task_request:
actions: actions:
manage: Manage manage: Manage

View File

@@ -70,6 +70,23 @@ es:
heading: Legal (ES) heading: Legal (ES)
release_info: release_info:
heading: Release Info (ES) heading: Release Info (ES)
splash:
actions:
book_demo: Schedule a Demo (ES)
create_template: Create New Release Template (ES)
headings:
benefits: ""
how_it_works: How It Works (ES)
subtitle: The easiest way to create and manage releases. (ES)
welcome: Welcome to (ES)
list_items:
add_tags_and_notes: Add tags and notes to releases for added organization and searchability (ES)
all_releases_available: All release types available including Covid Medical, Appearance, Location and more (ES)
create_releases: Create releases for your video shoot (ES)
download_mobile_app: Download the ME Suite mobile app (ES)
manage_large_audience: Easily manage large audiences with the crowd control feature (ES)
print_QR_code: Print out release QR codes (ES)
releases_automatically_organized: Releases are automatically organized as theyre submitted (ES)
contracts: contracts:
photos: photos:
guardian_2_photo_heading: Second guardian photo (ES) guardian_2_photo_heading: Second guardian photo (ES)
@@ -358,23 +375,6 @@ es:
index: index:
table_headers: table_headers:
task_request_description: Description (ES) task_request_description: Description (ES)
splash:
actions:
book_demo: Schedule a Demo (ES)
create_task_request: Create Task Request
headings:
benefits: Benefits (ES)
how_it_works: How It Works (ES)
subtitle: Pay-by-the-hour, digitally-enabled remote assistants (ES)
welcome: Welcome to (ES)
list_items:
enter_number_of_hours: Enter the number of hours you want the task worked on (ES)
enter_task_request: Enter your task request (ES)
reduces_need_for_full_time_staff: Reduces need to hire full-time staff (ES)
reduces_workload: Reduces workload for current staff (ES)
spend_per_task: Spend as little as $60 per task (ES)
state_deadline: State your deadline (ES)
virtual_assistant_delivers_task: Virtual assistant delivers task via TaskME portal (ES)
task_request: task_request:
actions: actions:
manage: Manage (ES) manage: Manage (ES)

View File

@@ -9,6 +9,20 @@ SET xmloption = content;
SET client_min_messages = warning; SET client_min_messages = warning;
SET row_security = off; SET row_security = off;
--
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: -
--
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
--
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: -
--
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
-- --
-- Name: fuzzystrmatch; Type: EXTENSION; Schema: -; Owner: - -- Name: fuzzystrmatch; Type: EXTENSION; Schema: -; Owner: -
-- --
@@ -317,8 +331,8 @@ CREATE TABLE public.appearance_releases (
person_last_name character varying, person_last_name character varying,
guardian_first_name character varying, guardian_first_name character varying,
guardian_last_name character varying, guardian_last_name character varying,
identifier character varying,
guardian_email character varying, guardian_email character varying,
identifier character varying,
person_address_street2 character varying, person_address_street2 character varying,
person_address_city character varying, person_address_city character varying,
person_address_state character varying, person_address_state character varying,
@@ -652,6 +666,15 @@ CREATE SEQUENCE public.contract_templates_id_seq
ALTER SEQUENCE public.contract_templates_id_seq OWNED BY public.contract_templates.id; ALTER SEQUENCE public.contract_templates_id_seq OWNED BY public.contract_templates.id;
--
-- Name: data_migrations; Type: TABLE; Schema: public; Owner: -
--
CREATE TABLE public.data_migrations (
version character varying NOT NULL
);
-- --
-- Name: directories; Type: TABLE; Schema: public; Owner: - -- Name: directories; Type: TABLE; Schema: public; Owner: -
-- --
@@ -1378,7 +1401,6 @@ CREATE TABLE public.settings (
-- --
CREATE SEQUENCE public.settings_id_seq CREATE SEQUENCE public.settings_id_seq
AS integer
START WITH 1 START WITH 1
INCREMENT BY 1 INCREMENT BY 1
NO MINVALUE NO MINVALUE
@@ -1414,7 +1436,6 @@ CREATE TABLE public.taggings (
-- --
CREATE SEQUENCE public.taggings_id_seq CREATE SEQUENCE public.taggings_id_seq
AS integer
START WITH 1 START WITH 1
INCREMENT BY 1 INCREMENT BY 1
NO MINVALUE NO MINVALUE
@@ -1445,7 +1466,6 @@ CREATE TABLE public.tags (
-- --
CREATE SEQUENCE public.tags_id_seq CREATE SEQUENCE public.tags_id_seq
AS integer
START WITH 1 START WITH 1
INCREMENT BY 1 INCREMENT BY 1
NO MINVALUE NO MINVALUE
@@ -1806,9 +1826,9 @@ CREATE TABLE public.zoom_meetings (
api_meeting_id character varying, api_meeting_id character varying,
created_at timestamp(6) without time zone NOT NULL, created_at timestamp(6) without time zone NOT NULL,
updated_at timestamp(6) without time zone NOT NULL, updated_at timestamp(6) without time zone NOT NULL,
status integer DEFAULT 0,
zoom_user_id bigint, zoom_user_id bigint,
project_id bigint, project_id bigint
status integer DEFAULT 0
); );
@@ -2285,6 +2305,14 @@ ALTER TABLE ONLY public.contract_templates
ADD CONSTRAINT contract_templates_pkey PRIMARY KEY (id); ADD CONSTRAINT contract_templates_pkey PRIMARY KEY (id);
--
-- Name: data_migrations data_migrations_pkey; Type: CONSTRAINT; Schema: public; Owner: -
--
ALTER TABLE ONLY public.data_migrations
ADD CONSTRAINT data_migrations_pkey PRIMARY KEY (version);
-- --
-- Name: directories directories_pkey; Type: CONSTRAINT; Schema: public; Owner: - -- Name: directories directories_pkey; Type: CONSTRAINT; Schema: public; Owner: -
-- --

View File

@@ -19,7 +19,7 @@ describe ContractTemplatesController do
expect(response).to be_successful expect(response).to be_successful
end end
it 'renders content' do it 'renders content if there are contract templates' do
contract_template = create(:contract_template, contract_template = create(:contract_template,
name: 'My Contract Template', fee: 50, release_type: 'appearance', name: 'My Contract Template', fee: 50, release_type: 'appearance',
project: project) project: project)
@@ -39,10 +39,11 @@ describe ContractTemplatesController do
end end
context 'when there are no contract templates' do context 'when there are no contract templates' do
it 'renders an empty message' do it 'renders splash screen' do
get :index, params: { project_id: project } get :index, params: { project_id: project }
expect(response.body).to have_content('Release Templates will appear here') expect(response.body).to have_link "Create New Release Template"
expect(response.body).to have_link schedule_demo
end end
end end
@@ -50,6 +51,7 @@ describe ContractTemplatesController do
let(:current_user) { create(:user, :associate) } let(:current_user) { create(:user, :associate) }
it 'does not show the new contract template button' do it 'does not show the new contract template button' do
create(:contract_template, project: project)
get :index, params: { project_id: project } get :index, params: { project_id: project }
expect(response.body).not_to have_link('Create New Release Template') expect(response.body).not_to have_link('Create New Release Template')
@@ -166,4 +168,8 @@ describe ContractTemplatesController do
restriction_text: 'restrictions' restriction_text: 'restrictions'
} }
end end
def schedule_demo
t 'contract_templates.splash.actions.book_demo'
end
end end

View File

@@ -18,14 +18,7 @@ RSpec.describe TaskRequestsController, type: :controller do
expect(response).to be_successful expect(response).to be_successful
end end
it "renders splash page if there are no task requests" do it "renders content" do
get :index, params: { project_id: project }
expect(response.body).to have_link "Create Task Request"
expect(response.body).to have_link schedule_demo
end
it "renders task requests table if there are task requests" do
create(:task_request, project: project, description: "Another Request") create(:task_request, project: project, description: "Another Request")
get :index, params: { project_id: project } get :index, params: { project_id: project }
@@ -133,8 +126,4 @@ RSpec.describe TaskRequestsController, type: :controller do
def update_params def update_params
{ description: "This is updated description" } { description: "This is updated description" }
end end
def schedule_demo
t 'task_requests.splash.actions.book_demo'
end
end end

View File

@@ -13,6 +13,7 @@ feature "User imports release templates", type: :feature do
end end
scenario "importing two existing templates into a project" do scenario "importing two existing templates into a project" do
create(:contract_template, project: project)
visit project_contract_templates_path(project) visit project_contract_templates_path(project)
click_on "Import Release Template" click_on "Import Release Template"
select_templates([project_one_template.id, project_two_template.id]) select_templates([project_one_template.id, project_two_template.id])
@@ -31,6 +32,7 @@ feature "User imports release templates", type: :feature do
end end
scenario "searching for a template", js: true do scenario "searching for a template", js: true do
create(:contract_template, project: project)
visit project_contract_templates_path(project) visit project_contract_templates_path(project)
click_on "Import Release Template" click_on "Import Release Template"
fill_in "query", with: "Second" fill_in "query", with: "Second"

View File

@@ -11,6 +11,13 @@ RSpec.feature 'User manages contract templates', type: :feature do
sign_in(current_user) sign_in(current_user)
end end
scenario 'splash page is shown if tehre are no contract templates' do
visit project_contract_templates_path(project)
expect(page).to have_content schedule_demo
expect(page).to have_content create_release_template
end
scenario 'creating a new release template' do scenario 'creating a new release template' do
visit new_project_contract_template_path(project) visit new_project_contract_template_path(project)
@@ -223,12 +230,20 @@ RSpec.feature 'User manages contract templates', type: :feature do
let(:current_user) { create(:user, :associate) } let(:current_user) { create(:user, :associate) }
it 'does not show management buttons for release templates' do it 'does not show management buttons for release templates' do
create(:contract_template, project: project)
visit project_contract_templates_path(project) visit project_contract_templates_path(project)
expect(page).not_to have_content('Create New Release Template') expect(page).not_to have_content('Create New Release Template')
expect(page).not_to have_content(import_template_button) expect(page).not_to have_content(import_template_button)
expect(page).not_to have_content('Delete') expect(page).not_to have_content('Delete')
end end
it 'does not show create release button on splash page' do
visit project_contract_templates_path(project)
expect(page).to have_content schedule_demo
expect(page).not_to have_content create_release_template
end
end end
context 'When the user is account manager' do context 'When the user is account manager' do
@@ -242,6 +257,13 @@ RSpec.feature 'User manages contract templates', type: :feature do
click_on 'Manage' click_on 'Manage'
expect(page).to have_content('Archive') expect(page).to have_content('Archive')
end end
it 'does not show create release button on splash page' do
visit project_contract_templates_path(project)
expect(page).to have_content schedule_demo
expect(page).to have_content create_release_template
end
end end
private private
@@ -273,4 +295,12 @@ RSpec.feature 'User manages contract templates', type: :feature do
def fill_hidden(id, with:) def fill_hidden(id, with:)
find(:xpath, "//input[@id='#{id}']", visible: false).set with find(:xpath, "//input[@id='#{id}']", visible: false).set with
end end
def schedule_demo
t 'contract_templates.splash.actions.book_demo'
end
def create_release_template
t 'contract_templates.splash.actions.create_template'
end
end end

View File

@@ -8,14 +8,7 @@ feature "User managing task requests" do
sign_in current_user sign_in current_user
end end
scenario "splash page is shown if there are no task requests" do
visit project_task_requests_path(project)
expect(page).to have_content schedule_demo
end
scenario "task requests table is visible" do scenario "task requests table is visible" do
create(:task_request, project: project, description: 'Short Desc')
visit project_task_requests_path(project) visit project_task_requests_path(project)
expect(page).to have_content "Created On" expect(page).to have_content "Created On"
@@ -26,6 +19,10 @@ feature "User managing task requests" do
end end
scenario "sees list of task requests" do scenario "sees list of task requests" do
visit project_task_requests_path(project)
expect(page).to have_content no_task_requests_label
task_request = create(:task_request, project: project) task_request = create(:task_request, project: project)
visit project_task_requests_path(project) visit project_task_requests_path(project)
@@ -116,8 +113,4 @@ feature "User managing task requests" do
def long_description_text def long_description_text
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.' 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
end end
def schedule_demo
t 'task_requests.splash.actions.book_demo'
end
end end