MDL-48044 mod_forum: Preload icons for discussion subscription toggles
authorAndrew Nicols <andrew@nicols.co.uk>
Tue, 4 Nov 2014 07:45:38 +0000 (15:45 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Tue, 4 Nov 2014 08:09:19 +0000 (16:09 +0800)
mod/forum/discuss.php
mod/forum/lib.php
mod/forum/styles.css

index 000f445..f28e0fa 100644 (file)
                 forum_get_discussion_subscription_icon($forum, $post->discussion, null, true),
                 'discussionsubscription'
             );
+            echo forum_get_discussion_subscription_icon_preloaders();
         }
     }
 
index 3788ac5..28cb70a 100644 (file)
@@ -3819,6 +3819,19 @@ function forum_get_discussion_subscription_icon($forum, $discussionid, $returnur
     return $o;
 }
 
+/**
+ * Return a pair of spans containing classes to allow the subscribe and
+ * unsubscribe icons to be pre-loaded by a browser.
+ *
+ * @return string The generated markup
+ */
+function forum_get_discussion_subscription_icon_preloaders() {
+    $o = '';
+    $o .= html_writer::span('&nbsp;', 'preload-subscribe');
+    $o .= html_writer::span('&nbsp;', 'preload-unsubscribe');
+    return $o;
+}
+
 /**
  * Print the drop down that allows the user to select how they want to have
  * the discussion displayed.
@@ -5382,7 +5395,9 @@ function forum_print_latest_discussions($course, $forum, $maxdiscussions = -1, $
         echo '<th class="header lastpost" scope="col">'.get_string('lastpost', 'forum').'</th>';
         if (has_capability('mod/forum:viewdiscussion', $context)) {
             if (\mod_forum\subscriptions::is_subscribable($forum)) {
-                echo '<th class="header discussionsubscription" scope="col">&nbsp;</th>';
+                echo '<th class="header discussionsubscription" scope="col">';
+                echo forum_get_discussion_subscription_icon_preloaders();
+                echo '</th>';
             }
         }
         echo '</tr>';
index 4ef2c36..872f28b 100644 (file)
@@ -148,6 +148,14 @@ span.unread {
     width: 12px;
 }
 
+.path-mod-forum .preload-subscribe {
+    background: url([[pix:mod_forum|t/subscribed]]) no-repeat -9999px -9999px;
+}
+
+.path-mod-forum .preload-unsubscribe {
+    background: url([[pix:mod_forum|t/unsubscribed]]) no-repeat -9999px -9999px;
+}
+
 .path-mod-forum .discussionsubscription {
     margin-top: -10px;
     text-align: right;