Customizations and Other Setup Tweaks

Hey all! I just started with v4.5.13, self-hosted. I’m really loving this so far! After spending WAY too long customizing my invoice design, I have a few questions/requests related to customizing other things. (If any of my questions require coding, I’m fine with that, I just need to know what files.)

  1. Email Templates: Is editing the design2 and design3 files in /resources/views/emails/ still the proper way to customize email templates? What are the invoice_html.blade, master.blade, payment_confirmation_html.blade, and auth/reminder.blade templates for? (I found these by searching for "!DOCTYPE.") I mean, I can guess by name what they're used for, but templates for all but the password reset email are selected in the interface. If I select the "Plain" template, what is it using to generate the emails?
  2. Account Custom Fields: Any fields I create in Invoice Settings->Custom Fields appear on the product, client, etc., editor pages except for the ones under company, they don't appear on the Settings->Company Details page. Am I doing something wrong or is that section just inconsistent?
  3. Email Notification for Recurring Invoices: So, when the system generates a recurring invoice, I can have it auto-email it to the client and notify me. Can I have it NOT auto-email it to the client and just notify me that the invoice has been created so I can look it over first and then send it manually?
  4. Regular vs Recurring Invoices: Is it possible to have different terms and conditions for each type? My regular invoices are for website/programming work and my recurring ones are for hosting, so the consequences of not paying are different. (And now that I think of it, the overdue notifications would be different as well.)
  5. Recurring Invoice Variables: What do I need to edit to add "DAY" to the list of variables for dynamic dates? When I'm describing a hosting period, it's "MONTH DAY, YEAR = MONTH DAY-1, YEAR+1." Right now, to generate the product description, I'm using custom client variables for the start/end month and day and just calculating the year, but that's a bit clunky and I could likely find a better use for those custom variables.
  6. Client Status: Speaking of custom client variables, it would be nice to have a client status with values like Potential, Active, Inactive, etc., and be able to view/filter by the status on the listings page. I know I can kind of replicate this by, say, deleting potential clients that don't turn into actual clients and archiving ones that move to another company, shut down, etc., but it would be nice to have something like the Invoice or Task statuses that are separate and can be used for filtering. Where would I have to look to get some idea how to implement that? (It would also be nice to be able to attach documents to clients like you can for invoices and quotes. Same "Where would I look...?" question.)

I think I thought of more as I was setting things up, but I should probably stop there… Although I did want to report a couple of issues I found.

  • Creating/Editing Tasks: If I'm viewing a project and click to view one of the associated tasks, hitting cancel takes me nicely back to the project page. But if I update and save the task, hitting cancel after it saves takes me to the list of tasks for all projects. If I'm viewing a project and click to add a new task, clicking save reloads the task page. Clicking cancel there takes me back to the task create page, and clicking cancel there takes me back to the task I just created. (It's acting like it's using window.history for navigation rather than figuring out where it should best be going, which would seem to be the project page in all cases...)
  • Kanban: If I try to drag a task from one status to another, I get a "An error occurred, please refresh the page and try again." error. Also, are there instructions for using it? I couldn't find it in the docs.

For anything that requires editing the code (especially something like adding a client status), I’m wondering if I could do it as a custom module instead. (I hate editing core code. I’ve had a couple of bad experiences with customizing code so much that I couldn’t upgrade it.) So if that would work for some of these things, please let me know. I’ve looked over the developer docs but I should probably finish setting up what I have before getting caught up in trying to add new features…

Also, I see a lot of talk about v2. It sounds like it’s going through some big changes, will things done in the current version be compatible? Is the v2 code at a point of being usable? I suspect I’m going to be doing a lot of little tweaks to this and I’d rather either tweak in a way that won’t be overwritten (custom modules, unless they won’t work in v2) or tweak (and possibly contribute) code that won’t be going away in a new version.

Sorry for the really long email. I tend to do that… (See Also: my username.)

  1. Customizing the email designs isn’t supported, if you change those files you’d need to re-apply the changes when updating the app.

  2. The custom company field names and values are both set in the settings.

  3. Yes, you’d want to disable auto-email in the workflow settings on Settings > Invoice Settings.

  4. You’d need to manually set the different terms in the recurring invoices.

  5. Sorry, it isn’t supported.

  6. Maybe you could use a custom field with dropdown values.

  7. It’s a bug.

  8. Not sure, are there any details in the browser console?

  9. v1 custom modules will NOT be supported in v2.