Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/app.py36
-rw-r--r--app/static/doc/sugar-theme.html2
-rw-r--r--app/templates/editor.html45
-rw-r--r--app/templates/filer.html19
-rw-r--r--app/templates/help.html8
-rw-r--r--app/templates/skel.html21
6 files changed, 71 insertions, 60 deletions
diff --git a/app/app.py b/app/app.py
index 73c86e9..d76129b 100644
--- a/app/app.py
+++ b/app/app.py
@@ -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+"&amp;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>&nbsp;/${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>