diff --git a/app/assets/javascripts/discourse/adapters/build-plugin.js.es6 b/app/assets/javascripts/discourse/adapters/build-plugin.js.es6
new file mode 100644
index 000000000..218a8d8d8
--- /dev/null
+++ b/app/assets/javascripts/discourse/adapters/build-plugin.js.es6
@@ -0,0 +1,9 @@
+import RestAdapter from 'discourse/adapters/rest';
+
+export default function buildPluginAdapter(pluginName) {
+  return RestAdapter.extend({
+    pathFor(store, type) {
+      return "/admin/plugins/" + pluginName + this._super(store, type);
+    }
+  });
+}
diff --git a/app/models/queued_post.rb b/app/models/queued_post.rb
index 7a30ceb1d..5f3fad170 100644
--- a/app/models/queued_post.rb
+++ b/app/models/queued_post.rb
@@ -29,11 +29,11 @@ class QueuedPost < ActiveRecord::Base
   end
 
   def self.new_posts
-    visible.where(state: states[:new])
+    where(state: states[:new])
   end
 
   def self.new_count
-    new_posts.count
+    new_posts.visible.count
   end
 
   def visible?
@@ -47,6 +47,7 @@ class QueuedPost < ActiveRecord::Base
 
   def reject!(rejected_by)
     change_to!(:rejected, rejected_by)
+    DiscourseEvent.trigger(:rejected_post, self)
   end
 
   def create_options
@@ -66,6 +67,8 @@ class QueuedPost < ActiveRecord::Base
       creator = PostCreator.new(user, create_options.merge(skip_validations: true))
       created_post = creator.create
     end
+
+    DiscourseEvent.trigger(:approved_post, self)
     created_post
   end