0
I Use This!
Inactive

Commits : Listings

Analyzed about 3 hours ago. based on code collected about 20 hours ago.
May 19, 2023 — May 19, 2024
Commit Message Contributor Files Modified Lines Added Lines Removed Code Location Date
fixed 'next' variable quoting issue upon service callback from CAS More... over 9 years ago
fixed gateone/auth/authentication.py to forward the 'next' parameter through the CAS authentication process More... over 9 years ago
pyflakes3 found use of a non-existant symbol (in Python 3) More... over 9 years ago
Restore Python 2 compatibility More... over 9 years ago
Changes to terminal.py to work on Python 3 More... over 9 years ago
Is it Typo? More... over 9 years ago
improve russian translation in.po files More... over 9 years ago
docker/Dockerfile: Made some very minor changes to reduce the size of the resulting image. auth/authentication.py: Fixed a bug in regards to users with unicode usernames. This should resolve issue #467 (https://github.com/liftoff/GateOne/issues/467). app_terminal.py: Fixed a bug where you'd get an exception, "AttributeError: 'bytes' object has no attribute 'format'" in Python 3. This should resolve issue #466 (https://github.com/liftoff/GateOne/issues/466). app_terminal.py: Fixed a bug in `TerminalApplication.get_webworker()` where you'd get a TypeError exception like, "term_ww.js is not JSON serializable" in Python 3. core/server.py: Fixed a bug where the call to `applications.sort()` inside `ApplicationWebSocket.list_applications()` would result in an exception in Python 3. More... over 9 years ago
Added the option unix_socket_mode to change the default permissions (0600) on the unix socket. More... over 9 years ago
auth/authentication.py: Fixed a bug where Google auth would only work properly if you were using port 80 or 443. More... over 9 years ago
app_terminal.py: Fixed the path to ssh_connect.py when generating a new 50terminal.conf More... over 9 years ago
core/utils.py: `entry_point_files()` now gracefully handles the situation where a plugin has an entry point registered but is actually missing/has been removed. cooe/server.py: `ApplicationWebSocket.get_theme()` now gracefully handles the situation where a plugin has an entry point registered but is actually missing/has been removed. app_terminal.py: Fixed a bug where you could get an exception trying to generate the 50terminal.conf for the first time. Playback plugin: Fixed a bug where the playback controls would appear when applications other than the Terminal were running in a given workspace. More... over 9 years ago
core/utils.py: Added a helpful message to `killall()` to indicate that it's running and what it is doing. scripts/init/gateone-debian.sh: Changed the comment at the top to indicate it should start on runlevel 2 by default. setup.py: Modified the systemd installation variables so that they are more descriptive (instead of just re-using the upstart variables). core/server.py: Fixed a bug where Gate One could get stuck in an exception loop if a theme file was removed from the cache (by something other than Gate One). More... over 9 years ago
app_terminal.py: Added a check to quit() to ensure it doesn't try to run killall() if the user is just running 'gateone --help' or a CLI command. More... over 9 years ago
gateone.js: Got rid of `GateOne.Visual.panelToggleCallbacks` since nothing uses it anymore and it has long since been deprecated (also, it causes problems with slimit when it tries to minify gateone.js). More... over 9 years ago
app_terminal.py: Fixed a bug in `TerminalApplication.detach_shared_terminal()` where it could result in an exception if it gets called when no terminals are shared (can happen as part of the callback chain if things are just right). More... over 9 years ago
core/configuration.py: Removed the GATEONE_DIR import since it is no longer users. auth/authentication.py: Removed GATEONE_DIR import (was never really used anyway). auth/authorization.py: Removed GATEONE_DIR import (not used). Relocated 50terminal.conf settings template from gateone/templates/settings to gateone/applications/terminal/templates/settings. app_terminal.py: Everything now uses `pkg_resources` to find the paths to things and list directories and whatnot. Themes: Added a '.✈prefsdialog' class for preference dialogs (so they aren't completely transparent). Also added this class to a whole ton of dialogs throughout Gate One. Themes: Added a '.✈alertdialog' class for `GateOne.Visual.alert()`. Themes: Added a '.✈confirmdialog' class for `GateOne.Visual.confirm()`. More... over 9 years ago
app_terminal.py: Fixed a bug where you'd get a (harmless) exception logged when the Terminal application tried to initialize the convenience plugin since it didn't have any hooks (it's just JavaScript). core/server.py: `GateOneApp()` now uses `pkg_resources` to find an configure the base `static_url` (the path to stuff under the /static/ URL). core/server.py: The path to the HTML documentation inside `GateOneApp()` now uses `pkg_resources` just like everything else. core/server.py: `from gateone import GATEONE_DIR` has been removed. Finally! Getting close to making Gate One available via pypi (e.g. 'pip install gateone'). core/server.py: `ApplicationWebSocket.send_js_or_css()` now takes a 'force' keyword argument that will synchronize the file regardless of the 'send_js' or 'send_css' global setting. This should allow things like the Editor plugin to continue working (fully) if the server has been configured to not send JS/CSS. Editor Plugin: `get_editor_mode()` uses the new 'force' keyword argument with `send_js()`. core/server.py: `ApplicationWebSocket.wrap_and_send_js()` now uses the 'force' keyword argument with `send_js()` (since there's no way it would work if JS sending was disabled). core/server.py: `ApplicationWebSocket.send_extra()` now uses the 'force' keyword argument since it wouldn't work if sending JS/CSS were disabled. core/configuration.py: `combine_javascript()` now uses `pkg_resources` to find and retrieve JavaScript files. Also added some helpful messages and made it so that the other .js files in Gate One's main 'static' dir get included (apparently it was skipping them before this change!). core/configuration.py: `combine_css()` now uses `pkg_resources` just like `combine_javascript()`. It also now includes plugin theme files (which it wasn't using previously). app_terminal.py: The `TerminalApplication.render_256_colors()` method has been modified to use the airplane symbol in 256-color classes. 256_colors.css: Removed the hard-coded '#gateone' id and modified the 256-color classes to use the airplane symbol. More... over 9 years ago
core/server.py: `ApplicationWebSocket.wrap_and_send_js()` now uses `pkg_resources` to find the libwrapper.js template. core/server.py: `ApplicationWebSocket.enumerate_themes()` now uses `pkg_resources` to find available themes. It also no longer includes the logic for sending the terminal colors since that is now handled via app_terminal.py. Convenience Terminal Plugin: Added __init__.py files to this JavaScript-only plugin so that it gets an entry point. This should have it working again. Help Plugin: Added __init__.py to ensure it gets an entry point. More... over 9 years ago
Sorry for the huge commit; Had lots and lots of dependent changes (pkg_resources stuff)! gateone.js: `GateOne.Visual.newWorkspaceWorkspace()` has been renamed to `GateOne.Visual.appChooser()` to more accurately reflect what it does. gateone.js: `GateOne.Visual.appChooser()` now takes a 'where' argument to specify where the application chooser should be placed. If not given it will be placed in a new workspace. If 'where' is `false` then the app chooser element will be returned and not placed anywhere. It also uses `GateOne.openApplication()` instead of calling an application's `__new__()` function directly. gateone.js: `GateOne.Utils.removeElement()` now returns the removed element; doT.js: Added support for comments. They work like this: `{{// some comment}}`. I have forked upstream and created a pull request for them to add this functionality. terminal.js: `GateOne.Terminal.onResizeEvent()` now resizes *all* visible termnals... Not just the currently-selected terminal. gateone_visual_extra.js: Made a lot of changes to `GateOne.Visual.Pane()`. Still experimenting though... Not ready for production use. Vertical splitting seems to work great though! Just need a way to resume split terminals. terminal.js: `GateOne.Terminal.sendDimensions()` got a major overhaul. It now keeps track of the prevRows and prevCols values on each individual terminal object inside `GateOne.Terminal.terminals` and also works better when you've got multiple terminals in view. terminal.js: `GateOne.Terminal.newTerminal()` now sets the 'data-term' attribute on new terminals to make it easier to find the terminal number. terminal.js: Removed `GateOne.Terminal.Input.handleVisibility()` since it was unused. Themes: A few minor tweaks here and there. Playback plugin: `GateOne.Playback.hideControls()` and `GateOne.Playback.showControls()` now stop and restart the clock interval callback, respectively (no reason for it to keep ticking away in the background when there's nothing to update). Playback plugin: `GateOne.Playback.addPlaybackControls()` has been renamed to `GateOne.Playback.addControls()` since the former was from the redundant department of redundancy. Playback plugin: Just a touch of code optimization here and there. Size reduction, mostly. gateone_utils_extra.js: Added `GateOne.Utils.Interval()` which is simply a more intelligent way of handling `setInterval()` and `clearInterval()`. Playback plugin: The clock updater will now be stopped whenever the user switches to a different tab. It will automatically resume when the user switches back to Gate One. core/server.py: Added `StaticHandler.validate_absolute_path()` and `StaticHandler.initialize()` so that the contents of plugins and applications can be extracted via `pkg_resources` instead of relying on relative paths to their respective Python modules. core/server.py: Fixed the bug where obsolete files in the client-side fileCache were not being cleaned up (this required a minor fix to `ApplicationWebSocket.file_request()`). I seriously doubt anyone but me (who regularly has Gate One serving up unusual assets) would have been impacted :) core/server.py: Removed `ApplicationWebSocket.get_js()` since that functionality is no longer needed with all the file synchronization mechanisms that are available. Nothing in Gate One used it. core/server.py: `ApplicationWebSocket.get_theme()` now uses the `pkg_resources` module to find and deliver theme files in all plugins/applications. core/server.py: `ApplicationWebSocket.send_plugin_static_files()` now uses the `pkg_resources` module to find and deliver static assets. core/server.py: `MainHandler()` now uses `pkg_resources` to find and deliver the index.html template and gateone.js/gateone.min.js. core/server.py: `ApplicationWebSocket.send_extra()` now uses 'pkg_resources' to find and deliver those assets (aka whatever was put in 'gateone/static/extra'). app_terminal.py: Changed the way plugins are initialized in order to take advantage of the changes to `gateone.core.server.StaticHandler`. Static assets now get served using `pkg_resources` which should pave the way to more easily-installed Terminal plugins. core/utils.py: Fixed a bug where static assets (JS and CSS) could end up missing from the returned dict in `entry_point_files()`. More... over 9 years ago
Fixing the location to doT.js. More... over 9 years ago
Added missing doT.js file More... over 9 years ago
core/utils.py: The `minify()` function will now only attempt to minify files that don't end in 'min.js' or 'min.css'. app_terminal.py: The `TerminalApplication.new_terminal()` method now falls back to defaults if no 'term', 'rows', or 'columns' are given. Themes: Lots of tweaks all over the place. SSH Plugin: The editor is now enabled on the Known Hosts textarea. SSH Plugin: Saving the Known Hosts now works properly in Python 3 (it was throwing an exception in regards to 'must be str not bytes'). Editor Plugin: It no longer throws an exception if no callback is given to either the `GateOne.Editor.fromTextArea()` or `GateOne.Editor.newEditor()` functions. More... over 9 years ago
NEW: gateone/static/doT.js: Provides `GateOne.doT` which is just the doT (http://olado.github.io/doT/) the template library with a minor modification so that it attaches itself to the GateOne global instead of the window. It will be used to simplify things like control panels and settings. Why did I choose doT.js? Because it's *tiny* and does everything I need without making bad assumptions about how JavaScript, CSS, and/or HTML gets loaded. With the new 'html' fileCache templates should become a great way to create things like settings and configuration panels. gateone.js: Re-enabled the use of IndexedDB (forgot I was forcing it to localStorage in order to emulate Safari--obviously localStorage fallback works fine =). core/server.py: Added `ApplicationWebSocket.send_file()` which lets you sync arbitrary files with the client. Specifically made to be able to sync HTML templates but I also added support for a 'misc' catch-all if any app or plugin wants to sync something else in the future. Due to this change to the fileCache model the IndexedDB version number has been incremented... If you have it open you may see messages in your JS console about the DB schema being upgraded. This is normal and means everything is working properly :) core/server.py: Updated `ApplicationWebSocket.file_request()` to support the inclusion of arbitrary metadata when synchronizing files with the client. More... over 9 years ago
core/utils.py: Added 'mangle=True' to the call to slimit inside the `minify()` function. It doesn't appear to slow down anything by much. core/utils.py: Fixed a bug with Python 3 where `entry_point_files()` was throwing an exception trying to sort the imported Python modules. core/server.py: Fixed a bug in `ApplicationWebSocket.authenticate()` where it was throwing exceptions in Python 3 trying to decode the origin attribute. More... over 9 years ago
terminal_input.js: `GateOne.Terminal.Input.onKeyDown()` and `GateOne.Terminal.Input.onKeyUp()` now trigger events just like `GateOne.Input.onKeyDown()` and `GateOne.Input.onKeyUp()`: Instead of just 'terminal:onkeydown' and 'terminal:onkeyup' the triggered events will be like, 'terminal:onkeydown:ctrl-alt-p'. This allows for using `GateOne.Events.on()` as a means to react to certain keyboard events. Since the keystroke event is passed via `GateOne.Events.trigger()` it can be transformed before `GateOne.Terminal.Input.execKeystroke()` gets called. terminal_input.js: `GateOne.Input` is now referenced via a capital I instead of a lower case i so as to avoid confusion with the use of a lower case i in loops. terminal.js: Performed some minor code optimizations here and there (mostly reducing use of the 'var' keyword). gateone_input.js: `GateOne.Input.key()` now attempts to use `KeyboardEvent.code` before it falls back to using `KeyboardEvent.keyCode` which it deprecates (even though no browsers support .code yet, sigh... At least Gate One will be ready when they are!). gateone_input.js: Added documentation strings to `GateOne.Input.key()`, `GateOne.Input.modifiers()`, and `GateOne.Input.mouse()`. gateone.js: Made a very minor change at the top of the script to avoid a deprecation warning being printed in Chrome in regards to the `webkitIDBKeyRange` and `webkitIDBTransaction` IndexedDB events. Documentation: Rebuilt so that it includes the new docstrings from gateone_input.js More... over 9 years ago
JavaScript everywhere: Wraped loads upon loads of strings in `GateOne.i18n.gettext()`. Also performed a bit of (minor) optimization while I was at it. More... over 9 years ago
run_gateone.py: It works again: It now automatically creates the 'gateone.egg-info' directory so that plugins and applications can be imported using the `pkg_resources` module. More... over 9 years ago
core/server.py: `ApplicationWebSocket.set_locale()` has been renamed to `ApplicationWebSocket.set_locales()` to be able to support multiple locales so that if the user's preferred language isn't available it can fall back to however many locales the user's browser has ben configured to prefer. It still supports taking a string though. core/server.py: `ApplicationWebSocket.set_locales()` no longer requires the user be authenticated. This should allow setting the client's locale very early in the connection/authentication process (before any messages are delivered by the server). core/server.py: `ApplicationWebSocket.set_locales()` now sets `self.user_locale` instead of the server's global locale. This makes a lot more sense for a lot of reasons :) core/server.py: `ApplicationWebSocket.send_js_translation()` now tries to use `self.user_locales` if available and falls back to the server's configured locale. core/server.py: `ApplicationWebSocket.send_js_translation()` now accepts a 'package' keyword argument to be compatible with using the `pkg_resources` module for discovering and retrieving translation files. core/server.py: The global `user_locale` has been renamed to `server_locale` to more accurately reflect what it is. gateone.js: `GateOne.Net.onOpen()` now asks the server to send localizations via `GateOne.i18n.setLocales(navigator.languages)`. Unfortunately this step doesn't happen until *after* a lot of strings are loaded so it doesn't work for everything (e.g. the main page of the settings panel). I'm going to see what I can do about that. gateone.js: When swapping workspaces via `GateOne.Visual.swapWorkspaces()` the 'data-title' attribute will now be swapped along with everything else. This fixes the (never reported) bug where workspaces would show the wrong title in grid view when mousing over them after a swap. FYI: You can swap workspaces in grid view using drag & drop. Try it! gateone.js: Optimized some things here and there (replaced stuff in brackets with dot equivalents). setup.py: The message that displays which entry points were added has been moved to the end of the script so that it doesn't scroll by too fast to be seen. JavaScript (everywhere): Wrapped loads of strings with `GateOne.i18n.gettext()` More... over 9 years ago
Added missing __init__.py in the plugins directory. Not sure why 'git status' wasn't showing that file as untracked but that's annoying. Now I have to double-check _all_ the __init__.py files. More... over 9 years ago