Plots2: Add redirect tag feature by page name

Created on 27 Mar 2018  ·  3Comments  ·  Source: publiclab/plots2

Hi, this is a first-timers-only issue. This means we've worked to make it more legible to folks who either haven't contributed to our codebase before, or even folks who haven't contributed to open source before.

If that's you, we're interested in helping you take the first step and can answer questions and help you out as you do. Note that we're especially interested in contributions from people from groups underrepresented in free and open source software!

We know that the process of creating a pull request is the biggest barrier for new contributors. This issue is for you 💝

If you have contributed before, consider leaving this one for someone new, and looking through our general help wanted issues. Thanks!

🤔 What you will need to know.

Nothing. This issue is meant to welcome you to Open Source :) We are happy to walk you through the process.

We have a redirect system that uses tags -- read more at https://publiclab.org/wiki/power-tags -- but it requires tags to point at a "node id" like redirect:12345. This is hard to remember and kind of obscure -- so let's make it possible to use a page "slug" as well. Then you could redirect to the page at /wiki/openhour by using redirect:openhour.

📋 Step by Step

  • [ ] 🙋 Claim this issue: Comment below. If someone else has claimed it, ask if they've opened a pull request already and if they're stuck -- maybe you can help them solve a problem or move it along!

  • [ ] 📝 Update the file app/controllers/wiki_controller.rb in the plots2 repository (press the little pen Icon) and edit the line as shown below.

See this page for some help in taking your first steps!

Below is a "diff" showing in red (and a -) which lines to remove, and in green (and a +) which lines to add:

@@ -33,6 +33,14 @@ def show
         flash.now[:warning] = "Only moderators and admins see this page, as it is redirected to <a href='#{Node.find(@node.power_tag('redirect')).path}'>#{Node.find(@node.power_tag('redirect')).title}</a>.
         To remove the redirect, delete the tag beginning with 'redirect:'"
       end
+    elsif @node&.has_power_tag('redirect') && Node.where(slug: @node.power_tag('redirect')).exists?
+      if current_user.nil? || !current_user.can_moderate?
+        redirect_to Node.find_by(slug: @node.power_tag('redirect')).path
+        return
+      elsif current_user.can_moderate?
+        flash.now[:warning] = "Only moderators and admins see this page, as it is redirected to <a href='#{Node.find_by(slug: @node.power_tag('redirect')).path}'>#{Node.find_by(slug: @node.power_tag('redirect')).title}</a>.
+        To remove the redirect, delete the tag beginning with 'redirect:'"
+      end
     end

     if @node&.has_power_tag('abtest') && !Node.where(nid: @node.power_tag('abtest')).empty?
  • [ ] 💾 Commit your changes

  • [ ] 🔀 Start a Pull Request. There are two ways how you can start a pull request:

  1. If you are familiar with the terminal or would like to learn it, here is a great tutorial on how to send a pull request using the terminal.

  2. You can also edit files directly in your browser and open a pull request from there.

  • [ ] 🏁 Done Ask in comments for a review :)

🤔❓ Questions?

Leave a comment below!

Is someone else already working on this?

We encourage you to link to this issue by mentioning the issue # in your pull request, so we can see if someone's already started on it. If someone seem stuck, offer them some help! Otherwise, take a look at some other issues you can help with. Thanks!

(This issue was created by First-Timers-Bot.)

Ruby first-timers-only has-pull-request help wanted

Most helpful comment

I'd like to claim this one.

All 3 comments

This ought to work -- i'm happy to help out!!!

I'd like to claim this one.

Great ! You can work on this :-)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

grvsachdeva picture grvsachdeva  ·  3Comments

jywarren picture jywarren  ·  3Comments

grvsachdeva picture grvsachdeva  ·  3Comments

divyabaid16 picture divyabaid16  ·  3Comments

grvsachdeva picture grvsachdeva  ·  3Comments