Release 0.13.0

Welcome Zotonic 0.13.0, released on July 3, 2015.

Major changes are:

  • New ACL module: mod_acl_user_groups (see below)
  • New module: mod_content_groups
  • New model: m_hierarchy, for category, content_group and user_group hierarchies
  • Category renumbering is now a lot faster and more incremental
  • Addition of Material Design art work
  • New module: mod_email_status
  • New module: mod_component
  • DNSBL checks for incoming emails
  • More strict sanitization of content
  • Social integration with Twitter, Facebook, LinkedIn, and Instagram
  • is_dependent Resources
  • Refactored automatic compile and load of changed files

This release also incorporates all fixes in the 0.12.x branch.

A complete git shortlog since the 0.12.0 release is added below these release notes.

Documentation

Unfortunately we still miss some documentation for the new modules. This will be corrected as soon as possible.

New Access Control module

The new mod_acl_user_groups module adds rule based access control.

  • All resources (pages) are assigned a content group.
  • All users are member of zero or more user groups.
  • Content groups are arranged in an hierarchy
  • User groups are arranged in an hierarchy

Rules are defined between the user groups and the content groups. Per rule the following properties can be set:

  • User group
  • Content group
  • Category (or all categories)
  • Privileges: view, edit, link, delete
  • Deny flag (for a negative rule)

The collection of rules has an edit and publish version. The edit version can be tested with a special url. If all is accepted, then the edit version van be published.

The edit version can also be exported and imported. This includes the full hierarchies of all user- and content groups.

Categories and m_hierarchy

The category hierarchy tables have been replaced by m_hierarchy. This model defines named hierarchies of resources (pages).

If the categories are changed then the system needs to update the pivot_category_nr field of all resources. With the introduction of m_hierarchy this renumbering is much more efficient and will only affect a minimal number of resources.

The m_hierarchy module is also used for the content- and user group hierarchies, as used by the new mod_acl_user_groups module.

Email status

The new module mod_email_status tracks for all outgoing email addresses:

  • If emails are successfully sent
  • Number of emails sent
  • Number of errors
  • Number of bounces
  • Latest error message

With this it will be much easier to get feedback on all outgoing email.

DNSBL checks

All incoming SMTP connections are now checked against two DNS block lists:

The list of DNSBL servers checked can be configured using the smtp_dnsbl key in the zotonic.config file.

mod_component

This is an experimental module. It will be the basis of a new method of loading components in HTML pages. Components consist of HTML, javascript, and css. These parts can be dynamically loaded. Layout can/will be done using mithril.js.

This module will undergo significant changes, so use at your own risk. It is included to support some parties that use this in production.

Sanitization of content

iframe Elements and CSS are now sanitized. The iframes are sanitized using a whitelist of servers. Use the #sanitize_embed_url{} notification to add or remove servers from the whitelist. The current whitelist can be seen at the bottom of the src/support/z_sanitize.erl file.

Object tags referring to services like youtube are replaced with iframe tags.

This sanitization is also done on all embed codes of media items.

The CSS parser is strict and only allows well formed CSS. It also strips CSS that is known to be (potentially) dangerous:

  • loading external content
  • position: screen
  • some classes that are used internally in Zotonic
  • and some more

Check deps/z_stdlib/src/z_css.erl for the actual sanitizer code.

Social integration

The integration with social sites is completely redone. It is now possible to login (and signup) with Facebook, Twitter, LinkedIn, and Instagram.

It is also possible to import content from Twitter and Instagram. For this it is possible to define tags and/or users to follow. All matching content is imported into special categories. An optional image or embed code is also imported and added as part of the imported resource (so not as a separate depiction).

is_dependent Resources

A new flag is added to all resources: is_dependent

If this flag is set, and a connection to the resource is deleted, then Zotonic will check if there are any other incoming connections to the resource. If not then the resource will automatically be deleted.

This makes it possible to have resources (images, documents) that can only exist in the context of another resource. If that referring resource is deleted then the depending resources are deleted as well.

Automatic compile and load of changed files

The core system now starts either inotify-tools or fswatch, depending on which one is available. You have to install one of these to enable auto-compile and auto-load of changed files.

These are watching for any change to files in Zotonic and the sites.

If a file is changed then Zotonic will:

  • Recompile if a .erl file changed
  • Regenerate css if a .sass, .less or .scss file changed
  • Regenerate js if a .coffee file changed
  • Reindex the module index if a lib file changed (.css, .js, etc)
  • Reload translations if a .po file changed
  • Reload a module if a .beam file changed
  • Reload dispatch rules if a dispatch file changed

If a Zotonic module is reloaded then it will be automatically restarted it the function exports or the mod_schema is changed.

Commits since 0.12.0

There were 586 distinct commits (more than 600 in total) since release 0.12.0.

The committers were: Alain O’Dea, Arjan Scherpenisse, Arthur Clemens, David de Boer, Jeff Bell, Maas-Maarten Zeeman, Marc Worrell, Marco Wessel, Paul Guyot, Paul Monson, Sergei, Witeman Zheng, imagency, and 肥仔.

Besides these commits many people contributed to this release.

Big thanks to all of you!

Git shortlog

For clarity, some cherry-picks and development branch merges are removed from this list.

Alain O’Dea (2):

  • Fix#891
  • scripts: Fix activating core / user modules

Arjan Scherpenisse (63):

  • core: Move master up to 0.13-dev
  • mod_base_site: Small Bootstrap 3 fixes
  • core: Fix crashing make on initial build
  • core: When using locked deps, still add the deps from zotonic.config
  • scripts: Add “-v” argument to zotonic command to print the version
  • doc: Fix preinstall notes about buggy erlang versions
  • core: Disable sendfile support by default and make a note of this
  • Add release notes for 0.12.1
  • Add release notes for 0.11.1
  • Merge pull request #856 from Yozhig/patch-1
  • mod_search: Use binary parsing of stored query resource
  • Merge pull request #857 from Yozhig/master
  • mod_base: Add JSON source of the Zotonic logo font
  • build: Add 0.11 and 0.12 release branches to travis
  • build: Try to coerce Travis-CI not to run rebar get-deps by itself
  • core: Prefix z_db error messages with site name
  • mod_admin: Fix link to query documentation
  • mod_acl_simple_roles: Fix ACL check when category of rsc cannot be found
  • mod_twitter: Close login window when user denies login request
  • mod_development: Enable automatic recompilation on MacOS X
  • mod_twitter: Set all context vars when rendering logon_done template
  • mod_twitter: Show logon page in current context’s language
  • mod_survey: Add ‘submit’ API service
  • mod_video: Make command line to ffmpeg/ffprobe calls configurable
  • core: Add ‘preview_url’ to rsc export API call
  • mod_search: API: Add limit, offset, format arguments to search API
  • core: use epgsql 2.0.0 instead of master
  • mod_search: Add ‘finished’ search filter + documentation
  • core: Fix edocs build
  • mod_search: Add {finished} search method
  • doc: Clarify that finished/upcoming filters don’t perform sorting
  • doc: Fix sphinx configuration
  • Add release notes for 0.12.4
  • mod_survey: Month names in dutch are lower case
  • mod_content_groups: Put in ‘structure’ admin menu; fix dutch wording
  • core: Remove category information from rsc export
  • mod_content_groups: Put content group category in ‘meta’
  • mod_content_groups: Add .nl translation strings
  • mod_acl_user_group: Initial version
  • mod_search: Allow filtering resources on content group
  • Add acl rule model
  • Add ACL rule editor for module and rsc rules
  • mod_survey: Add ‘allow_missing’ request parameter
  • mod_admin: Place upload form in a block, allowing it to be easier overruled
  • mod_admin: (CSS) file input buttons have varying heights on different OSs
  • build: Bump Travis OTP version
  • m_hierarchy: Add parents/3 function
  • mod_acl_user_groups: Make ACL rules overview more usable
  • Add edit basics dialog for user with tab to set user groups + options
  • Let search box work on users page
  • Search placeholder text
  • Users overview: show all persons/institutions or only those with accounts
  • Create import/export function for rules
  • Fix compilation error in ACL rule export controller
  • mod_development: Don’t let sass create a source mapping
  • mod_development: Don’t let sass create a source mapping
  • doc: Remove reference to Ubuntu PPA
  • mod_survey: Fix results/printable page when survey rsc has page path
  • mod_admin_identity: Remove big ‘show all’ button when searching users
  • mod_admin_identity: Start with showing only users, not persons
  • core: z_media_preview: Do not add white space to small images when resizing
  • mod_base: Allow to set response headers from service API calls
  • mod_base: Correct ReqData attribute in API controller on processing POST

Arthur Clemens (160):

  • doc: update references to priv/config
  • admin: fix negative margins of editor
  • admin: make long filenames visible
  • admin: button dropdowns for admin overview filters
  • admin: remove @baseFont reference
  • admin: remove unused file
  • admin: fix nested links in table
  • admin: prevent nesting modal-body
  • admin: improve display of thumbnails
  • admin: hide redundant Category text
  • admin: increase y position of fake form fields
  • admin: NL translation fixes
  • admin: use translated string
  • mod_admin: bootstrap 3 uses class text-muted
  • admin: make muted a bit lighter
  • mod_acl_simple_roles: improve modules list
  • admin: fix tab order of form fields
  • admin: improve interface in various locations
  • admin: handle multiple lined tree list items
  • mod_signup: remove period from link
  • mod_authentication: remove period from header
  • mod_admin: organize less styles in separate files
  • mod_admin: block menu is right aligned
  • admin: remove extraneous space
  • admin: more reordering of less styles
  • mod_seo: optimize descriptions
  • admin: fix checkbox in language dropdown
  • mod_backup: use bullet list for warnings
  • mod_backup: typo
  • mod_editor_tinymce: add newest version
  • mod_editor_tinymce: add option to always use the newest version
  • mod_editor_tinymce: limit autoresize; fix resize handle bug
  • mod_admin: NL typos
  • mod_base: missing button style
  • mod_admin: break apart dashboard blocks for easier overriding
  • mod_admin: css tweaks
  • mod_admin: remove period from logged in user
  • mod_editor_tinymce: if no config, use newest
  • admin: multiple css fixes forms and edit blocks
  • admin: multiple css fixes forms and edit blocks
  • mod_admin: prevent disappearing of media images after undo
  • admin: formatting
  • mod_admin: use close button without glyphicon element
  • mod_admin: more horizontal forms
  • mod_acl_simple_roles: remove period from header
  • mod_oembed: activate upload button
  • mod_admin: make button dropdown alignment configurable
  • mod_acl_simple_roles: add titles to modules and category names
  • mod_base: fix dialog text
  • admin: remove periods from dialog headers
  • admin: minimal design of help buttons
  • mod_acl_simple_roles: fix div nesting
  • mod_admin: allow table parts to be not clickable
  • mod_admin: update table row hover, make colors consistent
  • admin: more horizontal forms
  • mod_acl_simple_roles: NL typo
  • admin: refactor tabs
  • mod_base: document params width and addclass in js source
  • mod_admin: preserve query string when changing category
  • mod_base: tweak debug info
  • mod_admin: improve stacked elements within widgets
  • mod_authentication: refactor logon templates
  • admin: fix insert depiction dialog
  • admin: various markup improvements
  • admin: fix nested treelist
  • mod_admin: layout and translation of dialog Duplicate Page
  • mod_admin: handle empty cat param value
  • mod_admin: enable “All pages” button when qcat is defined
  • mod_admin: consistent New Page dialog header
  • mod_admin_config: consistent field widths
  • mod_admin: also update dashboard button row
  • doc: add action set_class
  • mod_base: remove unused line of code
  • mod_admin: show unpublished state in connected media
  • mod_admin: make white borders in media visible
  • mod_admin: show crop center in connection overview
  • mod_admin: smaller crop center lines
  • mod_base: support dialog option backdrop “static”
  • mod_admin: support em-based buttons in button row
  • mod_artwork: add font awesome 4
  • mod_artwork: add zotonic logos
  • doc: update logo and link style
  • Merge pull request #896 from pmonson711/readme_fixes
  • mod_artwork: rename logo folder to “zotonic”
  • mod_base: extend logo font to include general icons for Zotonic modules
  • admin: use zotonic icons
  • mod_admin: remove unused files
  • admin: general layout fixes
  • zotonic_status: make responsive, update appearance
  • fix gitignore
  • zotonic_status: add less files
  • mod_base: update favicon
  • Remove unused files
  • mod_base: simplify icon creation; add extending FA icons
  • mod_base: replace some icons with FA versions, add button styles
  • mod_admin: update with mod_base changes
  • zotonic_status: notification tweaks
  • mod_base: make extra tag more compatible
  • mod_base: allow other libs to import z.icons.less
  • mod_base: bring back (predictable) circle icons
  • doc: typo
  • mod_base: add non-circle icons
  • mod_base: make icon extend cleaner
  • mod_admin: mobile tweaks
  • mod_base: hide original x char
  • doc: restructure actions
  • admin: include font-awesome version 4
  • doc: typo
  • mod_base_site: add icon css
  • doc: sort lines
  • doc: restructure filters
  • basesite: remove old fix for logo image
  • mod_filestore: use 0 if archive size is undefined
  • mod_filestore: tidy up html
  • Don’t crash when email is undefined
  • doc: formatting
  • doc: Document template models
  • mod_development: flush when translation file changes
  • doc: remove deprecated %stream%
  • mod_authentication: document template structure
  • mod_authentication: remove superseded templates
  • mod_authentication: better defaults for social login buttons
  • mod_authentication: doc tweak
  • mod_facebook: typo
  • admin: tidy up Authentication Services page
  • admin: fix zlink from editor, remove superseded template
  • mod_admin: fix layout person form
  • mod_admin: tidy email table
  • Social login: use FB compliant “Login with…”
  • mod_base: make Z icons independent of FontAwesome
  • mod_base: include all font source files
  • mod_base: add social login icons
  • social login: use icons and update brand colors
  • doc: add icons documentation
  • mod_admin: remove confusing text
  • mod_admin: layout tweaks
  • translation tweaks (NL)
  • mod_authentication: make login work in dialog
  • mod_base: clean up documentation
  • mod_admin: include icons css instead of recreating with less
  • mod_authentication: shorter messages
  • mod_authentication: layout tweaks
  • mod_authentication: let admin logon use modal screens
  • mod_authentication: default no box
  • mod_base: add share icon
  • mod_video_embed: add bootstrap responsive class
  • mod_base_site: better defaults
  • Revert “mod_video_embed: add bootstrap responsive class”
  • doc: document ‘page_url with’ syntax
  • doc: document more use cases for |if
  • mod_bootstrap: version 3.3.2
  • doc: show css output when extending icons
  • validation: provide message_after param to templates
  • Authentication and signup: template refactoring
  • doc: reword solution
  • mod_artwork: add Material Design icons
  • Fix log in verb
  • mod_bootstrap: update update script
  • mod_bootstrap: fix sourceMappingURL replacement
  • mod_bootstrap: update to v3.3.4

David de Boer (10):

  • Make menu_subtree compatible with names
  • Remove is_integer check for cc5d94
  • Create database when starting site
  • Add docs
  • Connect to “postgres” when creating database
  • Fix page block links
  • Fix modal signup
  • mod_base: Allow to return 401 from API services
  • mod_base: Decode JSON body in service calls
  • Allow post-login redirect to be passed to logon modal

Jeff Bell (3):

  • mod_admin: Flushed out ability to save [object, predicate] pairs when creating new rsc using the dialog_new_rsc action.
  • CONTRIBUTORS: added myself to CONTRIBUTORS file
  • mod_admin: action_admin_dialog_new_rsc fix

Maas-Maarten Zeeman (43):

  • core: Fixes IE problems in zotonic js
  • core: IE8 fixes for ubf js
  • build: Added delete-deps
  • core: Prune context and spawn notifier process only when needed
  • core: Remove error and close handlers before ws restarts.
  • build: Fix make clean
  • core: Fix z_sites_dispatcher so it accepts empty paths. Fixes #842
  • core: Added recon application
  • mod_base: Removed commented out code.
  • mod_seo: Make noindex and notrack configurable from templates
  • Changed the websocket implementation.
  • Removed comment to fix edoc generation
  • mod_base: More careful websocket handshake.
  • core: Fix: return default when there is no session.
  • core: Export function to create a checksummed url for css and js lib files.
  • mod_component: Added new module to make and use components on your page.
  • fix for lazy loading css
  • core: prevent reconnecting a ws when the page is unloading
  • mod_base: Close websocket when unloading page. Fixes #898
  • core: Fix a problem with mapping topic names to local names.
  • Merge pull request #909 from witeman/emqtt_auth_issue
  • mod_component: Fix bug in initilizing an already loaded component. Typo
  • core: Make sure the z_file_entry fsm uses correct timeouts
  • mod_component: delegate onunload to the component controller
  • mod_component: updated mithril.js
  • mod_component: Ignore load requests for components not in pending state
  • z_utils: Allow trusted js values.
  • mod_mqtt: Add an ack callback to subscribe calls.
  • core: Fix for postback triggered by mqtt events.
  • mod_admin_identity: Fix for adding email addresses
  • core: Removed compile warning
  • mod_component: Make it possible to use iolist init scripts
  • core: Cache generated link and script tags when mod_development is disabled
  • core: Do a session_context fold to get the right values in the context. Fixes language problem in websockets.
  • core: Make acceptor_pool_size configurable. Fixes #923
  • core: change default number of acceptors to 75.
  • mod_acl_simple_roles: Fix to prevent blanking out all acl settings when role rsc is changed.
  • mod_base_site: Make configuring the site’s navbar logo easier
  • mod_base_site: Minor base template fixes.
  • filewatcher: fix, file_changed/2 moved
  • mod_base_site: Fixed typo
  • mod_base: Make synchronous ajax requests when the page is unloading
  • mod_search: Make it possible to pass rsc_lists as parameter to hasanyobject.

Marc Worrell (280):

  • smtp: Initialize e-mail server settings on startup. This is needed now that disc_copies are used.
  • mod_survey: evaluate empty jump conditions to ‘true’
  • mod_menu: fix for passing the item_template option to the server when adding items.
  • core: do not delete/insert edges when changing the order via mod_menu
  • core: remove nested transaction from the z_edge_log_server check.
  • mod_admin: if date is not editable, display it as text.
  • mod_admin: more generic css for .category spans.
  • mod_menu/mod_admin_frontend: enable editing of collections as side-menu.
  • mod_menu: bootstrap3 change.
  • core: add mime type exception for WMA files, they were recognized as video files.
  • core: remove debug statement from m_media
  • core: fix concatenating certain combined file streams.
  • filestore: use filezcache:locate_monitor/1 to let the filezcache track z_file_entry processes. Fix difference in keys for uploading and * downloading. Better debug/info messages.
  • mod_admin_identity: prevent Safari autofilling username/passwords in new user-account forms. Fixes #811
  • translation: added some missing nl translations.
  • erlydtl: allow lookup of var.key for a list [{<<key>>, …}]
  • core: m_rsc:p_no_acl/3 request for a non-existing resource should return ‘undefined’, just like m_rsc:p/3.
  • core: For websocket, keep reqdata information for ‘is_ssl’ checks. When pruning for contexts, keep socket info for the is_ssl check.
  • core: add sanitization of text/html-video-embed. Move #context handling out of z_html to z_sanitize.
  • core: add acl mime check to m_media:replace/3.
  • mod_admin: when replacing a media item, show the oembed/video-embed panels for embedded content.
  • base: refactor the moreresults action.
  • m_identity: don’t crash if #identity_password_match{} doesn’t match any observers.
  • core: add lager warnings when modules are stopped.
  • core: lager info with modules to be started.
  • mod_tkvstore: don’t start as named module.
  • admin: force to select category when adding new content.
  • menu: edge menu sorter has a problem with sorting nested collections. Disable sorting for now.
  • core: module start/stop progress messages are now debug level.
  • core: add m.modules.active.mod_foobar to test if a modules is active. Remove checks with the code server if a module is running.
  • m.modules: replace usage of m.modules.info. with m.modules.active.
  • core: on context prune-for-scomp, leave an empty list for request headers. Normalize user-agent lookup.
  • core: fix args for transport ack.
  • mod_email_receive: when adding recipiens, catch references to non existing rsc
  • core: make session cookie name configurable (solves problems where old cookies might interfere, especially on Chrome)
  • Merge pull request #864 from driebit/fix-menu-subtree-name
  • Merge pull request #865 from driebit/remove-is-int-menu-subtree
  • core: z_search: fix acl check sql query.
  • mod_survey: allow printable overview if user has edit rights.
  • mod_base: remove extra </div> from phone/_navbar
  • mod_admin: remove api dispatch rule, also defined in mod_base.
  • mod_base: for catinclude, don’t assign passed categories to ‘id’. Only assign a resource id to id.
  • mod_menu: remove console.log message.
  • core: allow a non-integer category id to be passed to all_flat/2
  • mod_admin/mod_admin_frontend: preparations to allow creation of resources via the edit page.
  • core: allow setting any rsc property that is ‘undefined’ to ‘false’.
  • core: ensure all db timestamp columns have a time zone.
  • mod_menu: correct pubzub.publish topic.
  • mod_admin_frontend: fix a problem where combining the nestedSortable.js lib with other js files will result in errornous drag behaviour
  • mod_menu/admin_frontend: final fix for new-page topic on menu insertion.
  • core: removed debug from z_pivot_rsc
  • core: fix problem where the custom redirects form was not saved
  • core: fix problem where mod_signed_url could not keep the user logged on.
  • mod_mqtt: fix problem where removing one topic listener removed all listeners. Cleanup live subscriptions for removed elemnts.
  • core: added comment explaining expire_1 and expire_n for sessions. Issue #881
  • Merge pull request #880 from witeman/mod_authentication_logon_display_bugfix
  • smtp: more relaxed error handling for spamd errors.
  • install: use openssl to generate the admin password, as tr/urandom combo hangs on OS X. Fixes #847
  • mod_base: do not redirect if redirect id is set to undefined
  • mod_base: in do_popupwindow use e.preventDefault() to play nice with multiple click event listeners.
  • mod_mqtt: fix js error in for loops.
  • core: the {% script %} tag has now arguments.
  • mod_authentication: Refactor twitter/facebook logon and signup code.
  • mod_facebook: add delegate for saving settings.
  • mod_base: fix js error in livevalidation.
  • mod_authentication: export send_reminder/2 and lookup_identities/2.
  • Merge pull request #872 from driebit/auto-create-db
  • docs: adapt docs to changes in files.
  • core: fix specs in z_db.
  • mod_oembed: remove http: protocol from embed html, this enables content to be viewable on https: pages.
  • core: add exceptions for .xls and .xlsx files to z_media_identify. Fixes #893
  • media/embed: fixes for twitter streaming, added notifications for importing and analyzing fetch url media-data.
  • mod_search: allow dates like ‘now’ and ‘+2 weeks’ in search questions.
  • mod_admin: return the correct context in controller_admin_media_preview
  • mod_translation: add more rtl languages.
  • mod_twitter: fix edoc problem.
  • doc: add mod_component.
  • mod_oembed: don’t display the media twice in the admin
  • docs: added 0.12.2 release notes
  • mod_oembed: add missing fallback _oembed_embeddable.tpl
  • mod_oembed/mod_twitter: prefer our own ‘website’ extraction above oembed links. Pass the tweet url in the import_resource notification
  • mod_twitter: fix import of tweets with special-html chars, was double escaped in title.
  • mod_admin: always show media content, independent if size was defined.
  • mod_oembed: sanitize received oembed code html and texts.
  • core: add instagram js and urls to whitelist.
  • mod_survey: fix problem where displaying the results did not work due to move sanitization functions.
  • core: lock new z_stdlib library. Fix twerl git url. Fixes #895
  • docs: fix length of header-underline
  • docs: add 0.12.3 release notes
  • Merge pull request #897 from driebit/connect-postgres-db
  • core: refactor database creation on site init.
  • mod_authentication: add authentication via LinkedIn. Add possibility to connect/disconnect accounts with FB/LinkedIn/Twitter. Fix * redirects after using an external service for authentication. List connected authentication services in the password reminder email.
  • mod_linkedin: modify template for bootstrap3
  • m_identity: fix spec of get_rsc_types/2
  • mod_admin_identity: some extra padding for the identity verification page.
  • mod_authentication: add optional page_logon for logon-title and an alert box on the logon page.
  • mod_authentication: add special error message if there are cookie problems and the current browser is Safari 8. Issue #902
  • mod_signup: show external auth services for signup using the logon methods. Also always force the presence of a username_pw identity for * signed up users.
  • mod_linkedin: seems LinkedIn doesn’t like URL encoded secrets?
  • mod_admin: also log stacktrace on a catch.
  • mod_oembed/mod_video_embed: fix problem with access rights if new media insert was done without admin rights.
  • core: set the edge’s creator_id on insert
  • mod_survey: fix ‘stop’ survey button.
  • core: fix stacktrace shown in transport lager messages.
  • core: move erlang:get_stacktrace() outside of lager calls. Otherwise a stacktrace of lager will be shown due to the parse transforms.
  • mod_twitter: Fix twitter redirect url
  • mod_admin: add pubzub and some related javascripts. needed for live tags etc.
  • mod_authentication/mod_twitter/etc: changes for new font-awesome, bs3 and some small tpl fixes
  • mod_oembed: don’t crash on oembed connect timeouts.
  • mod_instagram: authenticate and import tags from Instagram
  • core: fix problem where erlydtl_runtime crashed on fetching a value from a ‘time_not_exists’ atom.
  • core: truncate the slug at 78 characters.
  • core: fix in m_identity where fetching email identities could loop on a check if the email property was known as an identity.
  • mod_base: handle ping/pong websocket control frames, remove name conflict with zotonic ping/pong.
  • mod_linkedin: try to workaround a problem where LinkedIn doesn’t recognize the Access Token it just handed out.
  • mod_linkedin: work around for a problem with access-tokens at linkedin.
  • core: allow binaries for some special keys.
  • mod_import_csv: major changes to mod_import_csv.
  • mod_instagram: fix property name in comment.
  • mod_import_csv: added checks to the model creation.
  • mod_base: check dialog height repeatingly, account for rounding errors in height calculation.
  • core: add ‘expected’ option to m_rsc:update.
  • mod_l10n: add utf-8 encoding hints to source file
  • mod_l10n: adaptations for utf8 parsing changes in R17
  • core: fix for importing structured blocks (like during imports)
  • core: on startup z_dropbox moves now all processing files to unhandled.
  • core: z_datetime:to_datetime/1 now also handles numerical timestamps.
  • core: m_rsc:update now converts non-tuple dates and handles creator/modified on import correctly.
  • mod_import_csv: fixes for file handling and medium_url imports.
  • core: fix problem in m_rsc:update where modified was not set on save.
  • mod_base: added the filter ‘trans_filter_filled’
  • core: remove unreachable code.
  • docs: added placeholders.
  • mod_import_csv: fix handling of blocks. Add support for ‘blocks.name.field’ keys in m_rsc:update
  • core: add compile/0 and /1 to z.erl, for compiling without flush.
  • docs: added xelatex target to generate PDF.
  • mod_mqtt: allow topics like [‘~site’, ‘rsc’, 1234].
  • mod_admin_identity: typo in translation.
  • mod_admin_identity: publish identity changes to the topic ~/rsc/1234/identity.
  • core: added e.issuu.com and static.issuu.com to the sanitizer whitelist.
  • mod_import_csv/core: fixes for importing categories, new properties, corrected basename in #import_csv_definition{}
  • doc: cleanup of pdf version.
  • docs: add link to the pdf version.
  • docs: better link text to the pdf version.
  • docs: move the cookbooks to their own top level chapter.
  • docs: correct the {% call %} documentation.
  • skel: add mod_mqtt to the base site, as it is needed by mod_admin
  • core: correct the language utf8 encoding for R16+
  • mod_base: added filter trans_filter_filled/3 export.
  • mod_admin: fix a problem where quick-editing a rsc adds all enabled languages.
  • mod_base: filter-sort of undefined is undefined.
  • core: correctly parse multipart/signed emails.
  • core: better handling of errornous urls for the z_file/media routines.
  • core: extra utf8 sanitization of received email’s subject, text, html and from.
  • mod_content_groups: new module to categorize content into groups for the access control.
  • m_hierarchy: merge m_menu_hierarchy and m_category into m_hierarchy. m_category now interfaces to m_hierarchy.
  • Merge pull request #922 from imagency/master
  • Merge pull request #921 from CyBeRoni/configure-dbcreation
  • core: added support for ‘is_dependent’ flag.
  • core: set longer timeout for renumber_pivot_task query.
  • core: check if rsc existed before adding a rsc_gone entry.
  • mod_admin_identity: correct the button class on the identity verification page.
  • mod_mailinglist: more efficient query for polling scheduled mailings.
  • mod_mqtt: allow ‘live’ wiring postbacks to mqtt topics, depending on the presence of an element-id.
  • mod_email_status: new module to track email recipient status. Changes to the email bounce, sent and failure notifications.
  • docs: fix length of header underline.
  • docs: add mod_email_status placeholders.
  • mod_email_status: fix problem with re-installing the model.
  • mod_email_status: handle non-binary error status values.
  • mow_acl_user_groups: first working version. To do: docs and test interface.
  • mod_menu: breack cyclic dependency [mod_acl_user_groups,mod_authentication,mod_admin,mod_menu,mod_content_groups]
  • Merge pull request #933 from driebit/fix-page-block-links
  • Merge pull request #936 from CyBeRoni/override-pidfile
  • mod_base: remove ‘render-update’ observer, leave template rendering to modules for more control
  • mod_l10n: add some extra country-name to country-code mappings.
  • mod_l10n: fix iso lookup of Serbia and Montenegro
  • core: add log message when adding rsc.is_dependent and rsc.content_group_id.
  • core: add is_meta/2 function to test if a category is a meta category, needed for determining the default content group in m_rsc:get/2
  • mod_content_groups: use the m_category:is_meta/2 to determine the default content group.
  • mod_content_groups: convert tabs to spaces.
  • mod_acl_user_groups: fix search restriction if user can’t see any content groups.
  • core: fix progressbar for form posts with body.
  • mod_content_groups: fix adding content_group_id for #rsc_get{} on an non-existing resource.
  • mod_base: added the action update_iframe
  • mod_email_status: add status dialog and simple templates to see the status of an email address.
  • mod_base: missing part of the update_iframe addition
  • mod_base: cross-platform fix for update_iframe
  • mod_survey: add is_autostart option. Fix some minor template errors.
  • core: use ‘optional’ includes for blocks.
  • mod_survey: use the ‘optional’ include for the templates.
  • core: normalize the name of the z_update_iframe JS function with its Erlang equivalent.
  • mod_import_csv: Force convert to utf8 of the top row. Add test for ‘;’ as a column separator.
  • core: fix ‘next’ page number for queries returning a #search_result{}.
  • mod_admin: use search query ‘admin_overview_query’ for the overview page if it is defined.
  • mod_admin: add admin_content_query, also displayed in the content menu.
  • mod_admin: enable ‘all pages’ button if a qquery is defined.
  • core: ensure that the compiled template’s name equals the one found via an (optional) catinclude. Issue #938
  • mod_content_groups: 17.x compatibility for string with unicode character (breaks 15.x)
  • mod_survey: fix crash on prep_answer if question name is not unique
  • core: fix sql query in category delete.
  • mod_acl_user_groups/mod_content_groups: ensure the hierarchy if the content/user groups are changed.
  • mod_admin: in tree-list, show the category in gray.
  • core: escape filenames using a single quot. Fixes #924
  • core: shortcut for lib file lookup without filters (don’t check the file store)
  • core: add mod_mqtt to the default installed modules (as it is a dependency of mod_admin).
  • core: fix m_category/2 lookup. Thanks to Alvaro Pagliari.
  • Merge pull request #946 from AlainODea/BUGFIX_issue891
  • core: fix problem where a gmail autoreply was classified as a bounce. Fix tracking of some email errors. Started collecting email test data.
  • mod_email_status: change info message about previous problems.
  • mod_admin: pass all strings from the new-rsc dialog form. Fixes #948
  • mod_acl_user_groups: when changing category/content-group, show the meta category if the id is a meta or the current user is 1 (the admin)
  • Merge branch ‘master’ into acl-content-groups
  • zotonic_status: use default ‘post’ method for the logon form to prevent showing the password if there is a js error.
  • mod_linkedin: adaptations for LinkedIn API changes.
  • mod_linkedin: fix for picture-url.
  • mod_search: fix a problem where a ‘hassubject=[…]’ query term was incorrectly parsed. Fixes #950
  • mod_survey: change the thank you text, remove the ‘Be sure to come back for other surveys’ text.
  • mod_search: add cat_exact query argument.
  • mod_base: fix html_escape function in zotonic-1.0.js
  • mod_admin_identity: on the users page, only show those with a username_pw entry. Issue #747
  • mod_admin_identity: show ‘email status’ buttons if mod_email_status is enabled.
  • mod_search: add 2nd ordering on -publication_start to featured search.
  • mod_search: fix search_query for ‘hasobject=123’. Fixes #953
  • core: do not create atoms from rsc names in catinclude.
  • core: add tick_10m and tick_6h notifications
  • core: fix a problem where ImageMagick identified PDF files as PBM.
  • core: cleanup location_lat/lng update/pivot code.
  • mod_base: in scomp_lazy, ensure the ‘visible’ argument to all ‘moreresults’ actions
  • Merge pull request #955 from pguyot/patch-2
  • Merge pull request #956 from pguyot/patch-3
  • mod_admin: pass all strings from the new-rsc dialog form. Fixes #948
  • Merge pull request #958 from driebit/fix-signup-delegate
  • core: adding some test data for smtp tests.
  • Merge pull request #960 from trigeek38/fix-dialog-new-rsc
  • Merge pull request #961 from trigeek38/fix-my-fix
  • mod_admin_identity: fix user query.
  • mod_admin: make action admin_dialog_new_rsc more robust against illegal objects arg
  • mod_admin_identity: small changes/fixes to the users query.
  • mod_acl_user_groups: add ‘block’ option to access control rules. Update the view via a ‘live’ subscribe.
  • Start removing R15 support.
  • core: move more code into the m_hierarchy update to prevent race conditions.
  • core: in m_hierarchy, lock the rows of a hierarchy when updating.
  • core: trace module (re-)loads and restart modules if any exported functions are changed. Issue #964
  • core: bit more silent start/stop of modules.
  • core: add realtime block list checks for incoming email. Needs updated z_stdlib.
  • mod_development: move fswatch/inotify to the core.
  • core: add cli commands ‘zotonic startsite|stopsite|restartsite’. Fixes #964
  • core: fix delete of timer in fswatch.
  • core: log warnings if trying to insert duplicate rsc name/uri/path
  • Fixes for language handling. Allow undefined pref_language for user. Filter on valid language code on pref_language upate. Show select list * with all valid languages in /admin/translation.
  • core: add m_rsc ‘is_linkable’ lookup, also in z_acl and m_acl
  • docs: add placeholders for ACL documentation.
  • mod_search: allow search terms in texts without ‘=value’ arg, map to ‘=true’. Fixes #970
  • [docs] proposal for site-fsm
  • [core] add possibility to fetch sub-trees from a hierarchy. Example: m.hierarchy.content_group[id].tree1
  • [docs] A websocket connection is opened by the browser, accepted by the server.
  • mod_menu: fix issue that on insertion of a new item it is added to all sub-menus. Fixes #971
  • mod_search: add query term ‘hasanyobject’, to search using an ‘or’ on outgoing edges. Fixes #968
  • mod_acl_user_groups: new import/export version of the acl rules. Include the content groups, user groups and hierarchies in the export.
  • mod_acl_user_groups: move ensure_name to the core m_rsc module.
  • mod_menu: in the menu-editor, add open/close buttons for submenus. This makes editing big lists easier.
  • docs: fix documentation of smtp server settings. Also fix z_config settings.
  • core: name correction, the bounce server is a complete smtp receive server.
  • docs: clarification of the bounce addresses.
  • core: allow pivot task to return {delay, DateTime}.
  • core: fix a problem where m_rsc:ensure_name/2 could insert duplicate names. Fixes #974
  • core: add reserved usernames to prevent users signing up as these. Fixes #929
  • core: if some reserved username was taken, allow to update the password. Issue #929
  • core: allow diff between Date and DateTime.
  • core: add ‘flickrit.com’ to the iframe whitelist.
  • core: copy tmpfiles if they are mailed, add periodic cleanup of the tmp folder. Fixes #972
  • core: fix a problem where a fulltext search with an empty category list didn’t return any results. Fixes #976
  • core: fix mqtt login, don’t start a session_page if there is no session or reqdata. Fixes #973
  • mod_admin: fix problem where the lazy-loader for moreresulsts kept loading till no results where left.
  • Set version number to 0.13.0
  • Lock deps
  • docs: 0.13.0 release notes and some extra (minimal) documentation.
  • docs: add tentatve 0.13.0 release date
  • core: determine mime type of attachments if it was not given.
  • core: use ‘rebar’ to compile zotonic from the command line. Move .yrl output to default location for rebar. > Use skip_deps for ‘make compile-zotonic’. Add ‘make refresh-deps’ and ‘make list-deps’. Fixes #978

Marco Wessel (4):

  • Allow configuration of db creation and installation
  • Add commented dbinstall/dbcreate options + explanation
  • Add warning message that db won’t be created or installed
  • Allow to override pidfile location with env var

Paul Guyot (3):

  • Fix typo in _block_view_survey_thurstone.tpl
  • Handle &# entities when splitting markers
  • mod_survey: Fix multi & single HTML structure for thurstone checkboxes

Paul Monson (1):

  • Update README link

Sergei (2):

  • fix dependencies build order
  • force rebar to build ‘setup’ app

Witeman Zheng (1):

  • mod_authentication: fix logon_box form input “password”

imagency (12):

  • Tinymce support for Russian

肥仔 (2):

  • emqtt_auth_zotonic issue would cause crashed when mqtt client try to connect onto it.
  • Fix the emqtt client connection issue.

Edit on GitHub