Unverified Commit c485283f authored by yann300's avatar yann300 Committed by GitHub

Merge pull request #2703 from ethereum/publishG

Publish to Gist
parents 3ec73779 bbb29e8f
...@@ -488,7 +488,7 @@ fileExplorer.prototype.toGist = function (id) { ...@@ -488,7 +488,7 @@ fileExplorer.prototype.toGist = function (id) {
this.packageFiles(this.files, folder, (error, packaged) => { this.packageFiles(this.files, folder, (error, packaged) => {
if (error) { if (error) {
console.log(error) console.log(error)
modalDialogCustom.alert('Failed to create gist: ' + error) modalDialogCustom.alert('Failed to create gist: ' + error.message)
} else { } else {
// check for token // check for token
var tokenAccess = this._deps.config.get('settings/gist-access-token') var tokenAccess = this._deps.config.get('settings/gist-access-token')
...@@ -550,19 +550,23 @@ fileExplorer.prototype.toGist = function (id) { ...@@ -550,19 +550,23 @@ fileExplorer.prototype.toGist = function (id) {
// return all the files, except the temporary/readonly ones.. // return all the files, except the temporary/readonly ones..
fileExplorer.prototype.packageFiles = function (filesProvider, directory, callback) { fileExplorer.prototype.packageFiles = function (filesProvider, directory, callback) {
var ret = {} let ret = {}
filesProvider.resolveDirectory(directory, (error, files) => { filesProvider.resolveDirectory(directory, (error, files) => {
if (error) callback(error) if (error) callback(error)
else { else {
async.eachSeries(Object.keys(files), (path, cb) => { async.eachSeries(Object.keys(files), (path, cb) => {
filesProvider.get(path, (error, content) => { if (filesProvider.isDirectory(path)) {
if (error) return cb(error)
if (/^\s+$/.test(content) || !content.length) {
content = '// this line is added to create a gist. Empty file is not allowed.'
}
ret[path] = { content }
cb() cb()
}) } else {
filesProvider.get(path, (error, content) => {
if (error) return cb(error)
if (/^\s+$/.test(content) || !content.length) {
content = '// this line is added to create a gist. Empty file is not allowed.'
}
ret[path] = { content }
cb()
})
}
}, (error) => { }, (error) => {
callback(error, ret) callback(error, ret)
}) })
...@@ -617,12 +621,17 @@ fileExplorer.prototype.renderMenuItems = function () { ...@@ -617,12 +621,17 @@ fileExplorer.prototype.renderMenuItems = function () {
items = this.menuItems.map(({action, title, icon}) => { items = this.menuItems.map(({action, title, icon}) => {
if (action === 'uploadFile') { if (action === 'uploadFile') {
return yo` return yo`
<label id=${action} class="${icon} ${css.newFile}" title="${title}"> <span
id=${action}
data-id="fileExplorerUploadFile${action}"
class="${icon} ${css.newFile}"
title="${title}"
>
<input type="file" onchange=${(event) => { <input type="file" onchange=${(event) => {
event.stopPropagation() event.stopPropagation()
this.uploadFile(event) this.uploadFile(event)
}} multiple /> }} multiple />
</label> </span>
` `
} else { } else {
return yo` return yo`
......
...@@ -133,6 +133,10 @@ class FileProvider { ...@@ -133,6 +133,10 @@ class FileProvider {
return false return false
} }
isDirectory (path) {
return window.remixFileSystem.statSync(path).isDirectory()
}
/** /**
* Removes the folder recursively * Removes the folder recursively
* @param {*} path is the folder to be removed * @param {*} path is the folder to be removed
......
...@@ -69,11 +69,11 @@ module.exports = class SettingsTab extends ViewPlugin { ...@@ -69,11 +69,11 @@ module.exports = class SettingsTab extends ViewPlugin {
// Gist settings // Gist settings
const token = this.config.get('settings/gist-access-token') const token = this.config.get('settings/gist-access-token')
const gistAccessToken = yo`<input id="gistaccesstoken" data-id="settingsTabGistAccessToken" type="password" class="border form-control mb-2 ${css.inline}" placeholder="Token">` const gistAccessToken = yo`<input id="gistaccesstoken" data-id="settingsTabGistAccessToken" type="password" class="border form-control-sm mb-2 ${css.inline}" placeholder="Token">`
if (token) gistAccessToken.value = token if (token) gistAccessToken.value = token
const removeToken = () => { self.config.set('settings/gist-access-token', ''); gistAccessToken.value = ''; tooltip('Access token removed') } const removeToken = () => { self.config.set('settings/gist-access-token', ''); gistAccessToken.value = ''; tooltip('Access token removed') }
const saveToken = () => { this.config.set('settings/gist-access-token', gistAccessToken.value); tooltip('Access token saved') } const saveToken = () => { this.config.set('settings/gist-access-token', gistAccessToken.value); tooltip('Access token saved') }
const gistAddToken = yo`<input class="btn btn-secondary mx-1" id="savegisttoken" data-id="settingsTabSaveGistToken" onclick=${() => saveToken()} value="Save" type="button">` const gistAddToken = yo`<input class="btn btn-sm btn-primary" id="savegisttoken" data-id="settingsTabSaveGistToken" onclick=${() => saveToken()} value="Save" type="button">`
const gistRemoveToken = yo`<i class="mx-1 fas fa-trash-alt" id="removegisttoken" data-id="settingsTabRemoveGistToken" title="Delete Github access token" onclick=${() => removeToken()}" type="button"></i>` const gistRemoveToken = yo`<i class="mx-1 fas fa-trash-alt" id="removegisttoken" data-id="settingsTabRemoveGistToken" title="Delete Github access token" onclick=${() => removeToken()}" type="button"></i>`
this._view.gistToken = yo`<div class="text-secondary mb-0 h6">${gistAccessToken}${gistAddToken}${copyToClipboard(() => gistAccessToken.value)}${gistRemoveToken}</div>` this._view.gistToken = yo`<div class="text-secondary mb-0 h6">${gistAccessToken}${gistAddToken}${copyToClipboard(() => gistAccessToken.value)}${gistRemoveToken}</div>`
this._view.optionVM = yo`<input onchange=${onchangeOption} class="align-middle form-check-input" id="alwaysUseVM" data-id="settingsTabAlwaysUseVM" type="checkbox">` this._view.optionVM = yo`<input onchange=${onchangeOption} class="align-middle form-check-input" id="alwaysUseVM" data-id="settingsTabAlwaysUseVM" type="checkbox">`
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment