Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some Improvements #92

Open
wants to merge 18 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
9 changes: 6 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@

config.json
node_modules
# https://git-scm.com/docs/gitignore
# https://help.github.com/articles/ignoring-files
# Example .gitignore files: https://github.com/github/gitignore
/bower_components/
/node_modules/
/node/node_modules/
30 changes: 28 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,40 @@
brackets-sftp-upload
====================

## THIS IS A Personal Development Fork ##

Extension Home: https://github.com/bigeyex/brackets-sftp-upload

Those improvements are eventually going to be merged into the extension but there's probably a lot of bugs attached with them =P

### Improvements made ###

* Transactions Tab - show status of each upload/download
* Multiple server settings per project
* Test Connection Button & Show Connection Error
* Backup changed files
* Download files - FTP Walk (All files on FTP)
* Download files - Local Walk (Only files that exists locally)
* FTP Browser with download option (by context menu)
* Improved Status Bar
* Log dialog viewer for errors

====================


SFTP/FTP upload plugin for brackets

## Features ##

* Keep track of changed files in your project
* Upload panel - you have total control over which to upload and which to skip
* Server settings for each project
* Backup files before uploading (folder base per server and date folder for backup, both editable)
* Download files from ftp (FTP Walk - everything from ftp, Local Walk - Only files existed locally
* Multiple server settings for each project
* Store server settings in the brackets system preference file, not the root folder of your projects, so no worry about uploading your credentials to your git repo.
* Right click menu command in your project panel, upload any specific file or folder you want.
* Also a good sample code to learn how brackets works with node.
* Also a good sample code to learn how brackets works with node. (I can atest to that! =)
* Log Viewer Dialog - View the details of each upload/download made

## Getting Started ##

Expand All @@ -25,6 +49,8 @@ SFTP/FTP upload plugin for brackets
* (Ctrl-Alt-U / Cmd-Alt-U) to upload the current opening file;
* (Ctrl-Shift-U / Cmd-Shift-U) to upload all changed files;
* (Ctrl-Alt-Shift-U / Cmd-Alt-Shift-U) to open up Upload panel.
* (Ctrl-Alt-D / Cmd-Alt-D ) to create backup for changed files.
* (Ctrl-Alv-V / Cmd-Alt-V ) to view logs.

## Notes for translators ##

Expand Down
Binary file added html/.DS_Store
Binary file not shown.
12 changes: 12 additions & 0 deletions html/browser-panel.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<div id="sftp-update-browser" class="sftp-update-browser panel">
<div class="header">
<label>{{ Strings.BROWSER_PANEL_TITLE }}</label>
<button data-action="setup" class="btn small btn-icon btn-server-setup" title="{{Strings.SERVER_SETUP}}"></button>
<a href="#" class="close">&times;</a>
</div>

<div class="sftp-update-browser-holder">
<span></span>
<ul></ul>
</div>
</div>
19 changes: 19 additions & 0 deletions html/dialog-backup-files.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<div id="sftpupload-backup-files-dialog" class="modal">
<div class="modal-header">
<h1 class="dialog-title">{{Title}}</h1>
</div>
{{#info}}
<div class="modal-body table-striped tab-content sftp-backup-files-form">
<div class="field-container server">
<input type="text" class="input-folder large" value="{{LocalPath}}"/>
<button type="button" class="dialog-button btn open-folder">...</button>
</div>
</div>
{{/info}}

<div class="modal-footer">
<button data-button-id="start" class="dialog-button btn primary">{{ Strings.BACKUP_FILES_START }}</button>
<button data-button-id="cancel" class="dialog-button btn">{{ Strings.CANCEL }}</button>
</div>
</div>

15 changes: 15 additions & 0 deletions html/dialog-message.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<div id="sftpupload-message-dialog" class="modal">
<div class="modal-header">
<h1 class="dialog-title">{{ Message.Title }}</h1>
</div>

<div class="modal-body table-striped tab-content">
<div class="dialog-message">
<p>{{ Message.Text }}</p>
</div>
</div>

<div class="modal-footer">
<button data-button-id="ok" class="dialog-button btn primary">{{ Strings.OK }}</button>
</div>
</div>
154 changes: 104 additions & 50 deletions html/dialog-settings.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,61 +3,115 @@
<h1 class="dialog-title">{{ Strings.SETTINGS_DIALOG_TITLE }}</h1>
</div>
{{#info}}
<div class="modal-body table-striped tab-content sftp-upload-server-config-form">
<div class="field-container server">
<label>
{{ Strings.SETTINGS_DIALOG_TYPE }}:
</label>
<select class="input-method" value="{{method}}">
<option value="ftp">{{ Strings.SETTINGS_DIALOG_TYPE_FTP }}</option>
<option value="sftp" selected>{{ Strings.SETTINGS_DIALOG_TYPE_SFTP }}</option>
</select>
</div>
<div class="field-container host">
<label>
{{ Strings.SETTINGS_DIALOG_HOST }}:
</label>
<input type="text" class="input-host" value="{{host}}"/>
</div>
<div class="field-container port">
<label>
{{ Strings.SETTINGS_DIALOG_PORT }}:
</label>
<input type="text" class="input-port" value="{{port}}"/>
</div>
<div class="field-container username">
<label>
{{ Strings.SETTINGS_DIALOG_USERNAME }}:
</label>
<input type="text" class="input-username" value="{{username}}"/>
</div>
<div class="field-container rsa-path">
<label>
{{ Strings.SETTINGS_DIALOG_RSAMSG }}:
</label>
<input type="text" class="input-rsa-path" placeholder="(optional)" value="{{rsaPath}}"/>
</div>
<div class="field-container password">
<label>
{{ Strings.SETTINGS_DIALOG_PASSWORD }}:
</label>
<input type="password" class="input-password" value="{{password}}"/>
</div>
<div class="field-container server-path">
<label>
{{ Strings.SETTINGS_DIALOG_PATH }}:
</label>
<input type="text" class="input-server-path" value="{{serverPath}}"/>
</div>
<div class="field-container upload-on-save">
<input type="checkbox" class="input-save" value="1" id="input-save-checkbox"/>
<label for="input-save-checkbox" style="width:auto;">{{ Strings.SETTINGS_UPLOAD_ON_SAVE }}</label>
<div class="modal-body table-striped tab-content sftp-upload-server-config-form sftp-clearfix">
<div class="sftp-upload-settings-list-panel">
<h2>
{{ Strings.SETTINGS_DIALOG_SERVER_LIST }}
<button data-button-id="new" class="dialog-button btn secundary">{{ Strings.SETTINGS_DIALOG_SERVER_NEW }}</button>
</h2>
<ul id="sftpuoload-settings-server-list" class="panel"></ul>

<div id="sftp-upload-settings-list-menu" >
<button data-button-id="clone" class="dialog-button btn">{{ Strings.DUPLICATE }}</button>
<button data-button-id="remove" class="dialog-button btn">{{ Strings.REMOVE }}</button>
</div>
</div>
<div class="sftp-upload-settings-list-panel">
<div class="field-container name">
<label>
{{ Strings.SETTINGS_DIALOG_SERVER_NAME }}:
</label>
<input type="hidden" class="input-id" value="{{__id}}"/>
<input type="text" class="input-name" value="{{name}}"/>
</div>
<div class="field-container server">
<label>
{{ Strings.SETTINGS_DIALOG_TYPE }}:
</label>
<select class="input-method" value="{{method}}">
<option value="ftp">{{ Strings.SETTINGS_DIALOG_TYPE_FTP }}</option>
<option value="sftp" selected>{{ Strings.SETTINGS_DIALOG_TYPE_SFTP }}</option>
</select>
</div>
<div class="field-container host">
<label>
{{ Strings.SETTINGS_DIALOG_HOST }}:
</label>
<input type="text" class="input-host" value="{{host}}"/>
</div>
<div class="field-container port">
<label>
{{ Strings.SETTINGS_DIALOG_PORT }}:
</label>
<input type="text" class="input-port" value="{{port}}"/>
</div>
<div class="field-container username">
<label>
{{ Strings.SETTINGS_DIALOG_USERNAME }}:
</label>
<input type="text" class="input-username" value="{{username}}"/>
</div>
<div class="field-container rsa-path">
<label>
{{ Strings.SETTINGS_DIALOG_RSAMSG }}:
</label>
<input type="text" class="input-rsa-path" placeholder="(optional)" value="{{rsaPath}}"/>
</div>
<div class="field-container password">
<label>
{{ Strings.SETTINGS_DIALOG_PASSWORD }}:
</label>
<input type="password" class="input-password" value="{{password}}"/>
</div>
<div class="field-container server-path">
<label>
{{ Strings.SETTINGS_DIALOG_PATH }}:
</label>
<input type="text" class="input-server-path" value="{{serverPath}}"/>
</div>
<div class="field-container upload-on-save checkbox">
<label>
<input type="checkbox" class="input-save" value="1" id="input-save-checkbox"/>
{{ Strings.SETTINGS_UPLOAD_ON_SAVE }}
</label>
</div>
<div class="field-container checkbox">
<label>
<input name="enable-backup" class="input-backup-enabled" type="checkbox" checked="checkbox"/>
{{ Strings.SETTINGS_DIALOG_ENABLE_BACKUP }}
</label>
</div>
<fieldset>
<div class="field-container backup-path">
<label>
{{ Strings.SETTINGS_DIALOG_PATH_BACKUP }}:
</label>
<input type="text" class="input-backup-path" value="{{backupPath}}"/>
<button data-button-id="open-folder" type="button" class="dialog-button btn open-folder">...</button>
<span class="info" title="{{Strings.BACKUP_FILES_FOLDER_HELP}}">?</span>
</div>
<div class="field-container checkbox backup-by-day">
<label>
<input type="checkbox" class="input-backup-by-day" />
{{ Strings.SETTINGS_DIALOG_BACKUP_BY_DAY }}
</label>
</div>
<div class="field-container checkbox backup-prompt">
<label>
<input type="checkbox" class="input-backup-prompt" />
{{ Strings.SETTINGS_DIALOG_BACKUP_PROMPT }}
</label>
</div>
</fieldset>
</div>
</div>
{{/info}}

<div class="modal-footer">
<button data-button-id="ok" class="dialog-button btn primary">{{ Strings.OK }}</button>
<label class="test-connection-status"></label>
<button data-button-id="ok" class="dialog-button btn">{{ Strings.OK }}</button>
<button data-button-id="save" class="dialog-button btn primary">{{ Strings.SAVE }}</button>
<button data-button-id="test" class="dialog-button btn">{{ Strings.TEST_CONNECTION }}</button>
<button data-button-id="cancel" class="dialog-button btn">{{ Strings.CANCEL }}</button>
</div>
</div>
17 changes: 17 additions & 0 deletions html/dialog-view-logs.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<div id="sftpupload-log-viewer-dialog" class="modal">
<div class="modal-header">
<h1 class="dialog-title">{{ Strings.LOG_VIEWER_TITLE }}</h1>
</div>

<div class="modal-body table-striped tab-content">
<div>
<ul id="sftpupload-log-viewer"></ul>
</div>
</div>

<div class="modal-footer">
<button data-button-id="ok" class="dialog-button btn primary">{{ Strings.OK }}</button>
<button data-button-id="clear" class="dialog-button btn secundary">{{ Strings.CLEAR }}</button>
</div>

</div>
5 changes: 5 additions & 0 deletions html/indicator.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<div id="sftp-upload-indicator" >
<div>
<div class="indicator-label" title=""></div>
</div>
</div>
31 changes: 24 additions & 7 deletions html/panel.html
Original file line number Diff line number Diff line change
@@ -1,24 +1,41 @@
<div id="brackets-sftp-upload" class="brackets-sftp-upload bottom-panel vert-resizable top-resizer todo-file">
<div class="toolbar simple-toolbar-layout">
<div class="title">{{ strings.EXTENSION_NAME }}</div>
<div class="tabs">
<ul>
<li data-tab="modifications" class="selected">{{ strings.MODIFICATIONS }}</a></li>
<li data-tab="transactions">{{ strings.TRANSACTIONS }}</li>
</ul>
</div>
<div class="tools">
<div class="status-stab"></div>
<div class="btn-group">
<button class="btn small btn-server-setup">{{ strings.SERVER_SETUP }}</button>
<button class="btn small btn-server-browse">Browse</button>
</div>
<div class="btn-group">
<button class="btn small btn-upload-all">{{ strings.UPLOAD_ALL }}</button>
<button class="btn small btn-skip-all">{{ strings.SKIP_ALL }}</button>
<button class="btn small btn-backup-all">{{ strings.BACKUP_ALL }}</button>
<button class="btn small btn-clear-all">{{ strings.CLEAR_ALL_TRANSACTIONS }}</button>
</div>
</div>
<a href="#" class="close">&times;</a>
</div>

<div class="table-container resizable-content">
<table class="table table-striped table-condensed row-highlight">
<tbody id="sftp-upload-tbody">
</tbody>
</table>
<div class="tabs-holder resizable-content">
<div class="table-container modifications selected">
<table class="table table-striped table-condensed row-highlight">
<tbody id="sftp-upload-tbody">
</tbody>
</table>
</div>

</div>
</div>
<div class="table-container resizable-content transactions">
<table class="table table-striped table-condensed row-highlight">
<tbody id="sftp-transactions-tbody">
</tbody>
</table>
</div>
</div>
</div>
7 changes: 7 additions & 0 deletions html/row-transaction.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<tr data-job-id="{{id}}" data-type="{{type}}">
<td class="type">{{ type }}</td>
<td class="localPath">{{ localPath }}</td>
<td width="20px" align="center">{{ signal }}</td>
<td class="fullRemotePath">{{ fullRemotePath }}</td>
<td class="status">{{ status }}</td>
</tr>
Binary file added images/.DS_Store
Binary file not shown.
Loading