Commit graph libervia-backend/src/tools
Author SHA1 Message Date
Goffi
07d5a18b79 template: new "xmlui_class" filter compute class names from name/values of requested fields. 2017-10-16 07:44:08 +02:00
Goffi
c7984f60ec tools (common/data_objects): new OnClick class
OnClick is used to specify what do to when clicking on element.
For now it only handles target URL.
2017-10-16 07:41:36 +02:00
Goffi
b8839b97e4 core (xmlui): new "prepend" argument for dataForm2Widgets and dataFormResult2XMLUI:
This argument allow to create widgets which will be put first in LabelContainer of generated XMLUI.
An iterable of *args for XMLUI.addWidget must be used.
2017-10-16 07:36:03 +02:00
Goffi
59c6ab9973 template (xmlui): new properties + inheritance fix:
- "values" property in OptionsWidget return selected values.
- "labels" property in OptionsWidget return list of labels
- "for_name" property in LabelWidget return name of associated widget if set, else None
- fixed inheritance for StringWidget and TextBoxWidget
2017-10-16 07:28:36 +02:00
Goffi
fa1680a119 template (xmlui): added values property to be able to use always values even when there is only one value 2017-10-01 12:21:23 +02:00
Goffi
3ec8f283cb core (xmlui): container now keep a list of children 2017-10-01 12:21:23 +02:00
Goffi
df038ad3d4 core (xmlui): added method to convert data form result to XMLUI:
- former method was misnamed as it was used to convert data form element to XMLUI, so it has been renamed to dataFormEltResult2XMLUI
    - dataFormResult2XMLUI is now use to convert wokkel.data_form.Form instances to XMLUI
2017-10-01 12:21:23 +02:00
Goffi
04d851c5c5 template: template XMLUI first draft:
this module prepares an object which can be easily used in templates to construct interface from XMLUI.
2017-09-24 16:39:36 +02:00
Goffi
506f948214 core, frontends (xmlui): new LabelContainer:
LabelContainer is like a PairContainer where first widget can only be LabelWidget or EmptyWidget. This case is the most common, and allow to generate better code when label can be associated to widget (e.g. in HTML).
2017-09-24 16:36:11 +02:00
Goffi
d5908b6ee6 tools(common/uri): fixed encoding in buildXMPPUri 2017-07-13 21:23:36 +02:00
Goffi
da75f58453 tools (common/uri): buildXMPPUri: use XEP-0277 namespace as node if node is empty or None for microblog subtype 2017-07-13 21:12:46 +02:00
Goffi
d8080c8ad2 template: print warning message and use DEFAULT_LOCALE on bad locale 2017-07-12 19:06:28 +02:00
Goffi
359b3a1b43 core (tools/email): an unicode "to" email (instead of a list) can now be used 2017-07-05 15:02:52 +02:00
Goffi
eaa420fb03 jp (event/invitee): added list command to get R.S.V.P. :
RSVP are gotten for invitees node, and R.S.V.P. are displayed. Then a summary display the number of yes, maybe and no, and the expected number of guests.
2017-07-02 20:09:25 +02:00
Goffi
828d1564fb core (tools/common/regex): new ansiRemove method to remove ANSI escape codes from a string 2017-07-02 19:53:44 +02:00
Goffi
f3a94527b0 tools (common/template): changed blog_date filter to date_days
Instead of returning the whole sentence, date_days only return the number of days between now and the given timestamp.
This way the template author can choose how to use it, and translation can be done template side.
2017-06-24 21:47:06 +02:00
Goffi
92825fc674 tools (common/template): ScriptsHandler fix/improvments:
ScriptsHandler was not used so far, this commit fix it to be usable:
    - script can be imported with "include"
    - generate_scripts is used to generate the <script> elements generation, in base page
    - paths use root_path, so they are adapted to context
    - generate_scripts return a Markup string, so it's not escaped
2017-06-24 20:18:55 +02:00
Goffi
9ae18d4d28 plugin XEP-0277, tools/common/data_objects: language handling 2017-06-22 09:13:28 +02:00
Goffi
4dee63d105 core (tools/common/data_objects): added classes to handle Identities 2017-05-22 23:58:26 +02:00
Goffi
c6ea8e7dbe core (tools/common/template): i18n support
- babel has been added as a new dependencies, and should replace gettext in core in the future
    - added i18n support in template rendered
    - current locale is available as babel Locale in templates through "locale" variable
    - locales can be changed before rendering using setLocale
    - for now, all locales translations are loaded on init, and stay in cache. A more complex cache system may be needed in the future (e.g. keeping only most used and load others from files when needed).
2017-05-21 15:59:47 +02:00
Goffi
6c9255e31d core (tools/common/template): helping methods/filters for templates:
- Indexer class (used with next_gidx/cur_gidx) allows to get per page indexes, usefull to have unique id to reference
    - blog_date is a Q&D filter to get relative dates, should be replaced/improved in the future
    - ScriptsHandler (used with scripts_handler) is intended to be a way to add scripts from template, and group them at a specific location of the page. It is not used yet and may change heavily or disappear in the future.
2017-05-19 12:54:31 +02:00
Goffi
3c8a46760a core (tools/common/uri): don't display finale "?" if no extra data is specified 2017-05-19 12:40:03 +02:00
Goffi
1cfd34c38d core (tools/utils): added method to parse XMPP dates 2017-05-19 12:33:11 +02:00
Goffi
3ecb61f064 tools (common/uri): minor comment update 2017-04-20 17:20:44 +02:00
Goffi
affbd97593 tools (common/data_objects): comments items can now be chained to their parent 2017-04-17 20:34:43 +02:00
Goffi
9d60e145c0 tools/common (uri): added a method to build URI 2017-04-16 17:55:10 +02:00
Goffi
0c01779ae7 tools(common/uri): XMPP uri parsing module, first draft 2017-03-29 21:04:43 +02:00
Goffi
a022ae21af plugin XEP-0060: added getConfiguration ad psNodeConfigurationGet bridge method 2017-03-13 23:18:00 +01:00
Goffi
25c07ce105 plugin account, tools: some cleaning account + email and password tools:
- plugin misc account has been reordered and cleaned a bit.
    - new xmpp_domain setting is used to get the domain name of main XMPP server
    - password generation method has been moved to tools.utils
    - email sending method has been moved to tools.email
2017-03-12 19:32:59 +01:00
Goffi
a4934b1955 tools(templates): workflow improvments:
- template theme can be specified in parenthesis: (some_theme)path/to/template.html. Withtout parenthesis, "default" is used
    - static content are supposed to be in [theme]/static, error pages in [theme]/error/[err_code].html
    - default page are used in some case (2 for now): if error page with specified code doesn't exists, a base page is used, and if a page doesn't exist for a theme, the same one for default theme is looked for
    - CSS files are automatically found for HTML pages
    - CSS files can be split, the'll be added in the template according to the page requested.
    - theme CSS file is looked for, and if not found the default theme equivalent is looked for.
    - each element of a path can be associated to a CSS file, and styles.css is always there. For instance if blog/articles.html is requested, the following CSS can be included: "styles.css", "blog.css", "blog_article.css". They all must be in /static
    - if the automatic finding of CSS files is not wanted, css_files arguments can be used instead, with full relative path (i.e. including theme)
    - CSS files can be merged and included inline with css_inline argument
    - root_path can be specified, it will be used as a prefix for static files
    - requested theme (which may differ from actual theme, e.g. if the template is not found and default one is used instead) is available in template with "theme" variable
    - added getThemeAndRoot method to retrieve theme and theme root path from template
2017-03-05 23:41:10 +01:00
Goffi
9b0542fb46 core, frontends: various fixes for Libervia:
- quick_app: don't fail when we can't get autodisconnect parameter
    - bridge: removed useless BridgeFrontend parent class
    - use of TypeError, unicode and list to workaround Pyjamas incompatibilities
2017-02-26 18:23:01 +01:00
Goffi
4a36fba066 tools (common): fixed tty detection when isatty is not available 2017-02-23 07:33:30 +01:00
Goffi
8d578cec3b core (tools/common): data objects first draft:
this module aims is to help manipulate complex data from bridge, mainly for the template system.
    It is in common and not only in frontends as it may be used in some case by backend, if it needs to use template system in the future.
2017-02-21 21:01:40 +01:00
Goffi
23cb2e5843 core (tools/common): template renderer first draft:
jinja integration is being rewritten to be used not only in Libervia, this is a first step which put the renderer in backend/frontends tools.
    The renderer is mainly HTML oriented, but may be used for other files.
    sat_templates dependency is needed to use it.
2017-02-21 21:01:39 +01:00
Goffi
bc5f57702f core (constants), tools (common/ansi): moved ANSI escape codes to a dedicated class, with helper methods 2017-02-16 00:44:54 +01:00
Goffi
84fd46d62c tools (common/data_format): added dict2iterdict to yield dictionary from serialised complex values 2017-02-16 00:40:50 +01:00
Goffi
791be3a4ad core (xml_tools): fixed findAll
- names and namespases arguments haven been inverted to be in the same order as for domish.Element.elements
    - fixed bad copy of elements in recursions
    - check if childrens are IElements
    - namespaces and names can now be basestrings instead of iterables
2017-01-03 18:51:50 +01:00
Goffi
2618d48e7b core, quick_frontends: android compatibility hacks:
a couple of hacks have been used so backend can be launched on android using kivy
    - config file (sat.conf) is been read on a specific dir, using a detection of Cagou domains in constants.py
    - fixed crash when using sys.stdout.isatty in log_config.py
    - Q&D fix for logging encoding issue on android
    - when android is detected, the path/pattern to load plugins is modified
    - SRV is not working at the moment on android. If the platform is detected, the host is used directly with default port. A hosts_dir configuration can be used in [android] section to map a specific ip to a host
    - getRepositoryData in tools/utils return constant string on android. Proper repository data need to be copied during package building.
    - [quick app] more robust failure handling on asyncConnect error
    - [quick chat] default to utf-8 when getlocale doesn't return the actual locale.
2016-12-04 18:16:48 +01:00
Goffi
9ce91cf534 core: bridge can now be changed in conf
by default DBus bridge is used, but this can be changed in sat.conf's DEFAULT section using "bridge" option.
    bridge can be "dbus" (or equivalent "dbus_bridge") or embedded at the moment.
    Bridge name used is saved in SAT.bridge_name, and load_bridge method can be used by frontends.
2016-12-04 18:16:37 +01:00
Goffi
3337750def core (tools/common): added getSubDict method in data_format to get sub dictionary from serialised one 2016-09-25 19:16:25 +02:00
Goffi
44933e1a60 core (stdui): fixed cancellation of ContactList forms 2016-09-11 23:17:31 +02:00
Goffi
527e561a3e core (xmlui): added a quickNote method to easily send notes 2016-08-28 18:16:03 +02:00
Goffi
06663b9571 core: removed pyfeed and xe dependencies:
pyfeed and xe where still used only for date format handling, and there is already dateutil which is a dependency of Wokkel.
    Furthermore pyfeed and xe are still not on pypi, causing troubles for installation with pip
2016-04-17 17:08:12 +02:00
Goffi
6bbcbaf522 use of /usr/bin/env instead of /usr/bin/python in shebang 2016-04-17 14:45:26 +02:00
Goffi
3d20c6e059 tool (common): added forgotten __init__.py 2016-03-22 22:49:00 +01:00
Goffi
787a84c29d tools (common): added regex module with path (un)escaping methods 2016-03-22 22:46:04 +01:00
Goffi
2d1d286be2 core (tools): moved common to a separate package, and put data method in a data_format module 2016-03-22 22:46:04 +01:00
Goffi
c4ac825c8f plugin XEP-0060: service, node and uri are added to metadata when doing a getItems 2016-03-09 16:59:29 +01:00
Goffi
0e1bf65f08 core (tools/config): fixed fixConfigOption:
C.DEFAULT_CONFIG was used so the default values were written if not set in the config file used, resulting in a overriding of values set in config files of higher level (e.g. ~/.config/sat/sat.conf could override /etc/sat.conf values).
2016-03-09 12:11:35 +01:00
Goffi
8403bd61ae core (memory, config): moved parseMainConf to tools/config so it can be used by frontends too 2016-02-29 16:13:47 +01:00