Jump to content

How To Emulate The Bug Tracker?


Meddysong

Recommended Posts

This bit of text at the base of the bug tracker has got me interested, especially the bits I've marked in bold:

The IPS4 bug tracker is made with our Pages app without any custom modifications. You can do this and a whole lot more very easily using Pages on your own site.

So it should be possible to emulate it, right? I'd like to have on my site something like that as a to-do list, since my colleagues and I have meetings four times a year and it's hard to keep track of who's got what task, whether X is being worked on or has been forgotten etc. So, rather than report bugs we'd be creating tasks, indicating the name of the person to whom it's assigned (as was the case of the previous tracker here) and then closing it. I learn best by playing with things when I have a specific outcome in mind, so this presents a good little project for me to play with Pages and see what it can do. Unfortunately, I don't know the first place to start here.

I'm 99% sure I saw a video of Charles demonstrating how to set up a bug tracker on the preview site but it's not one of the YouTube videos on the account. So, would anybody be willing to give me some pointers, along the lines of "You have to set up a database ... the items such as "Closed" or "Allocated to Tim" are fields created on screen Y ... make sure you have it set to category view/article view ... etc" or even track down the video of Charles's that I think I've seen, please?

Thanks!

 

Link to comment
Share on other sites

Thank you, @mycota :)

I think I'll hold off the experimenting until the next beta release. I've played with Pages for experiment's sake today and there's the odd error message appearing. If I've done something wrong I should get the same error next time, but if it's a bug then someone should already have reported it (and no doubt articulating it better than I could).

Where I'm a bit lost is never having used IP.Content, so what might come across to longer-time users as a continuation or refinement is still alien to me. I don't actually know what the different elements are for, what they could do, so I'm not actually achieving much except being able to say "Wow, I've just created something called a record!" without knowing the purpose of it. That's why I was keen to emulate the bug tracker by doing a to-do list, because I know what the end result is and what use it is, and therefore could build the bridge in my head of saying "such and such an element of pages could be used for X". With the current understandable absence of documentation, that's how I was intending to learn. As I said, though, I'll hold off for another beta release. There's plenty more to be playing with in the meantime :)

Link to comment
Share on other sites

I must add my interest in this as well. I have a client I do molecular research with that I am transitioning to use IPB and I would love for them to be able to manage projects using the same system. Pending, open, complete would be great for seeing which DNA batches are in the pipeline.

Link to comment
Share on other sites

  • 2 weeks later...

​I'll give it a go when the next beta comes out :)

​Et voilà!

tasks.thumb.jpg.08ea140492afbe7b5dae63c8

It turns out there really was something wrong with my Pages, stifling my experimentation. After updating to 5a the previous errors disappeared and I spent a fruitful few hours playing with different set-ups.

I didn't find this easy to do first time round. There were little things that I presume were already acquired knowledge to those who have experience with IP.Content but which weren't evident to me, such as knowing that to get the clickable statuses it was necessary to go to > Fields and create a new one. I wouldn't have had a clue how to fill it in (Type = Select box), were it not for @mycota's very helpful link above, so thank you very much for that.

But know that I've done one, a second one would be a piece of cake. It's not really rocket science, no, but I don't think it's quite as evident as I had expected because of the need for some intuition (knowing to create something called a field and then selecting the appropriate Type from the dropdown, for example) but it's nothing that the documentation wouldn't cover a bit further down the line. It's a thumbs-up from me.

Link to comment
Share on other sites

Oh, one more related question, please, for those of you who are much more proficient with PHP than I am.

I got mine working fine in the end, with one drawback: it doesn't allow for multiple entry. Andy Millne very kindly explained why to me, namely that I should use a foreach loop because the data should be stored as an array. I've tried it a few different ways but the truth is that I'm massively out of my depth and my various attempts have all generated errors, simply because I can't visualise the form that it should take.

If I had three fields called A, B and C, what would the array look like?

Thanks!

Link to comment
Share on other sites

Oh, one more related question, please, for those of you who are much more proficient with PHP than I am.

I got mine working fine in the end, with one drawback: it doesn't allow for multiple entry. Andy Millne very kindly explained why to me, namely that I should use a foreach loop because the data should be stored as an array. I've tried it a few different ways but the truth is that I'm massively out of my depth and my various attempts have all generated errors, simply because I can't visualise the form that it should take.

If I had three fields called A, B and C, what would the array look like?

Thanks!

Multiple entry for what? What kind of data do you want to collect and how should it be displayed? Please give more clear explanations and maybe an example. 

Link to comment
Share on other sites

My records are individual tasks assigned to people. Let's call those people A, B and C.  I've added a field to the database for them. Since I would like these fields to show with different colours depending on whether it's A, B or C, I've customised. Under Display Options my Listing Custom Format and Display View Format look like this:

{{if ($value=='A')}}
<span class="ipsBadge ipsBadge_style1 ipsPos_right">A</span>
{{elseif ($value=='B')}}
<span class="ipsBadge ipsBadge_style2 ipsPos_right">B</span>
{{elseif ($value=='C')}}
<span class="ipsBadge ipsBadge_style3 ipsPos_right">C</span>>
{{endif}}

Everything is working perfectly as long as only one person is assigned to a task.

The difficulty arises in those situations where I want to assign more than one person to a task, let's say A and B. With the way that I've set this up nothing displays because the value will be an array, so I need a foreach loop of the form

{{foreach $value as $name}}
    {{if $name=='A'}}
    ....
    {{endif}}
    etc...
{{endforeach}}

So far, so good. But the problem for me is that I'm a novice at this side of things, so my different attempts at writing this are all producing faults, so I was hoping that someone would be able to produce a suggestion for A, B and C, from which I would extrapolate for the 11 fields that my database really has.

Link to comment
Share on other sites

Would anyone mind sharing their specific code/configuration, since IPS themselves have historically been unwilling to?

I mean, I get the idea that they think it's easy, and they want to make sure it's easy, but I've seen at least a dozen people ask for it, and if it's so easy, I really don't get the reluctance.

Also, where's the bug tracker for 3.X, and the converters? ETA on their return?

Link to comment
Share on other sites

Yes, mate, I'd be happy to help out, since this is what I was fishing for myself :)

The database to hold the records

Create a new database in Pages. I'm calling mine Bugs. On the tab Details my settings are as follows:

settings.thumb.jpg.fcb00dccc420ee9146bb6

Those are the default ones, except that I changed Use categories to No. I don't know whether that affects anything materially for what we want to do.

On the Language tab, set your nouns for the records if you'd rather they not be called the default.

The Options tab is where you choose your layout. You want the most recently updated records at the top, so sort by Last Updated Date and choose Descending, so that the biggest number (= newest date) is at the top. The Forums tabs is irrelevant so you can ignore it.

Since we're starting fresh there's a good chance that we don't yet have the page that we want to display the records from this database, so let's create one on the Page tab, indicating "I want to create a new page for this database" and then filling in the details for the page name and file name. I'm just testing, so mine are Bugs and bugs, and everything else is left as it is, except that I switch off Allow reviews. Save it and then assign permissions from the screen which generates.

You'll know it's gone well because you'll see the following new entries after saving:

bugs-menu.thumb.jpg.a3d699cbee8df77e379a

That's your database set up. The next trick is to create the status options.

Creating the options (Open, Closed, Pending)

This means creating a custom field, so click Fields underneath the database name Bugs from the left-hand menu, then Create New.

Give it whatever name you want (I chose Status) on Display Options, and then scroll down because he's where the custom work begins.

My settings look like this:

field-settings.thumb.jpg.c011867904a569b

The crucial thing is to have Type set to Select box. The Default Value is set to Pending because I have users who will be able to make bug reports but not be able to choose their own value. If they create a record, it defaults to Pending.

Go to the tab Display Options, giving the Template Key a unique name (bug-status in mine) and then head downwards. We're going to customise both Listing View Format and Display View Format, so select custom and enter the following into both:

{{if ($value=='Open')}}
<span class="ipsBadge ipsBadge_style1 ipsPos_right">Open</span>
{{elseif ($value=='Closed')}}
<span class="ipsBadge ipsBadge_style2 ipsPos_right">Closed</span>
{{elseif ($value=='Pending')}}
<span class="ipsBadge ipsBadge_style3 ipsPos_right">Pending</span>>
{{endif}}

You can change the colour of each by changing ipsBadge1 etc to another digit up to 7, but you can leave that till later. Fill in the permissions after saving.

Creating the menu item for the bug tracker

You created a page when setting up the database. If you hadn't, now would be the time to do it. But since we've got one already, we're going to create a menu item and link to it. Page Management > Menu > Create New.

page.thumb.jpg.79fe354abf02accb6d713ffd2

Then set your permissions and you should find you have your bug tracker in your menu. Give it a click and start playing:

bugs.thumb.jpg.acb183b93fa9e4b1396c326c8

Having typed out all that, it's not particularly easy after all, but once you've done it once, then it's not hard to figure out again. You can add the filters etc by using your block manager.

 

 

Link to comment
Share on other sites

Whoops, typo above but I can't edit it.

{{if ($value=='Open')}}
<span class="ipsBadge ipsBadge_style1 ipsPos_right">Open</span>
{{elseif ($value=='Closed')}}
<span class="ipsBadge ipsBadge_style2 ipsPos_right">Closed</span>
{{elseif ($value=='Pending')}}
<span class="ipsBadge ipsBadge_style3 ipsPos_right">Pending</span>>
{{endif}}

There's an extra > at the end of the last line there which shouldn't be included.

Could one of the admins please edit my previous post and then delete this one? Thanks!

Link to comment
Share on other sites

  • 3 weeks later...

That'd probably be a direct violation of the license agreement. I wouldn't do that. ;)

It's dfferent if you make your own plugin from the bottom up, but you can't redistribute the IP.Pages code....

​No one talked about the Pages software, but just about the database settings which can now be exported and imported 4.0. 

Link to comment
Share on other sites

​No one talked about the Pages software, but just about the database settings which can now be exported and imported 4.0. 

​PB can could just export the database and code and add it as a free download to the Marketplace.​

Sorry if I misunderstood, but yeah, if he meant that, that's not a good idea :P 

Link to comment
Share on other sites

 

 

Go to the tab Display Options, giving the Template Key a unique name (bug-status in mine) and then head downwards. We're going to customize both Listing View Format and Display View Format, so select custom and enter the following into both:

    ​I can't get to "the tab Display Options". How did you do that?

 

 

​PB can could just export the database and code and add it as a free download to the Marketplace.

IPS are going to release theirs I think? Read Matt's post here.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...