Difference between revisions of "Zulu Multiple Calendars"
(3 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
Each "calendar" in iCal is represented by a record in the ZuluCalendarList table you added to your FileMaker file during [[Zulu Integration|integration]]. By adding a value to the zulu_filterKey and zulu_filterValue fields in this table, you can have that calendar "find" just a subset of FileMaker records to display. | Each "calendar" in iCal is represented by a record in the ZuluCalendarList table you added to your FileMaker file during [[Zulu Integration|integration]]. By adding a value to the zulu_filterKey and zulu_filterValue fields in this table, you can have that calendar "find" just a subset of FileMaker records to display. | ||
− | |||
− | |||
===Adding a Filter to an Existing Calendar=== | ===Adding a Filter to an Existing Calendar=== | ||
Line 28: | Line 26: | ||
You can duplicate existing calendars by duplicating their ZuluCalendarList records and just changing their filter criteria. Just be aware of a couple things: | You can duplicate existing calendars by duplicating their ZuluCalendarList records and just changing their filter criteria. Just be aware of a couple things: | ||
− | When you duplicate the ZuluCalendarList record make sure you make up a UUID for the new calendar: just type in anything, making sure it is unique. | + | :When you duplicate the ZuluCalendarList record make sure you make up a UUID for the new calendar: just type in anything, making sure it is unique. |
− | Be sure to change the values for zulu_filterKey, zulu_filterValue, and zulu_displayName for each calendar you create. You can change the colors too but it is often easier to | + | :Be sure to change the values for zulu_filterKey, zulu_filterValue, and zulu_displayName for each calendar you create. You can change the colors too but it is often easier to change colors in iCal. |
That's it. You'll see one new calendar for each record in ZuluCalendarList next time you refresh your calendar in iCal. | That's it. You'll see one new calendar for each record in ZuluCalendarList next time you refresh your calendar in iCal. | ||
+ | |||
+ | ===Specify Which Users Can See Which Calendars=== | ||
+ | |||
+ | By using record level access privileges, you can limit which calendars different users can see. <br><br> | ||
+ | These methods use Filemaker logic to filter the calendars, so there are many ways to do this. <br><br> | ||
+ | To get started though, here are two that are easy to set up | ||
+ | |||
+ | ====Give Each User Access to One Calendar==== | ||
+ | |||
+ | In your ZuluCalendarList layout, make sure the zulu_filterValue matches the account name for that calendar. | ||
+ | |||
+ | |||
+ | |||
+ | [[File:ZuluFilterValueAccountName.png]] | ||
+ | |||
+ | |||
+ | |||
+ | Now, modify the record level access privileges so that when that account tries to access the database, it can only see the calendar record that matches it's account name. | ||
+ | |||
+ | Here we create a Zulu privilege set, and set it so it can only access records in ZuluCalendarList when zulu_filterValue = Get (AccountName) | ||
+ | |||
+ | |||
+ | |||
+ | [[File:ZuluPrivilegeSet.png]] | ||
+ | |||
+ | Remember to re-Publish your calendars when you make new ones! | ||
+ | |||
+ | |||
+ | ====Give Each User Access to Multiple Calendars==== | ||
+ | |||
+ | In your ZuluCalendarList layout, make sure the zulu_filterValue ''contains'' the account name for that calendar. | ||
+ | |||
+ | |||
+ | [[File:ZuluFilterValueAccountNameMultiple.png]] | ||
+ | |||
+ | |||
+ | Now, modify the record level access privileges so that when that account tries to access the database, it can only see the calendar records that ''contains'' it's account name. | ||
+ | |||
+ | Here we create a Zulu privilege set, and set it so it can only access records in ZuluCalendarList when PatternCount(zulu_filterValue ; Get (AccountName)) = 1 | ||
+ | |||
+ | |||
+ | [[File:ZuluPrivilegeSetMultiple.png]] | ||
+ | |||
+ | |||
+ | Remember to re-Publish your calendars when you make new ones! | ||
+ | |||
===Switching an event from Calendar to Calendar in iCal=== | ===Switching an event from Calendar to Calendar in iCal=== |
Latest revision as of 21:02, 7 October 2015
Multiple Calendars Based on the Same FileMaker Table: Filtering
Overview
Using "Filtering" you can have an individual FileMaker table show up as multiple calendars in iCal: or have only a subset of a table show up in iCal.
Each "calendar" in iCal is represented by a record in the ZuluCalendarList table you added to your FileMaker file during integration. By adding a value to the zulu_filterKey and zulu_filterValue fields in this table, you can have that calendar "find" just a subset of FileMaker records to display.
Adding a Filter to an Existing Calendar
- 1. Navigate to the ZuluCalendarList layout in your FileMaker file and find the calendar record you wish to filter. Enter a field name into zulu_filterKey (you do not need to include the table name, for example enter Status, not Events::Status). And enter a filter criteria into zulu_filterValue: for example you might enter "Urgent".
- 2. Map this field (Status in our example) on the "Filtering" tab of your Field Mapping layout (the one where you have our Required 1 and Required 2 tabs). This field should not have an object name.
- 2. You may also want to change the name of your calendar to reflect this filter. Edit the value in zulu_displayName, making it something like "Events - Urgent".
- 3. That's it. The next time you refresh your calendar in iCal or on your phone you'll see just those events where the field "status" contains "Urgent".
Note: you don't have to re-publish if you're just adding new calendars. You only need to republish if you've changed field mappings.
Remember that this is a "contains" search, so in our example above it will filter for events where the event's status contains "Urgent".
If you want to have a calendar for items where there is no status, enter a value for the filter field in zulu_filterKey, but enter "=" (without quotes) into zulu_filterValue.
Creating Additional Filtered Calendars: Duplicating Calendars
You can duplicate existing calendars by duplicating their ZuluCalendarList records and just changing their filter criteria. Just be aware of a couple things:
- When you duplicate the ZuluCalendarList record make sure you make up a UUID for the new calendar: just type in anything, making sure it is unique.
- Be sure to change the values for zulu_filterKey, zulu_filterValue, and zulu_displayName for each calendar you create. You can change the colors too but it is often easier to change colors in iCal.
That's it. You'll see one new calendar for each record in ZuluCalendarList next time you refresh your calendar in iCal.
Specify Which Users Can See Which Calendars
By using record level access privileges, you can limit which calendars different users can see.
These methods use Filemaker logic to filter the calendars, so there are many ways to do this.
To get started though, here are two that are easy to set up
Give Each User Access to One Calendar
In your ZuluCalendarList layout, make sure the zulu_filterValue matches the account name for that calendar.
Now, modify the record level access privileges so that when that account tries to access the database, it can only see the calendar record that matches it's account name.
Here we create a Zulu privilege set, and set it so it can only access records in ZuluCalendarList when zulu_filterValue = Get (AccountName)
Remember to re-Publish your calendars when you make new ones!
Give Each User Access to Multiple Calendars
In your ZuluCalendarList layout, make sure the zulu_filterValue contains the account name for that calendar.
Now, modify the record level access privileges so that when that account tries to access the database, it can only see the calendar records that contains it's account name.
Here we create a Zulu privilege set, and set it so it can only access records in ZuluCalendarList when PatternCount(zulu_filterValue ; Get (AccountName)) = 1
Remember to re-Publish your calendars when you make new ones!
Switching an event from Calendar to Calendar in iCal
Learn more about this in Switching Calendars.
Filtering on Different Fields.
Note that you don't have to have all your calendars filtering on the same field. You could have several calendars filtering on Resource (the production studio in which an event is scheduled, for example). Then you could create an additional calendar filtering on "Status" showing you just the events that are marked "Rush".
Additional Calendars from Different FileMaker Tables.
You can also publish more than one table in the same FileMaker file. This is pretty simple...
1. Create a new blank layout based on the table you wish to publish. Name it whatever you'd like the calendar to be named in iCal, though you can change this later.
2. Follow the integration instructions from step 5. "Mapping Fields" onward. Ending with running the "Publish Calendar" script from the new layout you created.
3. That's it. Now when you refresh your calendar in iCal you'll see a new calendar based on your new table. (You might want to read some warnings here about switching events between calendars based on different tables: switching calendars.)
Additional Calendars from Different FileMaker Files
Rather than import the Zulu scripts and tables into separate files. Use a single file to hold the Zulu scripts and ZuluCalendarList table: then create new table occurrences in that file for each calendar you wish to publish from another file, following the directions for "Additional Calendars from Different FileMaker Tables" above.
Going further
Check out this video demonstrating how you can use auto-enter calcs to preserve values that might otherwise be edited by filters. This technique can also be used to make parts of Zulu calendar records uneditable without throwing errors in iCal.