Commit a451c5f3 authored by chriseth's avatar chriseth Committed by GitHub

Merge pull request #375 from ethereum/config-file

Add config file API
parents fae021f4 a71c688d
...@@ -11,6 +11,7 @@ var GistHandler = require('./app/gist-handler') ...@@ -11,6 +11,7 @@ var GistHandler = require('./app/gist-handler')
var gistHandler = new GistHandler() var gistHandler = new GistHandler()
var Storage = require('./app/storage') var Storage = require('./app/storage')
var Config = require('./app/config')
var Editor = require('./app/editor') var Editor = require('./app/editor')
var Renderer = require('./app/renderer') var Renderer = require('./app/renderer')
var Compiler = require('./app/compiler') var Compiler = require('./app/compiler')
...@@ -40,6 +41,7 @@ var run = function () { ...@@ -40,6 +41,7 @@ var run = function () {
var self = this var self = this
this.event = new EventManager() this.event = new EventManager()
var storage = new Storage() var storage = new Storage()
var config = new Config(storage)
function loadFiles (files) { function loadFiles (files) {
for (var f in files) { for (var f in files) {
...@@ -368,6 +370,7 @@ var run = function () { ...@@ -368,6 +370,7 @@ var run = function () {
// ----------------- resizeable ui --------------- // ----------------- resizeable ui ---------------
var EDITOR_SIZE_KEY = 'editor-size-cache' var EDITOR_SIZE_KEY = 'editor-size-cache'
var EDITOR_WINDOW_SIZE = 'editorWindowSize'
var dragging = false var dragging = false
$('#dragbar').mousedown(function (e) { $('#dragbar').mousedown(function (e) {
...@@ -405,15 +408,23 @@ var run = function () { ...@@ -405,15 +408,23 @@ var run = function () {
$(document).unbind('mousemove') $(document).unbind('mousemove')
dragging = false dragging = false
setEditorSize(delta) setEditorSize(delta)
storage.set(EDITOR_SIZE_KEY, delta) config.set(EDITOR_WINDOW_SIZE, delta)
reAdjust() reAdjust()
} }
}) })
// convert old browser-solidity
if (storage.exists(EDITOR_SIZE_KEY)) { if (storage.exists(EDITOR_SIZE_KEY)) {
setEditorSize(storage.get(EDITOR_SIZE_KEY)) if (!config.exists(EDITOR_WINDOW_SIZE)) {
config.set(EDITOR_WINDOW_SIZE, storage.get(EDITOR_SIZE_KEY))
}
storage.remove(EDITOR_SIZE_KEY)
}
if (config.exists(EDITOR_WINDOW_SIZE)) {
setEditorSize(config.get(EDITOR_WINDOW_SIZE))
} else { } else {
storage.set(EDITOR_SIZE_KEY, getEditorSize()) config.set(EDITOR_WINDOW_SIZE, getEditorSize())
} }
// ----------------- toggle right hand panel ----------------- // ----------------- toggle right hand panel -----------------
...@@ -421,7 +432,7 @@ var run = function () { ...@@ -421,7 +432,7 @@ var run = function () {
var hidingRHP = false var hidingRHP = false
$('.toggleRHP').click(function () { $('.toggleRHP').click(function () {
hidingRHP = !hidingRHP hidingRHP = !hidingRHP
setEditorSize(hidingRHP ? 0 : storage.get(EDITOR_SIZE_KEY)) setEditorSize(hidingRHP ? 0 : config.get(EDITOR_WINDOW_SIZE))
$('.toggleRHP i').toggleClass('fa-angle-double-right', !hidingRHP) $('.toggleRHP i').toggleClass('fa-angle-double-right', !hidingRHP)
$('.toggleRHP i').toggleClass('fa-angle-double-left', hidingRHP) $('.toggleRHP i').toggleClass('fa-angle-double-left', hidingRHP)
}) })
......
'use strict'
var utils = require('./utils')
var CONFIG_FILE = utils.fileKey('.browser-solidity.json')
function Config (storage) {
this.items = {}
// load on instantiation
try {
var config = storage.get(CONFIG_FILE)
if (config) {
this.items = JSON.parse(config)
}
} catch (exception) {
}
this.exists = function (key) {
return this.items[key] !== undefined
}
this.get = function (key) {
return this.items[key]
}
this.set = function (key, content) {
this.items[key] = content
try {
storage.set(CONFIG_FILE, JSON.stringify(this.items))
} catch (exception) {
}
}
}
module.exports = Config
...@@ -95,7 +95,8 @@ function Editor (loadingFromGist, storage) { ...@@ -95,7 +95,8 @@ function Editor (loadingFromGist, storage) {
function getFiles () { function getFiles () {
var files = [] var files = []
storage.keys().forEach(function (f) { storage.keys().forEach(function (f) {
if (utils.isCachedFile(f)) { // NOTE: as a temporary measure do not show the config file in the editor
if (utils.isCachedFile(f) && (f !== (utils.fileKey('.browser-solidity.json')))) {
files.push(f) files.push(f)
if (!sessions[f]) sessions[f] = newEditorSession(f) if (!sessions[f]) sessions[f] = newEditorSession(f)
} }
......
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