Skip to content
This repository

SAKIII-3710 - Provide text alternatives for any non-text content #1032

Closed
wants to merge 58 commits into from

5 participants

jsloane Chris Roby Gonzalo Silverio Nicolaas Matthijs Mark Triggs
and others added some commits August 08, 2011
jsloane SAKIII-3709 checking templates in wcag unit test and fixing some fail…
…ures
d8ecea2
jsloane SAKIII-3710 checking templates in wcag unit test and fixing some fail…
…ures
4b80070
Chris Roby Merge branch 'v1.1' of github.com:sakaiproject/3akai-ux into v1.1 c1c2c56
jsloane SAKIII-3710 check button tags in wcag unit test 505b92b
jsloane SAKIII-3710 added title attribute to buttons e7347e0
jsloane Merge branch 'v1.1' of github.com:sakaiproject/3akai-ux into SAKIII-3710
* 'v1.1' of github.com:sakaiproject/3akai-ux:
  NOJIRA - Fixing some wording and counts
  SAKIII-3816 - Area Permissions interface for pages within area does not show complete interface
  SAKIII-3819 Check for an empty object in the directory parsing
  SAKIII-3595 Search by tag for people, content, and worlds
  SAKIII-3691 Only retrieve sakaidocs when adding an existing document as an area to a world
  SAKIII-3813 no more sakai:custom-mimetype
  SAKIII-3685 focus on contentcomments textarea
  SAKIII-3806 Add #l=library to the group serach result
  SAKIII-3690 This issue is largely being caused by too many things being squished on the line, and so at certain font sizes/zoomlevels, the Clear label is droppping down when it hits the floated right Combo box. To balance this, I am dropping the Search box down to 150px from 200px, which still seems large enough (and about the same size as the one on the top navigation), and keeps everything on the same line unless you zoom the browser font really really small.
  SAKIII-3095 making profile required field error messages configurable
  SAKIII-3093 add aria-live attribute to dynamic pages
023363d
jsloane SAKIII-3710 adding link title to wcag unit test and added title to links f10476f
jsloane SAKIII-3840 add title to textareas ece0f27
Gonzalo Silverio SAKAIII-3832 8851690
Chris Roby Merge branch 'v1.1' of github.com:sakaiproject/3akai-ux into v1.1 90e5140
jsloane SAKIII-3710 resolving merge conflict 1c500ae
Nicolaas Matthijs SAKIII-3877 - Going to a category that doesn't exist throws an error …
…and does't fully render the page
d06c6da
Gonzalo Silverio SAKIII-3832 - using global s3d aural class for legend aff17fd
jsloane SAKIII-3710 resolving merge conflicts dca18f0
Chris Roby Merge branch 'v1.1' of github.com:sakaiproject/3akai-ux into v1.1 75a03af
Chris Roby Merge branch 'master' of github.com:sakaiproject/3akai-ux into v1.1
Conflicts:
	devwidgets/contentmetadata/javascript/contentmetadata.js
	devwidgets/lhnavigation/lhnavigation.html
6ce4ea8
Chris Roby Merge branch 'v1.0.1' of github.com:sakaiproject/3akai-ux into v1.1
Conflicts:
	devwidgets/contentmetadata/javascript/contentmetadata.js
7d4e22f
Chris Roby Merge branch 'SAKIII-3887' of git://github.com/croby/3akai-ux into cr…
…oby-SAKIII-3887
f42161f
Chris Roby SAKIII-3887 Also handle the case where there is no l param in the URL 9cbe480
Chris Roby Merge branch 'v1.0.1' of github.com:sakaiproject/3akai-ux into v1.1 33f46c8
SAKIII-3988 Implement design for counts in the left hand navigation a5360f3
SAKIII-3689 Server URL should be cut off if it is too long for the Cr…
…eate new world screen
4628470
jsloane SAKIII-3710 resolving merge conflicts 786afae
Mark Triggs NOJIRA Fix issue where the user's name would be occasionally truncate…
…d to the first letter.

Every so often, the span.ellipsis_text element passed to ThreeDots has a height of zero.  This causes the 'num_rows' function of jquery.threedots.js to return NaN for the element, which in turn causes the 'the_bisector' function to incorrectly truncate the string.
6ba08c4
jsloane SAKIII-3917 fixing profile pictures in addpeople widget 6289651
SAKIII-3494 Alt Text flashes when removing a person from your contacts 67002a9
SAKIII-3786 Remove version control for links d213457
Merge remote branch 'origin/v1.1' into v1.1SAKIII-3689 78ac3be
SAKIII-3689 Extend threedots API to be able to threedot a string in t…
…he middle and apply to suggested url in create group screen
500bbea
Merge remote branch 'origin/v1.1' into v1.1SAKIII-3988 d18df4f
Nicolaas Matthijs SAKIII-3981 - Pass on redirect parameter to SSO login page 71a7d32
Nicolaas Matthijs Merge branch 'v1.0.1' into v11merge
* v1.0.1:
  SAKIII-3906 Updating icon to say Sakai 2 Tool rather than Remote Content since its not a straight BLTI widget.
7671223
Mark Triggs Try up to 10 times to apply ThreeDots before giving up if the element…
… still has a height of zero.
79b4734
SAKIII-3988 Fixes for counts in the left hand nav 851ea23
Nicolaas Matthijs SAKIII-4003 - Math courses have different ACLs compared to Math template acfdc70
Nicolaas Matthijs Merge branch 'v1.1SAKIII-3689' of git://github.com/bp323/3akai-ux int…
…o SAKIII-3689

* 'v1.1SAKIII-3689' of git://github.com/bp323/3akai-ux:
  SAKIII-3689 Extend threedots API to be able to threedot a string in the middle and apply to suggested url in create group screen
  SAKIII-3689 Server URL should be cut off if it is too long for the Create new world screen
83b6c91
Nicolaas Matthijs Merge branch 'v1.1SAKIII-3988' of git://github.com/bp323/3akai-ux int…
…o v1.1SAKIII-3988

* 'v1.1SAKIII-3988' of git://github.com/bp323/3akai-ux:
  SAKIII-3988 Fixes for counts in the left hand nav
  SAKIII-3988 Implement design for counts in the left hand navigation
e7f7f74
Nicolaas Matthijs SAKIII-3988 - Implement design for counts in the left hand navigation bcd3f40
Nicolaas Matthijs Merge branch 'SAKAIII-3832' of git://github.com/gsilver/3akai-ux into…
… SAKAIII-3832

* 'SAKAIII-3832' of git://github.com/gsilver/3akai-ux:
  SAKIII-3832 - using global s3d aural class for legend
  SAKAIII-3832

Conflicts:
	devwidgets/carousel/carousel.html
23c4b35
jsloane SAKIII-3710 resolve merge conflicts 5bbb11d
jsloane SAKIII-3710 adjust wcag unit test 45ea4ec
jsloane SAKIII-3710 removing unneccessary title attributes 5d68fc3
jsloane SAKIII-3710 removing unneccessary title attributes 9b9bc58
jsloane SAKIII-3710 removing unneccessary title attributes c598e11
Chris Roby croby commented on the diff September 09, 2011
dev/s23/s23_site.html
@@ -89,7 +89,7 @@
89 89
                     {/if}
90 90
                     {for tool in col}
91 91
                         <div class="s23_site_iframe_title">
92  
-                            <a class="s23_site_iframe_title_reset" title="Reset" target="Main${tool.xid}" id="reset-Main${tool.xid}" href="${sakai.config.SakaiDomain}/portal/tool-reset/${tool.url}?panel=Main"><span>Reset</span></a><h2>${tool.title}</h2>
  92
+                            <a class="s23_site_iframe_title_reset" title="__MSG__RESET__" target="Main${tool.xid}" id="reset-Main${tool.xid}" href="${sakai.config.SakaiDomain}/portal/tool-reset/${tool.url}?panel=Main"><span>__MSG__RESET__</span></a><h2>${tool.title}</h2>
2
Chris Roby
croby added a note September 09, 2011

We can remove this title - the span inside of it has the same text

The span actually has "text-indent:-999em;" in the css, so the text isn't shown to the user. This already had the title attribute, I just changed it to an i18n string.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/addtocontacts/addtocontacts.html
@@ -31,7 +31,7 @@
31 31
                 </tr>
32 32
             </table>
33 33
             <label id="addtocontacts_form_personalnote_label" for="addtocontacts_form_personalnote">__MSG__ADD_A_PERSONAL_NOTE_TO_THE_INVITATION__:</label>
34  
-            <textarea cols="75" rows="3" id="addtocontacts_form_personalnote" name="addtocontacts_form_personalnote"></textarea>
  34
+            <textarea cols="75" rows="3" id="addtocontacts_form_personalnote" name="addtocontacts_form_personalnote" title="__MSG__ENTER_A_PERSONAL_NOTE_FOR_THE_INVITATION__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

Let's use the placeholder attribute here instead of title

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/carousel/carousel.html
@@ -103,29 +103,29 @@
1
Chris Roby
croby added a note September 09, 2011

This isn't very informative to a non-visual user. Can we maybe include the user's displayname in the alt?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/carousel/carousel.html
((6 lines not shown))
1
Chris Roby
croby added a note September 09, 2011

Same as above - maybe something about a default image?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/carousel/carousel.html
@@ -136,9 +136,9 @@
1
Chris Roby
croby added a note September 09, 2011

Same as above about making the alt here more descriptive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/carousel/carousel.html
((6 lines not shown))
1
Chris Roby
croby added a note September 09, 2011

See above

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/categories/categories.html
@@ -44,16 +44,16 @@
44 44
                                 {if thumbnail}
45 45
                                     <img src="${thumbnail}" class="categories_item_content_preview" alt="${item.content["sakai:pooled-content-file-name"]|safeOutput}"/>
46 46
                                 {else}
47  
-                                    <img src="${sakai.api.Content.getMimeTypeData(sakai.api.Content.getMimeType(item.content)).URL}" class="categories_item_content_preview"/>
  47
+                                    <img src="${sakai.api.Content.getMimeTypeData(sakai.api.Content.getMimeType(item.content)).URL}" class="categories_item_content_preview" alt="${item.content["sakai:pooled-content-file-name"]}"/>
1
Chris Roby
croby added a note September 09, 2011

This alt is misleading -- it should probably include the mimeType description instead of the file name.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/comments/comments.html
@@ -93,7 +93,7 @@
93 93
             <input type="text" class="comments_inputFields" id="comments_txtMailPoster"><br />
94 94
         </div>
95 95
         <label for="comments_txtMessage">__MSG__YOUR_COMMENT__:</label>
96  
-        <textarea id="comments_txtMessage" class="comments_inputFields" rows="7" cols="50"></textarea><br />
  96
+        <textarea id="comments_txtMessage" class="comments_inputFields" rows="7" cols="50" title="__MSG__ENTER_YOUR_COMMENT__"></textarea><br />
1
Chris Roby
croby added a note September 09, 2011

Let's use the placeholder attribute here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/contacts/contacts.html
@@ -27,19 +27,19 @@
27 27
                 {var count = count + 1}
28 28
                 <div class="fl-container fl-fix contacts_item{if count == 1} contacts_item_first{/if}">
29 29
                     <div class="contacts_item_left_filler"></div>
30  
-                    <a href="/~${p.profile.userid|safeURL}"><img alt="pending icon" src="${sakai.api.Util.constructProfilePicture(p.profile)}"></a>
  30
+                    <a href="/~${p.profile.userid|safeURL}" title="__MSG__VIEW__ ${sakai.api.User.getDisplayName(p.profile)}"><img alt="__MSG__PROFILE_PICTURE__" src="${sakai.api.Util.constructProfilePicture(p.profile)}"></a>
1
Chris Roby
croby added a note September 09, 2011

This would say View Chris Roby, but since you're not viewing me, maybe it should be View Chris Roby's Profile instead

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/contacts/contacts.html
@@ -75,19 +75,19 @@
75 75
                         <input type="checkbox" name="checkbox_${i.profile.userid}" style="display:none"/>
76 76
                     </div>
77 77
                     <button title="__MSG__SEND_MESSAGE__" class="s3d-link-button contacts_item_message_icon sakai_sendmessage_overlay" data-sakai-entityid="${i.profile.userid}" data-sakai-entityname="${sakai.api.User.getDisplayName(i.profile)}" data-sakai-entitytype="user"></button>
78  
-                    <a href="/~${i.profile.userid|safeURL}"><img alt="pending icon" src="${sakai.api.Util.constructProfilePicture(i.profile)}"></a>
  78
+                    <a href="/~${i.profile.userid|safeURL}" title="__MSG__VIEW__ ${sakai.api.User.getDisplayName(i.profile)}"><img alt="__MSG__PROFILE_PICTURE__" src="${sakai.api.Util.constructProfilePicture(i.profile)}"></a>
1
Chris Roby
croby added a note September 09, 2011

Same comment as above

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Chris Roby croby commented on the diff September 09, 2011
devwidgets/contacts/contacts.html
@@ -132,7 +132,7 @@
132 132
                     </div>
133 133
                     <button title="__MSG__SEND_MESSAGE__" class="s3d-link-button contacts_item_message_icon sakai_sendmessage_overlay" data-sakai-entityid="${a.profile.userid}" data-sakai-entityname="${sakai.api.User.getDisplayName(a.profile)}" data-sakai-entitytype="user"></button>
134 134
                     {if !sakai.data.me.user.anon && sakai_global.profile.main.mode.value !== "view"}
135  
-                        <button type="button" class="s3d-link-button s3d-action-icon s3d-actions-delete" data-sakai-entityid="${a.profile.userid}" data-sakai-entityname="${sakai.api.User.getDisplayName(a.profile)}"></button>
  135
+                        <button title="__MSG__REMOVE_CONTACT__ ${sakai.api.User.getDisplayName(a.profile)}" type="button" class="s3d-link-button s3d-action-icon s3d-actions-delete" data-sakai-entityid="${a.profile.userid}" data-sakai-entityname="${sakai.api.User.getDisplayName(a.profile)}"></button>
3
Chris Roby
croby added a note September 09, 2011

What does this title translate to? Remove contact Chris Roby?

Yep

Chris Roby
croby added a note September 15, 2011

Let's change that to 'Remove Chris Roby as a Contact' to make it more sentence-like.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/contacts/contacts.html
@@ -141,19 +141,19 @@
141 141
                             <div class="left_filler"><img src="/dev/images/accept.png" alt="__MSG__USER_IS_A_CONTACT__" /></div>
142 142
                         {/if}
143 143
                     {/if}
144  
-                    <a href="/~${a.profile.userid|safeURL}"><img alt="accepted icon" src="${sakai.api.Util.constructProfilePicture(a.profile)}"></a>
  144
+                    <a href="/~${a.profile.userid|safeURL}" title="__MSG__VIEW__ ${sakai.api.User.getDisplayName(a.profile)}"><img alt="__MSG__PROFILE_PICTURE__" src="${sakai.api.Util.constructProfilePicture(a.profile)}"></a>
1
Chris Roby
croby added a note September 09, 2011

Same comments as above for this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/contentcomments/contentcomments.html
@@ -16,7 +16,7 @@
16 16
         <div id="contentcomments_fillInComment">
17 17
             <div class="contentcomments_fillInCommentTopContainer">
18 18
                 <br />
19  
-                <textarea id="contentcomments_txtMessage" class="contentcomments_inputFields" cols="20"></textarea>
  19
+                <textarea id="contentcomments_txtMessage" class="contentcomments_inputFields" cols="20" title="__MSG__ENTER_A_COMMENT__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

Let's use the placeholder attribute here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Chris Roby croby commented on the diff September 09, 2011
devwidgets/contentmetadata/contentmetadata.html
@@ -127,7 +127,7 @@
127 127
         <div class="contentmetadata_content_row">
128 128
             <span class="contentmetadata_first_column">__MSG__CREATED_BY__: </span>
129 129
             <span>
130  
-                <a href="${creator.homePath}" class="s3d-regular-links">
  130
+                <a href="${creator.homePath}" class="s3d-regular-links" title="__MSG__VIEW__ ${sakai.api.User.getDisplayName(creator)}'s __MSG__PROFILE__">
2
Chris Roby
croby added a note September 09, 2011

This possessive isn't internationalized -- not all languages use 's as their possessive. I'd suggest moving this whole thing into a new i18n key, as we've done in other places, to allow for more customized possessives

Chris Roby
croby added a note September 15, 2011

Still need to make this change

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/contentpermissions/contentpermissions.html
@@ -19,7 +19,7 @@
19 19
         <label class="s3d-bold">__MSG__CAN_SEE_OR_EDIT__</label>
20 20
         <input id="contentpermissions_members_autosuggest"/>
21 21
         <div id="contentpermissions_members_message_container" style="display:none;">
22  
-            <textarea id="contentpermissions_members_message"></textarea>
  22
+            <textarea id="contentpermissions_members_message" title="__MSG__ENTER_A_MESSAGE__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

As above, use placeholder here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/creategroup/creategroup.html
@@ -30,7 +30,7 @@
30 30
                 <div id="creategroup_add_id_short" class="creategroup_error_msg">__MSG__GROUP_URL_SHORT__</div>
31 31
     
32 32
                 <label for="creategroup_add_description" class="description_fields">__MSG__DESCRIPTION__:</label>
33  
-                <textarea id="creategroup_add_description" rows="1" cols="10" class="description_fields"></textarea>
  33
+                <textarea id="creategroup_add_description" rows="1" cols="10" class="description_fields" title="__MSG__ENTER_A_DESCRIPTION__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

placeholder again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/discussion/discussion.html
((6 lines not shown))
60 60
     {/if}
61 61
     <label for="discussion_topic_reply_text" class="s3d-bold">
62 62
         __MSG__MESSAGE_TEXT__
63 63
     </label>
64  
-    <textarea id="discussion_topic_reply_text" class="required" rows="6" name="message_text">{if edit == true}${body}{/if}</textarea>
  64
+    <textarea id="discussion_topic_reply_text" class="required" rows="6" name="message_text" title="{if edit == true}__MSG__EDIT_YOUR_MESSAGE__{else}__MSG__ENTER_YOUR_MESSAGE__{/if}">{if edit == true}${body}{/if}</textarea>
1
Chris Roby
croby added a note September 09, 2011

We probably don't need this if here since both clauses are the same result.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/discussion/discussion.html
@@ -19,7 +19,7 @@
19 19
                     <label for="discussion_create_new_topic_message_text" class="s3d-bold">
20 20
                         __MSG__MESSAGE_TEXT__
21 21
                     </label>
22  
-                    <textarea id="discussion_create_new_topic_message_text" class="required" rows="6" name="Message Text"></textarea>
  22
+                    <textarea id="discussion_create_new_topic_message_text" class="required" rows="6" name="Message Text" title="__MSG__ENTER_YOUR_MESSAGE__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

placeholder here too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/embedcontent/embedcontent.html
@@ -35,17 +35,17 @@
35 35
                         {var thumbnail = sakai.api.Content.getThumbnail(item.fullresult)}
36 36
                         {if embedmethod === "thumbnail" && thumbnail}
37 37
                             {var mimeTypeDescription = sakai.config.MimeTypes[mimeType].description}
38  
-                            <a href="/content#p=${item.link}">
  38
+                            <a href="/content#p=${item.link|urlSafe}" title="${item.name}">
1
Chris Roby
croby added a note September 09, 2011

should be safeURL

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Chris Roby croby commented on the diff September 09, 2011
devwidgets/entity/entity.html
@@ -210,7 +210,7 @@
210 210
     {if type && type == "group_managed"}
211 211
         <div id="entity_group_image">
212 212
             <div class="entity_profilepic_internal">
213  
-                <img id="entity_profile_picture" src="{if data.authprofile.picture}${data.authprofile.picture}{else}/devwidgets/entity/images/entity_default_group.png{/if}"/>
  213
+                <img id="entity_profile_picture" alt="__MSG__GROUP_PICTURE_FOR__ ${data.authprofile["sakai:group-title"]}" src="{if data.authprofile.picture}${data.authprofile.picture}{else}/devwidgets/entity/images/entity_default_group.png{/if}"/>
2
Chris Roby
croby added a note September 09, 2011

need to |safeOutput this group-title

Chris Roby
croby added a note September 15, 2011

still need to fix this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/entity/entity.html
@@ -225,7 +225,7 @@
225 225
     {else}
226 226
         <div id="entity_group_image" class="entity_other_profilepic">
227 227
             <div class="entity_profilepic_internal">
228  
-                <img id="entity_profile_picture" src="{if data.authprofile.picture}${data.authprofile.picture}{else}/devwidgets/entity/images/entity_default_group.png{/if}"/>
  228
+                <img id="entity_profile_picture" alt="__MSG__GROUP_PICTURE_FOR__ ${data.authprofile["sakai:group-title"]}" src="{if data.authprofile.picture}${data.authprofile.picture}{else}/devwidgets/entity/images/entity_default_group.png{/if}"/>
1
Chris Roby
croby added a note September 09, 2011

need to |safeOutput this group-title

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/entity/entity.html
@@ -150,7 +150,7 @@
150 150
         {if data.isManager}
151 151
             <div id="entity_managed_content"></div>
152 152
         {/if}
153  
-        <img src="${data.data['iconURL']}"/>
  153
+        <img src="${data.data['iconURL']}" alt="${data.data["sakai:pooled-content-file-name"]}"/>
1
Chris Roby
croby added a note September 09, 2011

need to |safeOutput this pooled-content-file-name

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Chris Roby croby commented on the diff September 09, 2011
devwidgets/allcategories/allcategories.html
@@ -27,15 +27,15 @@
27 27
                                 {if thumbnail}
28 28
                                     <img src="${thumbnail}" class="allcategories_item_content_preview" alt="${item.content["sakai:pooled-content-file-name"]|safeOutput}"/>
29 29
                                 {else}
30  
-                                    <img src="${sakai.api.Content.getMimeTypeData(item.content["_mimeType"]).URL}" class="allcategories_item_content_preview"/>
  30
+                                    <img src="${sakai.api.Content.getMimeTypeData(item.content["_mimeType"]).URL}" class="allcategories_item_content_preview" alt="${item.content["sakai:pooled-content-file-name"]}"/>
2
Chris Roby
croby added a note September 09, 2011

need to |safeOutput this pooled-content-file-name

Chris Roby
croby added a note September 15, 2011

Still need to make this change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Chris Roby croby commented on the diff September 09, 2011
dev/acknowledgements.html
@@ -48,7 +48,7 @@
48 48
                         </div>
49 49
                         <div class="acknowledgement_information">
50 50
                             <h1>__MSG__JQUERY_AND_JQUERY_UI__</h1>
51  
-                            <a href="http://www.jquery.com">www.jquery.com</a> <br /><br />
  51
+                            <a href="http://www.jquery.com" title="__MSG__JQUERY_AND_JQUERY_UI__">www.jquery.com</a> <br /><br />
2
Chris Roby
croby added a note September 09, 2011

We shouldn't need these titles in this file at all, as the contents of the a tag are the url that the user goes to

Chris Roby
croby added a note September 15, 2011

Still need to fix all the titles in this file

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/featuredcontent/featuredcontent.html
@@ -147,13 +147,13 @@
147 147
                         <div class="s3d-action-icon s3d-actions-author personinfo_trigger_click featuredcontent_content_actions_authorinfo" data-userid="${small["sakai:pool-content-created-for"]}"></div>
148 148
                     </div>
149 149
                     {if small.image}
150  
-                        <img src="/p/${small["_path"]}" class="featuredcontent_thumbnail_image"/>
  150
+                        <img src="/p/${small["_path"]}" class="featuredcontent_thumbnail_image" alt="${small["sakai:pooled-content-file-name"]}"/>
1
Chris Roby
croby added a note September 09, 2011

need to |safeOutput this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Chris Roby croby commented on the diff September 09, 2011
devwidgets/featuredcontent/featuredcontent.html
((9 lines not shown))
153 153
                     {/if}
154 154
                     <a href="/content#p=${small["_path"]|safeURL}/${small["sakai:pooled-content-file-name"]|safeURL}" title="${small["sakai:pooled-content-file-name"]|safeOutput}" class="s3d-bold s3d-regular-links featuredcontent_content_title">${sakai.api.Util.applyThreeDots(small["sakai:pooled-content-file-name"], 76)}</a>
155 155
                     <span class="featuredcontent_content_category_description"><span class="featuredcontent_content_usedin_icon featuredcontent_content_icon"></span>__MSG__USED_IN__ ${small.usedin} {if small.usedin == 1} __MSG__PLACE__{else} __MSG__PLACES__{/if}</span>
156  
-                    {if small.commentcount}<span class="featuredcontent_content_category_description"><span class="featuredcontent_content_comments_icon featuredcontent_content_icon"></span><a href="/content#p=${small["_path"]|safeURL}/${small["sakai:pooled-content-file-name"]|safeURL}" title="${small.commentcount} {if small.commentcount == 1} __MSG__COMMENT__{else} __MSG__COMMENTS__{/if}" class="s3d-bold s3d-regular-links">${small.commentcount} {if small.commentcount == 1} __MSG__COMMENT__{else} __MSG__COMMENTS__{/if}</a></span>{/if}
  156
+                    {if small.commentcount}<span class="featuredcontent_content_category_description"><span class="featuredcontent_content_comments_icon featuredcontent_content_icon"></span><a href="/content#p=${small["_path"]|safeURL}/${small["sakai:pooled-content-file-name"]|safeURL}" class="s3d-bold s3d-regular-links">${small.commentcount} {if small.commentcount == 1} __MSG__COMMENT__{else} __MSG__COMMENTS__{/if}</a></span>{/if}
2
Chris Roby
croby added a note September 09, 2011

need to |safeOutput this

This line uses safeURL

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/featuredworlds/featuredworlds.html
@@ -27,10 +27,14 @@
27 27
             {if data[tab.id].total}
28 28
                 {for item in data[tab.id].results}
29 29
                     <div class="featuredworlds_content">
30  
-                        <img src="/dev/images/group_avatar_icon_64x64_nob.png" class="featuredworlds_image"/>
31  
-                        <a href="/~${item["sakai:group-id"]}" class="s3d-bold s3d-regular-links">${item["sakai:group-title"]|safeOutput}</a>
32  
-                        <a href="/dev/group.html?id=${item["sakai:group-id"]}#l=library" class="s3d-regular-links fl-push featuredworlds_grouppage_link">{if item.counts.contentCount} ${item.counts.contentCount} {if item.counts.contentCount != 1} __MSG__CONTENT_ITEMS__{else} __MSG__CONTENT_ITEM__{/if} {else} 0 __MSG__CONTENT_ITEMS__ {/if}</a>
33  
-                        <a href="/dev/group.html?id=${item["sakai:group-id"]}#l=memberships" class="s3d-regular-links fl-push featuredworlds_grouppage_link">${item.counts.membersCount} {if item.counts.membersCount != 1} __MSG__PARTICIPANTS__{else} __MSG__PARTICIPANT__{/if}</a>
  30
+                        <img src="/dev/images/group_avatar_icon_64x64_nob.png" class="featuredworlds_image" alt="${item["sakai:group-title"]|safeOutput}/>
  31
+                        <a href="/~${item["sakai:group-id"]}" class="s3d-bold s3d-regular-links" title="${item["sakai:group-title"]|safeOutput}">${item["sakai:group-title"]|safeOutput}</a>
  32
+                        <a href="/dev/group.html?id=${item["sakai:group-id"]}#l=library" class="s3d-regular-links fl-push featuredworlds_grouppage_link" title="{if item.counts.contentCount} ${item.counts.contentCount} {if item.counts.contentCount != 1} __MSG__CONTENT_ITEMS__{else} __MSG__CONTENT_ITEM__{/if} {else} 0 __MSG__CONTENT_ITEMS__ {/if}">
1
Chris Roby
croby added a note September 09, 2011

We should do this calculation only once - store it in a variable, and display it in both places.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/featuredworlds/featuredworlds.html
@@ -27,10 +27,14 @@
27 27
             {if data[tab.id].total}
28 28
                 {for item in data[tab.id].results}
29 29
                     <div class="featuredworlds_content">
30  
-                        <img src="/dev/images/group_avatar_icon_64x64_nob.png" class="featuredworlds_image"/>
31  
-                        <a href="/~${item["sakai:group-id"]}" class="s3d-bold s3d-regular-links">${item["sakai:group-title"]|safeOutput}</a>
32  
-                        <a href="/dev/group.html?id=${item["sakai:group-id"]}#l=library" class="s3d-regular-links fl-push featuredworlds_grouppage_link">{if item.counts.contentCount} ${item.counts.contentCount} {if item.counts.contentCount != 1} __MSG__CONTENT_ITEMS__{else} __MSG__CONTENT_ITEM__{/if} {else} 0 __MSG__CONTENT_ITEMS__ {/if}</a>
33  
-                        <a href="/dev/group.html?id=${item["sakai:group-id"]}#l=memberships" class="s3d-regular-links fl-push featuredworlds_grouppage_link">${item.counts.membersCount} {if item.counts.membersCount != 1} __MSG__PARTICIPANTS__{else} __MSG__PARTICIPANT__{/if}</a>
  30
+                        <img src="/dev/images/group_avatar_icon_64x64_nob.png" class="featuredworlds_image" alt="${item["sakai:group-title"]|safeOutput}/>
  31
+                        <a href="/~${item["sakai:group-id"]}" class="s3d-bold s3d-regular-links" title="${item["sakai:group-title"]|safeOutput}">${item["sakai:group-title"]|safeOutput}</a>
  32
+                        <a href="/dev/group.html?id=${item["sakai:group-id"]}#l=library" class="s3d-regular-links fl-push featuredworlds_grouppage_link" title="{if item.counts.contentCount} ${item.counts.contentCount} {if item.counts.contentCount != 1} __MSG__CONTENT_ITEMS__{else} __MSG__CONTENT_ITEM__{/if} {else} 0 __MSG__CONTENT_ITEMS__ {/if}">
  33
+                            {if item.counts.contentCount} ${item.counts.contentCount} {if item.counts.contentCount != 1} __MSG__CONTENT_ITEMS__{else} __MSG__CONTENT_ITEM__{/if} {else} 0 __MSG__CONTENT_ITEMS__ {/if}
  34
+                        </a>
  35
+                        <a href="/dev/group.html?id=${item["sakai:group-id"]}#l=memberships" class="s3d-regular-links fl-push featuredworlds_grouppage_link" title="${item.counts.membersCount} {if item.counts.membersCount != 1} __MSG__PARTICIPANTS__{else} __MSG__PARTICIPANT__{/if}">
1
Chris Roby
croby added a note September 09, 2011

Same here as ^^

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/listpeopleinnode/listpeopleinnode.html
@@ -37,7 +37,7 @@
37 37
         <ul>
38 38
             {for person in results}
39 39
                 <li {if person_index % 2 != 0} class="s3d-list-item s3d-highlight_area_background" {else} class="s3d-list-item" {/if}>
40  
-                    <a href="/~${person["rep:userId"]|safeURL}" target="_blank" class="s3d-list-link-full-space s3d-action">
  40
+                    <a href="/~${person["rep:userId"]|safeURL}" target="_blank" class="s3d-list-link-full-space s3d-action" title="__MSG__PROFILE_PICTURE__">
1
Chris Roby
croby added a note September 09, 2011

Should be consistent with all the other places above here -- something like Chris Roby's Profile Picture

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/newaddcontent/newaddcontent.html
@@ -50,7 +50,7 @@
50 50
                     <input placeholder="__MSG__TITLE__" type="text" id="newaddcontent_upload_content_title"/>
51 51
 
52 52
                     <label for="newaddcontent_upload_content_description">__MSG__DESCRIPTION__:</label>
53  
-                    <textarea placeholder="__MSG__DESCRIPTION_HELPS_FINDABILITY__" id="newaddcontent_upload_content_description"></textarea>
  53
+                    <textarea placeholder="__MSG__DESCRIPTION_HELPS_FINDABILITY__" id="newaddcontent_upload_content_description" title="__MSG__ENTER_A_DESCRIPTION__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

placeholder here too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/newaddcontent/newaddcontent.html
@@ -77,7 +77,7 @@
77 77
                     <input type="text" id="newaddcontent_add_document_title"/>
78 78
 
79 79
                     <label for="newaddcontent_add_document_description">__MSG__DESCRIPTION__:</label>
80  
-                    <textarea id="newaddcontent_add_document_description"></textarea>
  80
+                    <textarea id="newaddcontent_add_document_description" title="__MSG__ENTER_A_DESCRIPTION__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

placeholder here too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/newaddcontent/newaddcontent.html
@@ -116,7 +116,7 @@
116 116
                     <input type="text" id="newaddcontent_add_link_title"/>
117 117
 
118 118
                     <label for="newaddcontent_add_link_description">__MSG__DESCRIPTION__:</label>
119  
-                    <textarea id="newaddcontent_add_link_description"></textarea>
  119
+                    <textarea id="newaddcontent_add_link_description" title="__MSG__ENTER_A_DESCRIPTION__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

placeholder here too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/newaddcontent/newaddcontent.html
@@ -157,7 +157,7 @@
157 157
             <label for="newaddcontent_selecteditems_edit_data_title">__MSG__TITLE__:</label>
158 158
             <input type="text" id="newaddcontent_selecteditems_edit_data_title" value="${item.title|safeOutput}"/>
159 159
             <label for="newaddcontent_selecteditems_edit_data_description">__MSG__DESCRIPTION__:</label>
160  
-            <textarea id="newaddcontent_selecteditems_edit_data_description">${item.description|safeOutput}</textarea>
  160
+            <textarea id="newaddcontent_selecteditems_edit_data_description" title="__MSG__EDIT_DESCRIPTION__">${item.description|safeOutput}</textarea>
1
Chris Roby
croby added a note September 09, 2011

placeholder here too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/newcreategroup/newcreategroup.html
@@ -22,9 +22,9 @@
22 22
             <label for="newcreategroup_suggested_url">__MSG__SUGGESTED_URL__:</label>
23 23
             <span id="newcreategroup_suggested_url_base"></span><input type="text" id="newcreategroup_suggested_url" name="newcreategroup_suggested_url" class="required"/>
24 24
             <label for="newcreategroup_description">__MSG__DESCRIPTION__:</label>
25  
-            <textarea id="newcreategroup_description" name="newcreategroup_description"></textarea>
  25
+            <textarea id="newcreategroup_description" name="newcreategroup_description" title="__MSG__ENTER_A_DESCRIPTION__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

placeholder here too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/newcreategroup/newcreategroup.html
((6 lines not shown))
26 26
             <label for="newcreategroup_tags">__MSG__TAGS__:</label>
27  
-            <textarea id="newcreategroup_tags" name="newcreategroup_tags"></textarea>
  27
+            <textarea id="newcreategroup_tags" name="newcreategroup_tags" title="__MSG__ENTER_TAGS__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

placeholder here too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/newcreategroup/newcreategroup.html
@@ -74,7 +74,7 @@
74 74
                 {/for}
75 75
             </ul>
76 76
         </div>
77  
-        <textarea id="newcreategroup_members_message"></textarea>
  77
+        <textarea id="newcreategroup_members_message" title="__MSG__ENTER_A_MESSAGE__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

placeholder here too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/newsharecontent/newsharecontent.html
@@ -28,7 +28,7 @@
28 28
                     <span id="newsharecontent_message_arrow" class="arrow_right"></span><label for="newsharecontent_message" class="toggletext">__MSG__MESSAGE__:</label>
29 29
                     </div>
30 30
                     <div id="newsharecontent_message_container">
31  
-                        <textarea id="newsharecontent_message" placeholder="Enter message"></textarea>
  31
+                        <textarea id="newsharecontent_message" placeholder="__MSG__ENTER_MESSAGE__" title="__MSG__ENTER_MESSAGE__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

placeholder here too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Chris Roby croby commented on the diff September 09, 2011
devwidgets/personinfo/personinfo.html
@@ -23,7 +23,7 @@
23 23
 <div id="personinfo_template" style="display:none"><!--
24 24
     <div id="personinfo_user">
25 25
         <span id="personinfo_user_picture">
26  
-            <img src="${user.displayPicture}"/>
  26
+            <img src="${user.displayPicture}" alt="__MSG__PROFILE_PICTURE_FOR__ ${user.displayName}"/>
2
Chris Roby
croby added a note September 09, 2011

Just a note to check for consistency with all the other alts for profile pictures

Chris Roby
croby added a note September 15, 2011

Still need to fix this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/pickeradvanced/pickeradvanced.html
@@ -131,7 +131,7 @@
131 131
         </div>
132 132
 
133 133
         <div id="pickeradvanced_group_search_template" style="display:none"><!--
134  
-            <li><button type="button" id="pickeradvanced_search_groups_${data.groupid}" class="pickeradvanced_search_filter s3d-action s3d-bold s3d-link-button">${data["sakai:group-title"]|safeOutput}</button></li>
  134
+            <li><button type="button" id="pickeradvanced_search_groups_${data.groupid}" class="pickeradvanced_search_filter s3d-action s3d-bold s3d-link-button" title="${data["sakai:group-title"]|safeOutput}">${data["sakai:group-title"]|safeOutput}</button></li>
1
Chris Roby
croby added a note September 09, 2011

Don't need this title as it doubles the contents

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/pickeruser/pickeruser.html
@@ -18,7 +18,7 @@
18 18
             <div id="pickeruser_send_message" class="fl-force-left s3d-highlight_area_background">
19 19
                 <span class="fl-force-left">__MSG__SEND_PERSONAL_MESSAGE__</span>
20 20
                 <span class="fl-force-left">
21  
-                    <textarea id="pickeruser_message"></textarea>
  21
+                    <textarea id="pickeruser_message" title="__MSG__ENTER_A_MESSAGE__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

placeholder here too

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/poll/poll.html
@@ -111,7 +111,7 @@
111 111
     <div id="poll_options_template"><!--
112 112
         {for option in poll.options}
113 113
             <div id="poll_question${option_index}">
114  
-                <input type="text" id="poll_question_input${option_index}" value="${option}" /><button type="button" class="poll_close s3d-link-button s3d-bold">x</button>
  114
+                <input type="text" id="poll_question_input${option_index}" value="${option}" /><button type="button" class="poll_close s3d-link-button s3d-bold" title="__MSG__CLOSE__">x</button>
1
Chris Roby
croby added a note September 09, 2011

Should internationalize this x

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/recentcontactsnew/recentcontactsnew.html
@@ -17,7 +17,7 @@
17 17
             <div class="recentcontactsnew_item"></div>
18 18
             <div id="recentcontactsnew_item_template"><!--
19 19
                 <div class="recentcontactsnew_item_img fl-force-left">
20  
-                    <a href="#">
  20
+                    <a href="#" title="__MSG__PROFILE_PICTURE__">
1
Chris Roby
croby added a note September 09, 2011

Should be consistent with the other titles/alts for profile pictures -- and this img below should probably have an alt instead of this a having a title

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/recentcontactsnew/recentcontactsnew.html
@@ -52,12 +52,12 @@
52 52
             <div class="recentcontactsnew_item_related_info">
53 53
                 <p class="recentcontactsnew_item_meta_data">${firstName|safeOutput} __MSG__RECENT_CONNECTION__</p>
54 54
                 <div class="fl-force-left">
55  
-                <a href="/~${connection.connectionId}">
  55
+                <a href="/~${connection.connectionId}" title="__MSG__PROFILE_PICTURE__>
1
Chris Roby
croby added a note September 09, 2011

Same comment as above

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/recentmemberships/recentmemberships.html
@@ -17,7 +17,7 @@
17 17
             <div class="recentmemberships_item"></div>
18 18
             <div id="recentmemberships_item_template"><!--
19 19
                 <div class="recentmemberships_item_img fl-force-left">
20  
-                    <a href="#">
  20
+                    <a href="#" title="__MSG__PROFILE_PICTURE__">
1
Chris Roby
croby added a note September 09, 2011

Same as the above comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/recentmemberships/recentmemberships.html
@@ -48,12 +48,12 @@
48 48
             <div class="recentmemberships_item_related_info">
49 49
                 <p class="recentmemberships_item_meta_data">__MSG__RECENTLY_CONNECTED_TO__ <span>${group["sakai:group-title"]}</span></p>
50 50
                 <div class="fl-force-left">
51  
-                <a href="/~${member.memberId}">
  51
+                <a href="/~${member.memberId}" title="__MSG__PROFILE_PICTURE__">
1
Chris Roby
croby added a note September 09, 2011

Same as the above comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/recentmemberships/recentmemberships.html
@@ -80,7 +80,7 @@
80 80
                     </a>
81 81
                 </div>
82 82
                 <div class="recentmemberships_item_div">
83  
-                    <a class="recentmemberships_item_link s3d-widget-links s3d-bold" href="/content#p=${content['_path']}/${content.name}" title="${content.name}">
  83
+                    <a class="recentmemberships_item_link s3d-widget-links s3d-bold" href="/content#p=${content['_path']|urlSafe}/${content.name|urlSafe}">
1
Chris Roby
croby added a note September 09, 2011

should be safeURL

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
devwidgets/sakaidocs/sakaidocs.html
@@ -66,12 +66,12 @@
66 66
                             <div class="edit_contents_main">
67 67
                                 <div id="fl-tab-content-editor">
68 68
                                     <div id="placeholderforeditor" class="textarea">
69  
-                                        <textarea id="elm1" name="elm1" style="width: 100%; height:430px"></textarea>
  69
+                                        <textarea id="elm1" name="elm1" style="width: 100%; height:430px" title="__MSG__EDITOR__"></textarea>
1
Chris Roby
croby added a note September 09, 2011

Can remove this title -- this textarea gets replaced by tinymce

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
and others added some commits September 12, 2011
Chris Roby SAKIII-3985 Add pagination to the participants widget
* Adds in data caching for group/role functions in sakai.api.groups.js to prevent massive amounts of requests from firing
* Added A-Z and Z-A sorting for the participants widget (was in the NYU fork of it, so I figured it could be useful)
ec7905c
Chris Roby SAKIII-3985 Fix the items parameter 520a934
Nicolaas Matthijs Merge branch 'master' into SAKIII-3981
* master:
  updating version number to 1.1-SNAPSHOT
  changing version number for release
  SAKIII-3987 Cannot add a page from the SakaiDoc profile page
  KERN-2151 change hardcoded localhosts to relative urls
44b2ac1
Nicolaas Matthijs SAKIII-3981 - Pass on redirect parameter to SSO login page dde5557
SAKIII-3710 changes per code review 1c0d163
jsloane SAKIII-3710 changes per code review 4559404
jsloane SAKIII-3710 change to wcag unit test 093da9e
jsloane Merge branch 'SAKIII-3710' of github.com:jsloane/3akai-ux into SAKIII…
…-3710

* 'SAKIII-3710' of github.com:jsloane/3akai-ux:
  SAKIII-3710 changes per code review
7cf9775
Nicolaas Matthijs Merge branch 'SAKIII-3963' of git://github.com/croby/3akai-ux into SA…
…KIII-3963

* 'SAKIII-3963' of git://github.com/croby/3akai-ux:
  SAKIII-3963 Some cleanup
  SAKIII-3963 Check for a pre-parsed picture in constructProfilePicture
7172295
Nicolaas Matthijs Merge branch 'truncation-fix' of git://github.com/marktriggs/3akai-ux…
… into truncation-fix

* 'truncation-fix' of git://github.com/marktriggs/3akai-ux:
  Try up to 10 times to apply ThreeDots before giving up if the element still has a height of zero.
  NOJIRA Fix issue where the user's name would be occasionally truncated to the first letter.
8529700
Nicolaas Matthijs Merge branch 'SAKIII-3985' of git://github.com/croby/3akai-ux into SA…
…KIII-3985

* 'SAKIII-3985' of git://github.com/croby/3akai-ux:
  SAKIII-3985 Fix the items parameter
  SAKIII-3985 Add pagination to the participants widget
456b640
Nicolaas Matthijs SAKIII-3985 - Add pagination to the participants widget 5ec4ae7
jsloane SAKIII-3710 resolve merge conflicts b3005ed
jsloane SAKIII-3710 fix remaining wcag unit test failures b4820c0
jsloane

New pull request for master #1118

jsloane jsloane closed this September 15, 2011
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Showing 58 unique commits by 7 authors.

Aug 08, 2011
jsloane SAKIII-3709 checking templates in wcag unit test and fixing some fail…
…ures
d8ecea2
jsloane SAKIII-3710 checking templates in wcag unit test and fixing some fail…
…ures
4b80070
Chris Roby Merge branch 'v1.1' of github.com:sakaiproject/3akai-ux into v1.1 c1c2c56
Aug 09, 2011
jsloane SAKIII-3710 check button tags in wcag unit test 505b92b
jsloane SAKIII-3710 added title attribute to buttons e7347e0
Aug 11, 2011
jsloane Merge branch 'v1.1' of github.com:sakaiproject/3akai-ux into SAKIII-3710
* 'v1.1' of github.com:sakaiproject/3akai-ux:
  NOJIRA - Fixing some wording and counts
  SAKIII-3816 - Area Permissions interface for pages within area does not show complete interface
  SAKIII-3819 Check for an empty object in the directory parsing
  SAKIII-3595 Search by tag for people, content, and worlds
  SAKIII-3691 Only retrieve sakaidocs when adding an existing document as an area to a world
  SAKIII-3813 no more sakai:custom-mimetype
  SAKIII-3685 focus on contentcomments textarea
  SAKIII-3806 Add #l=library to the group serach result
  SAKIII-3690 This issue is largely being caused by too many things being squished on the line, and so at certain font sizes/zoomlevels, the Clear label is droppping down when it hits the floated right Combo box. To balance this, I am dropping the Search box down to 150px from 200px, which still seems large enough (and about the same size as the one on the top navigation), and keeps everything on the same line unless you zoom the browser font really really small.
  SAKIII-3095 making profile required field error messages configurable
  SAKIII-3093 add aria-live attribute to dynamic pages
023363d
jsloane SAKIII-3710 adding link title to wcag unit test and added title to links f10476f
Aug 12, 2011
jsloane SAKIII-3840 add title to textareas ece0f27
Gonzalo Silverio SAKAIII-3832 8851690
Aug 16, 2011
Chris Roby Merge branch 'v1.1' of github.com:sakaiproject/3akai-ux into v1.1 90e5140
Aug 17, 2011
jsloane SAKIII-3710 resolving merge conflict 1c500ae
Nicolaas Matthijs SAKIII-3877 - Going to a category that doesn't exist throws an error …
…and does't fully render the page
d06c6da
Aug 18, 2011
Gonzalo Silverio SAKIII-3832 - using global s3d aural class for legend aff17fd
Aug 19, 2011
jsloane SAKIII-3710 resolving merge conflicts dca18f0
Aug 31, 2011
Chris Roby Merge branch 'v1.1' of github.com:sakaiproject/3akai-ux into v1.1 75a03af
Chris Roby Merge branch 'master' of github.com:sakaiproject/3akai-ux into v1.1
Conflicts:
	devwidgets/contentmetadata/javascript/contentmetadata.js
	devwidgets/lhnavigation/lhnavigation.html
6ce4ea8
Chris Roby Merge branch 'v1.0.1' of github.com:sakaiproject/3akai-ux into v1.1
Conflicts:
	devwidgets/contentmetadata/javascript/contentmetadata.js
7d4e22f
Chris Roby Merge branch 'SAKIII-3887' of git://github.com/croby/3akai-ux into cr…
…oby-SAKIII-3887
f42161f
Chris Roby SAKIII-3887 Also handle the case where there is no l param in the URL 9cbe480
Chris Roby Merge branch 'v1.0.1' of github.com:sakaiproject/3akai-ux into v1.1 33f46c8
Sep 01, 2011
SAKIII-3988 Implement design for counts in the left hand navigation a5360f3
SAKIII-3689 Server URL should be cut off if it is too long for the Cr…
…eate new world screen
4628470
Sep 02, 2011
jsloane SAKIII-3710 resolving merge conflicts 786afae
Sep 03, 2011
Mark Triggs NOJIRA Fix issue where the user's name would be occasionally truncate…
…d to the first letter.

Every so often, the span.ellipsis_text element passed to ThreeDots has a height of zero.  This causes the 'num_rows' function of jquery.threedots.js to return NaN for the element, which in turn causes the 'the_bisector' function to incorrectly truncate the string.
6ba08c4
jsloane SAKIII-3917 fixing profile pictures in addpeople widget 6289651
SAKIII-3494 Alt Text flashes when removing a person from your contacts 67002a9
SAKIII-3786 Remove version control for links d213457
Sep 05, 2011
Merge remote branch 'origin/v1.1' into v1.1SAKIII-3689 78ac3be
SAKIII-3689 Extend threedots API to be able to threedot a string in t…
…he middle and apply to suggested url in create group screen
500bbea
Merge remote branch 'origin/v1.1' into v1.1SAKIII-3988 d18df4f
Nicolaas Matthijs SAKIII-3981 - Pass on redirect parameter to SSO login page 71a7d32
Nicolaas Matthijs Merge branch 'v1.0.1' into v11merge
* v1.0.1:
  SAKIII-3906 Updating icon to say Sakai 2 Tool rather than Remote Content since its not a straight BLTI widget.
7671223
Sep 06, 2011
Mark Triggs Try up to 10 times to apply ThreeDots before giving up if the element…
… still has a height of zero.
79b4734
SAKIII-3988 Fixes for counts in the left hand nav 851ea23
Nicolaas Matthijs SAKIII-4003 - Math courses have different ACLs compared to Math template acfdc70
Nicolaas Matthijs Merge branch 'v1.1SAKIII-3689' of git://github.com/bp323/3akai-ux int…
…o SAKIII-3689

* 'v1.1SAKIII-3689' of git://github.com/bp323/3akai-ux:
  SAKIII-3689 Extend threedots API to be able to threedot a string in the middle and apply to suggested url in create group screen
  SAKIII-3689 Server URL should be cut off if it is too long for the Create new world screen
83b6c91
Nicolaas Matthijs Merge branch 'v1.1SAKIII-3988' of git://github.com/bp323/3akai-ux int…
…o v1.1SAKIII-3988

* 'v1.1SAKIII-3988' of git://github.com/bp323/3akai-ux:
  SAKIII-3988 Fixes for counts in the left hand nav
  SAKIII-3988 Implement design for counts in the left hand navigation
e7f7f74
Nicolaas Matthijs SAKIII-3988 - Implement design for counts in the left hand navigation bcd3f40
Sep 07, 2011
Nicolaas Matthijs Merge branch 'SAKAIII-3832' of git://github.com/gsilver/3akai-ux into…
… SAKAIII-3832

* 'SAKAIII-3832' of git://github.com/gsilver/3akai-ux:
  SAKIII-3832 - using global s3d aural class for legend
  SAKAIII-3832

Conflicts:
	devwidgets/carousel/carousel.html
23c4b35
Sep 08, 2011
jsloane SAKIII-3710 resolve merge conflicts 5bbb11d
jsloane SAKIII-3710 adjust wcag unit test 45ea4ec
jsloane SAKIII-3710 removing unneccessary title attributes 5d68fc3
jsloane SAKIII-3710 removing unneccessary title attributes 9b9bc58
jsloane SAKIII-3710 removing unneccessary title attributes c598e11
Sep 12, 2011
Chris Roby SAKIII-3985 Add pagination to the participants widget
* Adds in data caching for group/role functions in sakai.api.groups.js to prevent massive amounts of requests from firing
* Added A-Z and Z-A sorting for the participants widget (was in the NYU fork of it, so I figured it could be useful)
ec7905c
Chris Roby SAKIII-3985 Fix the items parameter 520a934
Sep 13, 2011
Nicolaas Matthijs Merge branch 'master' into SAKIII-3981
* master:
  updating version number to 1.1-SNAPSHOT
  changing version number for release
  SAKIII-3987 Cannot add a page from the SakaiDoc profile page
  KERN-2151 change hardcoded localhosts to relative urls
44b2ac1
Nicolaas Matthijs SAKIII-3981 - Pass on redirect parameter to SSO login page dde5557
Sep 15, 2011
SAKIII-3710 changes per code review 1c0d163
jsloane SAKIII-3710 changes per code review 4559404
jsloane SAKIII-3710 change to wcag unit test 093da9e
jsloane Merge branch 'SAKIII-3710' of github.com:jsloane/3akai-ux into SAKIII…
…-3710

* 'SAKIII-3710' of github.com:jsloane/3akai-ux:
  SAKIII-3710 changes per code review
7cf9775
Nicolaas Matthijs Merge branch 'SAKIII-3963' of git://github.com/croby/3akai-ux into SA…
…KIII-3963

* 'SAKIII-3963' of git://github.com/croby/3akai-ux:
  SAKIII-3963 Some cleanup
  SAKIII-3963 Check for a pre-parsed picture in constructProfilePicture
7172295
Nicolaas Matthijs Merge branch 'truncation-fix' of git://github.com/marktriggs/3akai-ux…
… into truncation-fix

* 'truncation-fix' of git://github.com/marktriggs/3akai-ux:
  Try up to 10 times to apply ThreeDots before giving up if the element still has a height of zero.
  NOJIRA Fix issue where the user's name would be occasionally truncated to the first letter.
8529700
Nicolaas Matthijs Merge branch 'SAKIII-3985' of git://github.com/croby/3akai-ux into SA…
…KIII-3985

* 'SAKIII-3985' of git://github.com/croby/3akai-ux:
  SAKIII-3985 Fix the items parameter
  SAKIII-3985 Add pagination to the participants widget
456b640
Nicolaas Matthijs SAKIII-3985 - Add pagination to the participants widget 5ec4ae7
Sep 16, 2011
jsloane SAKIII-3710 resolve merge conflicts b3005ed
jsloane SAKIII-3710 fix remaining wcag unit test failures b4820c0
This page is out of date. Refresh to see the latest.

Showing 110 changed files with 620 additions and 378 deletions. Show diff stats Hide diff stats

  1. BIN  PSD/all_icons.psd
  2. 8  dev/acknowledgements.html
  3. 6  dev/admin/widgets.html
  4. 11  dev/bundle/default.properties
  5. 2  dev/configuration/config.js
  6. 2  dev/group.html
  7. BIN  dev/images/lefthandnav_count.png
  8. BIN  dev/images/lefthandnav_count_hover.png
  9. 13  dev/javascript/category.js
  10. 148  dev/lib/sakai/sakai.api.groups.js
  11. 51  dev/lib/sakai/sakai.api.util.js
  12. 2  dev/s23/s23_site.html
  13. 2  dev/search_sakai2.html
  14. 4  devwidgets/addarea/addarea.html
  15. 1  devwidgets/addarea/bundles/default.properties
  16. 4  devwidgets/addpeople/addpeople.html
  17. 25  devwidgets/addpeople/javascript/addpeople.js
  18. 2  devwidgets/addtocontacts/addtocontacts.html
  19. 1  devwidgets/addtocontacts/bundles/default.properties
  20. 8  devwidgets/allcategories/allcategories.html
  21. 1  devwidgets/allcategories/bundles/default.properties
  22. 2  devwidgets/areapermissions/areapermissions.html
  23. 2  devwidgets/assignlocation/assignlocation.html
  24. 12  devwidgets/basiclti/basiclti.html
  25. 5  devwidgets/basiclti/bundles/default.properties
  26. 4  devwidgets/carousel/bundles/default.properties
  27. 48  devwidgets/carousel/carousel.html
  28. 2  devwidgets/carousel/css/carousel.css
  29. 8  devwidgets/categories/categories.html
  30. 5  devwidgets/categories/javascript/categories.js
  31. 2  devwidgets/comments/bundles/default.properties
  32. 4  devwidgets/comments/comments.html
  33. 1  devwidgets/contacts/bundles/default.properties
  34. 42  devwidgets/contacts/contacts.html
  35. 2  devwidgets/contacts/javascript/contacts.js
  36. 1  devwidgets/contentcomments/bundles/default.properties
  37. 4  devwidgets/contentcomments/contentcomments.html
  38. 6  devwidgets/contentmetadata/bundles/default.properties
  39. 12  devwidgets/contentmetadata/contentmetadata.html
  40. 1  devwidgets/contentpermissions/bundles/default.properties
  41. 2  devwidgets/contentpermissions/contentpermissions.html
  42. 1  devwidgets/creategroup/bundles/default.properties
  43. 2  devwidgets/creategroup/creategroup.html
  44. 1  devwidgets/dashboard/bundles/default.properties
  45. 2  devwidgets/dashboard/dashboard.html
  46. 2  devwidgets/discussion/bundles/default.properties
  47. 6  devwidgets/discussion/discussion.html
  48. 2  devwidgets/displayprofilesection/displayprofilesection.html
  49. 8  devwidgets/embedcontent/embedcontent.html
  50. 5  devwidgets/entity/bundles/default.properties
  51. 44  devwidgets/entity/entity.html
  52. 16  devwidgets/featuredcontent/featuredcontent.html
  53. 14  devwidgets/featuredpeople/featuredpeople.html
  54. 14  devwidgets/featuredworlds/featuredworlds.html
  55. 4  devwidgets/footer/bundles/default.properties
  56. 6  devwidgets/footer/footer.html
  57. 1  devwidgets/googlemaps/googlemaps.html
  58. 2  devwidgets/help/help.html
  59. 2  devwidgets/inbox/bundles/default.properties
  60. 18  devwidgets/inbox/inbox.html
  61. 1  devwidgets/jisccontent/bundles/default.properties
  62. 2  devwidgets/jisccontent/jisccontent.html
  63. 11  devwidgets/lhnavigation/css/lhnavigation.css
  64. 2  devwidgets/lhnavigation/javascript/lhnavigation.js
  65. 17  devwidgets/lhnavigation/lhnavigation.html
  66. 6  devwidgets/listpeopleinnode/listpeopleinnode.html
  67. BIN  devwidgets/mylibrary/images/mylibrary.png
  68. 18  devwidgets/mylibrary/mylibrary.html
  69. 3  devwidgets/newaddcontent/bundles/default.properties
  70. 18  devwidgets/newaddcontent/newaddcontent.html
  71. 3  devwidgets/newcreategroup/bundles/default.properties
  72. 4  devwidgets/newcreategroup/javascript/newcreategroup.js
  73. 6  devwidgets/newcreategroup/newcreategroup.html
  74. 1  devwidgets/newsharecontent/bundles/default.properties
  75. 2  devwidgets/newsharecontent/newsharecontent.html
  76. 4  devwidgets/participants/bundles/default.properties
  77. 1  devwidgets/participants/css/participants.css
  78. BIN  devwidgets/participants/images/participants.png
  79. 29  devwidgets/participants/javascript/participants.js
  80. 18  devwidgets/participants/participants.html
  81. 4  devwidgets/personinfo/personinfo.html
  82. 1  devwidgets/pickeruser/bundles/default.properties
  83. 2  devwidgets/pickeruser/pickeruser.html
  84. 2  devwidgets/poll/bundles/default.properties
  85. 4  devwidgets/poll/poll.html
  86. 2  devwidgets/profilesection/bundles/default.properties
  87. 4  devwidgets/profilesection/profilesection.html
  88. 4  devwidgets/recentactivity/recentactivity.html
  89. 6  devwidgets/recentchangedcontent/recentchangedcontent.html
  90. 6  devwidgets/recentcontactsnew/javascript/recentcontactsnew.js
  91. 12  devwidgets/recentcontactsnew/recentcontactsnew.html
  92. 4  devwidgets/recentmemberships/javascript/recentmemberships.js
  93. 14  devwidgets/recentmemberships/recentmemberships.html
  94. 12  devwidgets/sakai2tools/sakai2tools.html
  95. 3  devwidgets/sakaidocs/bundles/default.properties
  96. 6  devwidgets/sakaidocs/sakaidocs.html
  97. 26  devwidgets/searchall/searchall.html
  98. 10  devwidgets/searchcontent/searchcontent.html
  99. 8  devwidgets/searchgroups/searchgroups.html
  100. 10  devwidgets/searchpeople/searchpeople.html
  101. 2  devwidgets/searchsakai2/searchsakai2.html
  102. 1  devwidgets/sendmessage/bundles/default.properties
  103. 2  devwidgets/sendmessage/sendmessage.html
  104. 54  devwidgets/topnavigation/javascript/topnavigation.js
  105. 10  devwidgets/topnavigation/topnavigation.html
  106. 1  devwidgets/versions/bundles/default.properties
  107. 2  devwidgets/versions/versions.html
  108. 2  devwidgets/worldsettings/bundles/default.properties
  109. 4  devwidgets/worldsettings/worldsettings.html
  110. 28  tests/qunit/tests/unit/js/wcagcompliance.js
BIN  PSD/all_icons.psd
Binary file not shown
8  dev/acknowledgements.html
@@ -48,7 +48,7 @@
48 48
                         </div>
49 49
                         <div class="acknowledgement_information">
50 50
                             <h1>__MSG__JQUERY_AND_JQUERY_UI__</h1>
51  
-                            <a href="http://www.jquery.com">www.jquery.com</a> <br /><br />
  51
+                            <a href="http://www.jquery.com" title="__MSG__JQUERY_AND_JQUERY_UI__">www.jquery.com</a> <br /><br />
52 52
                             <span>__MSG__JQUERY_IS_A_FAST_AND_CONCISE__</span>
53 53
                         </div>
54 54
                     </div>
@@ -64,7 +64,7 @@
64 64
                         </div>
65 65
                         <div class="acknowledgement_information">
66 66
                             <h1>__MSG__APACHE_SLING__</h1>
67  
-                            <a href="http://sling.apache.org">sling.apache.org</a> <br /><br />
  67
+                            <a href="http://sling.apache.org" title="__MSG__APACHE_SLING__">sling.apache.org</a> <br /><br />
68 68
                             <span>__MSG__APACHE_SLING_IS_A_WEB_FRAMWORK__</span>
69 69
                         </div>
70 70
                     </div>
@@ -80,7 +80,7 @@
80 80
                         </div>
81 81
                         <div class="acknowledgement_information">
82 82
                             <h1>__MSG__FLUID_INFUSION__</h1>
83  
-                            <a href="http://www.fluidproject.org/products/infusion">http://www.fluidproject.org/products/infusion</a> <br /><br />
  83
+                            <a href="http://www.fluidproject.org/products/infusion" title="__MSG__FLUID_INFUSION__">http://www.fluidproject.org/products/infusion</a> <br /><br />
84 84
                             <span>__MSG__WE_THINK_GOOD_INTERFACES__</span>
85 85
                         </div>
86 86
                     </div>
@@ -133,7 +133,7 @@
133 133
                 </div>
134 134
                 <div class="acknowledgement_information">
135 135
                     <h2>__MSG__COWBOY_BEN_ALMAN__</h2>
136  
-                    <a href="http://benalman.com/about/license" target="_blank" title='__MSG__COWBOY_BEN_ALMAN__'>http://benalman.com/about/license</a>
  136
+                    <a href="http://benalman.com/about/license" target="_blank" title="__MSG__COWBOY_BEN_ALMAN__">http://benalman.com/about/license</a>
137 137
                     <br/>
138 138
                     <span>__MSG__JQUERY_BBQ__</span>
139 139
                 </div>
6  dev/admin/widgets.html
@@ -180,7 +180,7 @@ <h2 id="admin_widgets_header">__MSG__CONTRIB_WIDGETS__</h2>
180 180
             <div class="dialog_header">
181 181
                 <div class="dialog_header_inner">
182 182
                 <h1>__MSG__DISABLE_WIDGET__</h1>
183  
-                <a href="javascript:;" class="jqmClose dialog_close_image" title="__MSG__CLOSE_DIALOG__">__MSG__CLOSE_DIALOG__</a>
  183
+                <a href="javascript:;" class="jqmClose dialog_close_image">__MSG__CLOSE_DIALOG__</a>
184 184
                 </div>
185 185
             </div>
186 186
             <div class="dialog_content">
@@ -201,7 +201,7 @@ <h2 id="admin_widgets_header">__MSG__CONTRIB_WIDGETS__</h2>
201 201
             <div class="dialog_header">
202 202
                 <div class="dialog_header_inner">
203 203
                 <h1>__MSG__ENABLE_WIDGET__</h1>
204  
-                <a href="javascript:;" class="jqmClose dialog_close_image" title="__MSG__CLOSE_DIALOG__">__MSG__CLOSE_DIALOG__</a>
  204
+                <a href="javascript:;" class="jqmClose dialog_close_image">__MSG__CLOSE_DIALOG__</a>
205 205
                 </div>
206 206
             </div>
207 207
             <div class="dialog_content">
@@ -222,7 +222,7 @@ <h2 id="admin_widgets_header">__MSG__CONTRIB_WIDGETS__</h2>
222 222
             <div class="dialog_header">
223 223
                 <div class="dialog_header_inner">
224 224
                 <h1>__MSG__DELETE_WIDGET__</h1>
225  
-                <a href="javascript:;" class="jqmClose dialog_close_image" title="__MSG__CLOSE_DIALOG__">__MSG__CLOSE_DIALOG__</a>
  225
+                <a href="javascript:;" class="jqmClose dialog_close_image">__MSG__CLOSE_DIALOG__</a>
226 226
                 </div>
227 227
             </div>
228 228
             <div class="dialog_content">
11  dev/bundle/default.properties
@@ -16,6 +16,7 @@ ADAM_VANDENBERG = Adam Vandenberg
16 16
 ADD = Add
17 17
 ADD_A_DEGREE = Add a degree
18 18
 ADD_A_DEGREE_TO_YOUR_DEGREE_LIST = Add a degree to your degree list
  19
+ADD_A_NEW_AREA = Add a new area
19 20
 ADD_A_PERSONAL_NOTE_TO_THE_INVITATION = Add a personal note to the invitation
20 21
 ADD_A_POSITION = Add a position
21 22
 ADD_A_POSITION_TO_YOUR_JOB_LIST = Add a position to your job list
@@ -349,6 +350,7 @@ DATE_OF_BIRTH_EXAMPLE = Please enter your date of birth in
349 350
 DAY = day
350 351
 DAYS = days
351 352
 DECEMBER = December
  353
+DEFAULT_PROFILE_PICTURE_FOR = Default profile picture for
352 354
 DEGREE = Degree
353 355
 DEGREE_INFORMATION_ID = Degree information id
354 356
 DEGREES = Degrees
@@ -776,6 +778,9 @@ PLEASE_TRY_AGAIN_LATER = Please try again later
776 778
 PLEASE_TYPE_IN_A_URL = Please type in a URL
777 779
 PLEASE_TYPE_THE_WORD_BELOW = Please type the word below
778 780
 PNG_IMAGE = PNG image
  781
+POSSESSIVE = '
  782
+POSSESSIVE_S = 's
  783
+POSSESSIVE_KEY = s
779 784
 POSSIBLE_REASONS_FOR_THE_PAGE_NOT_BEING_FOUND = Possible reasons for the page not being found:
780 785
 POSTGRADUATE_STUDENT = Postgraduate Student
781 786
 POWERPOINT_DOCUMENT = PowerPoint document
@@ -870,6 +875,7 @@ REQUEST_TO_JOIN = Request to join group
870 875
 REQUEST_TO_JOIN_THIS_SITE = Request to join this site
871 876
 REQUIRED_INFORMATION = Required Information
872 877
 RESEARCH = Research
  878
+RESET = Reset
873 879
 RESULTS = results
874 880
 RESULTS_LOCATED_IN = Results located in
875 881
 RESULTS_TAGGED_UNDER = Results tagged with
@@ -943,6 +949,7 @@ SAKAI_WIDGETS = Sakai Widgets
943 949
 SATURDAY = Saturday
944 950
 SAVE_CHANGES = Save changes
945 951
 SAVE = Save
  952
+SAVE_CONTENT = Save content
946 953
 SAVE_SETTINGS = Save settings
947 954
 SAVING_FAILED = Saving failed
948 955
 SAVING = Saving
@@ -989,6 +996,7 @@ SENDERS_PROFILE_PIC = Sender's profile pic
989 996
 SEND_MESSAGE = Send Message
990 997
 SEND_MESSAGE_TO = Send this message to
991 998
 SENT_MESSAGES = Sent messages
  999
+SEND_A_MESSAGE = Send a message
992 1000
 SEND_US_YOUR_FEEDBACK = Send us your feedback
993 1001
 SENT = Sent
994 1002
 SENT_THIS_ON = Sent this on
@@ -997,6 +1005,7 @@ SEPTEMBER = September
997 1005
 SET_ASSOCIATIONS = Set associations
998 1006
 SET_PERMISSIONS = Set permissions
999 1007
 SETTINGS = Settings
  1008
+SHARE_CONTENT = Share content
1000 1009
 SHARE_FILES_WITH_THIS_GROUP = Share files with this group
1001 1010
 SHARE = Share
1002 1011
 SHOW = Show
@@ -1181,6 +1190,7 @@ VIDEO_FILE = Video file
1181 1190
 VIDEO_NOT_SUPPORTED = Videos not yet supported
1182 1191
 VIEWERS_OF_THIS_CONTENT = Viewers of this content
1183 1192
 VIEWERS = Viewers
  1193
+VIEW = View
1184 1194
 VIEW_GROUP = View group
1185 1195
 VIEW_GROUP_PAGES = View Group Pages
1186 1196
 VIEW_MORE_CONTENT_AND_MEDIA_RESULTS = View more content results
@@ -1188,6 +1198,7 @@ VIEW_MORE_GROUP_RESULT = View more group results
1188 1198
 VIEW_MORE_PEOPLE_RESULTS = View more people results
1189 1199
 VIEW_MY_PROFILE_AS = View My Profile As
1190 1200
 VIEW_MY_PROFILE = View My Profile
  1201
+VIEW_OWNER_INFO = View owner information
1191 1202
 VIEW_PROFILE = View profile
1192 1203
 VIEW_THE_INSTITUTION_WEBSITE = View the institution website
1193 1204
 VISIBLE_TO_ANYONE = Visible to anyone
2  dev/configuration/config.js
@@ -2954,7 +2954,7 @@ define(function(){
2954 2954
                                 "_title": "Course website",
2955 2955
                                 "_order": 3,
2956 2956
                                 "_docref": "${pid}3",
2957  
-                                "_view": ["-student", "everyone", "anonmyous"],
  2957
+                                "_view": ["-student", "everyone", "anonymous"],
2958 2958
                                 "_edit": ["-lecturer", "-ta"]
2959 2959
                             },
2960 2960
                             "organizationnotes": {
2  dev/group.html
@@ -33,7 +33,7 @@
33 33
         <div class="fl-container-flex">
34 34
             <div class="fl-fix fl-centered fixed-container s3d-main-container s3d-twocolumn">
35 35
                 <div class="s3d-page-column-left">
36  
-                    <button type="button" id="group_create_new_area" class="s3d-button s3d-header-button s3d-header-smaller-button" style="display:none;">+ Add a new area</button>
  36
+                    <button type="button" id="group_create_new_area" class="s3d-button s3d-header-button s3d-header-smaller-button" style="display:none;">+ __MSG__ADD_A_NEW_AREA__</button>
37 37
                     <div id="widget_addarea" class="widget_inline"></div>
38 38
                     <div id="widget_lhnavigation" class="widget_inline"></div>
39 39
                 </div>
BIN  dev/images/lefthandnav_count.png
BIN  dev/images/lefthandnav_count_hover.png
13  dev/javascript/category.js
@@ -39,6 +39,10 @@ require(["jquery","sakai/sakai.api.core"], function($, sakai) {
39 39
          * @param {Array} bbqData Array of IDs fetched with bbq to help identify correct children
40 40
          */
41 41
         var createBreadcrumb = function(dirData, bbqData){
  42
+            if (!dirData){
  43
+                sakai.api.Security.send404();
  44
+                return false;
  45
+            }
42 46
             // Create top level breadcrumb
43 47
             var breadcrumb = [];
44 48
             breadcrumb.push({
@@ -151,12 +155,19 @@ require(["jquery","sakai/sakai.api.core"], function($, sakai) {
151 155
          * @return {Array} Array of strings representing the selected hierarchy
152 156
          */
153 157
         var getCategory = function(){
154  
-            var category = $.bbq.getState("l").split("-");
  158
+            var category = $.bbq.getState("l");
  159
+            if (category) {
  160
+                category = category.split("-");
  161
+            }
155 162
             return category;
156 163
         };
157 164
 
158 165
         var doInit = function(){
159 166
             var category = getCategory();
  167
+            if (!$.isArray(category) || !sakai.config.Directory[category[0]]){
  168
+                sakai.api.Security.send404();
  169
+                return false;
  170
+            }
160 171
             sakai.config.Directory[category[0]].id = category[0];
161 172
             generateNav(sakai.config.Directory[category[0]]);
162 173
             createBreadcrumb(sakai.config.Directory[category[0]], category);
148  dev/lib/sakai/sakai.api.groups.js
@@ -74,6 +74,8 @@ define(
74 74
             });
75 75
         },
76 76
 
  77
+        groupData : {},
  78
+
77 79
         /**
78 80
          * Get the data for the specified group
79 81
          *
@@ -82,28 +84,33 @@ define(
82 84
          * @param {Boolean} async If this call should be ascynronous, defaults to true
83 85
          */
84 86
         getGroupAuthorizableData : function(groupid, callback, async, cache) {
85  
-            if (async === null || async === undefined) {
86  
-                async = true;
87  
-            }
88  
-            if (cache !== false) {
89  
-                cache = true;
90  
-            }
91  
-            $.ajax({
92  
-                url: "/system/userManager/group/" + groupid + ".json",
93  
-                async: async,
94  
-                cache: cache,
95  
-                success: function(data) {
96  
-                    if ($.isFunction(callback)) {
97  
-                        callback(true, data);
98  
-                    }
99  
-                },
100  
-                error: function(xhr, textStatus, thrownError) {
101  
-                    debug.error("Could not get data for group " + groupid);
102  
-                    if ($.isFunction(callback)) {
103  
-                        callback(false, xhr);
104  
-                    }
  87
+            if ($.isPlainObject(sakaiGroupsAPI.groupData[groupid]) && $.isFunction(callback)) {
  88
+                callback(true, sakaiGroupsAPI.groupData[groupid]);
  89
+            } else {
  90
+                if (async === null || async === undefined) {
  91
+                    async = true;
105 92
                 }
106  
-            });
  93
+                if (cache !== false) {
  94
+                    cache = true;
  95
+                }
  96
+                $.ajax({
  97
+                    url: "/system/userManager/group/" + groupid + ".json",
  98
+                    async: async,
  99
+                    cache: cache,
  100
+                    success: function(data) {
  101
+                        sakaiGroupsAPI.groupData[groupid] = data;
  102
+                        if ($.isFunction(callback)) {
  103
+                            callback(true, data);
  104
+                        }
  105
+                    },
  106
+                    error: function(xhr, textStatus, thrownError) {
  107
+                        debug.error("Could not get data for group " + groupid);
  108
+                        if ($.isFunction(callback)) {
  109
+                            callback(false, xhr);
  110
+                        }
  111
+                    }
  112
+                });
  113
+            }
107 114
         },
108 115
 
109 116
         /**
@@ -784,31 +791,53 @@ define(
784 791
          * Searches through managers and members of a group and returns the results
785 792
          * @param {String} groupId Id of the group to search in
786 793
          * @param {String} query Query put in by the user, if empty a search for all participants is executed
  794
+         * @param {Number} num The number of items to search for (page size)
  795
+         * @param {Number} page The current page (0-indexed)
  796
+         * @param {String} sort The parameter to sort on (firstName or lastName)
  797
+         * @param {String} sortOrder The direction of the sort (desc or asc)
787 798
          * @param {Function} callback Function executed on success or error
  799
+
788 800
          */
789  
-        searchMembers: function(groupId, query, callback){
  801
+        searchMembers: function(groupId, query, num, page, sort, sortOrder, callback) {
790 802
             if (groupId) {
791 803
                 var url = "";
792  
-                if(query && query !== "*"){
  804
+                if (query && query !== "*") {
793 805
                     url = sakai_conf.URL.SEARCH_GROUP_MEMBERS + "?group=" + groupId + "&q=" + query;
794  
-                }else {
  806
+                } else {
795 807
                     url = sakai_conf.URL.SEARCH_GROUP_MEMBERS_ALL + "?group=" + groupId;
796 808
                 }
  809
+                if (num !== undefined) {
  810
+                    url += "&items=" + num;
  811
+                }
  812
+                if (page !== undefined) {
  813
+                    url += "&page=" + page;
  814
+                }
  815
+                if (sort) {
  816
+                    url += "&sortOn=" + sort;
  817
+                }
  818
+                if (sortOrder) {
  819
+                    url += "&sortOrder=" + sortOrder;
  820
+                }
797 821
                 $.ajax({
798 822
                     url: url,
799 823
                     type: "GET",
800 824
                     success: function(data){
801 825
                         var participantCount = 0;
802 826
                         if (data.results.length) {
803  
-                            $.each(data.results, function(index, user){
804  
-                                sakaiGroupsAPI.getRole(user.userid, groupId, function(success, role){
805  
-                                    user.role = role;
806  
-                                    participantCount++;
807  
-                                    if (participantCount === data.results.length) {
808  
-                                        if ($.isFunction(callback)) {
809  
-                                            callback(true, data);
810  
-                                        }
811  
-                                    }
  827
+                            // Do a couple requests first so the group data is cached
  828
+                            sakaiGroupsAPI.getGroupAuthorizableData(groupId, function() {
  829
+                                sakaiGroupsAPI.getRole(data.results[0].userid, groupId, function(success, role) {
  830
+                                    $.each(data.results, function(index, user){
  831
+                                        sakaiGroupsAPI.getRole(user.userid, groupId, function(success, role){
  832
+                                            user.role = role;
  833
+                                            participantCount++;
  834
+                                            if (participantCount === data.results.length) {
  835
+                                                if ($.isFunction(callback)) {
  836
+                                                    callback(true, data);
  837
+                                                }
  838
+                                            }
  839
+                                        });
  840
+                                    });
812 841
                                 });
813 842
                             });
814 843
                         } else {
@@ -830,7 +859,6 @@ define(
830 859
                 }
831 860
             }
832 861
         },
833  
-
834 862
         /**
835 863
          * Returns all the users who are member of a certain group
836 864
          *
@@ -841,7 +869,7 @@ define(
841 869
          */
842 870
         getMembers : function(groupID, query, callback, everyone) {
843 871
             var searchquery = query || "*";
844  
-            var groupInfo = sakaiGroupsAPI.getGroupAuthorizableData(groupID, function(success, data){
  872
+            sakaiGroupsAPI.getGroupAuthorizableData(groupID, function(success, data){
845 873
                 if (success){
846 874
                     var roles = $.parseJSON(data.properties["sakai:roles"]);
847 875
                     var batchRequests = [];
@@ -883,6 +911,8 @@ define(
883 911
             });
884 912
         },
885 913
 
  914
+        groupRoleData : {},
  915
+
886 916
         getRole : function(userId, groupID, callback){
887 917
             var groupInfo = sakaiGroupsAPI.getGroupAuthorizableData(groupID, function(success, data){
888 918
                 if (success){
@@ -893,29 +923,43 @@ define(
893 923
                         var url = "/system/userManager/group/" + groupID + "-" + roles[i].id + ".everyone.json";
894 924
                         batchRequests.push({
895 925
                             "url": url,
896  
-                            "method": "GET"
  926
+                            "method": "GET",
  927
+                            "parameters": {
  928
+                                items: 10000
  929
+                            }
897 930
                         });
898 931
                     }
899  
-                    sakai_serv.batch(batchRequests, function(success, data){
900  
-                        if (success) {
901  
-                            var isMatch = function(user, index){
902  
-                                return user.userid === userId;
903  
-                            };
904 932
 
905  
-                            for (var i = 0; i < roles.length; i++) {
906  
-                                if (data.results.hasOwnProperty(i)) {
907  
-                                    var members = $.parseJSON(data.results[i].body);
908  
-                                    if ($.grep(members, isMatch).length > 0){
909  
-                                        role = roles[i].id;
910  
-                                        break;
911  
-                                    }
  933
+                    var parseRoles = function(data) {
  934
+                        var isMatch = function(user, index){
  935
+                            return user.userid === userId;
  936
+                        };
  937
+
  938
+                        for (var i = 0; i < roles.length; i++) {
  939
+                            if (data.results.hasOwnProperty(i)) {
  940
+                                var members = $.parseJSON(data.results[i].body);
  941
+                                if ($.grep(members, isMatch).length > 0){
  942
+                                    role = roles[i].id;
  943
+                                    break;
912 944
                                 }
913 945
                             }
914  
-                            if ($.isFunction(callback)) {
915  
-                                callback(true, role);
916