[Kimchi-devel] [PATCH 2/2 V4] Changes in sample plugin to fix and improve help

Zhou Zheng Sheng zhshzhou at linux.vnet.ibm.com
Thu Oct 9 02:59:56 UTC 2014


on 2014/10/01 02:37, Rodrigo Trujillo wrote:
> This patch set changes the Sample plugin, adding a new tab, modifying
> naming and other elements in order to show help pages properly.
> 
> Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo at linux.vnet.ibm.com>
> ---
>  configure.ac                                       |  1 -
>  plugins/sample/Makefile.am                         | 12 +++++++++
>  plugins/sample/sample.conf.in                      |  5 ++++
>  plugins/sample/ui/config/tab-ext.xml               | 11 ++++++--
>  plugins/sample/ui/pages/Makefile.am                |  2 +-
>  .../sample/ui/pages/help/en_US/sample-tab1.html    |  1 +
>  .../sample/ui/pages/help/en_US/sample-tab2.html    |  1 +
>  plugins/sample/ui/pages/sample-tab1.html.tmpl      | 30 ++++++++++++++++++++++
>  plugins/sample/ui/pages/sample-tab2.html.tmpl      | 30 ++++++++++++++++++++++
>  plugins/sample/ui/pages/tab.html.tmpl              | 30 ----------------------
>  10 files changed, 89 insertions(+), 34 deletions(-)
>  create mode 100644 plugins/sample/ui/pages/help/en_US/sample-tab1.html
>  create mode 100644 plugins/sample/ui/pages/help/en_US/sample-tab2.html
>  create mode 100644 plugins/sample/ui/pages/sample-tab1.html.tmpl
>  create mode 100644 plugins/sample/ui/pages/sample-tab2.html.tmpl
>  delete mode 100644 plugins/sample/ui/pages/tab.html.tmpl
> 
> diff --git a/configure.ac b/configure.ac
> index 7872db9..d363b50 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -90,7 +90,6 @@ AC_CONFIG_FILES([
>      plugins/Makefile
>      plugins/sample/Makefile
>      plugins/sample/po/Makefile.in
> -    plugins/sample/sample.conf
>      plugins/sample/ui/Makefile
>      plugins/sample/ui/config/Makefile
>      plugins/sample/ui/js/Makefile
> diff --git a/plugins/sample/Makefile.am b/plugins/sample/Makefile.am
> index 876ab54..f8368a9 100644
> --- a/plugins/sample/Makefile.am
> +++ b/plugins/sample/Makefile.am
> @@ -21,9 +21,21 @@ SUBDIRS = ui po
> 
>  EXTRA_DIST = API.json sample.conf.in $(wildcard *.py) config.status
> 
> +pluginsdir = $(abs_top_srcdir)/plugins
> +
>  all-local:
>  	while read L && test -n "$$L"; do                      \
>  		dir=mo/$$L/LC_MESSAGES ;                       \
>  		$(MKDIR_P) $$dir ;                             \
>  		ln -sf ../../../po/$$L.gmo $$dir/sample.mo ;   \
>  	done < po/LINGUAS
> +
> +all: sample.conf
> +	$(MAKE) $(AM_MAKEFLAGS) all-recursive
> +
> +do_substitution = \
> +	sed -e 's,[@]pluginsdir[@],$(pluginsdir),g' \
> +	    -e 's,[@]ENABLE_SAMPLE[@],$(ENABLE_SAMPLE),g'
> +
> +sample.conf: sample.conf.in Makefile
> +	$(do_substitution) < sample.conf.in > sample.conf
> diff --git a/plugins/sample/sample.conf.in b/plugins/sample/sample.conf.in
> index cf42467..7365a7c 100644
> --- a/plugins/sample/sample.conf.in
> +++ b/plugins/sample/sample.conf.in
> @@ -20,3 +20,8 @@ tools.kimchiauth.on = True
> 
>  [/circles]
>  tools.kimchiauth.on = True
> +
> +[/help]
> +tools.staticdir.on = True
> +tools.nocache.on = True
> +tools.staticdir.dir = '@pluginsdir@/sample/ui/pages/help'

Is it also possible to do the trick as we did in Ginger using PluginPaths?

  kimchi.config.PluginPaths('sample').ui_dir + '/pages/help'

Or we can directly edit PluginConfig in src/kimchi/config.py.in, and
update the "/help" config item with the corrected path.

plugin_config = {
    # ...
    '/help': {
        'tools.staticdir.on': True,
        'tools.staticdir.dir': os.path.join(PluginPaths(plugin_name).ui_dir,
                                      '/pages/help')
        'tools.nocache.on': True
    }
}

This can avoid the sed trick in "Makefile.am" and simplifies the
packaging for all the plugins, and save them from adding similar "help"
config item in "plugin_name.conf" file. Otherwise all the plugins needs
this sed trick in packaging system. Is it a bit overkill for a most
simple sample plugin?

When reviewing the Ginger part of this patch I didn't know you also made
some changes in Kimchi. I think it maybe a good chance to update the
Kimchi plugin framework to add support for help files. Agree? ;-)

> diff --git a/plugins/sample/ui/config/tab-ext.xml b/plugins/sample/ui/config/tab-ext.xml
> index a1fb1c2..aff0d14 100644
> --- a/plugins/sample/ui/config/tab-ext.xml
> +++ b/plugins/sample/ui/config/tab-ext.xml
> @@ -4,7 +4,14 @@
>          <access role="admin" mode="admin"/>
>          <access role="user" mode="none"/>
> 
> -        <title>SampleTab</title>
> -        <path>plugins/sample/tab.html</path>
> +        <title>SampleTab 1</title>
> +        <path>plugins/sample/sample-tab1.html</path>
> +    </tab>
> +    <tab>
> +        <access role="admin" mode="admin"/>
> +        <access role="user" mode="none"/>
> +
> +        <title>SampleTab 2</title>
> +        <path>plugins/sample/sample-tab2.html</path>
>      </tab>
>  </tabs-ext>
> diff --git a/plugins/sample/ui/pages/Makefile.am b/plugins/sample/ui/pages/Makefile.am
> index ca22446..3da95a2 100644
> --- a/plugins/sample/ui/pages/Makefile.am
> +++ b/plugins/sample/ui/pages/Makefile.am
> @@ -17,4 +17,4 @@
>  # License along with this library; if not, write to the Free Software
>  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
> 
> -EXTRA_DIST = i18n.json.tmpl tab.html.tmpl
> +EXTRA_DIST = i18n.json.tmpl sample-tab1.html.tmpl sample-tab2.html.tmpl
> diff --git a/plugins/sample/ui/pages/help/en_US/sample-tab1.html b/plugins/sample/ui/pages/help/en_US/sample-tab1.html
> new file mode 100644
> index 0000000..70aa1c0
> --- /dev/null
> +++ b/plugins/sample/ui/pages/help/en_US/sample-tab1.html
> @@ -0,0 +1 @@
> +Help page for TAB 1 of Kimchi's Sample plugin.
> diff --git a/plugins/sample/ui/pages/help/en_US/sample-tab2.html b/plugins/sample/ui/pages/help/en_US/sample-tab2.html
> new file mode 100644
> index 0000000..367318f
> --- /dev/null
> +++ b/plugins/sample/ui/pages/help/en_US/sample-tab2.html
> @@ -0,0 +1 @@
> +Help page for TAB 2 of Kimchi's Sample plugin.
> diff --git a/plugins/sample/ui/pages/sample-tab1.html.tmpl b/plugins/sample/ui/pages/sample-tab1.html.tmpl
> new file mode 100644
> index 0000000..4354d81
> --- /dev/null
> +++ b/plugins/sample/ui/pages/sample-tab1.html.tmpl
> @@ -0,0 +1,30 @@
> +#*
> + * Project Kimchi
> + *
> + * Copyright IBM, Corp. 2014
> + *
> + * Licensed under the Apache License, Version 2.0 (the "License");
> + * you may not use this file except in compliance with the License.
> + * You may obtain a copy of the License at
> + *
> + *     http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + *#
> +#unicode UTF-8
> +<!DOCTYPE html>
> +<html>
> +<script type="text/javascript" src="plugins/sample/js/util.js"></script>
> +<body>
> +    <div id="samplebody"/>
> +</body>
> +<script>
> +    sample.description(function(r){
> +        \$("#samplebody").html("name: " + r.name + " version: " + r.version);
> +    });
> +</script>
> +</html>
> diff --git a/plugins/sample/ui/pages/sample-tab2.html.tmpl b/plugins/sample/ui/pages/sample-tab2.html.tmpl
> new file mode 100644
> index 0000000..4354d81
> --- /dev/null
> +++ b/plugins/sample/ui/pages/sample-tab2.html.tmpl
> @@ -0,0 +1,30 @@
> +#*
> + * Project Kimchi
> + *
> + * Copyright IBM, Corp. 2014
> + *
> + * Licensed under the Apache License, Version 2.0 (the "License");
> + * you may not use this file except in compliance with the License.
> + * You may obtain a copy of the License at
> + *
> + *     http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + *#
> +#unicode UTF-8
> +<!DOCTYPE html>
> +<html>
> +<script type="text/javascript" src="plugins/sample/js/util.js"></script>
> +<body>
> +    <div id="samplebody"/>
> +</body>
> +<script>
> +    sample.description(function(r){
> +        \$("#samplebody").html("name: " + r.name + " version: " + r.version);
> +    });
> +</script>
> +</html>
> diff --git a/plugins/sample/ui/pages/tab.html.tmpl b/plugins/sample/ui/pages/tab.html.tmpl
> deleted file mode 100644
> index 4354d81..0000000
> --- a/plugins/sample/ui/pages/tab.html.tmpl
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -#*
> - * Project Kimchi
> - *
> - * Copyright IBM, Corp. 2014
> - *
> - * Licensed under the Apache License, Version 2.0 (the "License");
> - * you may not use this file except in compliance with the License.
> - * You may obtain a copy of the License at
> - *
> - *     http://www.apache.org/licenses/LICENSE-2.0
> - *
> - * Unless required by applicable law or agreed to in writing, software
> - * distributed under the License is distributed on an "AS IS" BASIS,
> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> - * See the License for the specific language governing permissions and
> - * limitations under the License.
> - *#
> -#unicode UTF-8
> -<!DOCTYPE html>
> -<html>
> -<script type="text/javascript" src="plugins/sample/js/util.js"></script>
> -<body>
> -    <div id="samplebody"/>
> -</body>
> -<script>
> -    sample.description(function(r){
> -        \$("#samplebody").html("name: " + r.name + " version: " + r.version);
> -    });
> -</script>
> -</html>
> 


-- 
Zhou Zheng Sheng / 周征晟
E-mail: zhshzhou at linux.vnet.ibm.com
Telephone: 86-10-82454397




More information about the Kimchi-devel mailing list