On 06/06/2016 04:13 PM, Rodrigo Trujillo wrote:
This patch adapts Sample plugin to work with new latest Wok plugin
changes and to work with Plugins Manager.
---
src/wok/plugins/sample/__init__.py | 54 ++++++++++++++++++++--
src/wok/plugins/sample/control/__init__.py | 26 +++++++++++
src/wok/plugins/sample/sample.conf.in | 22 ---------
src/wok/plugins/sample/ui/config/tab-ext.xml | 9 ++--
.../plugins/sample/ui/pages/sample-tab1.html.tmpl | 3 ++
.../plugins/sample/ui/pages/sample-tab2.html.tmpl | 3 ++
6 files changed, 86 insertions(+), 31 deletions(-)
create mode 100644 src/wok/plugins/sample/control/__init__.py
diff --git a/src/wok/plugins/sample/__init__.py b/src/wok/plugins/sample/__init__.py
index ff96b15..c65dd0d 100644
--- a/src/wok/plugins/sample/__init__.py
+++ b/src/wok/plugins/sample/__init__.py
@@ -23,21 +23,22 @@ import json
import os
from cherrypy import expose
-
-from wok.config import PluginPaths
+from wok.config import CACHEEXPIRES, PluginConfig, PluginPaths
from wok.control.base import Collection, Resource
from wok.root import WokRoot
-from plugins.sample.i18n import messages
-from plugins.sample.model import Model
+from wok.plugins.sample.i18n import messages
+from wok.plugins.sample.model import Model
model = Model()
-class Drawings(WokRoot):
+class Sample(WokRoot):
def __init__(self, wok_options):
+ dev_env = wok_options.environment != 'production'
+ super(Sample, self).__init__(model, dev_env)
Resource.__init__(self, model)
As you are calling WokRoot.__init__, I don't think this
Resource.__init__ is necessary anymore.
self.description = Description(model)
self.rectangles = Rectangles(model)
@@ -52,6 +53,49 @@ class Drawings(WokRoot):
def index(self):
return 'This is a sample plugin for Wok'
+ def get_custom_conf(self):
+ return SampleConfig()
+
+
+class SampleConfig(PluginConfig):
+ def __init__(self):
+ super(SampleConfig, self).__init__('sample')
+
+ sample_path = PluginPaths('sample')
+
+ custom_config = {
+ '/help': {
+ 'tools.staticdir.on': True,
+ 'tools.staticdir.dir': os.path.join(sample_path.ui_dir,
+ 'pages/help'),
+ 'tools.nocache.on': True
+ },
+ '/images': {
+ 'tools.staticdir.on': True,
+ 'tools.staticdir.dir': os.path.join(sample_path.ui_dir,
+ 'images'),
+ 'tools.wokauth.on': False,
+ 'tools.nocache.on': False
+ },
I don't think sample plugin has any image to expose on server.
So we don't need this there.
+ '/description': {'tools.wokauth.on':
True},
+ '/rectangles': {'tools.wokauth.on': True},
+ '/circles': {'tools.wokauth.on': True}
+ }
+
+ for dirname in ('css', 'js', 'images'):
Same for js and css config.
+ custom_config['/' + dirname] = {
+ 'tools.staticdir.on': True,
+ 'tools.staticdir.dir': os.path.join(sample_path.ui_dir,
+ dirname),
+ 'tools.wokauth.on': False,
+ 'tools.nocache.on': False}
+ if dirname != 'images':
+ custom_config['/' + dirname].update({
+ 'tools.expires.on': True,
+ 'tools.expires.secs': CACHEEXPIRES})
+
+ self.update(custom_config)
+
class Description(Resource):
def __init__(self, model):
diff --git a/src/wok/plugins/sample/control/__init__.py
b/src/wok/plugins/sample/control/__init__.py
new file mode 100644
index 0000000..c87776e
--- /dev/null
+++ b/src/wok/plugins/sample/control/__init__.py
@@ -0,0 +1,26 @@
+#
+# Project Wok
+#
+# Copyright IBM Corp, 2016
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+import os
+
+
+from wok.control.utils import load_url_sub_node
+
+
+sub_nodes = load_url_sub_node(os.path.dirname(__file__), __name__)
diff --git a/src/wok/plugins/sample/sample.conf.in
b/src/wok/plugins/sample/sample.conf.in
index 9da33e1..1e1b8a4 100644
--- a/src/wok/plugins/sample/sample.conf.in
+++ b/src/wok/plugins/sample/sample.conf.in
@@ -1,27 +1,5 @@
[wok]
enable = @ENABLE_SAMPLE@
-plugin_class = "Drawings"
uri = "/plugins/sample"
-[/]
-tools.nocache.on = True
-tools.trailing_slash.on = False
-tools.sessions.on = True
-tools.sessions.name = 'wok'
-tools.sessions.httponly = True
-tools.sessions.locking = 'explicit'
-tools.sessions.storage_type = 'ram'
-[/description]
-tools.wokauth.on = True
-
-[/rectangles]
-tools.wokauth.on = True
-
-[/circles]
-tools.wokauth.on = True
-
-[/help]
-tools.staticdir.on = True
-tools.nocache.on = True
-tools.staticdir.dir = wok.config.PluginPaths('sample').ui_dir +
'/pages/help'
diff --git a/src/wok/plugins/sample/ui/config/tab-ext.xml
b/src/wok/plugins/sample/ui/config/tab-ext.xml
index aff0d14..bcd20fe 100644
--- a/src/wok/plugins/sample/ui/config/tab-ext.xml
+++ b/src/wok/plugins/sample/ui/config/tab-ext.xml
@@ -1,17 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<tabs-ext>
+ <functionality>Sample</functionality>
<tab>
<access role="admin" mode="admin"/>
<access role="user" mode="none"/>
-
- <title>SampleTab 1</title>
+ <title>SampleTab1</title>
<path>plugins/sample/sample-tab1.html</path>
+ <order>10</order>
</tab>
<tab>
<access role="admin" mode="admin"/>
<access role="user" mode="none"/>
-
- <title>SampleTab 2</title>
+ <title>SampleTab2</title>
<path>plugins/sample/sample-tab2.html</path>
+ <order>20</order>
</tab>
</tabs-ext>
diff --git a/src/wok/plugins/sample/ui/pages/sample-tab1.html.tmpl
b/src/wok/plugins/sample/ui/pages/sample-tab1.html.tmpl
index 2777848..8e4b52b 100644
--- a/src/wok/plugins/sample/ui/pages/sample-tab1.html.tmpl
+++ b/src/wok/plugins/sample/ui/pages/sample-tab1.html.tmpl
@@ -22,6 +22,9 @@
<html>
<script type="text/javascript"
src="plugins/sample/js/util.js"></script>
<body>
+ <div>
+ Sample PAGE 1
+ </div>
<div id="samplebody"/>
</body>
<script>
diff --git a/src/wok/plugins/sample/ui/pages/sample-tab2.html.tmpl
b/src/wok/plugins/sample/ui/pages/sample-tab2.html.tmpl
index 2777848..8f92b80 100644
--- a/src/wok/plugins/sample/ui/pages/sample-tab2.html.tmpl
+++ b/src/wok/plugins/sample/ui/pages/sample-tab2.html.tmpl
@@ -22,6 +22,9 @@
<html>
<script type="text/javascript"
src="plugins/sample/js/util.js"></script>
<body>
+ <div>
+ Sample PAGE 2
+ </div>
<div id="samplebody"/>
</body>
<script>