mirror of
https://github.com/indentlabs/notebook.git
synced 2025-10-26 11:19:22 +00:00
Merge branch 'master' into thredded-report
This commit is contained in:
commit
4cf00a89cf
@ -6,8 +6,20 @@
|
||||
padding-left: 16px;
|
||||
}
|
||||
|
||||
.thredded--navigation-breadcrumbs {
|
||||
overflow: hidden;
|
||||
max-height: 60px;
|
||||
}
|
||||
|
||||
.thredded--user-navigation {
|
||||
height: 64px;
|
||||
height: 70px;
|
||||
|
||||
margin-top: 10px;
|
||||
margin-right: 10px;
|
||||
|
||||
.thredded--user-navigation--item a {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.thredded--currently-online {
|
||||
|
||||
@ -24,7 +24,7 @@ class RegistrationsController < Devise::RegistrationsController
|
||||
def account_update_params
|
||||
params.require(:user).permit(
|
||||
:name, :email, :username, :password, :password_confirmation, :email_updates, :fluid_preference,
|
||||
:bio, :favorite_genre, :favorite_author, :interests, :age, :location, :gender
|
||||
:bio, :favorite_genre, :favorite_author, :interests, :age, :location, :gender, :forums_badge_text
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@ -78,6 +78,7 @@ class UsersController < ApplicationController
|
||||
private
|
||||
|
||||
def user_params
|
||||
# todo is this used anywhere?
|
||||
params.permit(:id, :username)
|
||||
end
|
||||
end
|
||||
|
||||
@ -8,6 +8,7 @@ class DocumentMentionJob < ApplicationJob
|
||||
|
||||
document = Document.find(document_id)
|
||||
return unless document.present?
|
||||
return if document.body.nil? || document.body.empty?
|
||||
|
||||
analysis = Documents::Analysis::DocumentAnalysisService.create_placeholder_analysis(document)
|
||||
|
||||
|
||||
@ -17,6 +17,11 @@ class User < ApplicationRecord
|
||||
allow_blank: true,
|
||||
length: { maximum: 40 },
|
||||
format: /\A[A-Za-z0-9\-_\$\+\!\*]+\z/
|
||||
|
||||
validates :forums_badge_text,
|
||||
allow_nil: true,
|
||||
allow_blank: true,
|
||||
length: { maximum: 20 }
|
||||
|
||||
has_many :subscriptions, dependent: :destroy
|
||||
has_many :billing_plans, through: :subscriptions
|
||||
|
||||
@ -45,6 +45,16 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-content">
|
||||
<div class="field">
|
||||
<%= f.label 'Custom Premium badge text' %><br />
|
||||
<%= f.text_field :forums_badge_text, data: { length: 20 }, class: 'with-character-counter', placeholder: 'Premium Supporter' %>
|
||||
<small class="help-text">Premium users can customize the badge that appears under their name on their profile and next to their name on the forums.</small><br />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -69,22 +69,24 @@
|
||||
l_width = 6
|
||||
%>
|
||||
|
||||
<% unless true || current_user.notice_dismissals.where(notice_id: 1).any? %>
|
||||
<% unless current_user.notice_dismissals.where(notice_id: 2).any? %>
|
||||
<div class="dashboard-row col <%= "s#{s_width} m#{m_width} l#{l_width}" %>">
|
||||
<div class="cyan card" style="height: 260px; margin-bottom: 0;">
|
||||
<div class="<%= Document.color %> card" style="height: 260px; margin-bottom: 0;">
|
||||
<div class="card-content">
|
||||
<h4 class="card-title white-text" style="margin-top: 10px">
|
||||
<span class="badge new white black-text left" style="margin: 0; margin-right: 8px; position: relative; top: 4px;"></span>
|
||||
School, Sport, and Food pages
|
||||
Analyze your writing with world-class AI
|
||||
</h4>
|
||||
<p class="white-text">
|
||||
To celebrate the launch of our three new Premium pages,
|
||||
you can now create as many <strong>School</strong> pages as you'd like during the month of June!
|
||||
Premium users can now analyze their documents — and the characters within them — for readability, style, and emotion with IBM Watson's AI.
|
||||
</p>
|
||||
<br />
|
||||
<p class="white-text">
|
||||
Learn more at our blog post below:
|
||||
</p>
|
||||
</div>
|
||||
<div class="card-action cyan lighten-1 hoverable">
|
||||
<%= link_to 'Read more', 'https://www.notebook.ai/forum/announcements/new-page-types-food-sports-and-schools-and-a-special-surprise', class: 'white-text' %>
|
||||
<%= link_to 'Customize my pages', main_app.customization_content_types_path, class: 'white-text' %>
|
||||
<div class="card-action <%= Document.color %> lighten-1 hoverable">
|
||||
<%= link_to 'Read more', 'https://medium.com/indent-labs/adding-the-ai-to-notebook-ai-950f44d231e5', target: '_new', class: 'white-text' %>
|
||||
<%= link_to 'Dismiss', notice_dismissal_dismiss_path(notice_id: 1), class: 'white-text right' %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -63,7 +63,7 @@ body {
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col s8">
|
||||
<div class="col s7">
|
||||
<div>
|
||||
<h4>How do I use it?</h4>
|
||||
<p class="light">
|
||||
@ -86,7 +86,7 @@ body {
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
<div class="col s4 offset-s1">
|
||||
<%= image_tag 'screenshots/dashboard.png' %>
|
||||
</div>
|
||||
</div>
|
||||
@ -98,7 +98,7 @@ body {
|
||||
<div class="container">
|
||||
<div class="section">
|
||||
<div class="row">
|
||||
<% [Character, Location, Item, Creature, Race, Religion, Group, Magic, Language].each do |content_type| %>
|
||||
<% Rails.application.config.content_types[:all_non_universe].each do |content_type| %>
|
||||
<div class="col l4 m4 s12">
|
||||
<%= render partial: 'cards/intros/content_type_intro', locals: { content_type: content_type } %>
|
||||
</div>
|
||||
@ -112,7 +112,7 @@ body {
|
||||
<div class="section">
|
||||
|
||||
<div class="row">
|
||||
<div class="col s7">
|
||||
<div class="col s6">
|
||||
<div>
|
||||
<h4>Separate your worlds with Universes</h4>
|
||||
<p class="light">
|
||||
@ -131,7 +131,7 @@ body {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s5">
|
||||
<div class="col s5 offset-s1">
|
||||
<%= image_tag 'screenshots/universe.png', class: 'left' %>
|
||||
</div>
|
||||
</div>
|
||||
@ -140,7 +140,7 @@ body {
|
||||
<div class="col s5">
|
||||
<%= image_tag 'screenshots/sharing.png', class: 'right' %>
|
||||
</div>
|
||||
<div class="col s7">
|
||||
<div class="col s6 offset-s1">
|
||||
<div>
|
||||
<h4>Share your game with your team with easy privacy rules</h4>
|
||||
<p class="light">
|
||||
@ -174,9 +174,9 @@ body {
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col s7">
|
||||
<div class="col s6">
|
||||
<div>
|
||||
<h4>Keep your game focused in a rich world of consistent details</h4>
|
||||
<h4>Keep your world focused with consistent details</h4>
|
||||
<p class="light">
|
||||
Having an in-depth reference while developing your game lets you quickly look up even the smallest of details when you need them
|
||||
and keep working uninterrupted. You'll never again have to flip backward to find out what quest rewards should be, or exactly how
|
||||
@ -201,7 +201,7 @@ body {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s5">
|
||||
<div class="col s5 offset-s1">
|
||||
<%= image_tag 'screenshots/character.png', class: 'left' %>
|
||||
</div>
|
||||
</div>
|
||||
@ -210,7 +210,7 @@ body {
|
||||
<div class="col s5">
|
||||
<%= image_tag 'screenshots/gallery.png', class: 'right' %>
|
||||
</div>
|
||||
<div class="col s7">
|
||||
<div class="col s6 offset-s1">
|
||||
<div>
|
||||
<h4>Upload images for inspiration or reference</h4>
|
||||
<p class="light">
|
||||
@ -236,7 +236,7 @@ body {
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col s7">
|
||||
<div class="col s6">
|
||||
<div>
|
||||
<h4>Export your entire notebook in more and more formats</h4>
|
||||
<p class="light">
|
||||
@ -253,7 +253,7 @@ body {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s5">
|
||||
<div class="col s5 offset-s1">
|
||||
<%= image_tag 'screenshots/exporting.png', class: 'left' %>
|
||||
</div>
|
||||
</div>
|
||||
@ -266,7 +266,7 @@ body {
|
||||
<div class="card-panel blue white-text hoverable" style="height: 160px">
|
||||
<div class="row">
|
||||
<div class="col s9">
|
||||
<h1 style="font-size: 26px;">
|
||||
<h1 style="font-size: 26px; display: inline">
|
||||
<%= link_to 'Start worldbuilding right now.', new_user_registration_path, class: 'white-text' %>
|
||||
</h1>
|
||||
<h5 style="font-size: 16px;">No card needed. Upgrade seamlessly any time.</h5>
|
||||
@ -360,7 +360,7 @@ body {
|
||||
<div>
|
||||
<h4>How much does it cost?</h4>
|
||||
<div class="row">
|
||||
<div class="col s9">
|
||||
<div class="col s7">
|
||||
<p class="light">
|
||||
<strong>Creating core notebook pages (universes, characters, locations, and items) is free</strong> and doesn't require
|
||||
any payment information to start creating your novel's world immediately upon signup. Free users, however,
|
||||
@ -376,12 +376,12 @@ body {
|
||||
Additionally, a Premium subscription also increases your image upload storage from 50MB to 10GB.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col s3">
|
||||
<% [Character, Location, Item, Creature, Race, Religion, Group, Magic, Language].each_with_index do |content_type, i| %>
|
||||
<i class="material-icons <%= content_type.color %>-text tooltipped" style="font-size: 72px" data-delay="100" data-tooltip="<%= User.new.can_create?(content_type) ? 'All' : 'Premium' %> users can create unlimited <%= content_type.name.pluralize %>.">
|
||||
<div class="col s4 offset-s1">
|
||||
<% Rails.application.config.content_types[:all].each_with_index do |content_type, i| %>
|
||||
<i class="material-icons <%= content_type.color %>-text tooltipped medium" data-delay="100" data-tooltip="<%= User.new.can_create?(content_type) ? 'All' : 'Premium' %> users can create unlimited <%= content_type.name.pluralize %>.">
|
||||
<%= content_type.icon %>
|
||||
</i>
|
||||
<%= '<br />'.html_safe if (i + 1) % 3 == 0 %>
|
||||
<%= '<br />'.html_safe if (i + 1) % 6 == 0 %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -63,7 +63,7 @@ body {
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col s8">
|
||||
<div class="col s7">
|
||||
<div>
|
||||
<h4>How do I use it?</h4>
|
||||
<p class="light">
|
||||
@ -86,7 +86,7 @@ body {
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
<div class="col s4 offset-s1">
|
||||
<%= image_tag 'screenshots/dashboard.png' %>
|
||||
</div>
|
||||
</div>
|
||||
@ -98,7 +98,7 @@ body {
|
||||
<div class="container">
|
||||
<div class="section">
|
||||
<div class="row">
|
||||
<% [Character, Location, Item, Creature, Race, Religion, Group, Magic, Language].each do |content_type| %>
|
||||
<% Rails.application.config.content_types[:all_non_universe].each do |content_type| %>
|
||||
<div class="col l4 m4 s12">
|
||||
<%= render partial: 'cards/intros/content_type_intro', locals: { content_type: content_type } %>
|
||||
</div>
|
||||
@ -110,9 +110,8 @@ body {
|
||||
|
||||
<div class="container">
|
||||
<div class="section">
|
||||
|
||||
<div class="row">
|
||||
<div class="col s7">
|
||||
<div class="col s6">
|
||||
<div>
|
||||
<h4>Separate your worlds with Universes</h4>
|
||||
<p class="light">
|
||||
@ -130,7 +129,7 @@ body {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s5">
|
||||
<div class="col s5 offset-s1">
|
||||
<%= image_tag 'screenshots/universe.png', class: 'left' %>
|
||||
</div>
|
||||
</div>
|
||||
@ -139,7 +138,7 @@ body {
|
||||
<div class="col s5">
|
||||
<%= image_tag 'screenshots/sharing.png', class: 'right' %>
|
||||
</div>
|
||||
<div class="col s7">
|
||||
<div class="col s6 offset-s1">
|
||||
<div>
|
||||
<h4>Share your campaign with players with easy privacy rules</h4>
|
||||
<p class="light">
|
||||
@ -172,7 +171,7 @@ body {
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col s7">
|
||||
<div class="col s6">
|
||||
<div>
|
||||
<h4>Keep your players engrossed with a rich world of consistent details</h4>
|
||||
<p class="light">
|
||||
@ -198,7 +197,7 @@ body {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s5">
|
||||
<div class="col s5 offset-s1">
|
||||
<%= image_tag 'screenshots/character.png', class: 'left' %>
|
||||
</div>
|
||||
</div>
|
||||
@ -207,7 +206,7 @@ body {
|
||||
<div class="col s5">
|
||||
<%= image_tag 'screenshots/gallery.png', class: 'right' %>
|
||||
</div>
|
||||
<div class="col s7">
|
||||
<div class="col s6 offset-s1">
|
||||
<div>
|
||||
<h4>Upload images for inspiration or reference</h4>
|
||||
<p class="light">
|
||||
@ -233,7 +232,7 @@ body {
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col s7">
|
||||
<div class="col s6">
|
||||
<div>
|
||||
<h4>Build family trees and organization hierarchies with ease</h4>
|
||||
<p class="light">
|
||||
@ -258,7 +257,7 @@ body {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s5">
|
||||
<div class="col s5 offset-s1">
|
||||
<%= image_tag 'screenshots/family-tree.png', class: 'left' %>
|
||||
</div>
|
||||
</div>
|
||||
@ -271,10 +270,10 @@ body {
|
||||
<div class="card-panel blue white-text hoverable" style="height: 160px">
|
||||
<div class="row">
|
||||
<div class="col s9">
|
||||
<h1 style="font-size: 26px;">
|
||||
<h1 style="font-size: 26px; display: inline">
|
||||
<%= link_to 'Start worldbuilding right now.', new_user_registration_path, class: 'white-text' %>
|
||||
</h1>
|
||||
<h5 style="font-size: 16px;">No card needed. Upgrade seamlessly any time.</h5>
|
||||
<h5 style="font-size: 16px;">No card needed. Upgrade or downgrade seamlessly any time.</h5>
|
||||
</div>
|
||||
<div class="col s3 valign-wrapper" style="height: 130px;">
|
||||
<div class="valign">
|
||||
@ -365,7 +364,7 @@ body {
|
||||
<div>
|
||||
<h4>How much does it cost?</h4>
|
||||
<div class="row">
|
||||
<div class="col s9">
|
||||
<div class="col s7">
|
||||
<p class="light">
|
||||
<strong>Creating core notebook pages (universes, characters, locations, and items) is free</strong> and doesn't require
|
||||
any payment information to start creating your novel's world immediately upon signup. Free users, however,
|
||||
@ -381,12 +380,12 @@ body {
|
||||
Additionally, a Premium subscription also increases your image upload storage from 50MB to 10GB.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col s3">
|
||||
<% [Character, Location, Item, Creature, Race, Religion, Group, Magic, Language].each_with_index do |content_type, i| %>
|
||||
<i class="material-icons <%= content_type.color %>-text tooltipped" style="font-size: 72px" data-delay="100" data-tooltip="<%= User.new.can_create?(content_type) ? 'All' : 'Premium' %> users can create unlimited <%= content_type.name.pluralize %>.">
|
||||
<div class="col s4 offset-s1">
|
||||
<% Rails.application.config.content_types[:all].each_with_index do |content_type, i| %>
|
||||
<i class="material-icons <%= content_type.color %>-text tooltipped medium" data-delay="100" data-tooltip="<%= User.new.can_create?(content_type) ? 'All' : 'Premium' %> users can create unlimited <%= content_type.name.pluralize %>.">
|
||||
<%= content_type.icon %>
|
||||
</i>
|
||||
<%= '<br />'.html_safe if (i + 1) % 3 == 0 %>
|
||||
<%= '<br />'.html_safe if (i + 1) % 6 == 0 %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -63,7 +63,7 @@ body {
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col s8">
|
||||
<div class="col s7">
|
||||
<div>
|
||||
<h4>How do I use it?</h4>
|
||||
<p class="light">
|
||||
@ -81,12 +81,12 @@ body {
|
||||
items for any relevant objects or trinkets in your story.
|
||||
</p>
|
||||
<p class="light">
|
||||
Once you've got the basics, just expand outward for your story! Right now, there are nine different page types you can
|
||||
create in Notebook.ai.
|
||||
Once you've got the basics, just expand outward for your story! Right now, there are <%= Rails.application.config.content_types[:all_non_universe].count %> different page types you can
|
||||
create in Notebook.ai: <%= Rails.application.config.content_types[:all_non_universe].map { |t| t.name.downcase.pluralize }.to_sentence %>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s4">
|
||||
<div class="col s4 offset-s1">
|
||||
<%= image_tag 'screenshots/dashboard.png' %>
|
||||
</div>
|
||||
</div>
|
||||
@ -112,7 +112,7 @@ body {
|
||||
<div class="section">
|
||||
|
||||
<div class="row">
|
||||
<div class="col s7">
|
||||
<div class="col s6">
|
||||
<div>
|
||||
<h4>Separate your worlds with Universes</h4>
|
||||
<p class="light">
|
||||
@ -129,7 +129,7 @@ body {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s5">
|
||||
<div class="col s5 offset-s1">
|
||||
<%= image_tag 'screenshots/universe.png', class: 'left' %>
|
||||
</div>
|
||||
</div>
|
||||
@ -138,7 +138,7 @@ body {
|
||||
<div class="col s5">
|
||||
<%= image_tag 'screenshots/quick-reference.png', class: 'right' %>
|
||||
</div>
|
||||
<div class="col s7">
|
||||
<div class="col s6 offset-s1">
|
||||
<div>
|
||||
<h4>Build your world piece by piece with personalized writing prompts</h4>
|
||||
<p class="light">
|
||||
@ -164,7 +164,7 @@ body {
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col s7">
|
||||
<div class="col s6">
|
||||
<div>
|
||||
<h4>Keep your readers engrossed with a rich world of consistent details</h4>
|
||||
<p class="light">
|
||||
@ -189,7 +189,7 @@ body {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s5">
|
||||
<div class="col s5 offset-s1">
|
||||
<%= image_tag 'screenshots/character.png', class: 'left' %>
|
||||
</div>
|
||||
</div>
|
||||
@ -198,7 +198,7 @@ body {
|
||||
<div class="col s5">
|
||||
<%= image_tag 'screenshots/gallery.png', class: 'right' %>
|
||||
</div>
|
||||
<div class="col s7">
|
||||
<div class="col s6 offset-s1">
|
||||
<div>
|
||||
<h4>Upload images for inspiration or reference</h4>
|
||||
<p class="light">
|
||||
@ -224,7 +224,7 @@ body {
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col s7">
|
||||
<div class="col s6">
|
||||
<div>
|
||||
<h4>Build family trees and organization hierarchies with ease</h4>
|
||||
<p class="light">
|
||||
@ -249,7 +249,7 @@ body {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s5">
|
||||
<div class="col s5 offset-s1">
|
||||
<%= image_tag 'screenshots/family-tree.png', class: 'left' %>
|
||||
</div>
|
||||
</div>
|
||||
@ -262,10 +262,10 @@ body {
|
||||
<div class="card-panel blue white-text hoverable" style="height: 160px">
|
||||
<div class="row">
|
||||
<div class="col s9">
|
||||
<h1 style="font-size: 26px;">
|
||||
<h1 style="font-size: 26px; display: inline;">
|
||||
<%= link_to 'Start worldbuilding right now.', new_user_registration_path, class: 'white-text' %>
|
||||
</h1>
|
||||
<h5 style="font-size: 16px;">No card needed. Upgrade seamlessly any time.</h5>
|
||||
<h5 style="font-size: 16px;">No card needed. Upgrade or downgrade seamlessly any time.</h5>
|
||||
</div>
|
||||
<div class="col s3 valign-wrapper" style="height: 130px;">
|
||||
<div class="valign">
|
||||
@ -338,10 +338,10 @@ body {
|
||||
|
||||
<div class="col s12 m4">
|
||||
<div class="icon-block center">
|
||||
<h2 class="brown-text"><i class="material-icons">library_books</i></h2>
|
||||
<h5><%= t('marketing.landing_page.benefits.yours.title') %></h5>
|
||||
<h2 class="brown-text"><i class="material-icons">security</i></h2>
|
||||
<h5><%= t('marketing.landing_page.benefits.ads.title') %></h5>
|
||||
<p class="light">
|
||||
<%= t('marketing.landing_page.benefits.yours.text') %>
|
||||
<%= t('marketing.landing_page.benefits.ads.text') %>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@ -358,7 +358,7 @@ body {
|
||||
<div>
|
||||
<h4>How much does it cost?</h4>
|
||||
<div class="row">
|
||||
<div class="col s9">
|
||||
<div class="col s7">
|
||||
<p class="light">
|
||||
<strong>Creating core notebook pages (universes, characters, locations, and items) is free</strong> and doesn't require
|
||||
any payment information to start creating your novel's world immediately upon signup. Free users, however,
|
||||
@ -374,12 +374,12 @@ body {
|
||||
Additionally, a Premium subscription also increases your image upload storage from 50MB to 10GB.
|
||||
</p>
|
||||
</div>
|
||||
<div class="col s3">
|
||||
<div class="col s4 offset-s1">
|
||||
<% Rails.application.config.content_types[:all].each_with_index do |content_type, i| %>
|
||||
<i class="material-icons <%= content_type.color %>-text tooltipped" style="font-size: 72px" data-delay="100" data-tooltip="<%= User.new.can_create?(content_type) ? 'All' : 'Premium' %> users can create unlimited <%= content_type.name.pluralize %>.">
|
||||
<i class="material-icons <%= content_type.color %>-text tooltipped medium" data-delay="100" data-tooltip="<%= User.new.can_create?(content_type) ? 'All' : 'Premium' %> users can create unlimited <%= content_type.name.pluralize %>.">
|
||||
<%= content_type.icon %>
|
||||
</i>
|
||||
<%= '<br />'.html_safe if (i + 1) % 4 == 0 %>
|
||||
<%= '<br />'.html_safe if (i + 1) % 6 == 0 %>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -89,7 +89,6 @@
|
||||
|
||||
<div class="container">
|
||||
<div class="section perks-section">
|
||||
|
||||
<div class="row">
|
||||
<div class="col s12 m4">
|
||||
<div class="icon-block center">
|
||||
@ -103,25 +102,24 @@
|
||||
|
||||
<div class="col s12 m4">
|
||||
<div class="icon-block center">
|
||||
<h2 class="brown-text"><i class="material-icons">schedule</i></h2>
|
||||
<h5><%= t('marketing.landing_page.benefits.speed.title') %></h5>
|
||||
<h2 class="brown-text"><i class="material-icons">cloud</i></h2>
|
||||
<h5><%= t('marketing.landing_page.benefits.backups.title') %></h5>
|
||||
<p class="light">
|
||||
<%= t('marketing.landing_page.benefits.speed.text') %>
|
||||
<%= t('marketing.landing_page.benefits.backups.text') %>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col s12 m4">
|
||||
<div class="icon-block center">
|
||||
<h2 class="brown-text"><i class="material-icons">assignment_turned_in</i></h2>
|
||||
<h5><%= t('marketing.landing_page.benefits.continuity.title') %></h5>
|
||||
<h2 class="brown-text"><i class="material-icons">security</i></h2>
|
||||
<h5><%= t('marketing.landing_page.benefits.ads.title') %></h5>
|
||||
<p class="light">
|
||||
<%= t('marketing.landing_page.benefits.continuity.text') %>
|
||||
<%= t('marketing.landing_page.benefits.ads.text') %>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col s12 m4">
|
||||
<div class="icon-block center">
|
||||
<h2 class="brown-text"><i class="material-icons">face</i></h2>
|
||||
@ -144,15 +142,14 @@
|
||||
|
||||
<div class="col s12 m4">
|
||||
<div class="icon-block center">
|
||||
<h2 class="brown-text"><i class="material-icons">security</i></h2>
|
||||
<h5><%= t('marketing.landing_page.benefits.items.title') %></h5>
|
||||
<h2 class="brown-text"><i class="material-icons">assignment_turned_in</i></h2>
|
||||
<h5><%= t('marketing.landing_page.benefits.continuity.title') %></h5>
|
||||
<p class="light">
|
||||
<%= t('marketing.landing_page.benefits.items.text') %>
|
||||
<%= t('marketing.landing_page.benefits.continuity.text') %>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col s12 m4">
|
||||
<div class="icon-block center">
|
||||
<h2 class="brown-text"><i class="material-icons">search</i></h2>
|
||||
@ -173,18 +170,6 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col s12 m4">
|
||||
<div class="icon-block center">
|
||||
<h2 class="brown-text"><i class="material-icons">cloud</i></h2>
|
||||
<h5><%= t('marketing.landing_page.benefits.backups.title') %></h5>
|
||||
<p class="light">
|
||||
<%= t('marketing.landing_page.benefits.backups.text') %>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col s12 m4">
|
||||
<div class="icon-block center">
|
||||
<h2 class="brown-text"><i class="material-icons">settings_ethernet</i></h2>
|
||||
@ -207,10 +192,20 @@
|
||||
|
||||
<div class="col s12 m4">
|
||||
<div class="icon-block center">
|
||||
<h2 class="brown-text"><i class="material-icons">library_books</i></h2>
|
||||
<h5><%= t('marketing.landing_page.benefits.yours.title') %></h5>
|
||||
<h2 class="brown-text"><i class="material-icons">schedule</i></h2>
|
||||
<h5><%= t('marketing.landing_page.benefits.speed.title') %></h5>
|
||||
<p class="light">
|
||||
<%= t('marketing.landing_page.benefits.yours.text') %>
|
||||
<%= t('marketing.landing_page.benefits.speed.text') %>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col s12 m4">
|
||||
<div class="icon-block center">
|
||||
<h2 class="brown-text"><i class="material-icons">bar_chart</i></h2>
|
||||
<h5><%= t('marketing.landing_page.benefits.quality.title') %></h5>
|
||||
<p class="light">
|
||||
<%= t('marketing.landing_page.benefits.quality.text') %>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -1,11 +1,16 @@
|
||||
<% badge_style = 'padding: 3px 5px; font-size: 70%; font-weight: normal;' %>
|
||||
<%
|
||||
badge_style = 'padding: 3px 5px; font-size: 70%; font-weight: normal;'
|
||||
badge_text = user.try(:forums_badge_text) # using try() on release for zdd while machines reboot and get reference to this column, can be removed after
|
||||
%>
|
||||
|
||||
<% if user.respond_to?(:selected_billing_plan_id) %>
|
||||
<% if user.selected_billing_plan_id == 2 %>
|
||||
<span style="<%= badge_style %>; background: #dedeff">Beta Tester</span>
|
||||
<% if user.id == 5 %>
|
||||
<span style="<%= badge_style %>; background: #2196F3; color: white"><%= badge_text.presence || 'Admin' %></span>
|
||||
<% elsif user.selected_billing_plan_id == 2 %>
|
||||
<span style="<%= badge_style %>; background: #dedeff"><%= badge_text.presence || 'Beta Tester' %></span>
|
||||
<% elsif user.selected_billing_plan_id == 3 %>
|
||||
<span style="<%= badge_style %>; background: #ffdede">Early Adopter</span>
|
||||
<span style="<%= badge_style %>; background: #ffdede"><%= badge_text.presence || 'Early Adopter' %></span>
|
||||
<% elsif [4, 5, 6].include? user.selected_billing_plan_id %>
|
||||
<span style="<%= badge_style %>; background: #ffffaa">Premium Supporter</span>
|
||||
<span style="<%= badge_style %>; background: #ffffaa"><%= badge_text.presence || 'Premium Supporter' %></span>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
@ -56,11 +56,15 @@ en:
|
||||
benefits:
|
||||
creativity:
|
||||
title: Promotes creativity
|
||||
text: Your Notebook now asks you questions about your characters and ideas, and your answers are saved too.
|
||||
text: Your notebook now asks you questions about your characters and ideas, and your answers are saved too.
|
||||
|
||||
speed:
|
||||
title: Speeds up writing
|
||||
text: With a universe of information at your fingertips, you can look up anything quickly and keep writing.
|
||||
title: Write faster
|
||||
text: Reference any aspect of any page in your notebook without losing your momentum in our built-in document editor.
|
||||
|
||||
quality:
|
||||
title: Write better
|
||||
text: Analyze your writing with a world-class AI that measures readability, style, emotion, and more.
|
||||
|
||||
continuity:
|
||||
title: Continuity checks
|
||||
@ -68,15 +72,15 @@ en:
|
||||
|
||||
characters:
|
||||
title: Deeper characters
|
||||
text: Get to know your characters. Track every detail of their thoughts, appearance, and personality.
|
||||
text: Get to know your characters. Track every detail of their thoughts, appearance, family, and personality.
|
||||
|
||||
locations:
|
||||
title: Richer worlds
|
||||
text: Immerse yourself in vibrant worlds with tracking available for any kind of locations.
|
||||
text: Immerse yourself in vibrant worlds with specialized notebook pages for your countries, cities, landmarks, and more.
|
||||
|
||||
items:
|
||||
title: Legendary items
|
||||
text: Every object has a backstory that can shine as bright as any character — if you let it.
|
||||
ads:
|
||||
title: No ads, ever
|
||||
text: Rest easy knowing your notebook is safe and completely private by default, but shareable if you choose.
|
||||
|
||||
search:
|
||||
title: Searchable
|
||||
@ -84,7 +88,7 @@ en:
|
||||
|
||||
organization:
|
||||
title: Organizable
|
||||
text: Focus on one universe at a time and filter everything else out. Reorganize, sort, and write freely.
|
||||
text: Focus on one universe at a time and automatically filter everything else out. Reorganize, sort, and write freely.
|
||||
|
||||
backups:
|
||||
title: Backed up forever
|
||||
@ -96,11 +100,7 @@ en:
|
||||
|
||||
sharing:
|
||||
title: Brainstorm together
|
||||
text: Invite anyone to review any content you decide to share. Sometimes a second set of eyes makes all the difference.
|
||||
|
||||
yours:
|
||||
title: Make it yours
|
||||
text: Plan creatures, magic, scenes, and other page types specific to your world, tailored to you.
|
||||
text: Invite anyone to review any pages you decide to share. Sometimes a second set of eyes makes all the difference.
|
||||
|
||||
quote:
|
||||
text: Really clever and beautifully organized way for storytellers to create a world.
|
||||
|
||||
5
db/migrate/20190813220011_add_forums_badge_to_users.rb
Normal file
5
db/migrate/20190813220011_add_forums_badge_to_users.rb
Normal file
@ -0,0 +1,5 @@
|
||||
class AddForumsBadgeToUsers < ActiveRecord::Migration[5.2]
|
||||
def change
|
||||
add_column :users, :forums_badge_text, :string
|
||||
end
|
||||
end
|
||||
@ -10,7 +10,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 2019_08_09_173934) do
|
||||
ActiveRecord::Schema.define(version: 2019_08_13_220011) do
|
||||
|
||||
create_table "api_keys", force: :cascade do |t|
|
||||
t.integer "user_id"
|
||||
@ -2546,6 +2546,7 @@ ActiveRecord::Schema.define(version: 2019_08_09_173934) do
|
||||
t.string "age"
|
||||
t.string "gender"
|
||||
t.string "interests"
|
||||
t.string "forums_badge_text"
|
||||
t.index ["deleted_at", "username"], name: "index_users_on_deleted_at_and_username"
|
||||
t.index ["deleted_at"], name: "index_users_on_deleted_at"
|
||||
t.index ["email"], name: "index_users_on_email", unique: true
|
||||
|
||||
Loading…
Reference in New Issue
Block a user