From fa2d60c5c2ef4060c39af80f5f885ee56b175b63 Mon Sep 17 00:00:00 2001 From: nicolasconnault Date: Tue, 27 Mar 2007 04:03:51 +0000 Subject: [PATCH] MDL-9040: Enabled disabling of any buttons that always lead to errors. Javascript dynamically displays/hides buttons depending on which groupings/groups are selected. This required a number of extensive modifications, but degrades nicely without JS. --- group/group.php | 178 ++++++++++++++++++++--------------------- group/index.php | 65 +++++++++++---- group/lib/clientlib.js | 21 ++++- lang/en_utf8/group.php | 3 +- 4 files changed, 161 insertions(+), 106 deletions(-) diff --git a/group/group.php b/group/group.php index 260a3578e7..fdab5a6d8c 100644 --- a/group/group.php +++ b/group/group.php @@ -76,9 +76,6 @@ if ($success) { */ $success = (bool)$groupid = groups_create_group($courseid); //$groupsettings); - if ($groupingid != GROUP_NOT_IN_GROUPING) { - $success = groups_add_group_to_grouping($groupid, $groupingid); - } } elseif ($groupingid != $newgrouping) { //OK, move group. // Allow groups to be created outside of groupings @@ -159,109 +156,112 @@ if ($success) { "-> $strgroups", '', '', true, '', user_login_string($course, $USER)); $usehtmleditor = false; -?> -

-
+ echo '

' . $strheading . '

'."\n"; + + echo ''."\n"; + echo '
'."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; - - - -'; + echo ''."\n"; } if ($delete) { /*echo 'Are you sure you want to delete group X ?'; choose_from_menu_yesno('confirmdelete', false, '', true);*/ -?> -

- - - -' . get_string('deletegroupconfirm', 'group', $strname) . '

'."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; } else { -?> - -
-

-

-
- -

-

- -

-

- - -

-

hidepicture: 1, '');?>

- -

-

- -

-

'."\n"; + echo '
'."\n"; + + echo '

'."\n"; + echo '

' . print_textarea($usehtmleditor, 5, 45, 200, 400, 'description', $strdesc, 0, true) . '

'."\n"; + + echo '

'."\n"; + echo '

'."\n"; + + if ($printuploadpicture) { + echo '

'."\n"; + echo '

'; + $options = array(); + $options[0] = get_string('no'); + $options[1] = get_string('yes'); + choose_from_menu($options, 'hidepicture', isset($group)? $group->hidepicture: 1, ''); + echo '

'."\n"; + + echo '

'."\n"; + echo '

' . upload_print_form_fragment(1, array('imagefile'), null,false,null,0,0,true) . '

'."\n"; } - } -?> - - -

- - - - - -

+ if ($groupid) { //OK, editing - option to move grouping. - + echo '

'."\n"; + echo ''."\n"; + } //IF($groupid) + + echo '

'."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo ''."\n"; + echo '

'."\n"; + + } //IF($delete) + + echo ' '."\n"; + echo ''; + echo '
'."\n"; - - $strgroups", '', '', true, '', user_login_string($course, $USER)); $usehtmleditor = false; - //TODO: eventually we'll implement all buttons, meantime hide the ones we haven't finised. - $shownotdone = false; + //TODO: eventually we'll implement all buttons, meantime hide the ones we haven't finished. + $shownotdone = false; + $disabled = 'disabled="disabled"'; + + // Pre-disable buttons based on URL variables + if (isset($groupingid) && $groupingid > -1) { + $showeditgroupsettingsform_disabled = ''; + $showeditgroupingsettingsform_disabled = ''; + $deletegroup_disabled = ''; + $deletegrouping_disabled = ''; + $printerfriendly_disabled = ''; + $showcreategroupform_disabled = ''; + } else { + $showeditgroupsettingsform_disabled = $disabled; + $showeditgroupingsettingsform_disabled = $disabled; + $deletegroup_disabled = $disabled; + $deletegrouping_disabled = $disabled; + $printerfriendly_disabled = $disabled; + $showcreategroupform_disabled = $disabled; + } + + if (isset($groupid)) { + $showaddmembersform_disabled = ''; + $showeditgroupsettingsform_disabled = ''; + $deletegroup_disabled = ''; + } else { + $deletegroup_disabled = $disabled; + $showeditgroupsettingsform_disabled = $disabled; + $showaddmembersform_disabled = $disabled; + } print_heading(format_string($course->shortname) .' '.$strgroups, 'center', 3); echo '
'."\n"; @@ -201,29 +232,30 @@ if ($success) { } echo ''."\n"; + echo '

'."\n"; - echo '

'."\n"; if ($shownotdone) { - echo '

'."\n"; } - echo '

'."\n"; echo '

'."\n"; if ($shownotdone) { - echo '

'."\n"; } - echo '

'."\n"; echo "\n\n"; echo '

'."\n"; @@ -257,21 +289,24 @@ if ($success) { echo ''."\n"; echo '

'."\n"; - echo '

'."\n"; - echo '

'."\n"; if ($shownotdone) { - echo '

'."\n"; } - echo '

'."\n"; - + + echo '

'."\n"; + if ($shownotdone) { - echo '

'."\n"; } @@ -298,11 +333,11 @@ if ($success) { echo ''."\n"; if ($shownotdone) { - echo '

'."\n"; } - echo '

'."\n"; echo ''."\n"; echo ''."\n"; diff --git a/group/lib/clientlib.js b/group/lib/clientlib.js index 447c74d002..f7363342a7 100644 --- a/group/lib/clientlib.js +++ b/group/lib/clientlib.js @@ -79,6 +79,20 @@ UpdatableGroupsCombo.prototype.refreshGroups = function (groupingId) { selectEl.removeChild(selectEl.firstChild); } } + + if (groupingId > -1) { + document.getElementById("showaddmembersform").disabled = true; + document.getElementById("showeditgroupingsettingsform").disabled = false; + document.getElementById("deletegrouping").disabled = false; + document.getElementById("printerfriendly").disabled = false; + document.getElementById("showeditgroupsettingsform").disabled = true; + document.getElementById("deletegroup").disabled = true; + document.getElementById("showcreategroupform").disabled = false; + } else { + document.getElementById("showeditgroupingsettingsform").disabled = true; + document.getElementById("deletegrouping").disabled = true; + document.getElementById("showcreategroupform").disabled = true; + } var sUrl = this.wwwRoot+"/group/index.php?id="+this.courseId+"&grouping="+groupingId+"&act_ajax_getgroupsingrouping"; YAHOO.util.Connect.asyncRequest('GET', sUrl, this.connectCallback, null); @@ -127,6 +141,8 @@ function UpdatableMembersCombo(wwwRoot, courseId) { /** * When a group is selected, we need to update the members. + * The Add/Remove Users button also needs to be disabled/enabled + * depending on whether or not a group is selected */ UpdatableMembersCombo.prototype.refreshMembers = function (groupId) { // Add the loader gif image. @@ -139,7 +155,10 @@ UpdatableMembersCombo.prototype.refreshMembers = function (groupId) { selectEl.removeChild(selectEl.firstChild); } } - + + document.getElementById("showaddmembersform").disabled = false; + document.getElementById("showeditgroupsettingsform").disabled = false; + document.getElementById("deletegroup").disabled = false; var sUrl = this.wwwRoot+"/group/index.php?id="+this.courseId+"&group="+groupId+"&act_ajax_getmembersingroup"; YAHOO.util.Connect.asyncRequest("GET", sUrl, this.connectCallback, null); }; diff --git a/lang/en_utf8/group.php b/lang/en_utf8/group.php index 80517a80e4..05cc01c007 100644 --- a/lang/en_utf8/group.php +++ b/lang/en_utf8/group.php @@ -67,6 +67,7 @@ $string['selectnumberofgroups'] = 'Select number of groups'; $string['numberofgroups'] = 'Number of groups'; $string['creategrouping'] = 'Create grouping'; $string['creategroup'] = 'Create group'; +$string['createorphangroup'] = 'Create Orphan group'; $string['groupname'] = 'Group name'; $string['defaultgroupname'] = 'Group'; @@ -110,4 +111,4 @@ $string['groupsnone'] = 'No groups'; $string['groupsseparate'] = 'Separate groups'; $string['groupsvisible'] = 'Visible groups'; -?> \ No newline at end of file +?> -- 2.39.5