User Interface Requests

Request and discuss new features you would like to have.
Post Reply
stusmith
Posts: 63
Joined: 27 Jan 2017 15:24

User Interface Requests

Post by stusmith »

I have a couple of items that I'd like to suggest and that I'm trying to add myself. I will happily share what I've got done as I get it working in the hopes that it can be folded in upstream.
  • Quarantine Summary Report
    1. Add a link to the bottom of the e-mail to allow the user to log in and view their quarantine, rather than just the individual message from the 'View' link
    2. The message 'detail' view for users should allow releasing or deleting. As it is, you see the message, but do not have the ability to manage it directly from the view, you must either click into the 'Go To Message' field and hit enter or go to 'Recent Messages' or 'Quarantine' and then locate the message and drill-down to the management
    3. Messages that have been released, but not deleted continue to trigger quarantine summary reports until they are manually deleted. Either the release functionality should delete on successful release or the report should be filtered to exclude released messages.
  • Main View
    1. A 'quick filter' toolbar that allows filtering HAM,SPAM,Deleted,Released
    2. A 'Go' button next to the textbox with a message ID in order to allow easier use by mobile users ( as opposed to clicking into the textbox, waiting for the keyboard to pop up, and pressing enter
    3. Status fields to display whether a message has been Released, or Deleted, or Unprocessed ( my users are confused when they delete a message and it doesn't disappear from their view and there is no visual indication that an item has been released )
I thought that I would try to add the quarantine link to the summary report first. Following that, I'd try to add columns to the mailscanner.maillog table to act as flags for status ( isReleased:tinyint(1)/isDeleted:tinyint(1) ) and use that to filter the quarantine summary report. Then I'd try my hand at the 'quick filter' feature.

I'll try to figure out the localization for all of this if I can. I don't want to cause a collision in the localization string namespace and I only speak English, so...
stusmith
Posts: 63
Joined: 27 Jan 2017 15:24

Re: User Interface Requests

Post by stusmith »

It looks like the release functions are implemented at:
  • functions.php:3178 function quarantine_release($list, $num, $to, $rpc_only = false)
  • rpcserver.php:151 function rcp_quarantine_release($msg)
  • auto-release.php:40 some autorelease stuff?
So, if I can flag the message in the release functions, I should be good. It's strange though, because it looks like the quarantine report is built by traversing the filesystem directory structure, rather than querying the database... I'm still feeling my way around so I don't know if there's a reason for not unifying them both in the database, but it does explain whey the quarantine report doesn't respect actions other than delete...

I'm wondering now if the reason for building the list that way is to avoid problems with requeueing and new message IDs being assigned? Anyone want to weigh in?
stusmith
Posts: 63
Joined: 27 Jan 2017 15:24

Re: User Interface Requests

Post by stusmith »

COMPLETED TASKS
  • added fields to database for 'released' and 'deleted' statuses
  • created new table indexes for same
  • modified quarantine_release and quarantine_delete to update fields appropriately

    This stinks ever so slightly because it seems to change the timestamp of the database... not sure if there's a stored procedure ON UPDATE yet? if so, maybe I can change that to ON INSERT? The problem is that the timestamp that is expected to be the received time then becomes the time of the last operation

    Think this is fixed by adding 'UPDATE blah blah blah, timestamp=timestamp WHERE blah' to the SQL ... I guess we'll see
  • added CSS styles for table.mail tr.released, td.released, tr.deleted, td.deleted so colorisation is working
  • added localisation strings to languages/en.php for 'Released' and 'Deleted'
  • updated 'Color Codes' key to include new statuses
  • added localized status_array strings
  • lamented my existential angst over 'localised' vs. 'localized'
  • changed e-mail address in 'Quarantine Report for %s' in HTML format to redirect to a link to "RECENT MESSAGES"
  • added footer link to HTML Quarantine Report as 'Please click here to access your quarantine' linking to the quarantine for the current day

    I wonder if this should be based on timestamp rather than DateTime('NOW')? It seems like that could redirect incorrectly but it's "good enough" for now
  • make quarantine summary report respect actions performed - don't really want to see messages that have been released or deleted
  • add "bulk" delete operation to message operations report
OUTSTANDING TASKS
  • figure out how to pass this upstream in a way that's useful to others?
  • modify reports.php to add filter ability for released/deleted fields
Post Reply