Justin's Personal TODO List ======================================================================== DADA TO DO: ------------ Key: [ ] To-Do. [-] Working. [x] Done. [*] Naw... [?] Someday [x] HTML Forms: Specify accept-charset in your
[x] "Invite Only" List functionality. [x] "You are Subscribed" Message sending to recent subscribed people. [ ] A truly random pin for subs and unsubs. [x] - Tracker - track use of "forward to a friend" "Live tracking" right in mailing monitor [ ] - Ability to set a custom Feed URL (ie: Feedburner) [ ] Ability to have a, "I see your email has changed - want to change it in Dada Mail?" functionality in the list control panel. [x] Ability to move "selected" list members from one list to another... so from Subscriber to Black or White List, Black List to Subscriber or White list, and White List to Subscriber or Black list [ ] Ability to NOT distribute messages to users (so for example if I'm using Mail Merge to create labels, I can clear those people I want to NOT print a label for). [ ] Bounce Handler- a way to pull up the original, offending message to view [] ajax_include_subscribe.cgi - a way to pass a specific list you'd like to work with (instead of plugin config, which limits you to only one list) [] SpamAssassin plugin config for Dada Bridge? Just so it's easier to pass custom paramaters to SpamAssassin, in Dada Bridge (just whatever is needed in new()) filter_subscribers enhancements it would be nice if, during the, "Add/Invite screen, you're allowed to see which subscribers you're trying to import have already gotten a subscription request - and if so, not allow them to get another invite/whatever. Just another hook into, "Limit Subscriber Confirmation" stuff. I think. # The neverending, "I want a private email list - DM doesn't allow that, I don't want to invite people" never ending debate. Lists will need to have two ways of opereation: PRIVATE: allows mass subscriptions via the list control panel, and other non-closed-loop opt in stuff Allows you to hide your list YOU ARE responsible for making sure you follow things. Public: Cannot have mass subscriptions via the list control panel - MUST use closed-loop opt in stuff Cannot hide your list Still responsible to make sure you follow the rules, but Dada Mail will do its best to make this painless Added bonus! Ability to use outside sending APIs! Amazon SES, PostMark, etc. Easier hooks/interface to Dada Mail subscribe * Perl API that doesn't have a crap...API * SOAP? Interface? * YAML? Interface? * Javascript...? Interface? (Ajax? - I dunno...) Basically, this just needs to put two steps together: * first is the email validation part * if it's validated, then we go to the second step - the subscribe stuff * The subscribe stuff has to be changed to easily give back a return status that we can then later use - even, "1" and, "0" would be helpful * Are there any instances where a screen is shown in the web browser, that we would have to replace with some sort of different status message? (other than errors, which will be handled in the first step, hopefully) and the congrats stuff? Tests: Valid List? Email address present? (all the other email validation stuff...) [x] set_to_header_to_list_address setting needs to be re-named. * The functionality it was supposed to do, it doesn't * As it stands, if it's set to, "0", a reply-to header is added (or clobbers an already existing one) with the List Email address set. [ ] Some ideas from a user: * Make the List invite be more steamlined - so skip the screen that requires you to see the message that you want to send out * make the, "Send HTML", or, "Send PlainText" by user specified with the option saved for the next time. [ ] Simple Subscribe/Unsubscribe by email mechanism in dada_bridge.pl message just has, subscribe or unsubscribe If so, Dada Mail just goes through the usual DADA::App::Subscriptions::subscribe|unsubscribe methods - except, anything that needs a HTML screen is handled by email - if it can be. (That feature has to be fleshed out - not too much more to go) Also, this is an optional feature - can be disabled. This can also - randomly be a way to work with Dada Mail's subscription process for outside scripts. Uh, maybe good idea? [x] Closed-Loop Opt-in list setting is called, "enable_closed_loop_opt_in" and if set to one, is enabled. Where did I pick that name? May be time for a change - perhaps, "enable_closed_loop_opt_in"? [x] Going to change the, "Add" stuff in the list control panel to, "Invite", make control panel subscriptions even more buried, probably with a Config.pm-level variable to turn on/off even the ability to Subscribe outright in the list control panel. [x] probably a good idea to make the list invitation verbiage a lot nicer and more social-network-ey [ ] Also, see if I can't make profiles a little nicer, and linked into as many things as possible [ ] While I'm at it, get discussion list stuff less on-the-fringe, and more on top of stuff for example, there's no mention of the List Email in the, "You are now subscribed!" Message, etc Things I want to remove support for (or disable, globally for the time being) Turning off closed-loop-opt-in subscribing (removing, I'll give people the choice) Turning off, also stops anyone from subscribing anyone - that's basically a security problem, right there. Mass-Subscribing via the List Control Panel. Invitations Only! Turning off the black list - or just maybe editing? Not sure yet. $DISABLED_FEATURES ||= { control_panel_subscribing => 0, subscribing_without_opt_in => 0, editable_blacklist => 0, (even) viewable_blacklist => 0, }; List Invitation Verbiage Sucks, maybe something more like, Subject: You've been Invited to Subscibe to, "My List" The List Owner of, "My List" (myemail@example.com) has invited you to Subscribe! Here's a brief description of the mailing list: Blah blah blah * To automatically subscribe, click here:...
tags which are spoiling my footing layout. This doesn't happen with 3.0.x. [ ] I've removed the line actually wraps lines in paragraphs and removed the option in HTML::FromText that says, "hey treat things as lines" - although the, "hey treat these as paragraph oriented" was also enabled... I may have to revert this problem. [ ] Hey, that seemed to have worked! ------------- [ ] List Owner Confirmed subscriptions What do I have to do for this? [ ] New List subtupe 'sub_request'? [ ] New thingy in the subscription process, AFTER (or in?) the subscription process that goes "Hey not so fast, bub, we still now need to confirm this subscription with the list owner - cause this list be CLOSED! [ ] New interface in the list admin control panel to confirm/deny a subscripiton Seperate than the other "View" Screens, since there's a different interface going on... [ ] If it's confirmed/denied, a new email message has to be sent out! Agh! Probably not as a mass-mailing - one at a time? [ ] Anything else? [x] List Invite not working? If I try to do a list invite (and follow the confirmation link), it tells me that the pin is valid, but I didn't first ask for a confirmation. Weird! And then, when I go through the confirmation process, the password sent to the address doesn't work. When I look and see what's up in the DB all the fields are NULL except, "email". Strange?! [x] I was using the wrong API in the code - this effects the master branch as well. Hopefully, when we merge, the problem will magically, "go away" (fix in this branch) [-] CKeditor To replace, FCKeditor" I just haven't done it, yet. Looks actually *simpler* than FCKeditor, but things like docs do need to be updated. -- Here's some issues: No File Upload! It's currently a $59 add-on. Boo! -- Some tricky bits to remember: There's a check for a, "blank" message - which is actually the default HTML skeleton that FCKeditor makes, this'll have to be tweaked. There's also the code for editing an archived message. That'll also have to be tweaked. Probably. [-] No tweak necessary? CKEditor actually returns a blank form field, if you didn't type anything. Yay CKeditor! -- Other than that, it may behoove us to be able to run both FCKeditor and CKeditor at the same time, if needed...? [x] Fancification w/Scriptalicious I'm less interested in fancy-ness, but more into all the fanciness being the same, for everything There's not much I want to do, except the, "partial sending" stuff and the, "SMPT test" stuff [x] Maybe do all the +/- boxes, but that could be a lot of recoding, if not done right! :) It's been done, but I haven't tested it with anything except my own stuff... [x] Admin menu. rearrange stuff. [x] Make sure to double-check these changes with everyone. [x] my changes are in the .dada_config file. Move over to Config.pm and example .dada_config's [ ] Double-check the changes with myself! [x] I think I gave the mailing monitor the ability to see multiple mailing lists' status, but the links don't all work, and that gets confusing... [x] I need to perhaps make an option to that you cannot edit profile info, if you're not Dada Root. (no option, just... YOU CAN'T.) [x] Or make it clear that editing the information will deal with all lists. and/or have a way to know that a subscriber is on more than one list (and perhaps which lists?) (or a way to see a "public" profile? (turn on/off) [-] I need some basic form validation for the Subscriber Profile Fields. Right now, all I have is length. The SQL stuff is properly quoted... What else?! [x] I need to change all instances of, "Subscriber Fields" to, "Subscriber Profile Fields" [x] I need to make that SQL table upgrade thingy Something like: DETECT if there may be a problem. Test test test. (first get the prev. profile fields + email address) # HEY! Is there a way to do this just in SQL (find columns, EXCEPT @list_of_columns) INSERT INTO TestTable (FirstName, LastName) SELECT email, @profile_fields FROM Person.Contact WHERE EmailPromotion = 2 foreach(@profile_fields){ DELETE COLUMN from that_first_table } [x] I need to write up all these changes [x] Sigh. [ ] perhaps make a note about global unsubs in the profile? [x] You need to change the profile fields when they're listed_like_this, to be Listed Like This! [-] Subscriber Profile Fields widget - is it in places where we don't want it? [ ] Some more live testing... [x] UTF-8 stuff - revisit? What else needs to be done? Tests? Caching? Information in? How do we handle it? # I'm almost at the point of saying, "Hey, it's good enough for now, # but I need some more feedback! [x] And, that's exactly what I've done [x] Upgrade Script - what needs to be done for that to be a reality? (List of stuff) [x] SQL: Creation of new tables [x] SQL: changing of schema, for dada_subscribers table [x] Is... that it? [x] A "delete" profile function? What happens to the subscriptions? [ ]A master, "Unsubscribe me AND delete this profile" Thingy? [x] Prototype stuff? Should that be folded in? It does solve a few bugs... [x] Did I break the semi-auto stuff? [x] Yes you did, but you fixed it [?] It would be nice if the partial fields could support some sort of dynamic content, like today's date, etc. [ ] Auto Clickthrough tracking of links in the clickthrough tracker. (oh, boy) [ ] What does this entail? Is there an (optional) CPAN module that could find all links, and change them? Probably just: HTML::LinkExtor http://search.cpan.org/~gaas/HTML-Parser-3.61/lib/HTML/LinkExtor.pm http://docstore.mik.ua/orelly/perl/cookbook/ch20_04.htm (Could be an optional feature, make enough tests that make me happy, and just take a chance...?) [ ] It looks like the CPAN module is installable via the, "Perl Modules" feature in cPanel. That's good... http://dadamailproject.com/support/boards/viewtopic.php?f=14&t=1491&p=5401#p5401 What about plaintext ver? Do we than just look for things that look like URLs and auto-redirect-ify them? What about URLS in HTML messages, that are actually to be viewed? Do I care? Or, is there a way to *just* replace URL's in tags> [x] I need to merge all of the code that creates the query for the Subscriber Profile Fields into ONE method, because it's getting complicated, it's being used in more than one place, AND people want to change it. A tall order, but probably, well worth it! [-] The, "Your subscriptions" thingy in the Profile thingy has to let you know, if you aren't actually subscribed to any lists. Right now, if you're not, it just looks broken. [ ] It would also be nice, that if you were the List Owner of a List, you'd also be listed as that. Special things, like that. Sigh. [x] Need a way to update an email address from the profile, and perhaps auto-merge, if the email address is already subscribed to an address. (it should probably be warned if this happens...) [x] Once the above are done, I need some major testing stuff to be made and then, we gotta wrap this up - probably make the 3.0.x to 3.1 script and call it a beta! [x] Some things to remember - the SQL needs new tables AND info has to be moved from one table to another.... sigh. [ ] Man, wouldn't it be nice to have an installer...? Sigh. [x] I need to make upgrade notes from Simple Scripts installs. [ ] The docs need to be clearer about how to work with HTML templates, and the like, [ ] double check bug fixes from 3.0.x are in 3.1.x... (3.1) [x] I need to make an option to says, "Hey that need Subscriber Profile Fields info? Replace what my be there with, THIS, or, use what's there, if there's already something there, Probably per import, for now, [x] Gravatar bells and whistles in the profile screen [ ] CAPTCHA for, "hey, you've already *asked* for this damn subscription! screen - the check at the moment is too simple. [ ] Remember to move over any changes from 3.0.x to 3.1in POD docs... [x] Magic Subscription Forms - a way to turn *off*?! [x] I need to HTML-ify the list description in the profile screen. [x] I need a purge button for subscribers. [x] Currently, the following sites will be notified: is not listing anything... [ ] It would be nice to have an option that says, "Hey, that email template? Why don't we see it initially in the, "Send a Message" scrren - so, if I want to tweak it slightly - I can. The problem is, what if someone totally obliterates the, unsub info, thinking that the email template was going to be applied? Perhaps just a warning at the top, "The email template is plopped down below and won't be applied again" [ ] I'd also have to make a really really really good check, to make sure that, if there's nothing extra type, the email template isn't used. [x] Need option to turn FCKEditor off list-by-list - what if for some reason it's not working? Broken Dada Mail. [x] MIME-Tools require ver 5.8 of Perl, which I'm fine with, but we're still saying we ship needing only 5.6. MIME-Tools is having a hissy fit with IO:: stuff - so I may just ship with an older version of MIME-Tools, to get around that problem - I'll leave, MIME-Tools in DadaMail.pm, but I'll just ship with the older version (5.420) Send a Webpage: Give options on what to do with Javascript, Stylesheets: change links to embed Remove (or, if it's not too hard) Leave alone, thank you very much Also, sputter back any errors found, hooking into the MIME::Lite::HTML stuff I'll probably have to make my own parse method. Sigh. And include_js method. Stupid. Also: http://rt.cpan.org/Public/Bug/Display.html?id=36005 ======================================================================== [x] "You may only change the Subscriber Profile Fields if you are logged in to an existing list using the Dada Mail Root Password." [x] "Use underscores, instead of spaces - no funny characters, and use lower case characters instead of uppercase. ======================================================================== Make the attachment limit somewhat flexible? Check in FCKeditor_default_value_widget.tmpl Perhaps fill in with a similar default value that FCKeditor uses, but all on one line? Will that work Have the DADA::App::FormatMessages::pre_process_msg_strings() subroutine know about the default_value that can be user-setable. Wooosh! (and that way, also, Beatitude can use this default value, yeah!) I have to update the perllib stuff, including: MIME::Parser Time Date Schedules do not get deleted, when a list gets deleted, which means, if you create new list with the same shortname, the old schedules will magically work again. Gotta update LWP - perhaps have it not "live" by default. I probably have to... I forgot :) This is more of a scratchpad, than anything else. 3.1 Change the Clickthrough Tracker to change all the URL's found to Click trackable: http://search.cpan.org/~bdfoy/HTML-SimpleLinkExtor/lib/SimpleLinkExtor.pm 3.0 [x] Probably take the send_email, send_url_email and possibly list_invite and put them into their own modules, ala DADA::App::Subscriptions, so I can call them in other modules (or, whatever) and also have it WAY easier to test with. Although, I do see where this is all going - I'm haphazardly reinventing CGI::Application. Hopefully, this'll just get the code *ready* fro CGI::Application, and I just don't keep writing silly modules, like this. But, yeah, it would *really* be nice for testing purposes... [ ] Something has to be done about error messages in the multiple subscribe script. Perhaps have a little ajax window with the error message (the same one you see in the, "there's seems to be a problem, but without the header/footer) when you click a, "Huh?" button, or something. I hates me that extension. [ ] It would be really nice to make my own include type for HTML::Template, powered simply by filters - the catch is that I want to be able to pass variables, so the tag would look something like: and the filter just looks for: And variables are parsed via: my $str = $1; my @vars = split(\s+, $str); my %named_vars; foreach(@vars){ my ($name, $value) = split(':', $_); $value =~ s/^\"|\"$//; } And then pass the vars to HTML::Template (again!) and replace the tag with what that's returned with. I'm assuming you understand how bug-ridden the above is and would not attempt to do copy/paste this. [+] Damn it: http://osdir.com/ml/lang.perl.modules.html-template/2006-12/msg00004.html [x] Probably make a module named something like, HTML::Template::MyExpr and make that like, one little change. Sigh. [x] Perhaps have two mail settings- one for mass mailings, one for everything else. # (Would make things that need to be sent, sent FAST!) [*] Talk to the reCAPTCHA CPAN guy and get 'em to distribute a Pure-Perl compatible version of his module (shouldn't be hard) [+] Talkin': http://rt.cpan.org/Public/Bug/Display.html?id=31740 [+] Meh, it ain't goin anywhere, the PP version Really really needs to be rewritten, because it sucks! [ ] Get rid of DADA::Template::HTML, since it's stupid and horribly written and being superceded by DADA::Template::Widgets anyways [ ] Add a, "wrap" paramater to DADA::Template::Widgets::screen, so that you can do the things DADA::Template::HTML does, but do it better [ ] Get rid of that option to have