ctrager / budoco Goto Github PK
View Code? Open in Web Editor NEWBudoco is an issue tracking system. It's a rewrite of BugTracker.NET, but for Dotnet Core 5. Quick and easy to get started, runs fast, but also customizable.
License: MIT License
Budoco is an issue tracking system. It's a rewrite of BugTracker.NET, but for Dotnet Core 5. Quick and easy to get started, runs fast, but also customizable.
License: MIT License
This is pulling up the issue create form
SQL 1:/check_user_permissions/ select * from sessions
inner join users on se_user = us_id
where se_id = '46db6f69-dad5-49de-b9d3-c4e15d4724f4'; /*check_user_permissions */
SQL 2:select og_id, og_name from organizations where og_is_active = true union select 0, '[None]' order by og_name
SQL 3:select us_id, us_username from users where us_is_active = true order by us_username
SQL 4:select c1_id, c1_name from custom_1 where c1_is_active = true order by c1_name
SQL 5:select c2_id, c2_name from custom_2 where c2_is_active = true order by c2_name
SQL 6:select c4_id, c4_name from custom_4 where c4_is_active = true order by c4_name
SQL 7:select og_id, og_name from organizations where og_is_default is true order by og_name limit 1
SQL 8:select c1_id from custom_1 where c1_is_default is true order by c1_name limit 1
SQL 9:select c2_id from custom_2 where c2_is_default is true order by c2_name limit 1
SQL 10:select c4_id from custom_4 where c4_is_default is true order by c4_name limit 1
layout_si
Only appears according to permission, so not for is_report_only users.
Clicking Reply for incoming email post would take you to the post form, preselected for email, prepoulated with the email address, and prepulated with quoted text.
Fresh install, dotnet run fails witht he following error:
at budoco.Program.Main(String[] args) in /home/plompt/budoco-master/Program.cs:line 56
Exception data:
Severity: ERROR
SqlState: 42703
MessageText: column "rp_desc" does not exist
File: tablecmds.c
Line: 3138
Routine: renameatt_internal
Fixed by running the following SQL:
BEGIN; update db_version set db_version = 4; COMMIT;
020-12-12 17:25:29.676 -06:00 [INF] 4 Startup.cs URL: http://localhost:5000/CreateIssue
2020-12-12 17:25:29.683 -06:00 [INF] Executing endpoint '/CreateIssue'
2020-12-12 17:25:29.700 -06:00 [DBG] Registered model binder providers, in the following order: ["Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BinderTypeModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ServicesModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.BodyModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.HeaderModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FloatingPointTypeModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.EnumTypeModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DateTimeModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.SimpleTypeModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CancellationTokenModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ByteArrayModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormFileModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.FormCollectionModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.KeyValuePairModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.DictionaryModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ArrayModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.CollectionModelBinderProvider","Microsoft.AspNetCore.Mvc.ModelBinding.Binders.ComplexObjectModelBinderProvider"]
2020-12-12 17:25:29.742 -06:00 [INF] Route matched with {page = "/CreateIssue"}. Executing page /CreateIssue
2020-12-12 17:25:29.743 -06:00 [DBG] Execution plan of authorization filters (in the following order): ["Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.AutoValidateAntiforgeryTokenAuthorizationFilter"]
2020-12-12 17:25:29.744 -06:00 [DBG] Execution plan of resource filters (in the following order): ["Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.SaveTempDataFilter"]
2020-12-12 17:25:29.744 -06:00 [DBG] Execution plan of action filters (in the following order): ["Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter (Order: -3000)"]
2020-12-12 17:25:29.745 -06:00 [DBG] Execution plan of exception filters (in the following order): ["None"]
2020-12-12 17:25:29.746 -06:00 [DBG] Execution plan of result filters (in the following order): ["Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.SaveTempDataFilter"]
2020-12-12 17:25:29.754 -06:00 [DBG] Connection id "0HM4UUKRB9TAU", Request id "0HM4UUKRB9TAU:00000002": started reading request body.
2020-12-12 17:25:29.755 -06:00 [DBG] Connection id "0HM4UUKRB9TAU", Request id "0HM4UUKRB9TAU:00000002": done reading request body.
2020-12-12 17:25:29.760 -06:00 [INF] Antiforgery token validation failed. The required antiforgery cookie ".AspNetCore.Antiforgery.uO77BpFhTRE" is not present.
Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException: The required antiforgery cookie ".AspNetCore.Antiforgery.uO77BpFhTRE" is not present.
at Microsoft.AspNetCore.Antiforgery.DefaultAntiforgery.ValidateRequestAsync(HttpContext httpContext)
at Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.ValidateAntiforgeryTokenAuthorizationFilter.OnAuthorizationAsync(AuthorizationFilterContext context)
2020-12-12 17:25:29.778 -06:00 [INF] Authorization failed for the request at filter 'Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.AutoValidateAntiforgeryTokenAuthorizationFilter'.
2020-12-12 17:25:29.785 -06:00 [INF] Executing HttpStatusCodeResult, setting HTTP status code 400
202
In progress
Need to put in a different marker that gets translated by javascript on the client side rather than emit raw html
This works real bad on demo site
Page loading enhancement.
New issues would get defaults.
Issues from email addresses associated with organizations would be assigned to the organization.
This needs to happen on the client side, because we don't want to use dangerous @Html.Raw on server. See how Search.cshtml turns the postgresql start/end markers into and tags and follow that pattern.
For recognizing urls, but maybe we also want to recognize example.com, example.org, and even example.net, even though that works bad with my own "BugTracker.NET".
url parser
https://mathiasbynens.be/demo/url-regex
https://gist.github.com/dperini/729294
Copyright (c) 2010-2018 Diego Perini (http://www.iport.it)
Nice work!
I'm an old Visual Studio user and not very handy with VS Code and .NET Core stuff.
I tried the following on Windows 10 using the Edge browser, but can not get past the login page.
As you already mentioned using Gmail is not that easy either, maybe it's possible to show a simple "SKIP" button in DEBUG mode?
set "DebugAutoConfirmRegistration" to 1 in budoco_config_active.txt to SKIP the step where a user would have to confirm registration
@ivangrek - Does this interest you?
So far I can see that electron can take a screenshot of the entire desktop, but not off a selection. So, I'm thinking a way to do it would be to create like a transparent window for doing the selection, then take the screenshot of the whole desktop, then apply the selection rectangle to whole desktop image.
So, step number one, can I produce an electron window that simulates rubber band selection?
For newly registered users
For issues created by email
Hello Corey,
I am using a slightly customized version of BugTracker.Net since many years for private purpose.
I was wondering if you plan (or already did) a tool to migrate all posts / users / projects from an existing btnet database to a fresh installation of Budoco ?
I would like to give a try budoco (unless if you say it's not a good idea because it's not maintained and it may have some flaws or major features missing ?) but I don't want to lose my existing btnet data.
Thanks a lot for BugTracker.Net ! Despite its code is a bit old, it works really well and it was easy for me to modify it to add my own requirements. Initially if I installed budoco it was because it was the only bugtracker I've found that was compatible with my old Windows Server 2003 I was using at the time, so you can guess since how much time I'm using it ;)
Richard
Trying to upload an 11 mb file, the app failed silently.
Need ability to configure maximum size and to give a friendly message when file upload exceeds that size.
Once we can do big files, maybe we'll also show file upload progress.
For when the number of users gets big, something like the issues page - more control over list
checkbox to include/exclude inactive users
dropdown for all organizations or specific organization
A little searchbox to search usernames and email
Sort by clicking on column headings
Also: add OPTIONAL first name, last name to users table, user settings, etc
Hello,
Please can we request install instructions on Mac OS Sonoma with the following
This is the existing instruction which is more for Linux/Ubuntu
https://github.com/ctrager/budoco#how-to-install
Thank you
And document creating a demo, then clearing it out and starting with real db
And maybe let new web pages guide user so that they don't have to use command line.
Need to check user table AND pending registratins (emailed_links table) when update user changes username or email.
Also, need to check physically delete stale pending registrations so that the username/emails aren't wasted.
SQL 1:select i_organization from issues where i_id = 4030
SQL 2:select posts.*, us_username
from posts
inner join users on us_id = p_created_by_user
where p_issue = 4030 order by p_id asc
SQL 3:select pa_id, pa_file_name, pa_file_length, pa_file_content_type
from post_attachments
where pa_post = 48 order by pa_id asc
SQL 4:select pa_id, pa_file_name, pa_file_length, pa_file_content_type
from post_attachments
where pa_post = 49 order by pa_id asc
SQL 5:select pa_id, pa_file_name, pa_file_length, pa_file_content_type
from post_attachments
where pa_post = 50 order by pa_id asc
Underneath the "Details" textarea are up to 8 dropdowns: org, assigned to, and the 6 custom fields. Right now they are laid out using actual
tags, in two columns.What I would like is that the layout is completely controlled by css and that the user can override whatever we do in css using the custom css file feature of the app.
For the initial experience, new installation, I would like two columns
Left:
org
priority aka custom 2
[custom 3] hidden
category aka custom 4
[custom 5] hidden
right
assigned to
status aka custom 1
but I would like custom css to demo how to move things around between columns.
View only, Read only users might be able to do more than they should,
Non admin user might be able to do admin type things.
@ivangrek - This is yours if you want to work on it.
The UI:
global enable in budoco_settings_active.txt for notifications
(global enable whether to send notifications to email addresses that are not users (from incoming emails) - but then we'd need a way for external users to unsubscribe, so.... no, don't do this)
at user, radio buttons
subscribe to all
subscribe only to issues created/updated by me <<== default
subscribe to none
new user_issue table for explicit sub/unsub
The Backend:
We want to handle where user updates an issue, then quickly updates it again, and again. We want to send only one notification. So when we queue up the notifications, don't do multiple, and make sure they are stale by a configurable amount of minutes in settings file.
For now, email doesn't have to say what was updated.
Don't send an email to the person who did the update.
This looks good:
https://github.com/google/diff-match-patch
https://neil.fraser.name/software/diff_match_patch/demos/diff.html
Originally posted by @ctrager in #35 (comment)
[hover to view] was a placeholder. Better would be [click to view] and then a modal pops up with the text.
Or, maybe delux, you click to bring up a side-by-side diff.
Things are working fine now (on Windows 10, PostgreSQL 10), except search, the URL is wrong:
https://localhost:5001/Issue?id=4000
Must be:
https://localhost:5001/App/Issue?id=4000
This is something I could use help with. I'm going to look at jquery widgets.
The "-" operator, to exclude, doesn't seem to be working.
Charts look better against white background rather than black because of the way, for example, pie charts reach the edge of the image.
Use budoco.css class=, not local style=
The ability to view - but not CRUD - reports should be made available to non-admins, but the report queries need to be filtered by org just like view queries, using the common bd_util function. So "Reports" on the menu bar for everybody, and then the Admin page would have a link to "Create/Update Reports".
The crud of reports should be more consistent with the crud of queries, for example, delete confirmation. But maybe the report way is nicer? Just they should be the same, but I'm leaning towards it being the reports that has to change, not the rest of the app.
Revisit the sizes and fonts used in the graph images and maybe make them configurable? I dunno.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.