Refactor all Less to manage import order itself

This commit is contained in:
gconsidine
2017-07-20 17:28:51 -04:00
parent 6335953376
commit 86fb6116a0
94 changed files with 307 additions and 243 deletions

View File

View File

@@ -30,7 +30,13 @@ module.exports = function(grunt) {
'clean:tmp', 'clean:tmp',
'clean:static', 'clean:static',
'concurrent:dev', 'concurrent:dev',
'sync', 'copy:icons',
'copy:fonts',
'concat:css',
'cssmin:vendor',
'less:dev',
'cssmin:source',
'sync'
]); ]);
grunt.registerTask('devNoSync', [ grunt.registerTask('devNoSync', [
@@ -45,5 +51,4 @@ module.exports = function(grunt) {
'webpack:prod', 'webpack:prod',
'concurrent:prod', 'concurrent:prod',
]); ]);
}; };

View File

@@ -9,8 +9,6 @@
#schedules-form-container -inventory group add/edit dialog #schedules-form-container -inventory group add/edit dialog
*/ */
@import './client/src/shared/branding/colors.less';
#schedules-tab { #schedules-tab {
position: relative; position: relative;
top: 0; top: 0;

View File

@@ -21,31 +21,6 @@
src: url(/static/assets/OpenSans-Bold.ttf); src: url(/static/assets/OpenSans-Bold.ttf);
} }
@import "./client/src/shared/branding/colors.less";
@import "fonts.less";
@import "main-layout.less";
@import "animations.less";
@import "jquery-ui-overrides.less";
@import "codemirror.less";
@import "angular-scheduler.less";
@import "log-viewer.less";
@import "event-viewer.less";
@import "job-details.less";
@import "jobs.less";
@import "inventory-edit.less";
@import "breadcrumbs.less";
@import "stdout.less";
@import "lists.less";
@import "forms.less";
@import "dashboard.less";
@import "jPushMenu.less";
@import "survey-maker.less";
@import "text-label.less";
@import "./bootstrap-datepicker.less";
@import "./client/src/shared/branding/colors.default.less";
@import "./client/assets/variables.less";
// Bootstrap default overrides
@import "./client/src/shared/bootstrap-settings.less";
/* Bootstrap fix that's causing a right margin to appear /* Bootstrap fix that's causing a right margin to appear
whenver a modal is opened */ whenver a modal is opened */
body.modal-open { body.modal-open {

View File

@@ -9,8 +9,6 @@
* *
*/ */
@import "./client/src/shared/branding/colors.less";
.ansible-breadcrumb { .ansible-breadcrumb {
list-style: none; list-style: none;
overflow: hidden; overflow: hidden;

View File

@@ -5,8 +5,6 @@
* *
*/ */
@import "./client/src/shared/branding/colors.default.less";
.CodeMirror { .CodeMirror {
height: auto; height: auto;
overflow-x: auto; overflow-x: auto;

View File

@@ -7,9 +7,6 @@
* *
*/ */
@import "./client/src/shared/branding/colors.less";
.graph-wrapper { .graph-wrapper {
width: 100%; width: 100%;
} }

View File

@@ -7,8 +7,6 @@
* *
*/ */
@import "./client/src/shared/branding/colors.default.less";
.noselect { .noselect {
-webkit-touch-callout: none; /* iOS Safari */ -webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Chrome/Safari/Opera */ -webkit-user-select: none; /* Chrome/Safari/Opera */

View File

@@ -7,8 +7,6 @@
* *
*/ */
@import "./client/src/shared/branding/colors.less";
.cbp-spmenu { .cbp-spmenu {
background: #E8E8E8; background: #E8E8E8;
position: fixed; position: fixed;

View File

@@ -7,8 +7,6 @@
* *
*/ */
@import "./client/src/shared/branding/colors.less";
@failed-hosts-color: @red; @failed-hosts-color: @red;
@successful-hosts-color: @green; @successful-hosts-color: @green;

View File

@@ -7,9 +7,6 @@
* *
*/ */
@import "./client/src/shared/branding/colors.less";
#jobs-page { #jobs-page {
.jobs-list-container { .jobs-list-container {

View File

@@ -7,10 +7,6 @@
* look closer to Twitter Bootstrap * look closer to Twitter Bootstrap
* *
*/ */
@import "./client/src/shared/branding/colors.less";
@import "./client/src/shared/branding/colors.default.less";
table.ui-datepicker-calendar { table.ui-datepicker-calendar {
background-color: @well; background-color: @well;
} }

View File

@@ -7,9 +7,6 @@
* *
*/ */
@import "./client/src/shared/branding/colors.default.less";
table, tbody { table, tbody {
border-collapse: collapse; border-collapse: collapse;
} }

View File

@@ -7,9 +7,6 @@
* *
*/ */
@import "./client/src/shared/branding/colors.less";
@import "./client/src/shared/branding/colors.default.less";
html { height: 100%; } html { height: 100%; }
body { body {

View File

@@ -5,9 +5,6 @@
* *
*/ */
@import "./client/src/shared/branding/colors.default.less";
@import "./client/src/shared/branding/colors.less";
#jobs-stdout { #jobs-stdout {
margin-bottom: 0px; margin-bottom: 0px;

View File

@@ -1,5 +1,3 @@
@import "./client/src/shared/branding/colors.default.less";
.host-disabled-label { .host-disabled-label {
&:after { &:after {
display: inline-block; display: inline-block;

View File

@@ -1,16 +1,179 @@
// App-wide styles // Dependency Variables
@import '../../../node_modules/components-font-awesome/less/variables';
// App-specific Legacy Variables
@import '../../src/shared/branding/colors.default.less';
@import '../../src/shared/branding/colors';
/**
* Override Variables
*
* NOTE: Used in conditional build scenarios and will need to persist after any refactoring effort.
*/
@import '../../assets/variables';
/**
* Legacy Styles
*
* NOTE: Styles below are a mix of 3rd-party dependencies and in-house code. For the 3rd-party
* stuff, we'd be better off managing them via npm where possible.
*/
@import '../../legacy-styles/fonts';
@import '../../legacy-styles/main-layout';
@import '../../legacy-styles/animations';
@import '../../legacy-styles/jquery-ui-overrides';
@import '../../legacy-styles/codemirror';
@import '../../legacy-styles/angular-scheduler';
@import '../../legacy-styles/log-viewer';
@import '../../legacy-styles/event-viewer';
@import '../../legacy-styles/job-details';
@import '../../legacy-styles/jobs';
@import '../../legacy-styles/inventory-edit';
@import '../../legacy-styles/breadcrumbs';
@import '../../legacy-styles/stdout';
@import '../../legacy-styles/lists';
@import '../../legacy-styles/forms';
@import '../../legacy-styles/dashboard';
@import '../../legacy-styles/jPushMenu';
@import '../../legacy-styles/survey-maker';
@import '../../legacy-styles/text-label';
@import '../../legacy-styles/bootstrap-datepicker';
@import '../../legacy-styles/ansible-ui';
// Dependency Style Overrides
@import '../../src/shared/bootstrap-settings';
// Legacy Utilities
@import '../../src/shared/utilities/alerts';
@import '../../src/shared/utilities/hidden';
@import '../../src/shared/utilities/icons';
@import '../../src/shared/utilities/layer';
@import '../../src/shared/utilities/truncated-text';
@import '../../src/shared/utilities/unbold';
@import '../../src/shared/utilities/wordwrap';
// Legacy Layout
@import '../../src/shared/layouts/one-plus-one';
@import '../../src/shared/layouts/one-plus-two';
/**
* Legacy Features
*
* NOTE: "dot" namespacing interferes with Less' ability to infer the .less suffix, so it's
* explicitly added to the import statements below.
*/
@import '../../src/about/about.block.less';
@import '../../src/access/rbac-role-column/roleList.block.less';
@import '../../src/access/add-rbac.block.less';
@import '../../src/activity-stream/streamDetailModal/streamDetailModal.block.less';
@import '../../src/activity-stream/activitystream.block.less';
@import '../../src/bread-crumb/bread-crumb.block.less';
@import '../../src/configuration/configuration.block.less';
@import '../../src/credentials/ownerList.block.less';
@import '../../src/footer/footer.block.less';
@import '../../src/home/dashboard/counts/dashboard-counts.block.less';
@import '../../src/home/dashboard/graphs/dashboard-graphs.block.less';
@import '../../src/home/dashboard/lists/dashboard-list.block.less';
@import '../../src/home/dashboard/dashboard.block.less';
@import '../../src/instance-groups/capacity-bar/capacity-bar.block.less';
@import '../../src/instance-groups/instance-group.block.less';
@import '../../src/inventories-hosts/inventories/insights/insights.block.less';
@import '../../src/inventories-hosts/inventories/list/host-summary-popover/host-summary-popover.block.less';
@import '../../src/inventories-hosts/inventories/related/hosts/related-groups-labels/relatedGroupsLabelsList.block.less';
@import '../../src/inventories-hosts/inventories/smart-inventory/smart-inventory-host-filter/host-filter-modal/host-filter-modal.block.less';
@import '../../src/inventories-hosts/inventories/inventories.block.less';
@import '../../src/inventories-hosts/shared/associate-groups/associate-groups.block.less';
@import '../../src/inventories-hosts/shared/associate-hosts/associate-hosts.block.less';
@import '../../src/job-results/host-event/host-event.block.less';
@import '../../src/job-results/host-status-bar/host-status-bar.block.less';
@import '../../src/job-results/job-results-stdout/job-results-stdout.block.less';
@import '../../src/job-results/job-results.block.less';
@import '../../src/job-submission/job-submission.block.less';
@import '../../src/license/license.block.less';
@import '../../src/login/loginModal/thirdPartySignOn/thirdPartySignOn.block.less';
@import '../../src/login/loginModal/loginModal.block.less';
@import '../../src/login/loginModal/loginModalNotice.block.less';
@import '../../src/main-menu/main-menu.block.less';
@import '../../src/management-jobs/card/mgmtcards.block.less';
@import '../../src/notifications/notifications.block.less';
@import '../../src/organizations/linkout/addUsers/addUsers.block.less';
@import '../../src/organizations/orgcards.block.less';
@import '../../src/portal-mode/portal-mode.block.less';
@import '../../src/scheduler/repeatFrequencyOptions.block.less';
@import '../../src/scheduler/schedulerForm.block.less';
@import '../../src/scheduler/schedulerFormDetail.block.less';
@import '../../src/scheduler/schedulertime.block.less';
@import '../../src/scheduler/scheduleToggle.block.less';
@import '../../src/scheduler/spinnerInput.block.less';
@import '../../src/setup-menu/hover-icon.block.less';
@import '../../src/setup-menu/setup-extra.block.less';
@import '../../src/setup-menu/setup-item.block.less';
@import '../../src/setup-menu/setup-menu.block.less';
@import '../../src/shared/container/container.block.less';
@import '../../src/shared/detail-nav/detail-nav.block.less';
@import '../../src/shared/icon/icon.block.less';
@import '../../src/shared/instance-groups-multiselect/instance-groups.block.less';
@import '../../src/shared/lookup/lookup-modal.block.less';
@import '../../src/shared/modal/modal';
@import '../../src/shared/multi-select-preview/multi-select-preview.block.less';
@import '../../src/shared/paginate/paginate.block.less';
@import '../../src/shared/prompt/prompt';
@import '../../src/shared/smart-search/smart-search.block.less';
@import '../../src/shared/button.block.less';
@import '../../src/shared/download-standard-out.block.less';
@import '../../src/shared/media-object.block.less';
@import '../../src/shared/text-label';
@import '../../src/smart-status/smart-status.block.less';
@import '../../src/standard-out/standard-out.block.less';
@import '../../src/system-tracking/date-picker/date-picker.block.less';
@import '../../src/system-tracking/fact-data-table/fact-data-table.block.less';
@import '../../src/system-tracking/fact-module-filter.block.less';
@import '../../src/system-tracking/fact-module-pickers.block.less';
@import '../../src/system-tracking/system-tracking-container.block.less';
@import '../../src/templates/job_templates/multi-credential/multi-credential.block.less';
@import '../../src/templates/labels/labelsList.block.less';
@import '../../src/templates/survey-maker/survey-maker.block.less';
@import '../../src/templates/survey-maker/survey-maker.block.less';
@import '../../src/templates/survey-maker/shared/survey-controls.block.less';
@import '../../src/templates/survey-maker/survey-maker.block.less';
@import '../../src/templates/workflows/workflow-chart/workflow-chart.block.less';
@import '../../src/templates/workflows/workflow-controls/workflow-controls.block.less';
@import '../../src/templates/workflows/workflow-maker/workflow-maker.block.less';
@import '../../src/tooltip/tooltip.block.less';
@import '../../src/workflow-results/workflow-status-bar/workflow-status-bar.block.less';
@import '../../src/workflow-results/workflow-results.block.less';
/**
* App-wide style
*
* NOTE: Variables, mixins, and classes below are useful in more than one place across the
* application. When working with Less, if the need for a variable, mixin, class, etc exists in
* more than one location, take a moment to move it to this more general location for easy reuse
* and to avoid duplication.
*/
@import '_base-variables'; @import '_base-variables';
@import '_contextual-variables'; @import '_variables';
@import '_mixins'; @import '_mixins';
@import '_utility'; @import '_utility';
@import '_global'; @import '_global';
// Aggregated component and feature specific styles /**
* Component and Feature style
*
* NOTE: These index files are aggregation points for components and features. To view the more
* granular imports, view the contents of these files. Variables, classes, etc defined within
* these specific files ought to have no use elsewhere. As we shift to leverage components, very
* few feature-specific styles will exist.
*/
@import '../components/_index'; @import '../components/_index';
@import '../../features/_index'; @import '../../features/_index';
/* /*
* Temporary overrides used only during the transition away from old style * Resets
* structure to new style structure. Overrides unwanted/uneeded rules. *
* NOTE: In some cases, the legacy classes override dependency styles explicitly. In those cases,
* it's necessary to override the overrides. This particular file will only be relevant during
* the transition.
*/ */
@import '_temporary-overrides'; @import '_resets';

View File

@@ -1,7 +1,4 @@
/** @define About */ /** @define About */
@import "./client/src/shared/branding/colors.default.less";
@import "./client/assets/variables.less";
.About-ansibleVersion, .About-ansibleVersion,
.About-cowsayCode { .About-cowsayCode {
font-family: Monaco, Menlo, Consolas, "Courier New", monospace; font-family: Monaco, Menlo, Consolas, "Courier New", monospace;

View File

@@ -1,5 +1,3 @@
@import "../shared/branding/colors.default.less";
/** @define AddPermissions */ /** @define AddPermissions */
.AddPermissions-backDrop { .AddPermissions-backDrop {

View File

@@ -1,5 +1,4 @@
/** @define RoleList */ /** @define RoleList */
@import "../../shared/branding/colors.default.less";
.RoleList { .RoleList {
display: flex; display: flex;

View File

@@ -1,5 +1,3 @@
@import "./client/src/shared/branding/colors.default.less";
.StreamDetail-actionButton { .StreamDetail-actionButton {
padding: 4px 25px!important; padding: 4px 25px!important;
} }

View File

@@ -1,5 +1,3 @@
@import "../shared/branding/colors.default.less";
/** @define BreadCrumb */ /** @define BreadCrumb */
.BreadCrumb { .BreadCrumb {

View File

@@ -1,6 +1,3 @@
@import "./client/src/shared/branding/colors.default.less";
@import "../shared/branding/colors.less";
.Form-resetValue, .Form-resetAll { .Form-resetValue, .Form-resetAll {
text-transform: uppercase; text-transform: uppercase;
font-weight: normal; font-weight: normal;

View File

@@ -1,6 +1,3 @@
/** @define OwnerList */
@import "./client/src/shared/branding/colors.default.less";
.OwnerList { .OwnerList {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;

View File

@@ -1,5 +1,4 @@
/** @define DashboardCounts */ /** @define DashboardCounts */
@import "./client/src/shared/branding/colors.default.less";
.Footer { .Footer {
height: 40px; height: 40px;

View File

@@ -1,5 +1,3 @@
@import "../../../shared/branding/colors.default.less";
/** @define DashboardCounts */ /** @define DashboardCounts */
.DashboardCounts { .DashboardCounts {

View File

@@ -1,5 +1,4 @@
/** @define Dashboard */ /** @define Dashboard */
@import "../../shared/branding/colors.default.less";
.Dashboard { .Dashboard {
display: flex; display: flex;

View File

@@ -1,7 +1,5 @@
/** @define DashboardGraphs */ /** @define DashboardGraphs */
@import "../../../shared/branding/colors.default.less";
.DashboardGraphs { .DashboardGraphs {
margin-top: 20px; margin-top: 20px;
border: solid 1px @db-panel-border; border: solid 1px @db-panel-border;

View File

@@ -1,7 +1,5 @@
/** @define DashboardList */ /** @define DashboardList */
@import "../../../shared/branding/colors.default.less";
.DashboardList { .DashboardList {
flex: 1; flex: 1;
} }

View File

@@ -1,5 +1,3 @@
@import "../../shared/branding/colors.default.less";
capacity-bar { capacity-bar {
width: 50%; width: 50%;

View File

@@ -1,5 +1,3 @@
@import "../shared/branding/colors.default.less";
.InstanceGroups { .InstanceGroups {
.BreadCrumb-menuLinkImage:hover { .BreadCrumb-menuLinkImage:hover {

View File

@@ -1,5 +1,3 @@
@import "../../../shared/branding/colors.default.less";
.InsightsLastCheck{ .InsightsLastCheck{
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;

View File

@@ -1,5 +1,3 @@
@import "../../../../../shared/branding/colors.default.less";
.HostFilterModal-tableRow:hover { .HostFilterModal-tableRow:hover {
background-color: @default-bg; background-color: @default-bg;
} }

View File

@@ -1,5 +1,3 @@
@import "../../../shared/branding/colors.default.less";
.AssociateGroups-modalBody { .AssociateGroups-modalBody {
padding-top: 0px; padding-top: 0px;
} }

View File

@@ -1,5 +1,3 @@
@import "../../../shared/branding/colors.default.less";
.AssociateHosts-modalBody { .AssociateHosts-modalBody {
padding-top: 0px; padding-top: 0px;
} }

View File

@@ -1,7 +1,3 @@
@import "./client/src/shared/branding/colors.less";
@import "./client/src/shared/branding/colors.default.less";
@import "./client/src/shared/layouts/one-plus-two.less";
.noselect { .noselect {
-webkit-touch-callout: none; /* iOS Safari */ -webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Chrome/Safari/Opera */ -webkit-user-select: none; /* Chrome/Safari/Opera */

View File

@@ -1,5 +1,3 @@
@import '../../shared/branding/colors.default.less';
.HostStatusBar { .HostStatusBar {
display: flex; display: flex;
flex: 0 0 auto; flex: 0 0 auto;

View File

@@ -1,5 +1,3 @@
@import '../../shared/branding/colors.default.less';
@breakpoint-md: 1200px; @breakpoint-md: 1200px;
.JobResultsStdOut { .JobResultsStdOut {

View File

@@ -1,7 +1,3 @@
@import '../shared/branding/colors.less';
@import '../shared/branding/colors.default.less';
@import '../shared/layouts/one-plus-two.less';
@breakpoint-md: 1200px; @breakpoint-md: 1200px;
.JobResults { .JobResults {

View File

@@ -1,6 +1,3 @@
@import '../shared/branding/colors.less';
@import '../shared/branding/colors.default.less';
.JobSubmission { .JobSubmission {
padding: 20px!important; padding: 20px!important;
display: none; display: none;

View File

@@ -3,9 +3,6 @@
* .ModuleName-component-subComponent * .ModuleName-component-subComponent
* Naming describes components of the view * Naming describes components of the view
*/ */
@import "./client/src/shared/branding/colors.default.less";
@import "./client/src/shared/layouts/one-plus-two.less";
.License-container{ .License-container{
.OnePlusTwo-container; .OnePlusTwo-container;
} }

View File

@@ -1,6 +1,3 @@
@import "../../shared/branding/colors.default.less";
@import "./client/assets/variables.less";
/** @define LoginModal */ /** @define LoginModal */
.LoginModal-backDrop { .LoginModal-backDrop {
width: 100vw; width: 100vw;

View File

@@ -1,5 +1,3 @@
@import "../../shared/branding/colors.default.less";
/** @define LoginModalNotice */ /** @define LoginModalNotice */
.LoginModalNotice { .LoginModalNotice {
font-size: 12px; font-size: 12px;

View File

@@ -1,5 +1,3 @@
@import "../../../shared/branding/colors.default.less";
/** @define ThirdPartySignOn */ /** @define ThirdPartySignOn */
.ThirdPartySignOn { .ThirdPartySignOn {

View File

@@ -1,6 +1,3 @@
@import "../shared/branding/colors.default.less";
@import "./client/assets/variables.less";
/** @define MainMenu */ /** @define MainMenu */
.MainMenu { .MainMenu {

View File

@@ -1,6 +1,3 @@
/** @define MgmtCards */
@import './client/src/shared/branding/colors.default.less';
.MgmtCards { .MgmtCards {
display: flex; display: flex;
flex-flow: row wrap; flex-flow: row wrap;

View File

@@ -1,5 +1,3 @@
@import "./client/src/shared/branding/colors.default.less";
.NotificationsForm-typeSelect{ .NotificationsForm-typeSelect{
flex: none; flex: none;
} }

View File

@@ -1,5 +1,3 @@
@import "../../../shared/branding/colors.default.less";
/** @define AddUsers */ /** @define AddUsers */
.AddUsers-backDrop { .AddUsers-backDrop {

View File

@@ -1,5 +1,4 @@
/** @define OrgCards */ /** @define OrgCards */
@import '../shared/branding/colors.default.less';
.OrgCards { .OrgCards {
display: flex; display: flex;

View File

@@ -1,5 +1,3 @@
@import "./client/src/shared/layouts/one-plus-one.less";
.PortalMode-container{ .PortalMode-container{
display: flex; display: flex;
flex-direction: row; flex-direction: row;

View File

@@ -1,7 +1,5 @@
/** @define RepeatFrequencyOptions */ /** @define RepeatFrequencyOptions */
@import "./client/src/shared/branding/colors.default.less";
.RepeatFrequencyOptions { .RepeatFrequencyOptions {
width: ~"calc(100% + 21px)"; width: ~"calc(100% + 21px)";
padding: 20px; padding: 20px;

View File

@@ -1,7 +1,5 @@
/** @define ScheduleToggle */ /** @define ScheduleToggle */
@import "./client/src/shared/branding/colors.default.less";
.ScheduleToggle { .ScheduleToggle {
border-radius: 5px; border-radius: 5px;
border: 1px solid @default-link; border: 1px solid @default-link;

View File

@@ -1,7 +1,5 @@
/** @define SchedulerForm */ /** @define SchedulerForm */
@import "./client/src/shared/branding/colors.default.less";
.SchedulerForm-formGroup { .SchedulerForm-formGroup {
padding-right: 0px; padding-right: 0px;
} }

View File

@@ -1,7 +1,5 @@
/** @define SchedulerFormDetail */ /** @define SchedulerFormDetail */
@import "./client/src/shared/branding/colors.default.less";
.SchedulerFormDetail-container { .SchedulerFormDetail-container {
padding: 15px; padding: 15px;
border: 1px solid @default-border; border: 1px solid @default-border;

View File

@@ -1,7 +1,5 @@
/** @define SchedulerTime */ /** @define SchedulerTime */
@import "./client/src/shared/branding/colors.default.less";
.SchedulerTime { .SchedulerTime {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;

View File

@@ -1,7 +1,5 @@
/** @define SpinnerInput */ /** @define SpinnerInput */
@import "./client/src/shared/branding/colors.default.less";
.SpinnerInput { .SpinnerInput {
width: ~"calc(100% - 26px)"; width: ~"calc(100% - 26px)";
} }

View File

@@ -1,7 +1,5 @@
/** @define HoverIcon */ /** @define HoverIcon */
@import '../shared/branding/colors.less';
.HoverIcon { .HoverIcon {
@media screen and (max-width: 571px) { @media screen and (max-width: 571px) {
&--onlyLarge { &--onlyLarge {

View File

@@ -1,8 +1,5 @@
/** @define SetupItem */ /** @define SetupItem */
@import '../shared/branding/colors.less';
@import '../shared/branding/colors.default.less';
.SetupItem { .SetupItem {
background-color: @panel-bg; background-color: @panel-bg;
border-radius: 5px; border-radius: 5px;

View File

@@ -1,6 +1,5 @@
/** @define SetupMenu */ /** @define SetupMenu */
@import "../shared/branding/colors.less";
@menu-breakpoint: 710px; @menu-breakpoint: 710px;
.SetupMenu { .SetupMenu {

View File

@@ -1,4 +1,3 @@
@import "./client/src/shared/branding/colors.default.less";
.btn-success{ .btn-success{
background: @default-succ; background: @default-succ;
border-color: transparent; border-color: transparent;

View File

@@ -1,5 +1,3 @@
@import "./client/src/shared/branding/colors.default.less";
@active-color: #EDF2F2; // #c6e5e5; @active-color: #EDF2F2; // #c6e5e5;
@black: #171717; @black: #171717;
@blue: #1778c3; /* logo blue */ @blue: #1778c3; /* logo blue */

View File

@@ -1,7 +1,5 @@
/** @define Button */ /** @define Button */
@import '../shared/branding/colors.less';
.Button { .Button {
&--pseudo { &--pseudo {
// Make pseudo button // Make pseudo button

View File

@@ -1,5 +1,4 @@
/** @define DownloadStandardOut */ /** @define DownloadStandardOut */
@import "./client/src/shared/branding/colors.default.less";
.DownloadStandardOut { .DownloadStandardOut {
color: @default-bg !important; color: @default-bg !important;

View File

@@ -1,5 +1,3 @@
@import "../../shared/branding/colors.default.less";
#instance-groups-panel { #instance-groups-panel {
table { table {
overflow: hidden; overflow: hidden;

View File

@@ -1,5 +1,3 @@
@import "./client/src/shared/branding/colors.default.less";
.Modal-content { .Modal-content {
display:flex; display:flex;
flex-wrap:wrap; flex-wrap:wrap;

View File

@@ -1,5 +1,3 @@
@import '../branding/colors.default.less';
.MultiSelectPreview { .MultiSelectPreview {
display: flex; display: flex;
flex: 1 0 auto; flex: 1 0 auto;

View File

@@ -1,8 +1,5 @@
@import "./client/src/shared/branding/colors.default.less";
@import "./client/src/shared/branding/colors.less";
// @todo cleanup these messy overrides for styles in ansible-ui.min.css // @todo cleanup these messy overrides for styles in ansible-ui.min.css
.Paginate-controls--first a, .Paginate-controls--first a,
.Paginate-controls--previous a{ .Paginate-controls--previous a{
border-radius: 4px 0 0 4px; border-radius: 4px 0 0 4px;

View File

@@ -1,5 +1,3 @@
@import "./client/src/shared/branding/colors.default.less";
.Prompt-bodyQuery { .Prompt-bodyQuery {
margin-bottom: 20px; margin-bottom: 20px;
color: @default-interface-txt; color: @default-interface-txt;

View File

@@ -1,5 +1,3 @@
@import "./node_modules/components-font-awesome/less/variables.less";
/* not bem */ /* not bem */
.icon(@icon-var) { .icon(@icon-var) {

View File

@@ -1,6 +1,4 @@
/** @define SmartStatus */ /** @define SmartStatus */
@import "./client/legacy-styles/animations.less";
@import "./client/src/shared/branding/colors.default.less";
.SmartStatus-container{ .SmartStatus-container{
max-width: 165px; max-width: 165px;

View File

@@ -1,6 +1,3 @@
@import "../shared/branding/colors.default.less";
@import "../shared/layouts/one-plus-one.less";
/** @define StandardOut */ /** @define StandardOut */
@breakpoint-md: 1180px; @breakpoint-md: 1180px;

View File

@@ -1,6 +1,3 @@
/** @define DatePicker */
@import "./client/src/shared/branding/colors.default.less";
.DatePicker { .DatePicker {
flex: 1 0 auto; flex: 1 0 auto;
display: flex; display: flex;

View File

@@ -1,5 +1,4 @@
/** @define FactDataTable */ /** @define FactDataTable */
@import "../../shared/branding/colors.default.less";
.FactDataTable { .FactDataTable {
&-row, &-headingRow, &-groupHeadingRow { &-row, &-headingRow, &-groupHeadingRow {

View File

@@ -1,9 +1,5 @@
/** @define FactModuleFilter */ /** @define FactModuleFilter */
@import "./client/src/shared/branding/colors.less";
@import "./client/src/shared/branding/colors.default.less";
.FactModuleFilter { .FactModuleFilter {
width: 100%; width: 100%;
display: flex; display: flex;

View File

@@ -1,5 +1,3 @@
@import "./client/src/shared/branding/colors.default.less";
.FactModulePickers-label { .FactModulePickers-label {
padding-right: 0; padding-right: 0;
text-align: right; text-align: right;

View File

@@ -1,4 +1,3 @@
@import "./client/src/shared/branding/colors.default.less";
.SystemTrackingContainer { .SystemTrackingContainer {
display: flex; display: flex;
flex-direction: column; flex-direction: column;

View File

@@ -1,5 +1,3 @@
@import "../../../shared/branding/colors.default.less";
.MultiCredential-selectedBar { .MultiCredential-selectedBar {
display: flex; display: flex;
padding: 5px 10px; padding: 5px 10px;

View File

@@ -1,5 +1,4 @@
/** @define LabelList */ /** @define LabelList */
@import "./client/src/shared/branding/colors.default.less";
.LabelList { .LabelList {
display: flex; display: flex;

View File

@@ -1,5 +1,3 @@
@import "./client/src/shared/branding/colors.default.less";
.link circle, .link .linkCross, .node .addCircle, .node .removeCircle, .node .WorkflowChart-hoverPath { .link circle, .link .linkCross, .node .addCircle, .node .removeCircle, .node .WorkflowChart-hoverPath {
opacity: 0; opacity: 0;
} }

View File

@@ -1,5 +1,3 @@
@import "./client/src/shared/branding/colors.default.less";
.WorkflowControls { .WorkflowControls {
display: flex; display: flex;
} }

View File

@@ -1,6 +1,3 @@
@import "./client/src/shared/branding/colors.default.less";
.WorkflowMaker-dialog { .WorkflowMaker-dialog {
padding: 0px; padding: 0px;
margin-bottom: 20px; margin-bottom: 20px;
@@ -9,6 +6,7 @@
display:none; display:none;
} }
} }
.WorkflowMaker-header { .WorkflowMaker-header {
display: flex; display: flex;
height: 34px; height: 34px;

View File

@@ -1,6 +1,5 @@
/** @define Tooltip */ /** @define Tooltip */
@import "../shared/branding/colors.less";
.Tooltip-inner { .Tooltip-inner {
white-space: pre-wrap; white-space: pre-wrap;
word-break: break-word; word-break: break-word;

View File

@@ -1,7 +1,3 @@
@import '../shared/branding/colors.less';
@import '../shared/branding/colors.default.less';
@import '../shared/layouts/one-plus-two.less';
@breakpoint-md: 1200px; @breakpoint-md: 1200px;
@breakpoint-sm: 623px; @breakpoint-sm: 623px;

View File

@@ -1,5 +1,3 @@
@import '../../shared/branding/colors.default.less';
.WorkflowStatusBar { .WorkflowStatusBar {
display: flex; display: flex;
flex: 0 0 auto; flex: 0 0 auto;

View File

@@ -0,0 +1,17 @@
module.exports = {
css: {
src: [
'static/assets/custom-theme/jquery-ui-1.10.3.custom.min.css',
'static/assets/ansible-bootstrap.min.css',
'static/assets/fontcustom/fontcustom.css',
'static/lib/components-font-awesome/css/font-awesome.min.css',
'static/lib/select2/dist/css/select2.css',
'static/lib/codemirror/lib/codemirror.css',
'static/lib/codemirror/theme/elegant.css',
'static/lib/codemirror/addon/lint/lint.css',
'static/lib/nvd3/build/nv.d3.css',
'static/lib/ng-toast/dist/ngToast.min.css'
],
dest: 'static/css/tower.vendor.css'
}
};

View File

@@ -1,6 +1,6 @@
module.exports = { module.exports = {
dev: { dev: {
tasks: ['copy:vendor', 'copy:assets', 'copy:partials', 'copy:views', 'copy:languages', 'copy:config', 'less:dev'], tasks: ['copy:vendor', 'copy:assets', 'copy:partials', 'copy:views', 'copy:languages', 'copy:config'],
}, },
// This concurrent target is intended for development ui builds that do not require raising browser-sync or filesystem polling // This concurrent target is intended for development ui builds that do not require raising browser-sync or filesystem polling
devNoSync: { devNoSync: {

View File

@@ -14,6 +14,33 @@ var staticFiles = ['angular-tz-extensions/tz/data/*',
]; ];
module.exports = { module.exports = {
fonts: {
files: [{
cwd: 'client/',
expand: true,
flatten: true,
filter: 'isFile',
src: [
'assets/fontcustom/fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.woff',
'assets/fontcustom/fontcustom_3dfbafd778b214fc5df2a64fe14fbfb3.ttf'
],
dest: 'static/css/'
}]
},
icons: {
files: [{
cwd: 'node_modules/',
expand: true,
flatten: true,
filter: 'isFile',
src: [
'components-font-awesome/fonts/fontawesome-webfont.ttf',
'components-font-awesome/fonts/fontawesome-webfont.woff',
'components-font-awesome/fonts/fontawesome-webfont.woff2'
],
dest: 'static/fonts/'
}]
},
assets: { assets: {
files: [{ files: [{
cwd: 'client/', cwd: 'client/',

View File

@@ -0,0 +1,22 @@
module.exports = {
vendor: {
files: [
{
expand: true,
src: 'static/css/tower.vendor.css',
dest: '.',
ext: '.vendor.min.css'
}
]
},
source: {
files: [
{
expand: true,
src: 'static/css/tower.css',
dest: '.',
ext: '.min.css'
}
]
}
};

View File

@@ -1,32 +1,27 @@
var AutoPrefixer = require('less-plugin-autoprefix');
var autoPrefixer = new AutoPrefixer({
browsers: [ 'last 2 versions' ]
});
module.exports = { module.exports = {
options: {
options : {
plugins : [ new (require('less-plugin-autoprefix'))({browsers : [ "last 2 versions" ]}) ]
}
},
dev: { dev: {
files: [{ files: {
dest: 'static/tower.min.css', 'static/css/tower.css': 'client/lib/theme/index.less'
src: [ },
'client/legacy-styles/*.less',
'client/src/**/*.less',
'client/lib/theme/index.less'
]
}],
options: { options: {
sourceMap: true sourceMap: true,
plugins: [ autoPrefixer ]
} }
}, },
prod: { prod: {
files: { files: {
'static/tower.min.css': [ 'static/css/tower.css': 'client/lib/theme/index.less'
'client/legacy-styles/*.less',
'client/src/**/*.less',
'client/lib/theme/index.less'
]
}, },
options: { options: {
compress: true, compress: true,
sourceMap: false,
plugins: [ autoPrefixer ]
} }
} }
}; };

View File

@@ -1141,6 +1141,20 @@
"resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.1.tgz",
"dev": true "dev": true
}, },
"clean-css": {
"version": "4.1.7",
"from": "clean-css@>=4.1.1 <4.2.0",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.7.tgz",
"dev": true,
"dependencies": {
"source-map": {
"version": "0.5.6",
"from": "source-map@>=0.5.0 <0.6.0",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz",
"dev": true
}
}
},
"cli": { "cli": {
"version": "1.0.1", "version": "1.0.1",
"from": "cli@>=1.0.0 <1.1.0", "from": "cli@>=1.0.0 <1.1.0",
@@ -1575,6 +1589,12 @@
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.4.3.tgz",
"dev": true "dev": true
}, },
"duplexer": {
"version": "0.1.1",
"from": "duplexer@>=0.1.1 <0.2.0",
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
"dev": true
},
"duplexify": { "duplexify": {
"version": "3.5.0", "version": "3.5.0",
"from": "duplexify@>=3.1.2 <4.0.0", "from": "duplexify@>=3.1.2 <4.0.0",
@@ -2524,6 +2544,12 @@
"resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz", "resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz",
"dev": true "dev": true
}, },
"grunt-contrib-cssmin": {
"version": "2.2.0",
"from": "grunt-contrib-cssmin@latest",
"resolved": "https://registry.npmjs.org/grunt-contrib-cssmin/-/grunt-contrib-cssmin-2.2.0.tgz",
"dev": true
},
"grunt-contrib-jshint": { "grunt-contrib-jshint": {
"version": "1.1.0", "version": "1.1.0",
"from": "grunt-contrib-jshint@>=1.0.0 <2.0.0", "from": "grunt-contrib-jshint@>=1.0.0 <2.0.0",
@@ -2638,6 +2664,12 @@
} }
} }
}, },
"gzip-size": {
"version": "3.0.0",
"from": "gzip-size@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz",
"dev": true
},
"handlebars": { "handlebars": {
"version": "4.0.10", "version": "4.0.10",
"from": "handlebars@>=4.0.0 <4.1.0", "from": "handlebars@>=4.0.0 <4.1.0",
@@ -3950,6 +3982,12 @@
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
"dev": true "dev": true
}, },
"maxmin": {
"version": "2.1.0",
"from": "maxmin@>=2.1.0 <3.0.0",
"resolved": "https://registry.npmjs.org/maxmin/-/maxmin-2.1.0.tgz",
"dev": true
},
"media-typer": { "media-typer": {
"version": "0.3.0", "version": "0.3.0",
"from": "media-typer@0.3.0", "from": "media-typer@0.3.0",
@@ -4494,6 +4532,12 @@
"from": "preserve@>=0.2.0 <0.3.0", "from": "preserve@>=0.2.0 <0.3.0",
"resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz" "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz"
}, },
"pretty-bytes": {
"version": "3.0.1",
"from": "pretty-bytes@>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz",
"dev": true
},
"pretty-ms": { "pretty-ms": {
"version": "2.1.0", "version": "2.1.0",
"from": "pretty-ms@>=2.1.0 <3.0.0", "from": "pretty-ms@>=2.1.0 <3.0.0",

View File

@@ -53,6 +53,7 @@
"grunt-contrib-clean": "^1.0.0", "grunt-contrib-clean": "^1.0.0",
"grunt-contrib-concat": "^1.0.1", "grunt-contrib-concat": "^1.0.1",
"grunt-contrib-copy": "^1.0.0", "grunt-contrib-copy": "^1.0.0",
"grunt-contrib-cssmin": "^2.2.0",
"grunt-contrib-jshint": "^1.0.0", "grunt-contrib-jshint": "^1.0.0",
"grunt-contrib-less": "^1.3.0", "grunt-contrib-less": "^1.3.0",
"grunt-extract-sourcemap": "^0.1.18", "grunt-extract-sourcemap": "^0.1.18",

View File

@@ -7,17 +7,8 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title ng-bind="tabTitle"></title> <title ng-bind="tabTitle"></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="{{ STATIC_URL }}assets/custom-theme/jquery-ui-1.10.3.custom.min.css" /> <link rel="stylesheet" href="{{ STATIC_URL }}css/tower.vendor.min.css?v={{version}}" type="text/css">
<link rel="stylesheet" href="{{ STATIC_URL }}assets/ansible-bootstrap.min.css" /> <link rel="stylesheet" href="{{ STATIC_URL }}css/tower.min.css?v={{version}}" type="text/css">
<link rel="stylesheet" href="{{ STATIC_URL }}assets/fontcustom/fontcustom.css" type="text/css">
<link rel="stylesheet" href="{{ STATIC_URL }}lib/components-font-awesome/css/font-awesome.min.css" />
<link rel="stylesheet" href="{{ STATIC_URL }}lib/select2/dist/css/select2.css" />
<link rel="stylesheet" href="{{ STATIC_URL }}lib/codemirror/lib/codemirror.css" />
<link rel="stylesheet" href="{{ STATIC_URL }}lib/codemirror/theme/elegant.css" />
<link rel="stylesheet" href="{{ STATIC_URL }}lib/codemirror/addon/lint/lint.css" />
<link rel="stylesheet" href="{{ STATIC_URL }}lib/nvd3/build/nv.d3.css" type="text/css">
<link rel="stylesheet" href="{{ STATIC_URL }}lib/ng-toast/dist/ngToast.min.css" type="text/css">
<link rel="stylesheet" href="{{ STATIC_URL }}tower.min.css?v={{version}}" type="text/css">
<link rel="shortcut icon" href="{{ STATIC_URL }}assets/favicon.ico?v={{version}}" /> <link rel="shortcut icon" href="{{ STATIC_URL }}assets/favicon.ico?v={{version}}" />
<script> <script>
var $basePath = "{{ STATIC_URL }}"; var $basePath = "{{ STATIC_URL }}";