Add persistence across sessions

master
Jordi Boggiano 11 years ago
parent 50b2bd3e38
commit 6818fed762
  1. 2
      README.mdown
  2. 3
      index.php
  3. 32
      php-console.js

@ -33,6 +33,8 @@ Jordi Boggiano - <j.boggiano@seld.be><br />
Changelog
---------
- 1.3.0
- Added code persistence across sessions in localStorage + a reset button
- 1.2.3
- Fixed syntax highlighting
- Fixed some styling issues

@ -23,7 +23,7 @@ if (!in_array($_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1'), true)) {
die('ERR/401 Go Away');
}
define('PHP_CONSOLE_VERSION', '1.3.0-dev');
define('PHP_CONSOLE_VERSION', '1.3.0');
require 'krumo/class.krumo.php';
ini_set('log_errors', 0);
@ -112,6 +112,7 @@ if (isset($_POST['code'])) {
/>
</object>
</span>
<a href="" class="reset">Reset</a>
</div>
</div>
<input type="submit" name="subm" value="Try this!" />

@ -1,3 +1,5 @@
/*jslint browser: true */
/*global ace, jQuery */
/**
* PHP Console
*
@ -14,7 +16,7 @@
(function (require, $, ace) {
"use strict";
var updateStatusBar, prepareClippyButton, refreshKrumoState, handleSubmit, initializeAce,
var updateStatusBar, prepareClippyButton, refreshKrumoState, handleSubmit, initializeAce, handleAjaxError,
options, editor;
options = {
tabsize: 4,
@ -66,6 +68,12 @@
e.preventDefault();
$('div.output').html('<img src="loader.gif" class="loader" alt="" /> Loading ...');
// store session
if (window.localStorage) {
localStorage.setItem('phpCode', editor.getSession().getValue());
}
// eval server-side
$.post('?js=1', { code: editor.getSession().getValue() }, function (res) {
if (res.match(/#end-php-console-output#$/)) {
$('div.output').html(res.substring(0, res.length - 24));
@ -82,9 +90,18 @@
};
initializeAce = function () {
var PhpMode, code;
var PhpMode, code, storedCode;
code = $('#' + options.editor).text();
// reload last session
if (window.localStorage && code.match(/(<\?php)?\s*/)) {
storedCode = localStorage.getItem('phpCode');
if (storedCode) {
code = storedCode;
}
}
$('#' + options.editor).replaceWith('<div id="' + options.editor + '" class="' + options.editor + '"></div>');
$('#' + options.editor).text(code);
@ -107,6 +124,17 @@
editor.getSession().selection.on('changeSelection', prepareClippyButton);
}
// reset button
if (window.localStorage) {
$('.statusbar .reset').on('click', function (e) {
editor.getSession().setValue('<?php\n\n');
editor.focus();
editor.gotoLine(3, 0);
window.localStorage.setItem('phpCode', '');
e.preventDefault();
});
}
// commands
editor.commands.addCommand({
name: 'submitForm',

Loading…
Cancel
Save