opf/openproject

View on GitHub
app/views/custom_styles/_inline_css.erb

Summary

Maintainability
Test Coverage
<%#-- copyright
OpenProject is an open source project management software.
Copyright (C) 2012-2024 the OpenProject GmbH

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 3.

OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
Copyright (C) 2006-2013 Jean-Philippe Lang
Copyright (C) 2010-2013 the ChiliProject Team

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

See COPYRIGHT and LICENSE files for more details.

++#%>

<style type="text/css">
    :root {
    <% DesignColor.overwritten.each do |design_color| %>
        --<%= design_color.variable %>: <%= design_color.hexcode %>;
    <% if design_color.variable == "header-border-bottom-color" %>
        --header-border-bottom-width: 1px;
    <% end %>
    <% if design_color.variable == "main-menu-border-color" %>
        --main-menu-border-width: 1px;
    <% end %>
    <% if design_color.variable == "primary-button-color" %>
        --primary-button-color--major1: <%= design_color.darken 0.18 %>;
        --primary-button-color--minor1: <%= design_color.lighten 0.8 %>;
    <% end %>
    <% if design_color.variable == "accent-color" %>
        --accent-color--major1: <%= design_color.darken 0.2 %>;
        --accent-color--major2: <%= design_color.darken 0.4 %>;
        --accent-color--minor1: <%= design_color.lighten 0.8 %>;
        --accent-color--minor2: <%= design_color.lighten 0.6 %>;
    <% end %>
    <% end %>
    }

    <%# Conditional styles %>
    <% if DesignColor.overwritten.map(&:variable).include?('header-border-bottom-color') %>
    <%# Remove top border of left menu to not have to borders adding to 2px %>
    #main-menu #toggle-project-menu {
        border-top: 0px;
    }

    <%# Trying to hit the query cache for the condition here: %>
    <% if DesignColor.overwritten.map(&:variable).include?('header-bg-color') &&
          DesignColor.overwritten.select { |design_color| design_color.variable == 'header-bg-color' }.try(:first).try(:hexcode) == '#FFFFFF' &&
          DesignColor.overwritten.select { |design_color| design_color.variable == 'header-item-bg-hover-color' }.try(:first).try(:hexcode) == '#FFFFFF' %>
    <%# Disable hover background color to not overlap border %>
    .op-app-menu--item-action:hover,
    .top-menu-search.-collapsed .top-menu-search--button:hover {
        background: transparent;
    }
    <% end %>
    <% end %>
</style>