2015-12-05 09:13:04 +08:00
|
|
|
@import "ui-variables";
|
|
|
|
|
|
|
|
.nylas-editable-list {
|
|
|
|
|
feat(mail-rules): Per-account mail rules filter incoming, existing mail
Summary:
Originally, this was going to be a totally independent package, but
I wasn't able to isolate the functionality and get it tied in to
the delta-stream consumption. Here's how it currently works:
- The preferences package has a new tab which allows you to edit
mail filters. Filters are saved in a new core store, and a new
stock component (ScenarioEditor) renders the editor. The editor
takes a set of templates that define a value space, and outputs
a valid set of values.
- A new MailFilterProcessor takes messages and creates tasks to
apply the actions from the MailFiltersStore.
- The worker-sync package now uses the MailFilterProcessor to
apply filters /before/ it calls didPassivelyReceiveNewModels,
so filtrs are applied before any notifications are created.
- A new task, ReprocessMailFiltersTask allows you to run filters
on all of your existing mail. It leverages the existing TaskQueue
architecture to: a) resume where it left off if you quit midway,
b) be queryable (for status) from all windows and c) cancelable.
The TaskQueue is a bit strange because it runs performLocal and
performRemote very differently, and I had to use `performRemote`.
(todo refactor soon.)
This diff also changes the EditableList a bit to behave like a
controlled component and render focused / unfocused states.
Test Plan: Run tests, only for actual filter processing atm.
Reviewers: juan, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2379
2015-12-23 15:19:32 +08:00
|
|
|
.items-wrapper .selected.editing,
|
|
|
|
&:focus .items-wrapper .selected {
|
|
|
|
color: @component-active-bg;
|
|
|
|
background-color: @component-active-color;
|
|
|
|
}
|
|
|
|
|
2015-12-05 09:13:04 +08:00
|
|
|
.items-wrapper {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
2016-03-16 01:57:43 +08:00
|
|
|
border: 1px solid @border-color-secondary;
|
2015-12-10 04:35:40 +08:00
|
|
|
background-color: @background-primary;
|
|
|
|
height: 90px;
|
2015-12-05 09:13:04 +08:00
|
|
|
font-size: 0.9em;
|
|
|
|
|
2015-12-10 04:35:40 +08:00
|
|
|
.selected {
|
feat(mail-rules): Per-account mail rules filter incoming, existing mail
Summary:
Originally, this was going to be a totally independent package, but
I wasn't able to isolate the functionality and get it tied in to
the delta-stream consumption. Here's how it currently works:
- The preferences package has a new tab which allows you to edit
mail filters. Filters are saved in a new core store, and a new
stock component (ScenarioEditor) renders the editor. The editor
takes a set of templates that define a value space, and outputs
a valid set of values.
- A new MailFilterProcessor takes messages and creates tasks to
apply the actions from the MailFiltersStore.
- The worker-sync package now uses the MailFilterProcessor to
apply filters /before/ it calls didPassivelyReceiveNewModels,
so filtrs are applied before any notifications are created.
- A new task, ReprocessMailFiltersTask allows you to run filters
on all of your existing mail. It leverages the existing TaskQueue
architecture to: a) resume where it left off if you quit midway,
b) be queryable (for status) from all windows and c) cancelable.
The TaskQueue is a bit strange because it runs performLocal and
performRemote very differently, and I had to use `performRemote`.
(todo refactor soon.)
This diff also changes the EditableList a bit to behave like a
controlled component and render focused / unfocused states.
Test Plan: Run tests, only for actual filter processing atm.
Reviewers: juan, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2379
2015-12-23 15:19:32 +08:00
|
|
|
background-color: fade(desaturate(@component-active-color, 100%), 70%);
|
2015-12-10 04:35:40 +08:00
|
|
|
color: @component-active-bg;
|
|
|
|
}
|
|
|
|
|
2016-02-02 06:06:54 +08:00
|
|
|
.insertion-point {
|
|
|
|
display:block;
|
|
|
|
width:100%;
|
|
|
|
height: 0;
|
|
|
|
position: relative;
|
|
|
|
pointer-events: none;
|
|
|
|
|
|
|
|
div {
|
|
|
|
height:2px;
|
|
|
|
width: 100%;
|
|
|
|
position: absolute;
|
|
|
|
top: -1px;
|
|
|
|
background-color: @component-active-color;
|
|
|
|
box-shadow: 0 0 1px fade(@component-active-color, 50%);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-12-10 04:35:40 +08:00
|
|
|
.edit-icon {
|
|
|
|
display: none;
|
|
|
|
cursor: pointer;
|
|
|
|
}
|
|
|
|
|
2015-12-05 09:13:04 +08:00
|
|
|
.editable-item {
|
2015-12-10 04:35:40 +08:00
|
|
|
padding: (@padding-small-vertical - 1) @padding-small-horizontal;
|
2015-12-05 09:13:04 +08:00
|
|
|
cursor: default;
|
2015-12-10 04:35:40 +08:00
|
|
|
border-bottom: 1px solid @border-color-divider;
|
|
|
|
flex-shrink: 0;
|
2015-12-05 09:13:04 +08:00
|
|
|
|
2015-12-10 04:35:40 +08:00
|
|
|
&.selected.with-edit-icon {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
padding-right: 20px;
|
|
|
|
|
|
|
|
img.edit-icon {
|
|
|
|
display: inline;
|
|
|
|
background-color: @component-active-bg;
|
|
|
|
margin-left: auto;
|
|
|
|
}
|
2015-12-05 09:13:04 +08:00
|
|
|
}
|
2015-12-10 04:35:40 +08:00
|
|
|
|
|
|
|
&>input {
|
2015-12-05 09:13:04 +08:00
|
|
|
border: none;
|
|
|
|
padding: 0;
|
2015-12-10 04:35:40 +08:00
|
|
|
color: @component-active-bg;
|
feat(mail-rules): Per-account mail rules filter incoming, existing mail
Summary:
Originally, this was going to be a totally independent package, but
I wasn't able to isolate the functionality and get it tied in to
the delta-stream consumption. Here's how it currently works:
- The preferences package has a new tab which allows you to edit
mail filters. Filters are saved in a new core store, and a new
stock component (ScenarioEditor) renders the editor. The editor
takes a set of templates that define a value space, and outputs
a valid set of values.
- A new MailFilterProcessor takes messages and creates tasks to
apply the actions from the MailFiltersStore.
- The worker-sync package now uses the MailFilterProcessor to
apply filters /before/ it calls didPassivelyReceiveNewModels,
so filtrs are applied before any notifications are created.
- A new task, ReprocessMailFiltersTask allows you to run filters
on all of your existing mail. It leverages the existing TaskQueue
architecture to: a) resume where it left off if you quit midway,
b) be queryable (for status) from all windows and c) cancelable.
The TaskQueue is a bit strange because it runs performLocal and
performRemote very differently, and I had to use `performRemote`.
(todo refactor soon.)
This diff also changes the EditableList a bit to behave like a
controlled component and render focused / unfocused states.
Test Plan: Run tests, only for actual filter processing atm.
Reviewers: juan, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2379
2015-12-23 15:19:32 +08:00
|
|
|
background: transparent;
|
|
|
|
font-size: inherit;
|
2015-12-15 06:29:45 +08:00
|
|
|
line-height: 1.5;
|
2016-01-26 06:55:01 +08:00
|
|
|
border-radius: 0;
|
|
|
|
&:focus {
|
|
|
|
box-shadow: none;
|
|
|
|
}
|
2015-12-05 09:13:04 +08:00
|
|
|
}
|
|
|
|
::-webkit-input-placeholder {
|
|
|
|
color: @text-color-inverse-very-subtle;
|
|
|
|
}
|
|
|
|
}
|
2015-12-08 04:38:38 +08:00
|
|
|
|
2015-12-08 07:54:10 +08:00
|
|
|
.create-item-input {
|
2015-12-10 04:35:40 +08:00
|
|
|
&>input {
|
|
|
|
padding: (@padding-small-vertical - 1) @padding-small-horizontal;
|
2015-12-08 04:38:38 +08:00
|
|
|
border: none;
|
2015-12-10 04:35:40 +08:00
|
|
|
border-bottom: 1px solid @border-color-divider;
|
2015-12-08 04:38:38 +08:00
|
|
|
font-size: inherit;
|
2016-01-26 06:55:01 +08:00
|
|
|
border-radius: 0;
|
|
|
|
&:focus {
|
|
|
|
box-shadow: none;
|
|
|
|
}
|
2015-12-08 04:38:38 +08:00
|
|
|
}
|
2015-12-08 07:54:10 +08:00
|
|
|
::-webkit-input-placeholder {
|
|
|
|
font-style: italic;
|
|
|
|
}
|
2015-12-08 04:38:38 +08:00
|
|
|
}
|
2015-12-05 09:13:04 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
.buttons-wrapper {
|
2015-12-10 04:35:40 +08:00
|
|
|
display: flex;
|
2016-03-16 01:57:43 +08:00
|
|
|
border: 1px solid @border-color-secondary;
|
2015-12-10 04:35:40 +08:00
|
|
|
border-top: none;
|
|
|
|
background-color: @background-secondary;
|
2015-12-05 09:13:04 +08:00
|
|
|
|
|
|
|
.btn-editable-list {
|
2015-12-10 04:35:40 +08:00
|
|
|
display: flex;
|
|
|
|
justify-content: center;
|
|
|
|
height: 25px;
|
|
|
|
width: 25px;
|
2016-02-10 11:45:24 +08:00
|
|
|
line-height: 25px;
|
2016-03-16 01:57:43 +08:00
|
|
|
border-right: 1px solid @border-color-secondary;
|
2015-12-10 04:35:40 +08:00
|
|
|
font-size: 1em;
|
|
|
|
cursor: default;
|
|
|
|
color: @text-color-subtle;
|
feat(mail-rules): Per-account mail rules filter incoming, existing mail
Summary:
Originally, this was going to be a totally independent package, but
I wasn't able to isolate the functionality and get it tied in to
the delta-stream consumption. Here's how it currently works:
- The preferences package has a new tab which allows you to edit
mail filters. Filters are saved in a new core store, and a new
stock component (ScenarioEditor) renders the editor. The editor
takes a set of templates that define a value space, and outputs
a valid set of values.
- A new MailFilterProcessor takes messages and creates tasks to
apply the actions from the MailFiltersStore.
- The worker-sync package now uses the MailFilterProcessor to
apply filters /before/ it calls didPassivelyReceiveNewModels,
so filtrs are applied before any notifications are created.
- A new task, ReprocessMailFiltersTask allows you to run filters
on all of your existing mail. It leverages the existing TaskQueue
architecture to: a) resume where it left off if you quit midway,
b) be queryable (for status) from all windows and c) cancelable.
The TaskQueue is a bit strange because it runs performLocal and
performRemote very differently, and I had to use `performRemote`.
(todo refactor soon.)
This diff also changes the EditableList a bit to behave like a
controlled component and render focused / unfocused states.
Test Plan: Run tests, only for actual filter processing atm.
Reviewers: juan, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2379
2015-12-23 15:19:32 +08:00
|
|
|
|
|
|
|
&.btn-disabled {
|
|
|
|
background-color: transparent;
|
|
|
|
opacity: 0.4;
|
|
|
|
}
|
|
|
|
&:active {
|
|
|
|
cursor: default;
|
|
|
|
background-color: darken(@btn-default-bg-color, 9%);
|
|
|
|
box-shadow: inset 0 1px 0.5px rgba(0, 0, 0, 0.21);
|
|
|
|
}
|
2015-12-05 09:13:04 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|