Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
- <script src="upload/ace.js" type="text/javascript" charset="utf-8"></script>
- <title>Editor</title>
- <style type="text/css" media="screen">
- body {
- overflow: hidden;
- }
- #sidebar {
- margin: 0;
- font-family: arial;
- position: absolute;
- left: 0;
- right: 90%;
- top: 0;
- bottom: 0;
- background-color: #111;
- color: #DDD;
- }
- #sidebar input, #sidebar button{
- display: block;
- }
- #editorhead {
- margin: 0;
- padding: 0 10px;
- position: absolute;
- top: 0;
- height: 30px;
- line-height: 30px;
- left: 10%;
- right: 0;
- background-color: #222;
- font-family: arial;
- color: #FFF;
- }
- #sign-out {
- margin: 0;
- padding: 0 10px;
- position: absolute;
- top: 0;
- right: 0;
- }
- #editor {
- margin: 0;
- position: absolute;
- top: 30px;
- bottom: 0;
- left: 10%;
- right: 0;
- }
- </style>
- </head>
- <body>
- <?php
- if (isset($_SESSION["LoggedIn"]) && $_SESSION["LoggedIn"]) {
- ?>
- <div id="sidebar">
- <?php
- echo 'File dialog: <br>';
- $files = scandir(getcwd());
- echo '<form method="post" id="fileselector">';
- foreach( $files as $file ){
- if ($file == "index.php") continue;
- if(substr($file, 0, 1) == "." || substr($file, 0, 1) == ".." || is_dir(getcwd() . "/" . $file))
- {
- continue;
- }
- echo '<button type="submit" value="' . $file . '" name="filetoopen">';
- echo $file;
- echo '</button>';
- }
- echo '</form>';
- echo '</p>';
- echo 'File actions: <br>';
- echo '<input type="hidden" value="'.$default.'" id="currentfile">';
- echo '<button type="submit" id="file-save">Save</button><br>';
- echo '<button type="submit" id="file-saveas">Save As</button><br>';
- echo '<button type="submit" id="file-new">New</button><br>';
- echo '<button type="submit" id="file-delete">Delete</button><br>';
- echo 'Theme: ';
- echo "<select id='theme' size='1'>";
- echo "<option value='ambiance'>Ambiance Dark</option>";
- echo "<option value='chaos'>Chaos Dark</option>";
- echo "<option value='cobalt'>Cobalt Dark</option>";
- echo "<option value='kr_theme'>krTheme Dark</option>";
- echo "<option value='monokai' selected>Monokai Dark</option>";
- echo "<option value='merbivore'>Merbivore Dark</option>";
- echo "<option value='mono_industrial'>Mono Industrial Dark</option>";
- echo "<option value='terminal'>Terminal Dark</option>";
- echo "<option value='twilight'>Twilight Dark</option>";
- echo "<option value='vibrant_ink'>Vibrant Ink Dark</option>";
- echo "<option value='xcode'>XCode Bright</option>";
- echo "<option value='kuroir'>Kuroir Bright</option>";
- echo "<option value='eclipse'>Eclipse Bright</option>";
- echo "<option value='clouds'>Clouds Bright</option>";
- echo "<option value='dawn'>Dawn Bright</option>";
- echo "</select>";
- echo '<br>Font size: ';
- echo "<select id='fontsize' size='1'>";
- echo "<option value='8px'>8px</option>";
- echo "<option value='9px'>9px</option>";
- echo "<option value='10px'>10px</option>";
- echo "<option value='11px'>11px</option>";
- echo "<option value='12px' selected>12px</option>";
- echo "<option value='13px'>13px</option>";
- echo "<option value='14px'>14px</option>";
- echo "<option value='15px'>15px</option>";
- echo "<option value='16px'>16px</option>";
- echo "<option value='17px'>17px</option>";
- echo "<option value='18px'>18px</option>";
- echo "<option value='19px'>19px</option>";
- echo "<option value='20px'>20px</option>";
- echo "</select>";
- echo '<br>Split: ';
- echo "<select id='split' size='1'>";
- echo "<option value='none'>None</option>";
- echo "<option value='below'>Below</option>";
- echo "<option value='beside'>Beside</option>";
- echo "</select>";
- ?>
- </div>
- <div id="editorhead">
- <span id="filename">Loading...</span>
- <span id="codelanguage"></span>
- </div>
- <form method="post">
- <button type="submit" name="event" value="sign-out" id="sign-out">Sign out</button>
- </form>
- <pre id="editor" style="width: 90%">
- </pre>
- <script>
- var editor = ace.edit('editor');
- editor.setTheme('ace/theme/twilight');
- //editor.getSession().setMode('ace/mode/php');
- document.addEventListener("keydown", function(e) {
- if (e.keyCode == 115 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey )) {
- e.preventDefault();
- var filename = $('#currentfile').val();
- save(filename);
- }
- }, false);
- document.addEventListener("keydown", function(e) {
- if (e.keyCode == 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey ) && e.shiftKey) {
- e.preventDefault();
- var filename = prompt("Save file as:","name.format");
- if (filename != null){
- save(filename);
- }
- }
- }, false);
- document.addEventListener("keydown", function(e) {
- if (e.keyCode == 110 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey)) {
- e.preventDefault();
- var filename = prompt("Please enter the filename","name.format");
- if (filename != null){
- create(filename);
- }
- }
- }, false);
- editor.on('input', function() {
- currentValue = editor.getValue();
- if (savedValue != currentValue) {
- if ($('#filename').text().indexOf('*') == -1) {
- $('#filename').append('*');
- $('#filename').css('color', 'gold');
- }
- }
- else {
- filename = $('#filename').text().replace('*', '');
- $('#filename').text(filename)
- $('#filename').css('color', '#FFF');
- }
- });
- </script>
- <script>
- $(document).ready(function(){ //after the document loaded
- var defaultfile = $('#currentfile').val(); //load default file for edit
- open(defaultfile);
- $(document).on('change', '#theme', function(e){
- e.preventDefault();
- editor.setTheme('ace/theme/' + $(this).val());
- });
- $(document).on('change', '#fontsize', function(e){
- e.preventDefault();
- var filename = $(this).val();
- document.getElementById('editor').style.fontSize=filename;
- });
- /* Open file event */
- $(document).on('click', '#fileselector button', function(e){
- e.preventDefault(); //prevent the form submit, so the page won't reload
- var filename = $(this).val(); //reads the file name, from the button's value
- open(filename);
- });
- /* Save file event */
- $(document).on('click', '#file-save', function(e){
- e.preventDefault();
- var filename = $('#currentfile').val();
- save(filename);
- });
- /* Save As file events */
- $(document).on('click', '#file-saveas', function(e){
- e.preventDefault();
- var filename = prompt("Save file as:","name.format");
- if (filename != null){
- save(filename);
- }
- });
- /* New file event */
- $(document).on('click', '#file-new', function(e){
- var filename = prompt("Please enter the filename","name.format");
- if (filename != null){
- create(filename);
- }
- });
- /* Delete file event */
- $(document).on('click', '#file-delete', function(e){
- var remove = confirm("WARNING!\nYou will delete the current file!");
- if (remove){
- var filename = $('#currentfile').val();
- unlink(filename);
- }
- });
- /* Keycodes */
- /*$(window).keypress(function(e) {
- console.log("Pressed key: " + e.which);
- console.log("Shift: " + e.shiftKey);
- console.log("Control: " + e.ctrlKey);
- if (e.which == 115 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey )) { //CTRL+S event
- e.preventDefault();
- var filename = $('#currentfile').val();
- save(filename);
- }
- if (e.which == 83 && (navigator.platform.match("Mac") ? e.metaKey : e.ctrlKey ) && e.shiftKey) { //CTRL+SHIFT+S event
- e.preventDefault();
- var filename = prompt("Save file as:","name.format");
- if (filename != null){
- save(filename);
- }
- return false;
- }
- if (e.which == 110 && e.ctrlKey) { //CTRL+N event
- e.preventDefault();
- var filename = prompt("Please enter the filename","name.format");
- if (filename != null){
- create(filename);
- }
- }
- });*/
- });
- function open(filename) {
- $('#editor').css('opacity', 0.9);
- $('#filename').text('Loading...');
- $.post('ajax/file_getcontent.php', {filename: filename}, function(data){ //sends a post request to the file, and that will return it's own code in (to the 'data' variable)
- editor.setValue(data, -1); //sets the editors value, to the new one
- savedValue = data;
- var frags = filename.split(".");
- var format = frags[frags.length - 1];
- //C/C++
- var language = 'none';
- if (format == 'c' || format == 'cpp' || format == 'h') {
- editor.getSession().setMode('ace/mode/c_cpp');
- language = 'C or C++';
- }
- //HTML/PHP
- if (format == 'php' || format == 'html' || format == 'htm') {
- editor.getSession().setMode('ace/mode/php');
- language = 'PHP, HTML';
- }
- //JavaScript
- if (format == 'js') {
- editor.getSession().setMode('ace/mode/javascript');
- language = 'JavaScript';
- }
- if (language != 'none') {
- $('#codelanguage').text("("+language+")");
- }
- else {
- $('#codelanguage').text("(can't recognize)");
- editor.getSession().setUseWorker(false);
- }
- $('#filename').text(filename);
- $('#currentfile').val(filename);
- $('#editor').css('opacity', 1);
- });
- }
- function save(filename) {
- var filecontent = editor.getValue();
- $.post('ajax/file_save.php', {filename: filename, filecontent: filecontent}, function(data){
- editor.setValue(filecontent, 1); //sets the editors value, to the new one
- if (data) {
- $('#filesave').text('Saved!!!');
- savedValue = filecontent;
- setTimeout(function(){
- $('#filesave').text('Save');
- }, 2000);
- } else alert(data);
- });
- }
- function create(filename) {
- $.post('ajax/file_create.php', {filename: filename}, function(data){
- editor.setValue('');
- if (data) {
- $('#currentfile').val(filename);
- $('#filename').text(filename);
- $('#fileselector').append('<button type="submit" value="'+filename+'" name="filetoopen">'+filename+'</button>');
- } else alert(data);
- });
- }
- function unlink(filename) {
- $.post('ajax/file_unlink.php', {filename: filename}, function(data){
- editor.setValue('');
- if (data) {
- $('#currentfile').val(filename);
- $('#filename').text(filename);
- $('button[value="'+filename+'"]').remove();
- } else alert(data);
- });
- }
- </script>
- <?php
- }
- else {
- ?>
- <form method="post">
- <input type="password" name="password" placeholder="password">
- <button type="submit" name="event" value="sign-in">Sign In</button>
- </form>
- <?php
- }
- ?>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement