Commit Graph
50 Commits
Author SHA1 Message Date
Andy Staudacher e4a9b19bf9 Changing t() placeholder syntax from {{replace_me}} to %replace_me. 2009-01-15 10:02:41 +00:00
Bharat Mediratta f3ba69c1d6 Make sure that helper functions are all static. Add new
File_Structure_Test to make sure we don't regress.

According to the PHP docs, the "public" keyword is implied on static
functions, so remove it.  Also, require private static functions to
start with an _.

http://php.net/manual/en/language.oop5.visibility.php
2009-01-14 04:12:02 +00:00
Bharat Mediratta bc421a615a Implement deleting dashboard blocks.
* Refactor blocks so that they have a separate id vs css_id.  This way
  we can have a unique identifier for each visual block.

* Store blocks with a random id as their unique identifier

* Add Admin_Dashboard::remove_block() and modify
  themes/admin_default/views/block.html.php to call it when you click the
  remove box.
2009-01-12 08:26:38 +00:00
Bharat Mediratta ae73ef3d57 Updated for new Form_Submit API.
OLD:
  $form->submit("Foo")  -->  <input type="submit" value="Foo">

New:
  $form->submit("foo_button")->("Foo") --> <input type="submit" name="foo_button" value="Foo">

Mostly we don't care what the button is so we leave the name blank.
2009-01-12 07:50:04 +00:00
Andy Staudacher a631fe29f3 i18n refactoring: Rename all _() (reserved by gettext) calls to t().
- And refactor printf to our string interpolation / pluralization syntax
- Also, a slight change to the translations_incomings table, using binary(16) instead of char(32) as message key.
2009-01-08 17:13:06 +00:00
Bharat Mediratta fa1ccbd86d Fix up all the various little forms to have submit buttons, fieldset legends, etc etc. 2009-01-06 09:22:29 +00:00
Bharat Mediratta 3381f1d01a Put up an error if you try to reuse an existing tag name 2009-01-04 22:58:18 +00:00
Bharat Mediratta 92ceef27da Allow renaming of tags using a modal dialog. Put up a confirmation
dialog for deleting tags.  Remove the 4 character restriction on tags
(it was getting ignored by the add form anyway since it was mistakenly
referred to as tag_name there).
2009-01-04 08:44:06 +00:00
Bharat Mediratta 2c27469412 Simple admin tags interface. 2009-01-04 01:55:59 +00:00
Bharat Mediratta d36996fb14 Remove unnecessary comments. 2009-01-04 00:39:54 +00:00
Bharat Mediratta f29aad03a6 Make some columns smaller so that multi-column keys don't exceed 1024
bytes on some systems.
2008-12-30 01:37:09 +00:00
Bharat Mediratta 3c0be5156b url::site is implicit in Forge actions, don't specify it a 2nd time 2008-12-29 18:38:40 +00:00
Bharat Mediratta fdc0f83024 Big round of normalization of the way that our controllers
communicate.  Almost all controllers now use JSON to speak to the
theme when we're dealing with form processing.  This means tht we only
send the form back and forth, but we use a JSON protocol to tell the
browser success/error status as well as the location of any newly
created resources, or where the browser should redirect the user.

Lots of small changes:
1) Admin -> Edit Profile is gone.  Instead I fixed the "Modify Profile" link
   in the top right corner to be a modal dialog

2) We use json_encode everywhere.  No more Atom/XML for now.  We can bring those
   back later, though.  For now there's a lot of code duplication but that'll be
   easy to clean up.

3) REST_Controller is no longer abstract.   All methods its subclasses should create
   throw exceptions, which means that subclasses don't have to implement stubs for
   those methods.

4) New pattern: helper method get_add_form calls take an Item_Model,
   not an id since we have to load the Item_Model in the controller
   anyway to check permissions.

5) User/Groups REST resources are separate from User/Group in the site
   admin.  They do different things, we should avoid confusing overlap.
2008-12-25 05:12:46 +00:00
Bharat Mediratta c67234974d Refactor site admin menu into a theme function and build the menus in
the various modules.  In the process, rename xxx_menu::site_navigation() to just
xxx_menu::site().  And add xxx_menu::admin().

The menus are the same as before, but I changed the HTML to be
consistent with the way that we do it in the regular site, and this
broke the superfish styles.  I don't know how to fix this.. help me
Chad!
2008-12-18 07:32:34 +00:00
Chad Kieffer 9fa566a1c9 Added label to add tag form input 2008-12-17 01:19:13 +00:00
Tim Almdal fc3fd3321d Add a permissions check to determine if the active user has edit permission on the item in order to display the tag add form 2008-12-13 07:49:27 +00:00
Chad Kieffer 26a512c352 Grouped inline form styles. No longer using gInline class in favor of specific form IDs that can be styled differently depending on which container they appear. Added gDescription class, dropped gUnderState for semantics. CSS cleanup. 2008-12-01 01:55:50 +00:00
Chad Kieffer 6c2869f822 Changed CSS organization, removed form section. Moved generic form CSS up to top of sheet and specific form styles to be adjacent to related content. This should ensure inheritance works generic down to specific. Removed #gAddTags in favor of #gTags form. 2008-11-29 21:30:30 +00:00
Bharat Mediratta 9b9bdce821 Fix another bug caused by moving this from tag to tag_event 2008-11-29 09:53:38 +00:00
Bharat Mediratta 1b78f33444 Fix a bug where we were listening to the wrong event. 2008-11-29 09:49:51 +00:00
Bharat Mediratta 8b6ed6c477 Create module::event() which runs Gallery events. It works by
convention.  To respond to the "photo_created" event in the gmaps
module, you create modules/gmaps/helpers/gmaps_event.php containing
class gmaps_event which has function photo_created.

Renamed all events from gallery.foo.bar to foo_bar
Updated tag module to use new convention.
2008-11-28 19:37:01 +00:00
Bharat Mediratta 1b1d385294 Check for APP13 before using it 2008-11-28 18:41:11 +00:00
Tim Almdal a7f6efa2f2 When an image is uploaded (i.e. created) the tag module will now extract any iptc keywords and add them as image tags. 2008-11-28 18:04:59 +00:00
Bharat Mediratta 5672fbea1e Rename tag_block_cloud.html.php to tag_cloud.html.php 2008-11-28 07:05:11 +00:00
Tim Almdal 3ad9b6174a Add event plumbing to allow the tag module to be notified when a photo is created. Eventually this will be used to parse the image meta data and extract tags; 2008-11-28 00:19:08 +00:00
Bharat Mediratta d909fc1070 Make tags look a little better. 2008-11-27 10:25:50 +00:00
Bharat Mediratta c95c17b133 Centralize logging around installing/uninstalling modules. 2008-11-27 09:45:26 +00:00
Bharat Mediratta 3992dad486 Move form generation off into tag::get_add_form(). We can't use a controller to generate the form (it's incompatible with our REST model where controllers print stuff) 2008-11-27 06:25:21 +00:00
Bharat Mediratta 72d16756b1 Refactor cloud generation into a helper so that we can call it from
Tags_Controller::_index().  This enables our Ajax code to reload the
tags block after we submit a new tag, so update the JS to do that
properly.
2008-11-27 05:37:20 +00:00
Bharat Mediratta 5447b83210 Clean up REST pattern in tags:
1) Generate the form in Tags_Controller::_form_add()
2) Process the form submit in Tags_Controller::_create()
3) Create the tag properly

This required me to limit our scope to adding one tag at a time, which
I think is fine if we're doing Ajax style tag addition.
2008-11-27 05:00:50 +00:00
Tim Almdal b4b72b284b We are now submitting the ajax tag add form to the server correctly and rehooking the ajaxForm 2008-11-27 01:48:01 +00:00
Tim Almdal d881c91e0c Trying to add tags, but it doesn't work yet. For some reason that i can't figure out, the form never validates and I never get into the true branch of the if. I'm taking a break for awhile. 2008-11-27 00:26:04 +00:00
Bharat Mediratta 91b1c4cf39 Skip the tags block if there're no tags 2008-11-26 23:06:35 +00:00
Bharat Mediratta 39b6e84a57 Change sort_by_name to case insensitive sort. 2008-11-26 10:48:00 +00:00
Bharat Mediratta 98ee16ca49 Simplify tags code some more:
1) change buckets to be 1-7 not 0-6.. zero-based indicies don't make sense in the
   real world and are liable to confuse themers.

2) Change tag API to popular_tags($count) which just returns the popular tags.  Let
   the block code massage it into the right format for the view.

3) Move alphasort into the block code, simplify it and rename it to sort_by_name so
   that it's more descriptive

4) Do the bucketing in the view; this allows the themer to override it and create their
   own bucketing algorithm to go with the theme's CSS.

5) Don't create any temporary objects.
2008-11-26 10:27:13 +00:00
Tim Almdal de56a33c9c Clean tag creation 2008-11-26 06:37:12 +00:00
Bharat Mediratta e31456af47 Remove stray 'filter' instances 2008-11-26 05:20:47 +00:00
Tim Almdal 03bf3a6af2 Remove the more or less links 2008-11-26 05:08:43 +00:00
Tim Almdal 1ea0382f53 Moving right along on tags. Now the threshold for which tags can be changed. The default is to show all the tags (i.e. count >= the minimum frequency) by clicking on the "See Less" link, the tag cloud will not show the minimum frequency, so the number of tags shown is smaller.
The "See More" link works the opposite way.
2008-11-25 22:38:11 +00:00
Tim Almdal e9e589e5eb Display tag block using data from the database 2008-11-25 18:54:04 +00:00
Tim Almdal d554adc484 1) Changed how the test tags are generated to be able to create a better distribution
2) Added a new helper function "load_buckets" assign the class suffix to each tag
3) Created a unit test to test the load_buckets function
2008-11-25 18:14:52 +00:00
Bharat Mediratta 7ec579cede Simplify the API. We don't have a need to add multiple tags to
multiple items, so don't create a confusing API where we don't need
one.  The caller can just as easily loop over items and tags.

Use ORM::has() instead of manually looping over items, which would be
wildly inefficient on large installs.  Document that we're calling
ORM::has() a second time just so that we can update the count
correctly.
2008-11-25 04:23:45 +00:00
Tim Almdal f81a9879be Moved the creation of tags into the tag helper library. Added a count field to the tags table. Bharat, I know you said not to worry about caching, but I want to explore what are some of the issues with keeping track of the counts as we go. (i.e. is it a pain in the a__) 2008-11-24 23:18:32 +00:00
Tim Almdal 39f00707ac Add the creation of tags to the scaffolding code 2008-11-24 05:03:52 +00:00
Bharat Mediratta a164d0ee80 Fix a few minor bugs in the tags db schema and simplify it a bit.
Avoid using restrictions on our data in the database; let's design the
system to keep integrity in the app (and make the app robust against
minor integrity issues like duplicate tags, etc).
2008-11-23 20:05:24 +00:00
Tim Almdal ab20406ef2 Tag module database definitions 2008-11-23 18:00:44 +00:00
Bharat Mediratta c6f0cc036d Move all block callbacks from View::block_type() to
$theme->block_type() so that the themer has a consistent interface.
Also added a bunch more callbacks and normalized the names so that the
module author has plenty of options for where stuff gets put on the
page.  Especially renamed album/photo/sidebar to be album_blocks()
photo_blocks() and sidebar_blocks() to make it clear that those are
going to be larger content sections and not just basic insertion
points.

Used __call() to collapse all functions in the theme, which
incidentally makes it trivially easy to add a new insertion point.
2008-11-22 21:46:34 +00:00
Tim Almdal 8eadddfa87 Convert gmaps, info, and tag modules to the new block module 2008-11-22 05:51:15 +00:00
Bharat Mediratta e3be3cecf5 Second half of renaming the tags module. Change all occurrences of
gTags to gTag in the CSS.
2008-11-16 07:20:58 +00:00
Bharat Mediratta e87a37b855 Rename 'tags' module to 'tag' for consistency of pluralization 2008-11-16 07:17:29 +00:00