diff options
-rw-r--r-- | app/app.py | 36 | ||||
-rw-r--r-- | app/static/doc/sugar-theme.html | 2 | ||||
-rw-r--r-- | app/templates/editor.html | 45 | ||||
-rw-r--r-- | app/templates/filer.html | 19 | ||||
-rw-r--r-- | app/templates/help.html | 8 | ||||
-rw-r--r-- | app/templates/skel.html | 21 |
6 files changed, 71 insertions, 60 deletions
@@ -57,20 +57,30 @@ def index(): @app.route('/edit/') @app.route('/edit/<path:filename>') -def edit(filename): - try: - if len(session['edit_history'])==6: - session['edit_history'].pop(0) - if not filename in session['edit_history']: - session['edit_history'].append(filename) - except KeyError: - session['edit_history']=[filename,] +def edit(filename=None): session.modified = True - icon, mode, href = identify(filename) - content = open(filename).read().decode('utf-8') + if filename: + try: + if len(session['edit_history'])==6: + session['edit_history'].pop(0) + if not filename in session['edit_history']: + session['edit_history'].append(filename) + except KeyError: + session['edit_history']=[filename,] + icon, mode, href = identify(filename) + content = open(filename).read().decode('utf-8') + directory=os.path.dirname(filename) + basename=os.path.basename(filename) + else: + # New file + icon="document-generic.png" + mode="" + href="" + content="" + directory=session['pwd'] + basename="///" tmpl = 'editor.html' - directory=os.path.dirname(filename) - return render_response(tmpl, dict(content=content, icon=icon,basename=os.path.basename(filename), + return render_response(tmpl, dict(content=content, icon=icon,basename=basename, filename=filename, absdir=os.path.normpath(directory), mode=mode, directory=directory)) @app.route('/save', methods=['POST']) @@ -97,7 +107,7 @@ def chdir(): session['pwd']=session['project_home_dir']="." os.chdir(session['project_dir']) session['project_home']='/help' - #session['edit_history']=[] + session['edit_history']=[] if os.path.isdir('app'): session['pwd']=session['project_home_dir']='app' #session['project_home']='/edit/app/app.py' diff --git a/app/static/doc/sugar-theme.html b/app/static/doc/sugar-theme.html index 032eb76..5b3820d 100644 --- a/app/static/doc/sugar-theme.html +++ b/app/static/doc/sugar-theme.html @@ -73,7 +73,7 @@ </style> </head> <body> - <h1>Web Widgets Showcase</h1> + <h1>Widget Showcase</h1> <p style="line-height: 1.5; margin: 1em 0; width: 50%;"> View the <a target="frame1" href="/edit/app/static/doc/sugar-theme.html">source</a> of this document to understand how these widgets are constructed. diff --git a/app/templates/editor.html b/app/templates/editor.html index 73fbcf8..6ac5d83 100644 --- a/app/templates/editor.html +++ b/app/templates/editor.html @@ -9,10 +9,8 @@ <link rel="stylesheet" href="/static/css/sugar-theme/jquery-ui-1.8.16.sugar.css" /> <script src="/static/js/jquery-1.6.2.js" type="text/javascript"></script> <script src="/static/js/jquery-ui-1.8.16.sugar.min.js" type="text/javascript"></script> + <script src="/static/js/jquery.corner.js" type="text/javascript"></script> <script src="/static/js/websdk-1.js" type="text/javascript"></script> -<!-- <script src="js/jquery-plugins/json.js" type="text/javascript"></script> - <script src="js/jquery-plugins/jquery.hotkeys-0.7.8.js" type="text/javascript"></script> - <script src="js/jquery-plugins/jquery.intercept.js" type="text/javascript"></script> --> </head> <body> <script src="/static/js/ace/ace-uncompressed.js" type="text/javascript" charset="utf-8"></script> @@ -20,23 +18,27 @@ <script py:if="mode" src="/static/js/ace/mode-${mode}.js" type="text/javascript" charset="utf-8"></script> <pre id="editor">$content</pre> <div id="editor-sidebar" class="bling"> +<form id="saveform" action="/save" method="post"> <div class="file"> <img src="/static/icons/${icon}" /><br/> ${absdir}/<br/> - <strong>${basename}</strong><br/> + <strong py:if="basename!='///'">${basename}</strong> + <input py:if="basename=='///'" style="width:90%" type="text" name="basename" id="basename"/> + <br/> </div> +<span id="result" style="color:red"></span> +<br/> <hr /><br/> -<div id="result" style="color:red"></div> -<form id="saveform" action="/save" method="post"> <input type="hidden" name="filename" id="filename" value="$filename" /> <input type="hidden" name="directory" id="directory" value="$directory" /> <input type="hidden" name="content" id="content" value="ñññ" /> <!--input type="button" class="btn" value="Browse" onclick='location.href="/files/$directory"' /--> <input type="submit" value="Save file" /><br/> -<input type="button" class="btn" value="Delete file" onclick='location.href="/delete/${filename}"' /> +<input py:if="basename!='///'" type="button" value="Delete file" onclick='location.href="/delete/${filename}"' /> <!-- save a magic cookie for security here TODO --> -<input type="button" class="btn" value="Return" onclick='location.href="/help"' /> +<input type="button" value="Return" onclick='location.href="/help"' /> <!--input type="button" class="btn" value="edit wysiwyg" onclick='top.location.href=top.location.href+"&editor=wysiwyg"' /--> + </form> </div> <script> @@ -45,25 +47,42 @@ /* stop form from submitting normally */ event.preventDefault(); - + + var newfile=false; /* get some values from elements on the page: */ var form = $( this ), cont = form.find( 'input[name="content"]' ).val(), - file = form.find( 'input[name="filename"]' ).val(), dir = form.find( 'input[name="directory"]' ).val(), url = form.attr( 'action' ); + if ("${basename}"=="///") { // New file + if (form.find('input[name="basename"]').val()=="") { + $( "#result" ).empty().append( "name your file" ); + $( "#result" ).show().fadeOut(15000); + return false; + }else{ + var file = dir + "/" + form.find('input[name="basename"]').val(); + $('filename').val(file); + newfile = true; + } + } else { + var file = form.find( 'input[name="filename"]' ).val(); + } - /* Send the data using post and put the results in a div */ + /* Send the data using post and put the results to #result */ $.post( url, { content: cont, filename: file, directory: dir }, function( data ) { - // var content = $( data ).find( '#content' ); $( "#result" ).empty().append( data ); - $( "#result" ).show().fadeOut(5000); + $( "#result" ).show().fadeOut(15000); } ); + if (newfile) { + parent.frame2.location.reload(); + } }); document.ready = function() { + $('#basename').corner(); + var aceEditor = ace.edit("editor"); aceEditor.setTheme("ace/theme/twilight"); document.getElementById('editor').style.fontSize='16px'; diff --git a/app/templates/filer.html b/app/templates/filer.html index 02dc734..2aefc5b 100644 --- a/app/templates/filer.html +++ b/app/templates/filer.html @@ -25,15 +25,18 @@ </style> </head> <body> - <div style="position:absolute; height:24px; z-index: -1" class="filer-header"> + <div style="position:absolute; height:24px; z-index: -1;width:${width}px;" class="filer-header"> </div> - <div style="height:24px;width:${width}px;" class="filer-header"> - <ul id="icons" style="float:left" class="ui-widget ui-helper-clearfix"> - <li onclick="location='/fileshome/'" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-home"></span></li> + <div style="height:24px;" class="filer-header"> + <ul py:if="files != []" id="icons" style="float:left;padding-left:7px;" class="ui-widget ui-helper-clearfix"> + <li onclick="location='/fileshome/'" class="ui-state-default ui-corner-all" title="Project Home"><span class="ui-icon ui-icon-home"></span></li> + <li class="ui-state-default ui-corner-all" title="New Directory"><span class="ui-icon ui-icon-folder-open"></span></li> + <li onclick="parent.frame1.location='/edit/'" class="ui-state-default ui-corner-all" title="New File"><span class="ui-icon ui-icon-document"></span></li> </ul> - <div style="margin-left:15px;padding-top:7px;"> - <span style="color:gray">[${project_name}]</span> /${absdir} - </div> + <div style="padding-top:7px;width:100%;"> + <span style="padding-left:10px;color:gray;">[${project_name}]</span> + /${absdir} + </div> <!-- ul id="icons" class="ui-widget ui-helper-clearfix"> <li class="ui-state-default ui-corner-all" title=".ui-icon-home"><span class="ui-icon ui-icon-home"></span></li> </ul--> @@ -54,7 +57,7 @@ <br/>${file.name} </a> </li> -</ul> + </ul> </div> <script> jQuery.fn.center = function () { diff --git a/app/templates/help.html b/app/templates/help.html index bdd0e2b..757cbf3 100644 --- a/app/templates/help.html +++ b/app/templates/help.html @@ -15,7 +15,7 @@ ${get_flashed_messages()} <div style="margin:0;padding-left:20px;padding-right:20px;margin-top:10px" id="content" class="bling"> <section> - <div id="tabs" style="height:280px"> + <div id="tabs"> <ul> <li py:if="project_name != 'None'"><a href="#tabs-0">${project_name} Activity</a></li> <li><a href="#tabs-1">Projects</a></li> @@ -63,13 +63,13 @@ ${get_flashed_messages()} </div> </div> <div id="tabs-2"> - <iframe width="100%" height="280" src="/static/doc/flask-docs/quickstart.html#quickstart" /> + <iframe width="100%" height="80%" src="/static/doc/flask-docs/quickstart.html#quickstart" /> </div> <div id="tabs-3"> - <iframe width="100%" height="280" src="/static/doc/sugar-theme.html" /> + <iframe width="100%" height="80%" src="/static/doc/sugar-theme.html" /> </div> <div id="tabs-4"> - <iframe width="100%" height="280" src="/static/doc/myosa/ch000_table_of_contents.xhtml" /> + <iframe width="100%" height="80%" src="/static/doc/myosa/ch000_table_of_contents.xhtml" /> </div> </div> </section> diff --git a/app/templates/skel.html b/app/templates/skel.html deleted file mode 100644 index 447ae4b..0000000 --- a/app/templates/skel.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE HTML> -<html lang="en-US"> -<head> - <meta charset="UTF-8" /> - <title></title> - <link rel="stylesheet" href="/static/css/main.css" type="text/css" /> - <link rel="stylesheet" href="/static/css/sugar-theme/jquery-ui-1.8.15.custom.css" /> - <script src="/static/js/jquery-1.6.2.js" type="text/javascript"></script> - <script src="/static/js/jquery-ui-1.8.15.custom.min.js" type="text/javascript"></script> - <script src="/static/js/websdk-1.js" type="text/javascript"></script> -</head> -<body> - <div id="content" class="bling"> - </div> - <script> - window.onload = function() { - $('#content').fadeIn(700); - } - </script> -</body> -</html> |