An open-source, cross-platform terminal for seamless workflows
Go to file
Sylvie Crowe 7310481383
Add a button to filter out non-running commands (#113)
* add filter button to the command input box

This will become a button that temporarily filters out the non-running
commands from your screen. At the moment it is only a placeholder design
that will likely change with more feedback. It does not have any
functionality at the moment.

* add view indication of active filter

This will become a clickable notification to let users know that a
filter is being applied. It displays the number of lines that are being
filtered. The plan is for it to be clickable to remove the filter. The
current version is a placeholder that is likely to change. It has no
functionality at the moment.

* add basic state to the filtering buttons

The filtering buttons up until this point haven't done anything. Now
they can be clicked and unclick causing them to render differently
depending on if they're selected. They still have no functionality
outside of their own appearance.

* add filtering functionality to filter button

The filter button now hides all non-running commands. And pressing it
again or pressing the other filter button will bring
back the hidden commands.

There are currently some formatting issues with the second button as it
jumps to the top of the screen if the filter is on and no running
commands are present.

An additional change was made to remove a variable accidentally
introduced in the last commit.

* add count for number of lines filtered out

The secondary filter button now lists the number of non-running commands
that have been filtered out. This count is added to the screen model in
case it is needed elsewhere.

* fix the style on the secondary buttons

This fixes the margin an the button to bring it in line with the line
items. It also fixes empty window screen to use a different css class.
Previously, the window-view class being used would cover the button. It
is now using the window-empty class instead.

* change formatting for secondary filter button

The button is now yellow with a border style instead of red with a solid
style. The border-radius has been changed to give the button a pill
shape.

Additionally, a style tab has been added to the button component to
provide it with custom styling. It should be changed to a custom class
design in the future.

* update style on primary filter button

This is being changed to simpler hover text in line with other text in
the cmd box.

* add number display as text for first filter button

The main filter button originally displayed a somewhat vague message.
Now it displays the number of running tasks with the rotating arrow
symbol.

* remove numLinesHidden count from model

This numLineHidden count is no longer needed with the new button design.
Furthermore, it created several warnings in react due to its
implementation. For both of these reasons, it has been removed.

* update filter functionality to better utilize mobx

This consisted of a few changes. The first was to move the filter state
from the GlobalModel to ScreenLines in order to track state separately
for each screen. Then several of the functions had to be rewritten to
wrap setting variables in the mobx.action wrapper.

As is, there are still a few issues with this design:
- the filter is not remembered when switching tabs
- if all running tasks expire, the second filter button is still present

* move filtering observable to Screen model

The previous observable did not persist when changing tabs because
ScreenLines did not persist. By moving it to Screen, the ovservable now
persists after changing tabs.
2023-12-01 20:54:49 -08:00
.github/ISSUE_TEMPLATE Update issue templates 2023-11-14 10:55:33 -08:00
buildres Create MacOS Universal Build (#62) 2023-11-05 00:00:47 -07:00
housekeeping Create MacOS Universal Build (#62) 2023-11-05 00:00:47 -07:00
public add logo to left sidebar, change how collapse works 2023-11-10 13:16:35 -08:00
src Add a button to filter out non-running commands (#113) 2023-12-01 20:54:49 -08:00
waveshell update screen -> tab in user facing messages. waveshell var / ignore. fix bug with external urls 2023-11-10 12:31:31 -08:00
wavesrv merge main into dev-0.5.1 2023-12-01 19:58:59 -08:00
webpack Update Data Directories and Environment Variables (#59) 2023-11-01 01:26:19 -07:00
.gitignore csvviewer rendering flash (#44) 2023-10-24 18:34:37 -07:00
.prettierignore add prettier to package.json 2023-08-21 21:33:47 -07:00
.prettierrc.json add prettier to package.json 2023-08-21 21:33:47 -07:00
build-linux.md zip is a requirement for linux builds 2023-11-06 13:39:27 -08:00
BUILD.md update directories and color in BUILD.md text 2023-11-28 15:09:11 -08:00
CODE_OF_CONDUCT.md PE 178 Add OSS files (#50) 2023-10-28 13:16:50 -07:00
CONTRIBUTING.md Tidy up contribution guide 2023-11-08 14:10:31 -05:00
forge.config.js upgrade electron/rebuild to get rid of weird lzma-native dependency 2023-11-06 12:03:12 -08:00
go.work add go.work for helping with VSCode gopls 2023-10-16 19:17:44 -07:00
go.work.sum add go.work for helping with VSCode gopls 2023-10-16 19:17:44 -07:00
LICENSE Add Apache 2.0 License 2023-10-16 15:22:41 -07:00
NOTICE add notice and license in package.json 2023-10-16 15:21:21 -07:00
package-lock.json Pe 222 apps sidebar (#51) 2023-10-28 13:18:31 -07:00
package.json upgrade monaco-editor version 2023-11-07 00:13:05 -08:00
README.md update in-app links to point to waveterm.dev 2023-11-09 21:49:06 -08:00
scripthaus.md merge main into dev-0.5.1 2023-12-01 19:58:59 -08:00
SECURITY.md PE 178 Add OSS files (#50) 2023-10-28 13:16:50 -07:00
tsconfig.json updated tsconfig.json 2023-11-29 18:23:47 -08:00
version.js bump version to v0.5.1 2023-11-30 10:06:06 -08:00
versionmeta.json Update Data Directories and Environment Variables (#59) 2023-11-01 01:26:19 -07:00
webpack.config.js big update for webpack configs. use --env to select environment. now dev/prod will combine both web and electron webpack environments 2023-10-25 13:32:15 -07:00
yarn.lock upgrade monaco-editor version 2023-11-07 00:13:05 -08:00

Wave Terminal Logo

Wave Terminal

A open-source, cross-platform, modern terminal for seamless workflows.

Wave isn't just another terminal emulator; it's a rethink on how terminals are built. Wave combines command line with the power of the open web to help veteran CLI users and new developers alike.

  • Inline renderers to cut down on context switching. Render code, images, markdown, and CSV files without ever leaving the terminal.
  • Persistent sessions that can restore state across network disconnections and reboots
  • Searchable contextual command history across all remote sessions (saved locally)
  • Workspaces, tabs, and command blocks to keep you organized

Installation

Wave Terminal works with MacOS and Linux (preliminary).

Install Wave Terminal from: www.waveterm.dev/download

Building from Source

Contributing

Wave uses Github Project for tracking issues.

Find more information in our Contributions Guide, which includes: