summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compiler/GFServer.hs17
-rw-r--r--src/www/gfse/editor.js14
2 files changed, 24 insertions, 7 deletions
diff --git a/src/compiler/GFServer.hs b/src/compiler/GFServer.hs
index a6e4c5a52..d84363cb2 100644
--- a/src/compiler/GFServer.hs
+++ b/src/compiler/GFServer.hs
@@ -12,7 +12,10 @@ import GF.System.Catch(try)
import System.IO.Error(isAlreadyExistsError)
import System.Directory(doesDirectoryExist,doesFileExist,createDirectory,
setCurrentDirectory,getCurrentDirectory,
- getDirectoryContents,removeFile,removeDirectory)
+ getDirectoryContents,removeFile,removeDirectory,
+ getModificationTime)
+import System.Time(toUTCTime,formatCalendarTime)
+import System.Locale(defaultTimeLocale,rfc822DateFormat)
import System.FilePath(dropExtension,takeExtension,takeFileName,takeDirectory,
(</>))
#ifndef mingw32_HOST_OS
@@ -200,6 +203,7 @@ handle state0 cache execute1
"remake" -> make skip_empty dir . raw =<< get_qs
"upload" -> upload id . raw =<< get_qs
"ls" -> jsonList . maybe ".json" fst . lookup "ext" =<< get_qs
+ "ls-l" -> jsonListLong . maybe ".json" fst . lookup "ext" =<< get_qs
"rm" -> rm =<< look_file
"download" -> download =<< look_file
"link_directories" -> link_directories dir =<< look "newdir"
@@ -233,7 +237,16 @@ handle state0 cache execute1
skip_empty = filter (not.null.snd)
- jsonList ext = fmap (json200) (ls_ext "." ext)
+ jsonList = jsonList' return
+ jsonListLong = jsonList' (mapM addTime)
+ jsonList' details ext = fmap (json200) (details =<< ls_ext "." ext)
+
+ addTime path =
+ do t <- liftIO $ getModificationTime path
+ return $ makeObj ["path".=path,"time".=format t]
+ where
+ format = formatCalendarTime defaultTimeLocale rfc822DateFormat
+ . toUTCTime
rm path | takeExtension path `elem` ok_to_delete =
do b <- liftIO $ doesFileExist path
diff --git a/src/www/gfse/editor.js b/src/www/gfse/editor.js
index 4fba8b44c..ed8988f79 100644
--- a/src/www/gfse/editor.js
+++ b/src/www/gfse/editor.js
@@ -131,7 +131,7 @@ function draw_grammar_list() {
var unique_id=local.get("unique_id","-")
var t=empty_class("table","grammar_list")
for(var i in files) {
- var file=files[i]
+ var file=files[i].path
var parts=file.split(/[-.]/)
var basename=parts[0]
var unique_name=parts[1]+"-"+parts[2]
@@ -139,13 +139,17 @@ function draw_grammar_list() {
var del = mine
? delete_button(rmpublic(file),"Don't publish this grammar")
: []
- var tit = mine
+ var tip = mine
? "This is a copy of your grammar"
: "Click to download a copy of this grammar"
+ var modt=new Date(files[i].time)
+ var fmtmodt=modt.toDateString()+", "+modt.toTimeString().split(" ")[0]
+ var when=wrap_class("small","modtime",text(" "+fmtmodt))
t.appendChild(edtr([td(del),
- td(title(tit,
+ td(title(tip,
a(jsurl('open_public("'+file+'")'),
- [text(basename)])))]))
+ [text(basename)]))),
+ td(when)]))
}
publiclist.appendChild(t)
}
@@ -153,7 +157,7 @@ function draw_grammar_list() {
publiclist.appendChild(p(text("No public grammars are available.")))
}
if(navigator.onLine)
- gfcloud_public_json("ls",{},show_public,no_public)
+ gfcloud_public_json("ls-l",{},show_public,no_public)
var home=div_class("home",table(tr([userlist,publiclist])))
home.appendChild(empty_id("div","sharing"));
editor.appendChild(home)