- replace get_domain_properties() calls with two SQL queries that fetch
the domain data and count the number of mailboxes and aliases per domain.
This change speeds up list-domain extremely on setups with lots of domains,
mailboxes and aliases. The old code took several minutes on my test data
(that's about 55000 mailboxes and their aliases), the new code only needs
some seconds.
- $domain_properties now uses the domain name as index key instead of a
serial number
templates/admin_list-domain.php:
- replace usage of $list_domains with $domain_properties
- change main loop to use the domain name as $domain_properties array key
instead of a serial number
upgrade.php:
- upgrade_655(): add index on domain column in mailbox and alias table.
This speeds up list-domain from 14s to about 1s on my test data in MySQL
(the 14s were _after_ the changes in list_domain.php)
- added _add_index() function to hide the database specific details in
upgrade functions
This commit should fix the performance problems reported on
http://sourceforge.net/forum/forum.php?thread_id=2343349&forum_id=676076
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@655 a1433add-5e2c-0410-b055-b7f2511e0802
- fix displaying of vacation status in search results - was broken for
a) super admins (wrong nesting of if statements)
b) mailboxes with vacation switched off (empty and therefore invisible link)
templates/admin_search.php:
- deleted unused file
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@622 a1433add-5e2c-0410-b055-b7f2511e0802
- filter available alias and target domains (and print an error message
if none is available)
- print success message via flash_info, not inside the form and do a
redirect afterwards. We would have to update the list of domains
available for aliasing otherwise.
- added vim: settings
templates/create-alias-domain.php:
- hide form if no domains are available for aliasing
- move logic of skipping non-available domains to /create-alias-domain.php
- added vim: settings
templates/list-virtual.php:
- show "create alias domain" link (only) if it makes sence (not perfect
yet, but better than before)
- don't create empty <div> etc. if domain has no mailboxes
- intentionally skipped most whitespace fixes (added a comment instead),
they would make the patch unreadable
languages/*:
- additional error message for alias domains: 'All domains are already
aliased.'
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@422 a1433add-5e2c-0410-b055-b7f2511e0802
- added $CONF['alias_domain'] switch to disable alias domains
(includes lots of whitespace changes in list-virtual.php)
functions.php:
- added some comments to boolconf()
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@419 a1433add-5e2c-0410-b055-b7f2511e0802
functions.inc.php:
- function check_language
- new optional parameter $use_post (needed by login.php)
- check for language cookie
- check for $_POST['lang']
- removed substr() call because it made pt-br translation unuseable
- new function language_selector
- returns a HTML dropdown language selector
- new function safecookie
- similar to safeget, but for cookies
templates/login.php, templates/users_login.php:
- display language selector dropdown
login.php, users/login.php:
- check for selected language
- set cookie if user selected non-default language
languages/language.php: (NEW FILE)
- list of supported languages
- language names taken from phpMyAdmin login form
common.php:
- include languages/language.php
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@280 a1433add-5e2c-0410-b055-b7f2511e0802
- define('POSTFIXADMIN', 1)
templates/*.php
- check if POSTFIXADMIN is defined to prevent direct access to the
template files
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@256 a1433add-5e2c-0410-b055-b7f2511e0802
- made edit form labels and descriptions translatable. This means that
$fm_struct no longer holds the labels and descriptions
- fixed HTML error (missing > for </span>
- added some comments to document the main "if" block
fetchmail.tpl:
- changed button order and placement to make <enter> saving the entry
- made save and cancel buttons translatable
Thanks to Johan for the reminder
https://sourceforge.net/tracker/?func=detail&atid=937964&aid=1830326&group_id=191583
- made edit form labels and descriptions translatable. This also means
reworking of some list(...) = $fm_struct[$row] sections
*.lang:
- added translations for "Save" and "Cancel" buttons
- added translations for edit form labels and descriptions
de.lang:
- translated fetchmail-related texts
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@220 a1433add-5e2c-0410-b055-b7f2511e0802
- merged GET and POST code
- make cancel button working
- redirect to main page on success
- displaying success note with flash_info()
templates/users_password.tpl:
- rename cancel button to fCancel to make it work
users/vacation.php
- redirect to main page on success
- displaying success note with flash_info()
- merge GET and POST code
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@213 a1433add-5e2c-0410-b055-b7f2511e0802
users/vacation.php
- fix double-encoded special characters if language file contains
entity-encoded strings by html_entity_decode'ing the string
(will be encoded in template file later)
users_vacation.tpl:
- encode tSubject with htmlentities() in template
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@209 a1433add-5e2c-0410-b055-b7f2511e0802
- fix double-encoded special characters if language file contains
entity-encoded strings by html_entity_decode'ing the string
(will be encoded in template file later)
edit-vacation.tpl:
- encode tSubject with htmlentities() in template
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@200 a1433add-5e2c-0410-b055-b7f2511e0802
list-domain.php:
- added several admin/superadmin switches and permission checks
- merged GET and POST code
- Note: still different templates for superadmins (admin_list-domain.tpl)
and admins (overview-get.tpl) because of large layout difference
list-virtual.php:
- added several admin/superadmin switches and permission checks
- added check for admins without any domains (redirects to domain list,
which can handle this situation)
- migrated FIXME from overview.php
-> David, please review the query and remove the FIXME afterwards
overview.php:
- DELETED - no longer needed
overview.tpl:
- RENAMED overview.tpl to list-virtual.tpl
- removed admin/superadmin filename switch
- removed $incpath switch for images
menu.tpl:
- menu for domain admins now has "domain list" and "virtual list"
instead of "overview"
delete.php, edit-active.php, edit-alias.php, edit-mailbox.php, search.php:
- changed redirect to list-virtual.php
overview-get.tpl:
- changed link to list-virtual.php
main.tpl:
- changed overview link to list-domain.php
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@181 a1433add-5e2c-0410-b055-b7f2511e0802
- moved admin-only scripts from admin/ to /
- removed all merged files ("require('../$file')") from admin/
- changed include paths - no more admin/superadmin switching needed
- admin_menu.tpl is also gone
- removed all menu.tpl / admin_menu.tpl switches - no more needed
- admin/index.php still exists and redirects to /
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@168 a1433add-5e2c-0410-b055-b7f2511e0802
- added styles for CSS-based dropdown menu, based on "Son of Suckerfish"
http://www.htmldog.com/articles/suckerfish/dropdowns/
menu.tpl
- merged admin_menu.tpl into menu.tpl
- changed menu layout: the "create ..." items are now submenu items
Notes:
- superadmins still see the old menu
- dropdowns don't work in IE yet (requires some JS)
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@167 a1433add-5e2c-0410-b055-b7f2511e0802
- the WHERE fieldname is now hardcoded instead of being a $_GET parameter
This fixes a possible security hole in admin/delete.php (only vulnerabe
when logged in as global-admin)
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@166 a1433add-5e2c-0410-b055-b7f2511e0802
fetchmail.php:
- IMPORTANT: fixed typo in database column name. If you have created the
fetchmail database already, you have to rename the "pool_time" column
to "poll_time"
- fixed adding of new entries
- don't display status fields (last poll date and result) in edit mode
- validate and quote the GET and POST variables
- show POSTed data again if invalid values were entered (data to display
in the edit form is passed to fetchmail.tpl in $formvars)
- check results of database operations and display error/success
messages
- check owner of target mailbox on all operations
- changed password handling: empty means no change (instead of sending
"******" around)
- reworked and moved around large code portions
- added some TODO notes
fetchmail.tpl:
- use data from $formvars in edit mode instead of parsing the full array
- moved "new entry" below the table
- replaced delete button with delete links
- Note: the boolean fields need testing with PgSQL. Especially test if
they are displayed as active correctly in list and edit mode!
*.lang:
- added several fetchmail-related strings, more to follow
- added $PALANG['please_keep_this_as_last_entry'] which always has to be
the last entry in the language files. This solves the problem that
language-check.sh mixes up the string order when adding strings at the
end of the language files.
- added vim:ft=php
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@163 a1433add-5e2c-0410-b055-b7f2511e0802
- removed $display_fields array again after understanding how $fm_struct
in fetchmail.php works
- added workaround for undefined index warnings in $fm_struct (line 47)
(for whatever reasons, there seem to be both numeric and named keys)
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@161 a1433add-5e2c-0410-b055-b7f2511e0802
- changed editable and display flags of some columns in $fm_struct
(this array is pretty useful once you understand how to use it ;-)
- completed support for $CONF['fetchmail_extra_options'] = 'NO'
- added several escape_string() calls
- fixed several $_GET/$_POST undefined index warnings
- fixed some MySQL vs. PgSQL issues
- some small fixes
fetchmail.tpl
- changed layout to separate list and edit view
- fixed an undefined index warning
- replaced ID column with edit link
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@160 a1433add-5e2c-0410-b055-b7f2511e0802
- shortened german menu text for fetchmail
- config.inc.php:
- added $CONF['fetchmail'] and $CONF['fetchmail_extra_options'], including
a big warning for the latter one.
- include config.inc.php at the end if it exists. This can make future
updates easier because you don't have to edit config.inc.php itsself.
It should also make development easier because you don't need to undo
local changes before commiting config.inc.php
- fetchmail.tpl:
- new array display_fields, contains the list of fields to display in the
table. This also solves most "undefined index" warnings.
Note: editing fetchmail does not honor $CONF['fetchmail_extra_options'] = 'NO' yet.
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@151 a1433add-5e2c-0410-b055-b7f2511e0802
(see postfixadmin-devel mailinglist for detailed description and known
problems, subject "fetchmail support")
- encoded some german umlauts as htmlentities
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@140 a1433add-5e2c-0410-b055-b7f2511e0802
new language variables:
$PALANG['pStatus_undeliverable'] = 'maybe UNDELIVERABLE ';
$PALANG['pStatus_custom'] = 'Delivers to ';
$PALANG['pStatus_popimap'] = 'POP/IMAP ';
Some bug fixes. Maybe some new bugs added.
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@46 a1433add-5e2c-0410-b055-b7f2511e0802
- admin_search.tpl now simply require()s search.tpl
- admin_search.tpl still contains the old code for reference (commented out)
- note: maybe some cleanup about the admin/superadmin diffs can/should be done
in search.tpl. I just did the merge for now.
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@34 a1433add-5e2c-0410-b055-b7f2511e0802
edit vacation messages, and remove them.
main.php added to admin directory so admin and / can share more
templates.
the new edit-vacation.php in admin and / are identical except
for template references
languages/en.lang and languages/default.lang are in sync now
I attempted to add some of the new .lang variables I created to
the spanish file (I don't know it that well, hope its OK)
fixed a bug in users/vacation.php
Added a "Main" menu item to the admin menu that gets you back to where
you started when you log in.
git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@2 a1433add-5e2c-0410-b055-b7f2511e0802