diff --git a/mod/feedback/classes/complete_form.php b/mod/feedback/classes/complete_form.php index 3840e6fcbf9..29e3190abcf 100644 --- a/mod/feedback/classes/complete_form.php +++ b/mod/feedback/classes/complete_form.php @@ -333,7 +333,7 @@ class mod_feedback_complete_form extends moodleform { // Add red asterisks on required fields. if ($item->required) { - $required = $OUTPUT->pix_icon('req', get_string('requiredelement', 'form')); + $required = $OUTPUT->pix_icon('req', get_string('requiredelement', 'form'), 'moodle', ['class' => 'ml-2']); $element->setLabel($element->getLabel() . $required); $this->hasrequired = true; } @@ -449,7 +449,7 @@ class mod_feedback_complete_form extends moodleform { global $OUTPUT; $menu = new action_menu(); $menu->set_owner_selector('#' . $this->guess_element_id($item, $element)); - $menu->set_menu_trigger(get_string('edit')); + $menu->set_kebab_trigger(get_string('edit')); $menu->prioritise = true; $itemobj = feedback_get_item_class($item->typ); @@ -464,7 +464,7 @@ class mod_feedback_complete_form extends moodleform { $name = html_writer::span('', 'itemdd', array('id' => 'feedback_item_box_' . $item->id)) . html_writer::span($name, 'itemname') . html_writer::span($editmenu, 'itemactions'); - $element->setLabel(html_writer::span($name, 'itemtitle')); + $element->setLabel(html_writer::span($name, 'itemtitle', ['class' => 'mx-5'])); } /** diff --git a/mod/feedback/edit_item.php b/mod/feedback/edit_item.php index cbc88b076f9..892ec394fc4 100644 --- a/mod/feedback/edit_item.php +++ b/mod/feedback/edit_item.php @@ -99,6 +99,7 @@ $PAGE->activityheader->set_attrs([ "hidecompletion" => true, "description" => '' ]); +$PAGE->add_body_class('limitedwidth'); echo $OUTPUT->header(); /// print the tabs diff --git a/mod/feedback/item/feedback_item_class.php b/mod/feedback/item/feedback_item_class.php index 5585adb49ea..80f9b9edc93 100644 --- a/mod/feedback/item/feedback_item_class.php +++ b/mod/feedback/item/feedback_item_class.php @@ -223,14 +223,14 @@ abstract class feedback_item_base { * @return action_menu_link[] */ public function edit_actions($item, $feedback, $cm) { - $actions = array(); + $actions = []; $strupdate = get_string('edit_item', 'feedback'); $actions['update'] = new action_menu_link_secondary( - new moodle_url('/mod/feedback/edit_item.php', array('id' => $item->id)), - new pix_icon('t/edit', $strupdate, 'moodle', array('class' => 'iconsmall', 'title' => '')), + new moodle_url('/mod/feedback/edit_item.php', ['id' => $item->id]), + new pix_icon('t/edit', $strupdate, 'moodle', ['class' => 'iconsmall', 'title' => '']), $strupdate, - array('class' => 'editing_update', 'data-action' => 'update') + ['class' => 'editing_update', 'data-action' => 'update'] ); if ($this->can_switch_require()) { @@ -242,20 +242,25 @@ abstract class feedback_item_base { $buttonimg = 'notrequired'; } $actions['required'] = new action_menu_link_secondary( - new moodle_url('/mod/feedback/edit.php', array('id' => $cm->id, - 'switchitemrequired' => $item->id, 'sesskey' => sesskey())), + new moodle_url( + '/mod/feedback/edit.php', + ['id' => $cm->id, 'switchitemrequired' => $item->id, 'sesskey' => sesskey()] + ), new pix_icon($buttonimg, $buttontitle, 'feedback', array('class' => 'iconsmall', 'title' => '')), $buttontitle, - array('class' => 'editing_togglerequired', 'data-action' => 'togglerequired') + ['class' => 'editing_togglerequired', 'data-action' => 'togglerequired'] ); } $strdelete = get_string('delete_item', 'feedback'); $actions['delete'] = new action_menu_link_secondary( - new moodle_url('/mod/feedback/edit.php', array('id' => $cm->id, 'deleteitem' => $item->id, 'sesskey' => sesskey())), + new moodle_url( + '/mod/feedback/edit.php', + ['id' => $cm->id, 'deleteitem' => $item->id, 'sesskey' => sesskey()] + ), new pix_icon('t/delete', $strdelete, 'moodle', array('class' => 'iconsmall', 'title' => '')), $strdelete, - array('class' => 'editing_delete', 'data-action' => 'delete') + ['class' => 'editing_delete text-danger', 'data-action' => 'delete'] ); return $actions; @@ -334,7 +339,7 @@ class feedback_item_pagebreak extends feedback_item_base { $form->add_form_element($item, ['static', $item->typ.'_'.$item->id, - '', + get_string('pagebreak', 'feedback'), html_writer::empty_tag('hr', ['class' => 'feedback_pagebreak', 'id' => 'feedback_item_' . $item->id]) ]); } @@ -354,7 +359,7 @@ class feedback_item_pagebreak extends feedback_item_base { new moodle_url('/mod/feedback/edit.php', array('id' => $cm->id, 'deleteitem' => $item->id, 'sesskey' => sesskey())), new pix_icon('t/delete', $strdelete, 'moodle', array('class' => 'iconsmall', 'title' => '')), $strdelete, - array('class' => 'editing_delete', 'data-action' => 'delete') + ['class' => 'editing_delete text-danger', 'data-action' => 'delete'] ); return $actions; } diff --git a/mod/feedback/item/multichoice/lib.php b/mod/feedback/item/multichoice/lib.php index 925ed01f52d..dc9c25c5bbf 100644 --- a/mod/feedback/item/multichoice/lib.php +++ b/mod/feedback/item/multichoice/lib.php @@ -319,7 +319,7 @@ class feedback_item_multichoice extends feedback_item_base { $class = 'multichoice-' . $info->subtype; $inputname = $item->typ . '_' . $item->id; $options = $this->get_options($item); - $separator = !empty($info->horizontal) ? ' ' : '
'; + $separator = !empty($info->horizontal) ? ' ' : \html_writer::div('', 'w-100'); $tmpvalue = $form->get_item_value($item) ?? 0; // Used for element defaults, so must be a valid value (not null). // Subtypes: diff --git a/mod/feedback/item/multichoicerated/lib.php b/mod/feedback/item/multichoicerated/lib.php index 54e62ccafc8..781510114df 100644 --- a/mod/feedback/item/multichoicerated/lib.php +++ b/mod/feedback/item/multichoicerated/lib.php @@ -324,7 +324,7 @@ class feedback_item_multichoicerated extends feedback_item_base { } // Span to hold the element id. The id is used for drag and drop reordering. $objs[] = ['static', '', '', html_writer::span('', '', ['id' => 'feedback_item_' . $item->id])]; - $separator = $info->horizontal ? ' ' : '
'; + $separator = $info->horizontal ? ' ' : \html_writer::div('', 'w-100'); $class .= ' multichoicerated-' . ($info->horizontal ? 'horizontal' : 'vertical'); $el = $form->add_form_group_element($item, 'group_'.$inputname, $name, $objs, $separator, $class); $form->set_element_type($inputname, PARAM_INT); diff --git a/mod/feedback/styles.css b/mod/feedback/styles.css deleted file mode 100644 index 0fcbdad2953..00000000000 --- a/mod/feedback/styles.css +++ /dev/null @@ -1,123 +0,0 @@ -/* styles using by feedback */ -.path-mod-feedback span.feedback_info { - font-weight: bold; -} - -.path-mod-feedback div.feedback_is_dependent { - background: #ddd; -} - -.path-mod-feedback span.feedback_depend { - color: #f00; -} - -.path-mod-feedback hr.feedback_pagebreak { - height: 4px; - color: #aaa; - background-color: #aaa; - border: 0; - margin: 0; -} - -.path-mod-feedback .drag_target_active { - opacity: .25; -} - -.path-mod-feedback .drag_item_active { - opacity: .5; -} - -.path-mod-feedback .feedback_bar_image { - height: 10px; -} - -.path-mod-feedback #analysis-form label { - display: inline; -} - -.path-mod-feedback .templateslist td.cell.action, -.path-mod-feedback .templateslist th.header.action { - width: 10%; -} - -.path-mod-feedback .feedback_form .itemactions { - display: inline-block; - margin: 0 .5em; -} - -/* Analysis page */ -.path-mod-feedback table.analysis { - width: 100%; - border-top: 1px solid #aaa; - margin-top: 10px; -} - -.path-mod-feedback table.analysis tr:first-child th { - padding-top: 10px; -} - -.path-mod-feedback table.analysis tr:hover { - background: #f5f5f5; -} - -.path-mod-feedback table.analysis td.singlevalue:before, -.path-mod-feedback table.analysis td.optionname:before { - content: '- '; -} - -.path-mod-feedback table.analysis.itemtype_textarea td { - padding: 4px 0; -} - -.path-mod-feedback table.analysis tr.isempty { - display: none; -} - -/* Responses list */ -.path-mod-feedback #showentrytable td.cell.completed_timemodified, -.path-mod-feedback #showentryanontable td.cell.random_response { - font-weight: bold; -} - -.path-mod-feedback #showentrytable td.cell.userpic, -.path-mod-feedback #showentrytable td.cell.deleteentry, -.path-mod-feedback #showentryanontable td.cell.deleteentry { - width: 10px; -} - -/* Responses navigation */ -.path-mod-feedback .response_navigation { - margin: .5em 0; -} - -.path-mod-feedback .response_navigation a { - display: block; -} - -.path-mod-feedback .response_navigation a.back_to_list { - text-align: center; -} - -.path-mod-feedback .response_navigation .prev_response:before { - /*rtl:raw: - content: ' ► '; - */ - /*rtl:remove*/ - content: ' ◄ '; -} - -.path-mod-feedback .response_navigation .next_response:after { - /*rtl:raw: - content: ' ◄ '; - */ - /*rtl:remove*/ - content: ' ► '; -} - -.path-mod-feedback .response_navigation .next_response { - text-align: right; -} - -.path-mod-feedback .response_navigation .prev_response { - text-align: left; -} diff --git a/mod/feedback/tests/behat/behat_mod_feedback.php b/mod/feedback/tests/behat/behat_mod_feedback.php index b1118274a80..eb3ecf46d7c 100644 --- a/mod/feedback/tests/behat/behat_mod_feedback.php +++ b/mod/feedback/tests/behat/behat_mod_feedback.php @@ -228,4 +228,17 @@ class behat_mod_feedback extends behat_base { $itemactual = next($dataactual); } } + + /** + * Return the list of partial named selectors + * + * @return behat_component_named_selector[] + */ + public static function get_partial_named_selectors(): array { + return [ + new behat_component_named_selector('Question', [ + ".//*[starts-with(@id, 'fitem_feedback_item_')][.//*[contains(text(), %locator%)]]", + ]), + ]; + } } diff --git a/mod/feedback/tests/behat/questions.feature b/mod/feedback/tests/behat/questions.feature new file mode 100644 index 00000000000..4ed942a73be --- /dev/null +++ b/mod/feedback/tests/behat/questions.feature @@ -0,0 +1,87 @@ +@mod @mod_feedback +Feature: Managing feedback questions + In order to manage feedback questions + As a teacher + I need to be able to create, edit and delete feedback questions + + Background: + Given the following "users" exist: + | username | firstname | lastname | + | teacher | Teacher | 1 | + And the following "courses" exist: + | fullname | shortname | + | Course 1 | C1 | + And the following "course enrolments" exist: + | user | course | role | + | teacher | C1 | editingteacher | + And the following "activities" exist: + | activity | name | course | idnumber | + | feedback | Learning experience course 1 | C1 | feedback1 | + + Scenario: Teacher can create a new feedback question + Given I am on the "Learning experience course 1" "feedback activity" page logged in as teacher + And I click on "Edit questions" "link" in the "region-main" "region" + When I add a "Short text answer" question to the feedback with: + | Question | Is it me you're looking for? | + | Label | q1 | + Then I should see "(q1) Is it me you're looking for?" + + @javascript + Scenario: Teacher can edit feedback questions + Given I am on the "Learning experience course 1" "feedback activity" page logged in as teacher + And I click on "Edit questions" "link" in the "region-main" "region" + And I add a "Short text answer" question to the feedback with: + | Question | Is it me you're looking for? | + | Label | q1 | + When I open the action menu in "Is it me you're looking for?" "mod_feedback > Question" + And I choose "Edit question" in the open action menu + And I set the field "Question" to "Can you see it in my eyes?" + And I press "Save changes to question" + Then I should see "(q1) Can you see it in my eyes?" + And I should not see "(q1) Is it me you're looking for?" + + @javascript + Scenario: Teacher can edit and save as new feedback questions + Given I am on the "Learning experience course 1" "feedback activity" page logged in as teacher + And I click on "Edit questions" "link" in the "region-main" "region" + And I add a "Short text answer" question to the feedback with: + | Question | Is it me you're looking for? | + | Label | q1 | + When I open the action menu in "Is it me you're looking for?" "mod_feedback > Question" + And I choose "Edit question" in the open action menu + And I set the field "Question" to "You can se it in my eyes?" + And I press "Save as new question" + Then I should see "(q1) Is it me you're looking for?" + And I should see "(q1) You can se it in my eyes?" + + @javascript + Scenario: Teacher can delete feedback questions + Given I am on the "Learning experience course 1" "feedback activity" page logged in as teacher + And I click on "Edit questions" "link" in the "region-main" "region" + And I add a "Short text answer" question to the feedback with: + | Question | Is it me you're looking for? | + | Label | q1 | + When I open the action menu in "Is it me you're looking for?" "mod_feedback > Question" + And I choose "Delete question" in the open action menu + And I click on "Yes" "button" in the "Confirmation" "dialogue" + Then I should not see "(q1) Is it me you're looking for?" + + @javascript + Scenario: Teacher can mark as required feedback questions + Given I am on the "Learning experience course 1" "feedback activity" page logged in as teacher + And I click on "Edit questions" "link" in the "region-main" "region" + And I add a "Short text answer" question to the feedback with: + | Question | Is it me you're looking for? | + | Label | q1 | + | Required | 0 | + When I open the action menu in "Is it me you're looking for?" "mod_feedback > Question" + And I choose "Set as required" in the open action menu + And I open the action menu in "Is it me you're looking for?" "mod_feedback > Question" + And I choose "Edit question" in the open action menu + Then the field "Required" matches value "1" + And I press "Cancel" + And I open the action menu in "Is it me you're looking for?" "mod_feedback > Question" + And I choose "Set as not required" in the open action menu + And I open the action menu in "Is it me you're looking for?" "mod_feedback > Question" + And I choose "Edit question" in the open action menu + And the field "Required" matches value "0" diff --git a/theme/boost/scss/moodle/modules.scss b/theme/boost/scss/moodle/modules.scss index 5ae0c605d82..efffa9d030c 100644 --- a/theme/boost/scss/moodle/modules.scss +++ b/theme/boost/scss/moodle/modules.scss @@ -1506,3 +1506,146 @@ $popout-header-height: 4rem; height: auto; } } + +/** + * Mod Feedback. + */ + +.path-mod-feedback { + span.feedback_info { + font-weight: bold; + } + div.feedback_is_dependent { + background: $gray-600; + } + span.feedback_depend { + color: $danger; + } + hr.feedback_pagebreak { + height: 4px; + color: $gray-600; + background-color: $gray-600; + border: 0; + margin: 0; + } + .drag_target_active { + opacity: .25; + } + .drag_item_active { + opacity: .5; + } + .feedback_bar_image { + height: 10px; + } + #analysis-form { + label { + display: inline; + } + } + .templateslist { + td.cell.action { + width: 10%; + } + th.header.action { + width: 10%; + } + } + .feedback_form { + .itemactions { + display: inline-block; + margin: 0 map-get($spacers, 2); + } + } + + // Feedback edit form. + #feedback_edit_form { + [id*=_feedback_item_].feedback_itemlist { + padding: map-get($spacers, 3); + border: $border-width solid $border-color; + @include border-radius(); + .itemhandle { + position: absolute; + width: 32px; + height: 32px; + text-align: center; + align-content: center; + } + .action-menu { + position: absolute; + top: 0; + right: 0; + } + .dropdown-toggle { + border-radius: .5rem; + width: 32px; + height: 32px; + } + } + } + + // Analysis page. + table.analysis { + width: 100%; + border-top: $border-width solid $border-color; + margin-top: 10px; + &.itemtype_textarea td { + padding: 4px 0; + } + tr:first-child th { + padding-top: 10px; + } + tr:hover { + background: $gray-300; + } + td.singlevalue:before, + td.optionname:before { + content: '- '; + } + tr.isempty { + display: none; + } + } + + // Responses list. + #showentrytable td.cell.completed_timemodified, + #showentryanontable td.cell.random_response { + font-weight: bold; + } + + #showentrytable td.cell.userpic, + #showentrytable td.cell.deleteentry, + #showentryanontable td.cell.deleteentry { + width: 10px; + } + + // Responses navigation. + .response_navigation { + margin: map-get($spacers, 2) 0; + a { + display: block; + &.back_to_list { + text-align: center; + } + } + .prev_response { + text-align: left; + &:before { + /*rtl:raw: + content: ' ► '; + */ + /*rtl:remove*/ + content: ' ◄ '; + } + } + .next_response { + text-align: right; + &:after { + /*rtl:raw: + content: ' ◄ '; + */ + /*rtl:remove*/ + content: ' ► '; + } + } + } +} diff --git a/theme/boost/style/moodle.css b/theme/boost/style/moodle.css index 02405d4627c..057bde774d7 100644 --- a/theme/boost/style/moodle.css +++ b/theme/boost/style/moodle.css @@ -34769,6 +34769,129 @@ img.userpicture { height: auto; } +/** + * Mod Feedback. + */ +.path-mod-feedback span.feedback_info { + font-weight: bold; +} +.path-mod-feedback div.feedback_is_dependent { + background: #6a737b; +} +.path-mod-feedback span.feedback_depend { + color: #ca3120; +} +.path-mod-feedback hr.feedback_pagebreak { + height: 4px; + color: #6a737b; + background-color: #6a737b; + border: 0; + margin: 0; +} +.path-mod-feedback .drag_target_active { + opacity: 0.25; +} +.path-mod-feedback .drag_item_active { + opacity: 0.5; +} +.path-mod-feedback .feedback_bar_image { + height: 10px; +} +.path-mod-feedback #analysis-form label { + display: inline; +} +.path-mod-feedback .templateslist td.cell.action { + width: 10%; +} +.path-mod-feedback .templateslist th.header.action { + width: 10%; +} +.path-mod-feedback .feedback_form .itemactions { + display: inline-block; + margin: 0 0.5rem; +} +.path-mod-feedback #feedback_edit_form [id*=_feedback_item_].feedback_itemlist { + padding: 1rem; + border: 1px solid #dee2e6; + border-radius: 0.5rem; +} +.path-mod-feedback #feedback_edit_form [id*=_feedback_item_].feedback_itemlist .itemhandle { + position: absolute; + width: 32px; + height: 32px; + text-align: center; + align-content: center; +} +.path-mod-feedback #feedback_edit_form [id*=_feedback_item_].feedback_itemlist .action-menu { + position: absolute; + top: 0; + right: 0; +} +.path-mod-feedback #feedback_edit_form [id*=_feedback_item_].feedback_itemlist .dropdown-toggle { + border-radius: 0.5rem; + width: 32px; + height: 32px; +} +.path-mod-feedback table.analysis { + width: 100%; + border-top: 1px solid #dee2e6; + margin-top: 10px; +} +.path-mod-feedback table.analysis.itemtype_textarea td { + padding: 4px 0; +} +.path-mod-feedback table.analysis tr:first-child th { + padding-top: 10px; +} +.path-mod-feedback table.analysis tr:hover { + background: #dee2e6; +} +.path-mod-feedback table.analysis td.singlevalue:before, +.path-mod-feedback table.analysis td.optionname:before { + content: "- "; +} +.path-mod-feedback table.analysis tr.isempty { + display: none; +} +.path-mod-feedback #showentrytable td.cell.completed_timemodified, +.path-mod-feedback #showentryanontable td.cell.random_response { + font-weight: bold; +} +.path-mod-feedback #showentrytable td.cell.userpic, +.path-mod-feedback #showentrytable td.cell.deleteentry, +.path-mod-feedback #showentryanontable td.cell.deleteentry { + width: 10px; +} +.path-mod-feedback .response_navigation { + margin: 0.5rem 0; +} +.path-mod-feedback .response_navigation a { + display: block; +} +.path-mod-feedback .response_navigation a.back_to_list { + text-align: center; +} +.path-mod-feedback .response_navigation .prev_response { + text-align: left; +} +.path-mod-feedback .response_navigation .prev_response:before { + /*rtl:raw: + content: ' ► '; + */ + /*rtl:remove*/ + content: " ◄ "; +} +.path-mod-feedback .response_navigation .next_response { + text-align: right; +} +.path-mod-feedback .response_navigation .next_response:after { + /*rtl:raw: + content: ' ◄ '; + */ + /*rtl:remove*/ + content: " ► "; +} + .yui-skin-sam .yui-layout.path-mod-chat-gui_ajax { background-color: #fff; } diff --git a/theme/classic/style/moodle.css b/theme/classic/style/moodle.css index 427c52097bd..21d0d6ea84f 100644 --- a/theme/classic/style/moodle.css +++ b/theme/classic/style/moodle.css @@ -34769,6 +34769,129 @@ img.userpicture { height: auto; } +/** + * Mod Feedback. + */ +.path-mod-feedback span.feedback_info { + font-weight: bold; +} +.path-mod-feedback div.feedback_is_dependent { + background: #6a737b; +} +.path-mod-feedback span.feedback_depend { + color: #ca3120; +} +.path-mod-feedback hr.feedback_pagebreak { + height: 4px; + color: #6a737b; + background-color: #6a737b; + border: 0; + margin: 0; +} +.path-mod-feedback .drag_target_active { + opacity: 0.25; +} +.path-mod-feedback .drag_item_active { + opacity: 0.5; +} +.path-mod-feedback .feedback_bar_image { + height: 10px; +} +.path-mod-feedback #analysis-form label { + display: inline; +} +.path-mod-feedback .templateslist td.cell.action { + width: 10%; +} +.path-mod-feedback .templateslist th.header.action { + width: 10%; +} +.path-mod-feedback .feedback_form .itemactions { + display: inline-block; + margin: 0 0.5rem; +} +.path-mod-feedback #feedback_edit_form [id*=_feedback_item_].feedback_itemlist { + padding: 1rem; + border: 1px solid #dee2e6; + border-radius: 0.25rem; +} +.path-mod-feedback #feedback_edit_form [id*=_feedback_item_].feedback_itemlist .itemhandle { + position: absolute; + width: 32px; + height: 32px; + text-align: center; + align-content: center; +} +.path-mod-feedback #feedback_edit_form [id*=_feedback_item_].feedback_itemlist .action-menu { + position: absolute; + top: 0; + right: 0; +} +.path-mod-feedback #feedback_edit_form [id*=_feedback_item_].feedback_itemlist .dropdown-toggle { + border-radius: 0.5rem; + width: 32px; + height: 32px; +} +.path-mod-feedback table.analysis { + width: 100%; + border-top: 1px solid #dee2e6; + margin-top: 10px; +} +.path-mod-feedback table.analysis.itemtype_textarea td { + padding: 4px 0; +} +.path-mod-feedback table.analysis tr:first-child th { + padding-top: 10px; +} +.path-mod-feedback table.analysis tr:hover { + background: #dee2e6; +} +.path-mod-feedback table.analysis td.singlevalue:before, +.path-mod-feedback table.analysis td.optionname:before { + content: "- "; +} +.path-mod-feedback table.analysis tr.isempty { + display: none; +} +.path-mod-feedback #showentrytable td.cell.completed_timemodified, +.path-mod-feedback #showentryanontable td.cell.random_response { + font-weight: bold; +} +.path-mod-feedback #showentrytable td.cell.userpic, +.path-mod-feedback #showentrytable td.cell.deleteentry, +.path-mod-feedback #showentryanontable td.cell.deleteentry { + width: 10px; +} +.path-mod-feedback .response_navigation { + margin: 0.5rem 0; +} +.path-mod-feedback .response_navigation a { + display: block; +} +.path-mod-feedback .response_navigation a.back_to_list { + text-align: center; +} +.path-mod-feedback .response_navigation .prev_response { + text-align: left; +} +.path-mod-feedback .response_navigation .prev_response:before { + /*rtl:raw: + content: ' ► '; + */ + /*rtl:remove*/ + content: " ◄ "; +} +.path-mod-feedback .response_navigation .next_response { + text-align: right; +} +.path-mod-feedback .response_navigation .next_response:after { + /*rtl:raw: + content: ' ◄ '; + */ + /*rtl:remove*/ + content: " ► "; +} + .yui-skin-sam .yui-layout.path-mod-chat-gui_ajax { background-color: #fff; }