mediagoblin.git
11 years agoremoved extra argument from check_login_simple in login view
Rodney Ewing [Tue, 28 May 2013 16:56:16 +0000 (09:56 -0700)]
removed extra argument from check_login_simple in login view

11 years agocleanup
Rodney Ewing [Tue, 28 May 2013 16:28:59 +0000 (09:28 -0700)]
cleanup

11 years agoMerge remote-tracking branch 'upstream/master' into basic_auth
Rodney Ewing [Tue, 28 May 2013 16:20:35 +0000 (09:20 -0700)]
Merge remote-tracking branch 'upstream/master' into basic_auth

Conflicts:
mediagoblin/auth/tools.py
mediagoblin/auth/views.py
mediagoblin/plugins/basic_auth/tools.py

11 years agocleanup
Rodney Ewing [Tue, 28 May 2013 16:05:05 +0000 (09:05 -0700)]
cleanup

11 years agoConflicts:
Rodney Ewing [Tue, 28 May 2013 02:34:49 +0000 (19:34 -0700)]
Conflicts:
mediagoblin/auth/tools.py
mediagoblin/auth/views.py
mediagoblin/plugins/basic_auth/tools.py

11 years agoadded a register_user function
Rodney Ewing [Fri, 24 May 2013 19:52:14 +0000 (12:52 -0700)]
added a register_user function

cherry picked from rodney757 and fixed for out of order
picking.

11 years agocreated a check_login_simple function
Rodney Ewing [Sat, 25 May 2013 14:59:03 +0000 (07:59 -0700)]
created a check_login_simple function

cherry-picked from rodney757, fixed few conflicts due to
out of order cherry-picking. Thanks to rodney757 for making
my idea even better.

11 years agomoved email_debug_message to gmg/tools/mail
Rodney Ewing [Fri, 24 May 2013 19:48:29 +0000 (12:48 -0700)]
moved email_debug_message to gmg/tools/mail

11 years agomoved send_verification_email to auth/tools
Rodney Ewing [Fri, 24 May 2013 19:26:45 +0000 (12:26 -0700)]
moved send_verification_email to auth/tools

11 years agoremoved unused import
Rodney Ewing [Thu, 23 May 2013 21:56:32 +0000 (14:56 -0700)]
removed unused import

11 years agoCommitting extracted and compiled translations
Christopher Allan Webber [Mon, 27 May 2013 18:55:06 +0000 (13:55 -0500)]
Committing extracted and compiled translations

11 years agomodified get_user function to take kwargs instead of username
Rodney Ewing [Mon, 27 May 2013 18:13:23 +0000 (11:13 -0700)]
modified get_user function to take kwargs instead of username

11 years agono need for user might be email kwarg in check_login_simple
Rodney Ewing [Mon, 27 May 2013 17:38:09 +0000 (10:38 -0700)]
no need for user might be email kwarg in check_login_simple

11 years agoMerge branch 'pre-auth' into basic_auth
Rodney Ewing [Mon, 27 May 2013 16:04:53 +0000 (09:04 -0700)]
Merge branch 'pre-auth' into basic_auth

Conflicts:
mediagoblin/auth/tools.py
mediagoblin/auth/views.py
mediagoblin/plugins/basic_auth/tools.py

11 years agomoved fp_verification_email to auth/tools
Rodney Ewing [Mon, 27 May 2013 15:57:56 +0000 (08:57 -0700)]
moved fp_verification_email to auth/tools

11 years agocreated a check_login_simple function
Rodney Ewing [Sat, 25 May 2013 14:59:03 +0000 (07:59 -0700)]
created a check_login_simple function

11 years agoadded a register_user function
Rodney Ewing [Fri, 24 May 2013 19:52:14 +0000 (12:52 -0700)]
added a register_user function

11 years agomoved email_debug_message to gmg/tools/mail
Rodney Ewing [Fri, 24 May 2013 19:48:29 +0000 (12:48 -0700)]
moved email_debug_message to gmg/tools/mail

11 years agomoved send_verification_email to auth/tools
Rodney Ewing [Fri, 24 May 2013 19:26:45 +0000 (12:26 -0700)]
moved send_verification_email to auth/tools

11 years agoremoved unused import
Rodney Ewing [Thu, 23 May 2013 21:56:32 +0000 (14:56 -0700)]
removed unused import

11 years agochanged User model pw_hash field to nullable and added migrations
Rodney Ewing [Thu, 23 May 2013 21:33:56 +0000 (14:33 -0700)]
changed User model pw_hash field to nullable and added migrations

11 years agono need for check_login with the new check_login_simple function
Rodney Ewing [Mon, 27 May 2013 15:54:25 +0000 (08:54 -0700)]
no need for check_login with the new check_login_simple function

11 years agorenamed lib to tools
Rodney Ewing [Mon, 27 May 2013 15:43:12 +0000 (08:43 -0700)]
renamed lib to tools

11 years agocleanup after merge
Rodney Ewing [Mon, 27 May 2013 15:39:34 +0000 (08:39 -0700)]
cleanup after merge

11 years agoMerge branch 'pre-auth' into basic_auth
Rodney Ewing [Mon, 27 May 2013 15:25:22 +0000 (08:25 -0700)]
Merge branch 'pre-auth' into basic_auth

Conflicts:
mediagoblin/auth/tools.py
mediagoblin/auth/views.py
mediagoblin/db/migrations.py
mediagoblin/plugins/basic_auth/lib.py
mediagoblin/plugins/httpapiauth/__init__.py
mediagoblin/plugins/piwigo/views.py

11 years agoExtract footer into bits/base_footer.html.
Elrond [Sun, 26 May 2013 11:29:02 +0000 (13:29 +0200)]
Extract footer into bits/base_footer.html.

11 years agocreated a check_login_simple function
Rodney Ewing [Sat, 25 May 2013 14:59:03 +0000 (07:59 -0700)]
created a check_login_simple function

11 years agoadded a register_user function
Rodney Ewing [Fri, 24 May 2013 19:52:14 +0000 (12:52 -0700)]
added a register_user function

11 years agomoved email_debug_message to gmg/tools/mail
Rodney Ewing [Fri, 24 May 2013 19:48:29 +0000 (12:48 -0700)]
moved email_debug_message to gmg/tools/mail

11 years agomoved send_verification_email to auth/tools
Rodney Ewing [Fri, 24 May 2013 19:26:45 +0000 (12:26 -0700)]
moved send_verification_email to auth/tools

11 years agoremoved unused import
Rodney Ewing [Thu, 23 May 2013 21:56:32 +0000 (14:56 -0700)]
removed unused import

11 years agochanged User model pw_hash field to nullable and added migrations
Rodney Ewing [Thu, 23 May 2013 21:33:56 +0000 (14:33 -0700)]
changed User model pw_hash field to nullable and added migrations

11 years agomoving forgot_password views back to gmg/auth and cleanup
Rodney Ewing [Sat, 25 May 2013 01:09:57 +0000 (18:09 -0700)]
moving forgot_password views back to gmg/auth and cleanup

11 years agofixed failing tests after rebase
Rodney Ewing [Thu, 23 May 2013 20:55:11 +0000 (13:55 -0700)]
fixed failing tests after rebase

11 years agoadded gen_password_hash and check_password functions to auth/__init__
Rodney Ewing [Thu, 23 May 2013 20:28:03 +0000 (13:28 -0700)]
added gen_password_hash and check_password functions to auth/__init__

11 years agoadded focus to form input
Rodney Ewing [Thu, 23 May 2013 20:22:13 +0000 (13:22 -0700)]
added focus to form input

Conflicts:
mediagoblin/auth/views.py
mediagoblin/plugins/openid/views.py

11 years agomodified basic_auth.check_login to check that the user has a pw_hash first
Rodney Ewing [Thu, 23 May 2013 20:20:13 +0000 (13:20 -0700)]
modified basic_auth.check_login to check that the user has a pw_hash first

11 years agochanged occurances of form.data['whatever'] to form.whatever.data
Rodney Ewing [Thu, 23 May 2013 20:18:47 +0000 (13:18 -0700)]
changed occurances of form.data['whatever'] to form.whatever.data

Conflicts:
mediagoblin/plugins/basic_auth/__init__.py
mediagoblin/plugins/openid/__init__.py

11 years agocheck if password field present in basic_auth create_user
Rodney Ewing [Tue, 21 May 2013 18:28:56 +0000 (11:28 -0700)]
check if password field present in basic_auth create_user

11 years agoadded a register_user function to be able to use in a plugin's register view, and...
Rodney Ewing [Mon, 20 May 2013 18:48:40 +0000 (11:48 -0700)]
added a register_user function to be able to use in a plugin's register view, and modified auth/views.register to redirect to openid/register if appropriate.

11 years agoModified basic_auth plugin to work with modified auth plugin hooks. Added context...
Rodney Ewing [Mon, 20 May 2013 15:45:04 +0000 (08:45 -0700)]
Modified basic_auth plugin to work with modified auth plugin hooks. Added context variables. Removed basic_auth/tools which was previously renamed to basic_auth/lib.

11 years agomodified auth/__init__ hooks to work better with multiple plugins. Removed auth/lib...
Rodney Ewing [Mon, 20 May 2013 15:10:19 +0000 (08:10 -0700)]
modified auth/__init__ hooks to work better with multiple plugins. Removed auth/lib.py. And added a basic_extra_verification function that all plugins will use.

11 years agoremoved check_login from db mixin
Rodney Ewing [Mon, 20 May 2013 14:45:17 +0000 (07:45 -0700)]
removed check_login from db mixin

11 years agoadded Copyright header to basic_auth/forms.py
Rodney Ewing [Fri, 17 May 2013 20:06:46 +0000 (13:06 -0700)]
added Copyright header to basic_auth/forms.py

11 years agomoved fake_login_attempt to plugins
Rodney Ewing [Fri, 17 May 2013 18:03:41 +0000 (11:03 -0700)]
moved fake_login_attempt to plugins

11 years agolog a previously logged in user when switched to no_auth mode
Rodney Ewing [Fri, 17 May 2013 17:50:46 +0000 (10:50 -0700)]
log a previously logged in user when switched to no_auth mode

11 years agomade basic_auth a default plugin
Rodney Ewing [Fri, 17 May 2013 17:28:43 +0000 (10:28 -0700)]
made basic_auth a default plugin

11 years agoadded tests for no_auth feature
Rodney Ewing [Fri, 17 May 2013 17:20:46 +0000 (10:20 -0700)]
added tests for no_auth feature

11 years agochanged from sys.exit() to raise AuthError for handling no_auth=false in config and...
Rodney Ewing [Fri, 17 May 2013 14:51:08 +0000 (07:51 -0700)]
changed from sys.exit() to raise AuthError for handling no_auth=false in config and no auth plugin present

11 years agoexisting test all passing now
Rodney Ewing [Fri, 17 May 2013 02:01:45 +0000 (19:01 -0700)]
existing test all passing now

11 years agomodified test .ini files and changed tests to use basic_auth bcrypt
Rodney Ewing [Wed, 15 May 2013 22:56:05 +0000 (15:56 -0700)]
modified test .ini files and changed tests to use basic_auth bcrypt

11 years agorenamed hook as to no conflict with existing hook names
Rodney Ewing [Wed, 15 May 2013 20:24:43 +0000 (13:24 -0700)]
renamed hook as to no conflict with existing hook names

11 years agorenamed basic_auth/tools to basic_auth/lib
Rodney Ewing [Wed, 15 May 2013 19:44:00 +0000 (12:44 -0700)]
renamed basic_auth/tools to basic_auth/lib

11 years agomodified check_login function to return None instead of False to be able to have...
Rodney Ewing [Wed, 15 May 2013 19:08:23 +0000 (12:08 -0700)]
modified check_login function to return None instead of False to be able to have multiple plugins check_login

11 years agomoved bcrypt_gen_password_hash to basic_auth/tools and added gen_password_hash functi...
Rodney Ewing [Wed, 15 May 2013 00:38:18 +0000 (17:38 -0700)]
moved bcrypt_gen_password_hash to basic_auth/tools and added gen_password_hash function to auth/__init__

11 years agomoved bcrypt_check_password to basic_auth/tools from auth/lib
Rodney Ewing [Wed, 15 May 2013 00:14:48 +0000 (17:14 -0700)]
moved bcrypt_check_password to basic_auth/tools from auth/lib

11 years agoadd a check for authentication plugin on startup and respond according to no_auth...
Rodney Ewing [Tue, 14 May 2013 23:14:19 +0000 (16:14 -0700)]
add a check for authentication plugin on startup and respond according to no_auth config option. allows instance to be run w/o authentication

11 years agochanged User model pw_hash field to nullable and added migrations
Rodney Ewing [Mon, 13 May 2013 22:49:50 +0000 (15:49 -0700)]
changed User model pw_hash field to nullable and added migrations

11 years agomoved normalize_user_or_email_field to auth/tools.py from auth/forms.py
Rodney Ewing [Mon, 13 May 2013 22:48:56 +0000 (15:48 -0700)]
moved normalize_user_or_email_field to auth/tools.py from auth/forms.py

11 years agomoved forgot pw views to basic_auth plugin
Rodney Ewing [Tue, 7 May 2013 15:36:04 +0000 (08:36 -0700)]
moved forgot pw views to basic_auth plugin

11 years agoadded login.html template hook and basic_auth login template
Rodney Ewing [Fri, 3 May 2013 20:48:48 +0000 (13:48 -0700)]
added login.html template hook and basic_auth login template

11 years agoreset mediagoblin.ini
Rodney Ewing [Fri, 3 May 2013 20:28:03 +0000 (13:28 -0700)]
reset mediagoblin.ini

11 years agobasic_auth v0 plugin working
Rodney Ewing [Fri, 3 May 2013 15:50:30 +0000 (08:50 -0700)]
basic_auth v0 plugin working

11 years agoNo more of this find_packages nonsense.
Christopher Allan Webber [Fri, 24 May 2013 23:49:06 +0000 (18:49 -0500)]
No more of this find_packages nonsense.

Explicitly declare mediagoblin as the only package.  find_packages has
caused messes in the past :)

This commit sponsored by Pedro Ângelo.  Thanks!

11 years agoImproved docs
Joar Wandborg [Fri, 24 May 2013 21:07:09 +0000 (23:07 +0200)]
Improved docs

- Fixed an outdated URL
- Rewrote "Separate Celery" section
- Changed literal blocks to bash code-blocks
- Changed wording when referring to the MediaGoblin WSGI application

11 years agomoved normalize_user_or_email_field to auth/tools.py from auth/forms.py
Rodney Ewing [Thu, 23 May 2013 21:29:19 +0000 (14:29 -0700)]
moved normalize_user_or_email_field to auth/tools.py from auth/forms.py

11 years agoMoving statcdirect automodule doc reference to autoclass per Elrond's suggestion.
Christopher Allan Webber [Thu, 23 May 2013 20:56:07 +0000 (15:56 -0500)]
Moving statcdirect automodule doc reference to autoclass per Elrond's suggestion.

Cleaner!

11 years agoCleaned up EXIF view
Joar Wandborg [Thu, 23 May 2013 20:21:02 +0000 (22:21 +0200)]
Cleaned up EXIF view

The last update made the assumption that EXIF metadata is in some way
consistent between camera models, images, manufacturers. This update
takes into account that nothing is certain whenever EXIF is involved.

11 years agoDocumentation changes to reflect new plugin assetlink stuff
Christopher Allan Webber [Thu, 23 May 2013 18:43:04 +0000 (13:43 -0500)]
Documentation changes to reflect new plugin assetlink stuff

 - updated old theme assetlink section to reflect new location of
   ./bin/gmg assetlink and removed comment about the plugin command
   being temporary.
 - Added a new section to the standard config file on where to put the
   plugin_static section
 - Added release notes about said section

This commit sponsored by Thomas Webber.  Thanks, Dad!

11 years agoFull unit test for the plugin assetlink command.
Christopher Allan Webber [Thu, 23 May 2013 18:14:01 +0000 (13:14 -0500)]
Full unit test for the plugin assetlink command.

Tests:
 - if the link doesn't exist yet
 - if the link already exists
 - if it is a symlink to something else
 - if it exists but is not a symlink

This commit sponsored by Lon Koenig.  Thank you!

11 years agoCleaning a bit: os.path.sep.join -> os.path.join
Christopher Allan Webber [Thu, 23 May 2013 18:12:20 +0000 (13:12 -0500)]
Cleaning a bit: os.path.sep.join -> os.path.join

11 years agodocstring update: link theme... and plugins!
Christopher Allan Webber [Thu, 23 May 2013 15:55:09 +0000 (10:55 -0500)]
docstring update: link theme... and plugins!

11 years agoGeneralize "gmg theme assetlink" -> "gmg assetlink" and cover both theme and plugins
Christopher Allan Webber [Thu, 23 May 2013 14:52:57 +0000 (09:52 -0500)]
Generalize "gmg theme assetlink" -> "gmg assetlink" and cover both theme and plugins

We've moved the module... probably I'll re-add theme just to give a
warning that this is deprecated.

This commit sponsored by Kevin Williams.  Thank you!

11 years agotest_plugin_staticdirect now works and passes.
Christopher Allan Webber [Wed, 22 May 2013 20:55:21 +0000 (15:55 -0500)]
test_plugin_staticdirect now works and passes.

This commit sponsored by Samuel Vale.  Thank you!

11 years agoSimple "staticstuff" plugin for writing unit tests on plugin static asset linking.
Christopher Allan Webber [Wed, 22 May 2013 19:20:44 +0000 (14:20 -0500)]
Simple "staticstuff" plugin for writing unit tests on plugin static asset linking.

It doesn't do much... it just has a static directory with a "bunnify"
CSS file and has a unit test that returns a json encoded set of a
staticdirect with both this plugin enabled and also
with (theoretically) a file distributed with MediaGoblin (it isn't
really, but in our case that doesn't matter.)

Also set up the static_setup hook / PluginStatic object for this
plugin; testing that with `./bin/gmg theme assetlink` seemed to work.
(And argh, need to update that command name, I know.)

This commit sponsored by Bradley Kuhn.  Thanks bkuhn!

11 years agoVarious fixes to plugin assetlinking command.
Christopher Allan Webber [Wed, 22 May 2013 19:07:41 +0000 (14:07 -0500)]
Various fixes to plugin assetlinking command.

Actually trying to run the command helps figure out what needs to be
fixed :)

This commit sponsored by Justin Nichol.  Thank you!

11 years agoMoving test_user_dev->user_dev in plugin app configs & adding plugin static serving
Christopher Allan Webber [Wed, 22 May 2013 17:23:06 +0000 (12:23 -0500)]
Moving test_user_dev->user_dev in plugin app configs & adding plugin static serving

The test_user_dev (as opposed to user_dev) was a legacy before we had
each application running in its own directory (as they now do in
pytest).  Move that name to just user_dev... this is more consistent
with the rest of our naming and will make writing these config files
easier.  (If we want to test that changing these still works, that
should be a separate unit test with special config files.)

Additionally, add plugin static serving to the common test paste
config file.

This commit sponsored by Juan Jose Marin Martinez.  Thank you!

11 years agoDocument assetlink and staticdirect usage for plugins.
Christopher Allan Webber [Wed, 22 May 2013 16:51:46 +0000 (11:51 -0500)]
Document assetlink and staticdirect usage for plugins.

Still a bit to clean up around what the command to be run actually is,
since that will likely change.

This commit sponsored by David Decker.  Thank you!

11 years agoOh right, actually mount /plugin_static/ :)
Christopher Allan Webber [Wed, 22 May 2013 15:06:24 +0000 (10:06 -0500)]
Oh right, actually mount /plugin_static/ :)

11 years agoWork towards getting plugin static linking/serving to work
Christopher Allan Webber [Tue, 21 May 2013 21:07:18 +0000 (16:07 -0500)]
Work towards getting plugin static linking/serving to work

 - add link_plugin_assets.  For now, incorrectly running from
   ./bin/gmg theme assetlink... uh, will fix ;)
 - Update paste and config_spec.ini configs to handle the locations
   and serving of the plugins' static resources

This commit sponsored by Marko Dimjašević.  Thank you!

11 years agoStart of ability to have plugins provide static resources!
Christopher Allan Webber [Thu, 16 May 2013 15:38:45 +0000 (10:38 -0500)]
Start of ability to have plugins provide static resources!

Note I have not tested any of this yet ;)  But we're already on our way:
 - We've got docs
 - The hook is there

Lots to do still though.  But, progress! :)

This commit sponsored by Laura Arjona Reina.  Thanks larjona!

11 years agoMove "bits" templates with dashes in them to underscores
Christopher Allan Webber [Wed, 22 May 2013 21:44:50 +0000 (16:44 -0500)]
Move "bits" templates with dashes in them to underscores

Moved all references and also added a note to our release notes.

This commit sponsored by Juan Rodriguez.  Thank you!

11 years agoMoved frontpage "welcome" stuff into its own bits file.
Christopher Allan Webber [Wed, 22 May 2013 21:31:39 +0000 (16:31 -0500)]
Moved frontpage "welcome" stuff into its own bits file.

This should make it easier to override just that part of the page.

This commit sponsored by David Rylander.  Thank you!

11 years agoPiwigo minor fix in categories_getList.
Mats Sjöberg [Tue, 21 May 2013 19:55:55 +0000 (22:55 +0300)]
Piwigo minor fix in categories_getList.

11 years agoPiwigo: some sanity checks before adding to collection as per Elrond's suggestions.
Mats Sjöberg [Tue, 21 May 2013 19:46:57 +0000 (22:46 +0300)]
Piwigo: some sanity checks before adding to collection as per Elrond's suggestions.

11 years agoPiwigo: return collections list only to logged in users.
Mats Sjöberg [Tue, 21 May 2013 19:42:41 +0000 (22:42 +0300)]
Piwigo: return collections list only to logged in users.

11 years agoRudimentary collections support for piwigo plugin.
Mats Sjöberg [Tue, 21 May 2013 19:40:02 +0000 (22:40 +0300)]
Rudimentary collections support for piwigo plugin.

11 years agoFixed minor typo in piwigo logging.
Mats Sjöberg [Tue, 21 May 2013 19:39:37 +0000 (22:39 +0300)]
Fixed minor typo in piwigo logging.

11 years agoMerge remote-tracking branch 'rodney757/change_pass'
Elrond [Tue, 21 May 2013 16:34:23 +0000 (18:34 +0200)]
Merge remote-tracking branch 'rodney757/change_pass'

* rodney757/change_pass:
  fixed translation, and changed tabs to spaces, and change it so the user can view their password as they're typing.
  modified change_pass tests
  moved change pass to a seperate view and fixed issues 709

11 years agofixed translation, and changed tabs to spaces, and change it so the user can view...
Rodney Ewing [Tue, 21 May 2013 15:51:21 +0000 (08:51 -0700)]
fixed translation, and changed tabs to spaces, and change it so the user can view their password as they're typing.

11 years agoRefactor submit util new_upload_entry
Elrond [Mon, 20 May 2013 22:28:37 +0000 (00:28 +0200)]
Refactor submit util new_upload_entry

This tool creates an initial media entry for a given user.
No magic. It just prefills the license with the user's
default license and adds the user as uploader.

11 years agomodified change_pass tests
Rodney Ewing [Mon, 20 May 2013 21:27:43 +0000 (14:27 -0700)]
modified change_pass tests

11 years agomoved change pass to a seperate view and fixed issues 709
Rodney Ewing [Mon, 20 May 2013 21:04:02 +0000 (14:04 -0700)]
moved change pass to a seperate view and fixed issues 709

11 years agopiwigo: Return proper error for wrong user/password.
Elrond [Mon, 20 May 2013 15:50:04 +0000 (17:50 +0200)]
piwigo: Return proper error for wrong user/password.

And fix tests.

11 years agopiwigo: Add PwgError class.
Elrond [Mon, 20 May 2013 17:28:35 +0000 (19:28 +0200)]
piwigo: Add PwgError class.

This allows to return piwigo xml errors.
Those can also be matched into html error codes.

11 years agoA bit of pep8 and small typo fix.
Elrond [Sat, 18 May 2013 23:14:46 +0000 (01:14 +0200)]
A bit of pep8 and small typo fix.

11 years agoOnly calculate aperture if fnumber is provided
Joar Wandborg [Sun, 19 May 2013 22:46:29 +0000 (00:46 +0200)]
Only calculate aperture if fnumber is provided

11 years agoTake into account incomplete EXIF data
Joar Wandborg [Sun, 19 May 2013 22:25:19 +0000 (00:25 +0200)]
Take into account incomplete EXIF data

11 years agoFixed EXIF tests
Joar Wandborg [Sun, 19 May 2013 22:11:00 +0000 (00:11 +0200)]
Fixed EXIF tests

11 years agoModifies EXIF section with Camera Info, display toggle and template styling
Gabriel Saldana [Tue, 5 Mar 2013 06:05:35 +0000 (00:05 -0600)]
Modifies EXIF section with Camera Info, display toggle and template styling