principles:
- primary action buttons are green (btn-success)
- secondary action buttons are blue (btn-primary)
- potentially risky action buttons are yellow (btn-warning)
- if there are a lot of buttons (e.g. forum posts) use btn-xs
We were asking for postal code (optional) on registration.
The purpose was to let projects study
the geographical distribution of their volunteers.
But AFAIK no one ever did this,
and some volunteers have said (understandably, I think)
that asking for postal code seems like an invasion of privacy.
So I conditioned the postal-code code on a boolean constant POSTAL_CODE.
If you put
define('POSTAL_CODE', true);
in your html/project/project.inc, you'll get the old behavior.
Otherwise users won't see postal-code related stuff any more.
- editing resource shared wasn't working
- change sizes of controls to "input-sm"
- show errors correctly in project prefs
- move selection of project prefs from project_specific_prefs.inc
to project.inc.
This means that (unless you've added your own project prefs)
you can update project_specific_prefs.inc from master, with no changes.
NOTE: projects will need to move their project prefs selections, e.g.
define('COLOR_PREFS', false);
from project_specific_prefs.inc to project.inc.
Then copy project.sample/project_specific_prefs.inc to your project/
policy change: when showing lists of name/value pairs in a table,
don't show the names with a different background color or font.
This is what Edward Tufte would call "noise".
Keep the visuals as simple as possible.
Bootstrap forms require a bunch of <div>s and other stuff.
I wrapped these in functions like
form_start()
form_end()
form_submit()
form_select_multiple()
form_input_text()
General idea going forward:
put HTML (especially Bootstrap-specified) in utility functions,
e.g. in util.inc or bootstrap.inc.
This will make the higher-level code easier to read,
and will facilitate moving to CSS frameworks other than Bootstrap.
The front page was displaying as 2 columns even on phones.
I couldn't figure out the problem, but I switched to the standard
page_head() (moving the top part to project_banner()) and that fixed it.
In messages (forum or PM) a [pre] section with a long line
would stretch the table cell,
causing that message and others to run off the edge of the window.
The solution, as Juha pointed out, is to use table-layout:fixed
for those tables, and to explicitly set the width of the other columns.
This causes the long lines to be put in boxes with a horizontal scrollbar,
and nothing overflows.
- use form-control class for text inputs and selects.
This makes them all full-width, but I guess that's OK.
- use success class (green) for action buttons
- right-align table headings where appropriate
- use <small> instead of text-muted.
- tweak custom CSS to fix link and navbar visited colors
- change dark-background link color
- change dark-background colors for <pre>
- fix heading color for striped tables
It turns out that, for striped tables, Bootstrap ignores classes for <tr>.
You have to put them in the <th>.
row_heading() and row_heading_array() do this for you.
- put Preview content into a table w/ heading
- fix display of BBcode links and menus
- change textareas to class form-control
- add color to select so they work with dark and light backgrounds
Note: I'm becoming somewhat less enamored of Bootstrap.
- make selects 240px wide (kludge)
- in navbar, link user name to home page
- add Project to navbar, more Your Account there
- add maximum-scale to <meta>
- change default home page to replace text with a Join button,
which links to a new page saying how to join.
- change default to show image to top of home page
- add form-control class to all <select>s so that text displays
correctly with dark-background themes
- change args to page_head():
- add $is_main; gets passed to project_banner()
- remove $title_plain; not sure what it was for
- add arg for inverse navbar
- fix "jump to first unread post" feature
- use <pre> for bbcode [code]
- don't use table-responsive class for tables.
It does bad/funky things, especially on small displays
- remove start_table_noborder()
This version allows the use of alternative RequestMethods in case get_file_contents() is disabled for security reasons. Currently it uses fsockopen() but it can also use php-curl. Include inc/recaptchalib.php into the file where the reCaptcha is shown or validated. The function boinc_recaptcha_isValidated() is a convenient wrapper that can be updated for future versions or changes of the RequestMethod used.
When also including an older recaptchalib.php this function gets redefined. Since it is only a wrapper function and only used within BOINC, renaming it is safe.