Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
solo
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
solo
Commits
2f91496c
Commit
2f91496c
authored
Jan 24, 2013
by
mainlove
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
plugin的通用設置功能 需要找個在線編輯json的插件
parent
e177a9de
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
150 additions
and
25 deletions
+150
-25
core/src/main/java/org/b3log/solo/processor/console/PluginConsole.java
.../java/org/b3log/solo/processor/console/PluginConsole.java
+34
-6
core/src/main/java/org/b3log/solo/repository/PluginRepository.java
...main/java/org/b3log/solo/repository/PluginRepository.java
+1
-1
core/src/main/java/org/b3log/solo/repository/impl/PluginRepositoryImpl.java
.../org/b3log/solo/repository/impl/PluginRepositoryImpl.java
+2
-0
core/src/main/java/org/b3log/solo/service/PluginMgmtService.java
...c/main/java/org/b3log/solo/service/PluginMgmtService.java
+55
-0
core/src/main/java/org/b3log/solo/service/PluginQueryService.java
.../main/java/org/b3log/solo/service/PluginQueryService.java
+20
-14
war/src/main/webapp/CHANGE_LOGS.html
war/src/main/webapp/CHANGE_LOGS.html
+1
-0
war/src/main/webapp/admin-plugin-setting.ftl
war/src/main/webapp/admin-plugin-setting.ftl
+36
-1
war/src/main/webapp/js/admin/pluginList.js
war/src/main/webapp/js/admin/pluginList.js
+1
-3
No files found.
core/src/main/java/org/b3log/solo/processor/console/PluginConsole.java
View file @
2f91496c
...
@@ -26,7 +26,6 @@ import javax.servlet.http.HttpServletResponse;
...
@@ -26,7 +26,6 @@ import javax.servlet.http.HttpServletResponse;
import
org.b3log.latke.Keys
;
import
org.b3log.latke.Keys
;
import
org.b3log.latke.Latkes
;
import
org.b3log.latke.Latkes
;
import
org.b3log.latke.model.Plugin
;
import
org.b3log.latke.model.Plugin
;
import
org.b3log.latke.plugin.AbstractPlugin
;
import
org.b3log.latke.service.LangPropsService
;
import
org.b3log.latke.service.LangPropsService
;
import
org.b3log.latke.servlet.HTTPRequestContext
;
import
org.b3log.latke.servlet.HTTPRequestContext
;
import
org.b3log.latke.servlet.HTTPRequestMethod
;
import
org.b3log.latke.servlet.HTTPRequestMethod
;
...
@@ -197,15 +196,19 @@ public final class PluginConsole {
...
@@ -197,15 +196,19 @@ public final class PluginConsole {
try
{
try
{
final
JSONObject
requestJSONObject
=
Requests
.
parseRequestJSONObject
(
request
,
response
);
final
JSONObject
requestJSONObject
=
Requests
.
parseRequestJSONObject
(
request
,
response
);
final
String
plugin
o
Id
=
requestJSONObject
.
getString
(
Keys
.
OBJECT_ID
);
final
String
pluginId
=
requestJSONObject
.
getString
(
Keys
.
OBJECT_ID
);
final
AbstractPlugin
result
=
pluginQueryService
.
getPlugin
(
plugino
Id
);
final
String
setting
=
pluginQueryService
.
getPluginSetting
(
plugin
Id
);
renderer
.
setTemplateName
(
"admin-plugin-setting.ftl"
);
renderer
.
setTemplateName
(
"admin-plugin-setting.ftl"
);
final
Map
<
String
,
Object
>
dataModel
=
renderer
.
getDataModel
();
final
Map
<
String
,
Object
>
dataModel
=
renderer
.
getDataModel
();
dataModel
.
put
(
Plugin
.
PLUGIN
,
result
);
Keys
.
fillServer
(
dataModel
);
Keys
.
fillRuntime
(
dataModel
);
dataModel
.
put
(
Plugin
.
PLUGIN_SETTING
,
setting
);
dataModel
.
put
(
Keys
.
OBJECT_ID
,
pluginId
);
}
catch
(
final
Exception
e
)
{
}
catch
(
final
Exception
e
)
{
LOGGER
.
log
(
Level
.
SEVERE
,
e
.
getMessage
(),
e
);
LOGGER
.
log
(
Level
.
SEVERE
,
e
.
getMessage
(),
e
);
...
@@ -218,4 +221,29 @@ public final class PluginConsole {
...
@@ -218,4 +221,29 @@ public final class PluginConsole {
}
}
/**
* update the setting of the plugin.
*
* @param request the specified http servlet request
* @param response the specified http servlet response
* @param context the specified http request context
* @param renderer the specified {@link ConsoleRenderer}
* @throws Exception exception
*/
@RequestProcessing
(
value
=
"/console/plugin/updateSetting"
,
method
=
HTTPRequestMethod
.
POST
)
public
void
updateSetting
(
final
HttpServletRequest
request
,
final
HttpServletResponse
response
,
final
HTTPRequestContext
context
,
final
JSONRenderer
renderer
)
throws
Exception
{
context
.
setRenderer
(
renderer
);
final
JSONObject
requestJSONObject
=
Requests
.
parseRequestJSONObject
(
request
,
response
);
final
String
pluginoId
=
requestJSONObject
.
getString
(
Keys
.
OBJECT_ID
);
final
String
settings
=
requestJSONObject
.
getString
(
Plugin
.
PLUGIN_SETTING
);
final
JSONObject
ret
=
pluginMgmtService
.
updatePluginSetting
(
pluginoId
,
settings
);
renderer
.
setJSONObject
(
ret
);
}
}
}
core/src/main/java/org/b3log/solo/repository/PluginRepository.java
View file @
2f91496c
...
@@ -23,6 +23,6 @@ import org.b3log.latke.repository.Repository;
...
@@ -23,6 +23,6 @@ import org.b3log.latke.repository.Repository;
* Plugin repository.
* Plugin repository.
*
*
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @version 1.0.0.0, J
ul 21, 2011
* @version 1.0.0.0, J
an 24, 2013
*/
*/
public
interface
PluginRepository
extends
Repository
{}
public
interface
PluginRepository
extends
Repository
{}
core/src/main/java/org/b3log/solo/repository/impl/PluginRepositoryImpl.java
View file @
2f91496c
...
@@ -17,6 +17,7 @@ package org.b3log.solo.repository.impl;
...
@@ -17,6 +17,7 @@ package org.b3log.solo.repository.impl;
import
java.util.logging.Logger
;
import
java.util.logging.Logger
;
import
org.b3log.latke.model.Plugin
;
import
org.b3log.latke.model.Plugin
;
import
org.b3log.latke.repository.AbstractRepository
;
import
org.b3log.latke.repository.AbstractRepository
;
import
org.b3log.solo.repository.PluginRepository
;
import
org.b3log.solo.repository.PluginRepository
;
...
@@ -58,4 +59,5 @@ public final class PluginRepositoryImpl extends AbstractRepository implements Pl
...
@@ -58,4 +59,5 @@ public final class PluginRepositoryImpl extends AbstractRepository implements Pl
private
PluginRepositoryImpl
(
final
String
name
)
{
private
PluginRepositoryImpl
(
final
String
name
)
{
super
(
name
);
super
(
name
);
}
}
}
}
core/src/main/java/org/b3log/solo/service/PluginMgmtService.java
View file @
2f91496c
...
@@ -20,8 +20,10 @@ import java.util.List;
...
@@ -20,8 +20,10 @@ import java.util.List;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.logging.Level
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
import
java.util.logging.Logger
;
import
org.b3log.latke.Keys
;
import
org.b3log.latke.Keys
;
import
org.b3log.latke.Latkes
;
import
org.b3log.latke.Latkes
;
import
org.b3log.latke.model.Plugin
;
import
org.b3log.latke.plugin.AbstractPlugin
;
import
org.b3log.latke.plugin.AbstractPlugin
;
import
org.b3log.latke.plugin.PluginManager
;
import
org.b3log.latke.plugin.PluginManager
;
import
org.b3log.latke.plugin.PluginStatus
;
import
org.b3log.latke.plugin.PluginStatus
;
...
@@ -115,6 +117,58 @@ public final class PluginMgmtService {
...
@@ -115,6 +117,58 @@ public final class PluginMgmtService {
return
ret
;
return
ret
;
}
}
/**
* updatePluginSetting.
*
* @param pluginId the specified pluginoId
* @param setting the specified setting
* @return the ret json
*/
public
JSONObject
updatePluginSetting
(
final
String
pluginId
,
final
String
setting
)
{
final
Map
<
String
,
String
>
langs
=
langPropsService
.
getAll
(
Latkes
.
getLocale
());
final
PluginManager
pluginManager
=
PluginManager
.
getInstance
();
final
List
<
AbstractPlugin
>
plugins
=
pluginManager
.
getPlugins
();
final
JSONObject
ret
=
new
JSONObject
();
for
(
final
AbstractPlugin
plugin
:
plugins
)
{
if
(
plugin
.
getId
().
equals
(
pluginId
))
{
final
Transaction
transaction
=
pluginRepository
.
beginTransaction
();
try
{
final
JSONObject
pluginJson
=
plugin
.
toJSONObject
();
pluginJson
.
put
(
Plugin
.
PLUGIN_SETTING
,
setting
);
pluginRepository
.
update
(
pluginId
,
pluginJson
);
transaction
.
commit
();
ret
.
put
(
Keys
.
STATUS_CODE
,
true
);
ret
.
put
(
Keys
.
MSG
,
langs
.
get
(
"setSuccLabel"
));
return
ret
;
}
catch
(
final
Exception
e
)
{
if
(
transaction
.
isActive
())
{
transaction
.
rollback
();
}
LOGGER
.
log
(
Level
.
SEVERE
,
"Set plugin status error"
,
e
);
ret
.
put
(
Keys
.
STATUS_CODE
,
false
);
ret
.
put
(
Keys
.
MSG
,
langs
.
get
(
"setFailLabel"
));
return
ret
;
}
}
}
ret
.
put
(
Keys
.
STATUS_CODE
,
false
);
ret
.
put
(
Keys
.
MSG
,
langs
.
get
(
"refreshAndRetryLabel"
));
return
ret
;
}
/**
/**
* Gets the {@link PluginMgmtService} singleton.
* Gets the {@link PluginMgmtService} singleton.
*
*
...
@@ -147,4 +201,5 @@ public final class PluginMgmtService {
...
@@ -147,4 +201,5 @@ public final class PluginMgmtService {
*/
*/
private
SingletonHolder
()
{}
private
SingletonHolder
()
{}
}
}
}
}
core/src/main/java/org/b3log/solo/service/PluginQueryService.java
View file @
2f91496c
...
@@ -20,14 +20,17 @@ import java.util.ArrayList;
...
@@ -20,14 +20,17 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.List
;
import
java.util.logging.Level
;
import
java.util.logging.Level
;
import
java.util.logging.Logger
;
import
java.util.logging.Logger
;
import
org.b3log.latke.model.Pagination
;
import
org.b3log.latke.model.Pagination
;
import
org.b3log.latke.model.Plugin
;
import
org.b3log.latke.model.Plugin
;
import
org.b3log.latke.plugin.AbstractPlugin
;
import
org.b3log.latke.plugin.AbstractPlugin
;
import
org.b3log.latke.plugin.PluginManager
;
import
org.b3log.latke.plugin.PluginManager
;
import
org.b3log.latke.repository.RepositoryException
;
import
org.b3log.latke.service.ServiceException
;
import
org.b3log.latke.service.ServiceException
;
import
org.b3log.latke.util.Paginator
;
import
org.b3log.latke.util.Paginator
;
import
org.b3log.solo.repository.PluginRepository
;
import
org.b3log.solo.repository.PluginRepository
;
import
org.b3log.solo.repository.impl.PluginRepositoryImpl
;
import
org.b3log.solo.repository.impl.PluginRepositoryImpl
;
import
org.json.JSONException
;
import
org.json.JSONObject
;
import
org.json.JSONObject
;
...
@@ -121,30 +124,33 @@ public final class PluginQueryService {
...
@@ -121,30 +124,33 @@ public final class PluginQueryService {
}
}
/**
/**
* get the
{@link AbstractPlugin}
by the specified pluginoId.
* get the
setting(json formatter) of the plugin(from database not cache which does not contains it)
by the specified pluginoId.
*
*
* @param plugin
o
Id the specified pluginId
* @param pluginId the specified pluginId
* @return the {@link AbstractPlugin}
* @return the {@link AbstractPlugin}
* @throws ServiceException service exception
* @throws ServiceException service exception
* @throws JSONException json exception
*/
*/
public
AbstractPlugin
getPlugin
(
final
String
pluginoId
)
throws
Service
Exception
{
public
String
getPluginSetting
(
final
String
pluginId
)
throws
ServiceException
,
JSON
Exception
{
final
List
<
AbstractPlugin
>
plugins
=
PluginManager
.
getInstance
().
getPlugins
();
JSONObject
ret
=
null
;
AbstractPlugin
ret
=
null
;
try
{
ret
=
pluginRepository
.
get
(
pluginId
);
}
catch
(
final
RepositoryException
e
)
{
LOGGER
.
log
(
Level
.
SEVERE
,
"get plugin["
+
pluginId
+
"] fail"
);
throw
new
ServiceException
(
"get plugin["
+
pluginId
+
"] fail"
);
for
(
final
AbstractPlugin
plugin
:
plugins
)
{
if
(
plugin
.
getId
().
equals
(
pluginoId
))
{
ret
=
plugin
;
}
}
}
if
(
ret
==
null
)
{
if
(
ret
==
null
)
{
LOGGER
.
log
(
Level
.
SEVERE
,
"can not find plugin["
+
plugin
o
Id
+
"]"
);
LOGGER
.
log
(
Level
.
SEVERE
,
"can not find plugin["
+
pluginId
+
"]"
);
throw
new
ServiceException
(
"can not find plugin["
+
plugin
o
Id
+
"]"
);
throw
new
ServiceException
(
"can not find plugin["
+
pluginId
+
"]"
);
}
}
return
ret
;
return
ret
.
optString
(
Plugin
.
PLUGIN_SETTING
).
toString
()
;
}
}
/**
/**
* Gets the {@link PluginQueryService} singleton.
* Gets the {@link PluginQueryService} singleton.
*
*
...
...
war/src/main/webapp/CHANGE_LOGS.html
View file @
2f91496c
...
@@ -390,4 +390,5 @@
...
@@ -390,4 +390,5 @@
<li><a
href=
"http://code.google.com/p/b3log-solo/issues/detail?id=2"
>
2 Tree-House 皮肤评论预览有问题
</a></li>
<li><a
href=
"http://code.google.com/p/b3log-solo/issues/detail?id=2"
>
2 Tree-House 皮肤评论预览有问题
</a></li>
</ul>
</ul>
</body>
</body>
</html>
</html>
war/src/main/webapp/admin-plugin-setting.ftl
View file @
2f91496c
kkkk
\ No newline at end of file
<textarea id="jsoneditor" rows="10" cols="110">
${setting}
</textarea>
<input type="hidden" id="pluginId" value="${oId}">
<button class="marginRight12" id="updateSetting" onclick="updateSetting()">save</button>
<script type="text/javascript">
function updateSetting(){
var pluginId = $("#pluginId").val();
var json = $("#jsoneditor").val();
alert(json);
$("#loadMsg").text(Label.loadingLabel);
var requestJSONObject = {
"oId": pluginId,
"setting":json
};
$.ajax({
url: latkeConfig.servePath + "/console/plugin/updateSetting",
type: "POST",
cache: false,
data: JSON.stringify(requestJSONObject),
success: function(result, textStatus){
$("#tipMsg").text(result.msg);
}
});
}
</script>
war/src/main/webapp/js/admin/pluginList.js
View file @
2f91496c
...
@@ -120,17 +120,15 @@ admin.pluginList = {
...
@@ -120,17 +120,15 @@ admin.pluginList = {
$
(
"
#PluginSetting
"
).
html
(
result
);
$
(
"
#PluginSetting
"
).
html
(
result
);
$
(
"
#PluginSetting
"
).
dialog
({
$
(
"
#PluginSetting
"
).
dialog
({
width
:
700
,
width
:
700
,
height
:
19
0
,
height
:
40
0
,
"
modal
"
:
true
,
"
modal
"
:
true
,
"
hideFooter
"
:
true
"
hideFooter
"
:
true
});
});
$
(
"
#PluginSetting
"
).
dialog
(
"
open
"
);
$
(
"
#PluginSetting
"
).
dialog
(
"
open
"
);
$
(
"
#loadMsg
"
).
text
(
""
);
$
(
"
#loadMsg
"
).
text
(
""
);
}
}
});
});
},
},
changeStatus
:
function
(
pluginId
,
status
)
{
changeStatus
:
function
(
pluginId
,
status
)
{
if
(
status
===
"
ENABLED
"
)
{
if
(
status
===
"
ENABLED
"
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment