summaryrefslogtreecommitdiffstats
path: root/app (follow)
AgeCommit message (Collapse)AuthorFilesLines
2021-10-23Scrott v0.5HEADv0.5masterMalfurious1-1/+1
Signed-off-by: Malfurious <m@lfurio.us>
2021-10-23Fix issue re-assignmentMalfurious1-0/+6
The backend will now properly handle an action to assign someone who has already signed-off on a ticket. In effect, their signoff is removed, and the original assignment metadata (assigner, timestamp) is updated. Signed-off-by: Malfurious <m@lfurio.us>
2021-10-20Recognize self-assignment within the issue UIMalfurious2-6/+12
As a special case, self-assignment is refered to as claiming assignment of an issue. The assignee list on the issue sidebar will now properly identify users which have assigned themselves, and the issue event log will now contain "Bob claimed" instead of "Bob assigned Bob" when such an event occurs in the future. Signed-off-by: Malfurious <m@lfurio.us>
2021-10-20Add UI for explicit issue signoffMalfurious4-16/+39
Active issue assignees will now have a button on issues to explicitly 'signoff' their assignment - that is, to affirmatively declare it done. The use of this new action will allow assignees to signoff without needing to close the issue as well. This is useful for multiple assigned users collaborating on an issue. Note that if an assignee chooses to close a ticket directly, they are still automatically signed-off, as before. To aid this feature, the low-level definition of an 'assigned user' is updated to exclude users occupying an assignment slot, but which have already signed-off. Since the icon representing this action is the same as for closing a ticket, the buttons enabling these two actions are now color-coded wherever they appear. Signed-off-by: Malfurious <m@lfurio.us>
2021-10-20Order most recent issues firstMalfurious1-1/+1
Issue ordering within pad stages is updated to be first by due date (this was already the case), then by issue number _in decending order_. This is to be more consistent with the 'closed issues' view for pads, which always lists the most recently closed issues first. Furthermore, I suspect users will more likely want to deal with recent issues when browsing a pad. Signed-off-by: Malfurious <m@lfurio.us>
2021-10-20Fix bug in message renderingMalfurious1-1/+1
Using &nbsp; keeps original whitespace visible, but because it is non blocking, prevents any line wraps. Use &ensp13; instead, since it is blockable, and most accurately displays as the previous version did. Fixes 12c7230cf6bc. Signed-off-by: Malfurious <m@lfurio.us>
2021-10-19Enable greentext in issue messagesMalfurious1-2/+7
Signed-off-by: Malfurious <m@lfurio.us>
2021-10-18Keep issue modal open after closing an issueMalfurious2-3/+8
For consistency reasons, I've decided to keep the issue UI open even after just closing an issue. That is assuming the user used the modal window to perform the close. If an issue is closed via the quick control buttons in the pad view page, no window is spawned since none was open to begin with. Other edge-cases that would interrupt the return of the issue modal have also been removed. For example, an informational message is no longer produced when an attachment is successfully uploaded, and users are no longer notified that an action resulted in an issue being closed. Signed-off-by: Malfurious <m@lfurio.us>
2021-10-18Automatically call-up issue modal for newly-opened issuesMalfurious2-2/+2
This patch will cause the interface for new issues to be immediately visible after page load on opening a new issue, as it is likely the user may wish to perform some action on it. This patch also fixes a bug which has previously prevented this from being the default behavior. The pad view's script imports have been reordered such that all issue state manipulation is done and pushed to the DB before any of the pad view page content is rendered. This prevents situations where the page would often load in a broken state (the reason for the previous 'location()' call - to force a reload), and enables us to use the new issue as the autoModal window as this patch does. Signed-off-by: Malfurious <m@lfurio.us>
2021-10-18Add stage/guid information to issue modal title barMalfurious1-3/+10
The previous patch removed the guid from the far left side of issueListItem entries. This patch makes that value visible again within the popup issue modal window. Additionally, the issue's current stage is displayed next to its name. Viewing this info here is convenient, however this is mostly done in anticipation of being able to access issues from the main user dashboard, where pad stage context may be missing. Signed-off-by: Malfurious <m@lfurio.us>
2021-10-18Add additional info / controls to issueListItemMalfurious3-6/+43
The list of assignees, the owner (opener), and quick controls for advancing or closing an issue are now available in the issue listing for pad stages (or the closed issue list, which is missing the new control buttons). If using the quick control buttons to manipulate an issue, the issue modal is not called-up on the page reload. Signed-off-by: Malfurious <m@lfurio.us>
2021-10-17Remove unfinished pad selection dropdownMalfurious1-2/+4
The label itself is kept, to describe what page is currently in-view. However, the dropdown functionality is removed for now, since the only options were placeholders. Signed-off-by: Malfurious <m@lfurio.us>
2021-10-03Move license notice to 'About Scrott' modalMalfurious1-41/+6
Signed-off-by: Malfurious <m@lfurio.us>
2021-09-27Fix bug with login page signup formMalfurious1-0/+2
Some PHP update has changed the behavior of referencing a missing key in an array, so the mechanism I was using to specify the default login page tab was bugged (emitting errors) and did not allow to manually switch to signup after the app is initialized. To fix this, simply define the missing values to empty strings. Signed-off-by: Malfurious <m@lfurio.us>
2021-09-27Initially scroll auto modal window to bottomMalfurious1-0/+1
QoL enhancement when posting updates to a ticket. Since the page reloads and has to open the ticket modal again, scrolling to the bottom automatically preserves the view and makes follow-up actions easier. Signed-off-by: Malfurious <m@lfurio.us>
2021-09-27Preserve whitespace in ticket messagesMalfurious1-3/+2
Signed-off-by: Malfurious <m@lfurio.us>
2021-09-27pad: Add link to pad ownerMalfurious3-0/+29
It is annoying to have to manually navigate back to the group page that contains the pad you're currently viewing, since it involves more than a single click to go up one level in the object hierarchy. This patch adds the owner name to the display at the top of each pad, as a hyperlink. If the owner is a group, following the link will take you to the group page. If the owner is _your own_ user, following the link will take you to the 'My Pads' page. Otherwise, it leads nowhere. Signed-off-by: Malfurious <m@lfurio.us>
2019-04-13Scrott v0.4v0.4Malf Furious1-1/+1
Signed-off-by: Malf Furious <m@lfurio.us>
2019-03-24Employ df cache validation using HTTP ETag headerMalf Furious1-7/+17
This patch is a direct improvement on the previous one. Now, instead of telling clients to always cache df resources for 24 hours before revalidating the file, we tell them to cache it for zero seconds. This, in cobination with the ETag header, prompts the browser to utilize the If-None-Match request header. When serving df resources, we will set an ETag, which is a sha256 of the file content for the browser to cache. When the browser wants to load a resource a second time, it will send the ETag back via the If-None-Match header so we can compare it to the current file's hash. If the browser's ETag is still current, we can return 304 and save some bandwidth. Otherwise, the full response is sent as usual. Signed-off-by: Malf Furious <m@lfurio.us>
2019-03-23Instruct client to cache df.php resourcesMalf Furious1-1/+8
Since content served by df.php is inherently dynamic, the server wisely instructs clients to not cache any responses. In pratice, for Scrott, the resources accessible by df.php are usually static, perhaps only ocasionally appearing or disappearing. A consequence of this is that clients have to repeatedly download several images, often on each page load of the app. Low-bandwidth clients will especially feel this. This patch _explicitly_ inserts from headers into the response from df.php which instruct the client to keep a copy of the resource for 24 hours. The idea being that resource requests will be *drastically* reduced and if someone updates their head image (for example), that change will take no-more-than 1 day to propagate. Signed-off-by: Malf Furious <m@lfurio.us>
2019-03-21Don't remove bg image if it fails to setMalf Furious1-7/+3
This behavior was causing issues in the UI. We normally "try" to set a new asset by default, in case one was provided by the user, and just soft-fail if one wasn't. This "soft-failing" is now resulting in the images being removed if the user just goes in to change his alias (for example). Signed-off-by: Malf Furious <m@lfurio.us>
2019-03-21Track thumbs dynmic directoryMalf Furious1-0/+3
Signed-off-by: Malf Furious <m@lfurio.us>
2019-03-21Show thumbnail for object bg previewMalf Furious1-1/+1
... instead of the fullsized image. This guarantees a square aspect ratio, which is nice for the user interface. Signed-off-by: Malf Furious <m@lfurio.us>
2019-03-21Update df.php to serve thumbnailsMalf Furious1-0/+4
df.php will now serve bg image thumbnails when d=thumbs. Normal access requirements stand. Signed-off-by: Malf Furious <m@lfurio.us>
2019-03-21Update bg image functions to implement an image thumbnailMalf Furious1-10/+47
When setting the bg image for an object, create a copy of it (square-cropped) in dynmic/thumbs/ for display in the settings modal. This patch provides an additional function for retriving the thumbnail's URL as well. This thumbnail is desirable for the sake of the UI. If we cannot make a guarantee as to the aspect ratio of the preview images shown on the user tab of the settings modal, these widgets may appear wrong or go off the screen a bit on smaller devices. Signed-off-by: Malf Furious <m@lfurio.us>
2019-03-20Tweak setting modal image columnsMalf Furious1-1/+1
The target display size of these columns is changed to 'xs' so they don't wrap when viewed on smaller displays. Signed-off-by: Malf Furious <m@lfurio.us>
2019-01-12Display confirmation message when closing issue by advancing itMalf Furious1-0/+1
This is to make the user experience more uniform, but is in-part to mitigate a bug. Since the auto issue showing has been added, this will cause the newly closed issue to try and come up after we advance it past the last stage. Since we have just closed the issue, its modal is in a weird state. This informational notice modal prevents that broken issue modal from displaying. Signed-off-by: Malf Furious <m@lfurio.us>
2019-01-12Automatically show updated issues on page reloadMalf Furious1-0/+3
When submitting the iss-mesg-add form and reloading the page, this line will inform the stdpage footer javascript to automatically show the affected issue modal. This is _really_ helpful when trying to make multiple POSTs to an issue, as the user is not taken out of the issue modal between each POST, requiring them to visually find it again in the list of open tickets. Signed-off-by: Malf Furious <m@lfurio.us>
2019-01-12Add rudimentary system for launching a modal on page loadMalf Furious2-0/+30
If the $_SCROTT['AUTO_MODAL'] global is defined, it will refer to a modal's DOM ID to be shown once the page loads. Currently, an error state will supersede this and display the notice modal instead. Signed-off-by: Malf Furious <m@lfurio.us>
2019-01-12Add tooltips to navbar buttonsMalf Furious1-7/+7
Since there is little text labeling things in the navbar, I have added popup tooltips to each button (link) and dropdown menu. Signed-off-by: Malf Furious <m@lfurio.us>
2019-01-12Automatically signoff assignee when closing issueMalf Furious1-0/+2
For the Scrott alpha, there is no way for assignees to signoff their work. As a workaround, I am now just always signing off somebody when they close an issue. This will slightly improve the user experience for now, but I'm leaving the real fix for the beta. Signed-off-by: Malf Furious <m@lfurio.us>
2019-01-12Define stricter username policyMalf Furious1-5/+8
Previously, you could log into an account named "MyAccount" by entering either "myaccount" or "MYACCOUNT" (or any other case conbination). This patch requires logins to succeed with case-sensitive usernames. I have also decided, that I wish to disallow duplicate usernames if the only difference between them is case. There can only be _ONE_ "myaccount" (of any case combination), even if he's known canonically as "MyAccount". This particular functionality is not changed by this patch. I'm just noting it as a deliberate decision not to change, by policy. Note that _passwords_ always have been, and still are, case-sensitive. They are salted and hashed before they even hit the database. Signed-off-by: Malf Furious <m@lfurio.us>
2019-01-12Bump version numberMalf Furious1-1/+1
Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-10Bump version numberMalf Furious1-1/+1
Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-10Add 'No issues' message to empty closed issue listMalf Furious1-0/+4
Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-10Merge branch 'bug/opt-assign-to-grp' into devMalf Furious4-3/+32
2018-11-10Add 'No issues' message to empty stage list itemsMalf Furious1-0/+4
Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-10Fix bug in assignee selectionMalf Furious1-3/+5
Previously, issues on pads owned by a group (rather than by a user) would incorrectly present options for user assignment. It would show the group as a member of the list, misleadingly with the user icon to the left of it. This patch uses the new agent::getContainedUsers() function to resolve the pad's owner to an array of users accessible via the owner 'agent'. Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-10Add function agent::getContainedUsers()Malf Furious3-0/+27
This function helps further abstract agents. We want to get all users belonging to a pad that is owned by a group, or more specifically - an agent. If this agent is a user, that user is our only user to collect. If this agent is a group, we want to capture _it's_ owner along with all of it's members. Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-05Merge branch 'feature/view-closed-issues' into devMalf Furious6-46/+141
2018-11-05Only display 'iss-mesg-add' form for open issuesMalf Furious1-42/+44
Disallow posting to closed issues. This is a temporary soultion and will likely be reverted in the future. The main reason this is being done now is because this form, as written, depends on an open issue state. To aid diff comprehension, note that most lines are only indented one level, the code area affected is wrapped in a PHP if. Note that form submissions are still allowed for closed issues. This commit only disable the _displaying_ of the form. Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-05Add link to closed issues viewMalf Furious1-3/+9
Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-05Add pad closed issues viewMalf Furious3-1/+70
This view is routable from app/<pad_guid>/closed. It is a separate view for displaying the closed issues of a pad. index.php as well as the pad model code is also updated to support this view. This view currently *does not* support paging. This will very likely be added in the future. Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-05Add function pad::getClosedIssues_ordByClosed()Malf Furious1-0/+18
This returns an array of all issues which directly parent the pad object. These are the pad's closed issues. Most recently closed issues are first in the array. Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-05Fix bug in 'iss-mesg-add' form handlerMalf Furious1-1/+1
When closing issues, we were using a malformed format string. The 's' from the '%s' was missing. Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-05Return code 404 when displaying the 404 pageMalf Furious1-0/+1
To be more compliant with the HTTP standard, we will _actually_ return '404 Not Found' status when we decide to show the 404 view. A status of '200 OK' is misleading and incorrect. Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-04Implement 'add assignee' form handlerMalf Furious1-0/+18
The 'iss-mesg-add' form now handles when the 'assIssue' submission is sent. This is the only submission of this form that looks at the (usually hidden) 'assignee' dropdown field, which has been made a required field however. Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-04Add user interface for issue assignmentMalf Furious1-0/+26
This allows users to add assignees when posting to an issue. A dropdown is revealed which contains the pad owner and all members. Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-01Implement iss-mesg-add 'advIssue' submissionMalf Furious1-1/+22
Handler now includes logic for optionally advancing the issue through the pipeline. If this happens, 'closeIssue' (for example) will not be checked, as only one submission can be used. Signed-off-by: Malf Furious <m@lfurio.us>
2018-11-01Fix 'closeIssue' form submissionMalf Furious1-0/+6
I was failing to assert user has modify permissions for the issue. Signed-off-by: Malf Furious <m@lfurio.us>