Internal notes on the tricky stuff
01/18/2012 - Public Chats:
I think the best way for specifying a public chat is at the creation of the chat itself. This will ensure that everyone in the chat is aware that it is public from the get-go. Otherwise if a user was able to specify a chat public after it was already created it could cause some potentially bad situations. What if someone had been talking with someone about their co-worker or boss and then another employee made that chat public?
01/04/2012 - Remember Me:
The remember me checkbox will create a record that stores your username and computers MAC address. Next time you access FMChat with the computer with a matching MAC address it will automatically log you in without a need to type your username or password.
01/04/2011 - Data Detectors:
When in a chat you can type in a url and the system will recognize that and convert it into a clickable link within the message. It does this by keying off of the "http://" or the "www.". It doesn't stop there though. Data Detectors are expandable and completely customizable. It is based on 2 parts. The "Selector" and the "URL". From the selector you will get 2 pieces of information, the selector itself and the data that is part of that selector. So let's use a standard url as an example.
The selector in this case would be "http://" and the data would be "www.filemaker.com"
So you would add a selector of "http://" and your url would look like: <a href="<<Selector>><<Data>>" target="_blank"><<Selector>><<Data>></a>
This would properly replace any http:// link with a working clickable link in the message.
You could also expand this to use www. instead of http or ftp etc... But the most powerful functionality will be to use this with a script URL in Filemaker Pro 12. An example of referencing an order number that is clickable might be something like:
URL: <a href="FMP7Script://192.168.10.0 /Client.fp7?script=ListClients¶m=<<Data>>"><<Selector>><<Data>></a>
Using this method you could create a different selector for any script you wanted to run. Sticking with this order selector that we just created you would then type "Check out Order:1234" and then it would become a clickable link in the message that when clicked would open the appropriate database and take you to that specific order.
12/23/2011 - Persistent Styles:
A feature that I think will be very valuable when using the system as a log or audit trail system is "Persistent Styles". I would set a style in the session table that would stay with that session regardless of the template that the user has selected for their main style. This way if it was a log for example, it would always look appropriate for a log. The big decision I have to make is wether I store the style (css) code as an indexed field in the session record or if I store the style ID and look up the css code when the record is being viewed. The downside to storing the actual code is if the style gets changed in the future any sessions created before that change will stay the same (the old look). The upside is that no relation will be necessary so there should be a speed benefit (possibly only slight).
12/23/2011 - Speed Optimizations:
When using the database on a remote system there is a very noticeable slow down when opening an existing chat window. The cause of this appears to be using the list function on a calculation field. I have started working on using the list function on an indexed field and then using the replace function once the data is local to mimic what the calculation currently does.