Skip to content

Commit 22a8fe9

Browse files
committed
Added a check if Scripts folder is not found.
Added _en property files. git-svn-id: https://share-extras.googlecode.com/svn/trunk/Javascript Console@1303 a3f5c567-fd0f-3a89-9b71-a290c5a5f590
1 parent c8386f8 commit 22a8fe9

File tree

10 files changed

+141
-56
lines changed

10 files changed

+141
-56
lines changed

javascript-console-dist/build.xml

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,30 @@
11
<project basedir="." default="dist" name="Javascript Console Distribution">
22

3-
<property name="jsconsole-version" value="0.5"/>
3+
<property name="jsconsole-version" value="0.5.1"/>
44

5+
<!-- MAKE AMPS -->
6+
<macrodef name="pack-amp">
7+
<attribute name="targetversion"/>
8+
<attribute name="project"/>
9+
<sequential>
10+
<delete dir="tmp" />
11+
<mkdir dir="tmp"/>
12+
<copy todir="tmp/lib">
13+
<fileset dir="dist/@{targetversion}">
14+
<include name="javascript-console-@{project}-${jsconsole-version}.jar"/>
15+
</fileset>
16+
</copy>
17+
<copy todir="tmp">
18+
<fileset dir="../javascript-console-@{project}">
19+
<include name="module.properties"/>
20+
</fileset>
21+
</copy>
22+
<zip destfile="dist/@{targetversion}/javascript-console-@{project}-${jsconsole-version}.amp">
23+
<fileset dir="tmp"/>
24+
</zip>
25+
</sequential>
26+
</macrodef>
27+
528
<!-- Clean out the build and distribution directories -->
629
<target name="clean" description="Clean out all build directories">
730
<delete dir="dist" />
@@ -28,19 +51,6 @@
2851
</fileset>
2952
</copy>
3053

31-
<ant antfile="../javascript-console-repo/project.xml" target="dist-amp" useNativeBasedir="true"/>
32-
<ant antfile="../javascript-console-share/project.xml" target="dist-amp" useNativeBasedir="true"/>
33-
34-
<copy todir="dist/4.0.x">
35-
<fileset dir="../javascript-console-repo/build/dist">
36-
<include name="*.amp"/>
37-
</fileset>
38-
<fileset dir="../javascript-console-share/build/dist">
39-
<include name="*.amp"/>
40-
</fileset>
41-
</copy>
42-
43-
4454
<copy todir="dist/3.4.x">
4555
<fileset dir="dist/4.0.x">
4656
<include name="javascript-console-repo*.jar"/>
@@ -67,14 +77,20 @@
6777
<fileset dir="tmp"/>
6878
</zip>
6979

80+
<pack-amp targetversion="4.0.x" project="repo"/>
81+
<pack-amp targetversion="4.0.x" project="share"/>
82+
<pack-amp targetversion="3.4.x" project="repo"/>
83+
<pack-amp targetversion="3.4.x" project="share"/>
84+
85+
<!-- create final distri zip -->
7086
<copy todir="dist">
7187
<fileset dir="docs"/>
7288
</copy>
7389

7490
<zip destfile="dist/javascript-console-${jsconsole-version}.zip">
7591
<fileset dir="dist"/>
7692
</zip>
77-
93+
7894
</target>
7995

8096
</project>
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
jar.name=javascript-console-repo-0.5.jar
2-
amp.name=javascript-console-repo-0.5.amp
3-
src.zip.name=javascript-console-repo-src-0.5.zip
1+
jar.name=javascript-console-repo-0.5.1.jar
2+
amp.name=javascript-console-repo-0.5.1.amp
3+
src.zip.name=javascript-console-repo-src-0.5.1.zip
44
build.res.dir.name=alfresco
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11

2-
var scriptFolder = search.luceneSearch('PATH:"/app:company_home/app:dictionary/app:scripts"')[0];
3-
4-
var scriptNode = scriptFolder.createFile(args.name);
5-
6-
scriptNode.content = requestbody.content;
7-
2+
var scriptFolder = search.xpathSearch("/app:company_home/app:dictionary/app:scripts")[0];
3+
if (scriptFolder) {
4+
var scriptNode = scriptFolder.createFile(args.name);
5+
scriptNode.content = requestbody.content;
6+
}

javascript-console-repo/config/alfresco/extension/templates/webscripts/de/fme/jsconsole/listscripts.get.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,10 @@ function findScripts(folder) {
2424
return scriptlist;
2525
}
2626

27-
var scriptFolder = search.luceneSearch('PATH:"/app:company_home/app:dictionary/app:scripts"')[0];
28-
model.scripts = jsonUtils.toJSONString(findScripts(scriptFolder));
27+
var scriptFolder = search.xpathSearch("/app:company_home/app:dictionary/app:scripts")[0];
28+
if (scriptFolder) {
29+
model.scripts = jsonUtils.toJSONString(findScripts(scriptFolder));
30+
}
31+
else {
32+
model.scripts = "[]";
33+
}

javascript-console-repo/source/java/de/fme/jsconsole/ExecuteWebscript.java

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -119,30 +119,40 @@ private JavascriptConsoleResult runScriptWithTransactionAndAuthentication(final
119119
final WebScriptResponse response, final JavascriptConsoleRequest jsreq, final ScriptContent scriptContent) {
120120

121121
log.debug("running script as user " + jsreq.runas);
122-
return AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<JavascriptConsoleResult>() {
123-
public JavascriptConsoleResult doWork() {
124-
125-
if (jsreq.useTransaction) {
126-
log.debug("Using transction to execute script: " + (jsreq.transactionReadOnly ? "readonly" : "readwrite"));
127-
return transactionService.getRetryingTransactionHelper().doInTransaction(
128-
new RetryingTransactionCallback<JavascriptConsoleResult>() {
129-
public JavascriptConsoleResult execute() throws Exception {
130-
return executeScriptContent(request, response, scriptContent, jsreq.template, jsreq.spaceNodeRef,
131-
jsreq.urlargs, jsreq.documentNodeRef);
132-
}
133-
}, jsreq.transactionReadOnly);
134-
} else {
135-
try {
136-
log.debug("Executing script script without transaction.");
137-
return executeScriptContent(request, response, scriptContent, jsreq.template, jsreq.spaceNodeRef,
138-
jsreq.urlargs, jsreq.documentNodeRef);
139-
} catch (IOException e) {
140-
throw new RuntimeException(e);
141-
}
122+
123+
if (StringUtils.isNotBlank(jsreq.runas)) {
124+
return AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<JavascriptConsoleResult>() {
125+
public JavascriptConsoleResult doWork() {
126+
return runWithTransactionIfNeeded(request, response, jsreq, scriptContent);
142127
}
143-
}
144-
}, jsreq.runas);
128+
}, jsreq.runas);
129+
}
130+
else {
131+
return runWithTransactionIfNeeded(request, response, jsreq, scriptContent);
132+
}
145133
}
134+
135+
private JavascriptConsoleResult runWithTransactionIfNeeded(final WebScriptRequest request, final WebScriptResponse response,
136+
final JavascriptConsoleRequest jsreq, final ScriptContent scriptContent) {
137+
if (jsreq.useTransaction) {
138+
log.debug("Using transction to execute script: " + (jsreq.transactionReadOnly ? "readonly" : "readwrite"));
139+
return transactionService.getRetryingTransactionHelper().doInTransaction(
140+
new RetryingTransactionCallback<JavascriptConsoleResult>() {
141+
public JavascriptConsoleResult execute() throws Exception {
142+
return executeScriptContent(request, response, scriptContent, jsreq.template, jsreq.spaceNodeRef,
143+
jsreq.urlargs, jsreq.documentNodeRef);
144+
}
145+
}, jsreq.transactionReadOnly);
146+
} else {
147+
try {
148+
log.debug("Executing script script without transaction.");
149+
return executeScriptContent(request, response, scriptContent, jsreq.template, jsreq.spaceNodeRef,
150+
jsreq.urlargs, jsreq.documentNodeRef);
151+
} catch (IOException e) {
152+
throw new RuntimeException(e);
153+
}
154+
}
155+
}
146156

147157
/*
148158
* (non-Javadoc)

javascript-console-repo/source/java/de/fme/jsconsole/JavascriptConsoleRequest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,14 @@ public static JavascriptConsoleRequest readJson(WebScriptRequest request) {
8080
String template = jsonInput.getString("template");
8181
String spaceNodeRef = jsonInput.getString("spaceNodeRef");
8282
String transaction = jsonInput.getString("transaction");
83-
String runas = jsonInput.getString("runas");
8483
String urlargs = jsonInput.getString("urlargs");
8584
String documentNodeRef = jsonInput.getString("documentNodeRef");
8685

86+
String runas = jsonInput.getString("runas");
87+
if (runas == null) {
88+
runas = "";
89+
}
90+
8791
return new JavascriptConsoleRequest(script, template, spaceNodeRef, transaction, runas, urlargs, documentNodeRef);
8892

8993
} catch (JSONException e) {
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
jar.name=javascript-console-share-0.5.jar
2-
amp.name=javascript-console-share-0.5.amp
3-
src.zip.name=javascript-console-share-src-0.5.zip
1+
jar.name=javascript-console-share-0.5.1.jar
2+
amp.name=javascript-console-share-0.5.1.amp
3+
src.zip.name=javascript-console-share-src-0.5.1.zip
44
build.res.dir.name=share
55

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
tool.javascript-console.label=Javascript Console
2+
tool.javascript-console.description=Create and execute adminstrative javascript files
3+
4+
fme.action.open.in.jsconsole=Use in Javascript Console
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Console Main Panel
2+
label.title-search=Javascript Console
3+
label.title-view=Javascript Console
4+
label.execute.key=or Ctrl+Enter
5+
label.run.with=run with
6+
label.output=Output:
7+
label.input=Input:
8+
label.stats.executed.in=executed in
9+
10+
tab.label.javascript.input=Javascript input
11+
tab.label.freemarker.input=Freemarker input
12+
tab.label.script.execution.parameters=Script execution parameters
13+
tab.label.console.output=Console output
14+
tab.label.freemarker.html.output=Freemarker HTML output
15+
tab.label.freemarker.text.output=Freemarker text output
16+
tab.label.datatable.output=Datatable output
17+
18+
19+
button.select=Select ...
20+
button.execute=Execute
21+
button.load.script=Load Script
22+
button.save.script=Save Script
23+
button.save.create.new=Save as new script ...
24+
button.load.create.new=Default Demo Script
25+
button.docs=Docs
26+
button.export.results=Export as CSV
27+
28+
title.confirm.save=Confirm Save
29+
message.confirm.save=Are you sure you want to overwrite script '{0}'?
30+
message.save.successful=Script '{0}' has been saved successfully!
31+
button.save=Save
32+
button.cancel=Cancel
33+
34+
title.save.choose.filename=Save script as...
35+
message.save.choose.filename=Please enter the name for the new script file:
36+
37+
error.script.load=Error loading script '{0}'.
38+
error.script.save=Error saving script '{0}'.
39+
40+
# Select folder dialog
41+
title.destinationDialog=Select Folder
42+
43+
44+
tooltip.urlargs=Enter the url arguments for the webscript using the query string format:<br><b>a=123&b=test</b> will result in variables <b>args.a</b> filled with the value 123<br>and <b>args.b</b> filled with the value 'test'.
45+
tooltip.runas=Enter the username the script will be run as. By default the script <br>will be run as <b>admin</b> but any exiting alfresco user<br>can be used.

javascript-console-share/source/web/fme/components/jsconsole/javascript-console.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,12 @@ if (typeof Fme == "undefined" || !Fme)
117117

118118
browserSupportsHtml5Storage: function ACJC_browserSupportsHtml5Storage() {
119119
try {
120-
return 'localStorage' in window && window['localStorage'] !== null;
121-
} catch (e) {
122-
return false;
123-
}
120+
localStorage.setItem(mod, mod);
121+
localStorage.removeItem(mod);
122+
return true;
123+
} catch(e) {
124+
return false;
125+
}
124126
},
125127

126128
createMenuButtons: function ACJC_createMenuButtons(listOfScripts) {

0 commit comments

Comments
 (0)