Filters
DayBackOnline.Filters History
Hide minor edits - Show changes to output
May 02, 2018, at 03:11 AM
by - Fixed typo
Changed line 64 from:
-> source=nulls&source=Events
to:
-> source=null&source=Events
Added line 7:
Added lines 51-70:
!! Filtering by Source (Calendar)
Decide which source(s) are visible by including the source in your URL. This is helpful because the source you're interested in might currently be turned off.
Use...
-> source=Events
...where "Events" is the name of your calendar in Admin Settings / Calendar Sources. If you just pass the name of one or more sources like this, DayBack will add the source to those currently turned on.
Note that the source parameter doesn't turn off any other calendars by default: it just makes sure that the one you specified is turned on. If you want to turn off all the calebdars except the one(s) you're filtering for, call null as your first source like this:
-> source=nulls&source=Events
This is also the syntax for selecting multiple sources at once in the form
-> source=Events&source=Campaigns
This null-first behavior works with all the filters which support multiple values.
Added lines 50-63:
!!Text filters
You can populate the text filter via URL by appending this to the end of the url
->
?filterText=Some%20Text%20I%20Like
To remove any set text filter use null
-> ?filterText=null
So a full url would look like:
-> https://app.dayback.com/#/?filterText=TextToFilter
February 03, 2018, at 01:04 AM
by - Updated order of #GetFilters
Deleted lines 55-58:
This function returns an array of objects, containing all of those specific filters, whether active or not. Take a look at our custom action examples for an action that creates a link to your existing view, with filters applied, for DayBack users within your organization: [[CustomActionExamples#InternalLinkToView | Custom Function: Create a Link to Calendar View]]
Added lines 63-66:
For example, to get a list of all the statuses: seedcodeCalendar.get('statuses')
This function returns an array of objects, containing all of those specific filters, whether active or not. Take a look at our custom action examples for an action that creates a link to your existing view, with filters applied, for DayBack users within your organization: [[CustomActionExamples#InternalLinkToView | Custom Function: Create a Link to Calendar View]]
February 03, 2018, at 12:52 AM
by - Added #GetFilters
Added lines 50-66:
[[#GetFilters]]
!! Can I get a list of the active filters from the calendar?
Yes! Within a custom action, you can get a list of the filters using the function seedcodeCalendar.get(''filterType'')
For example, to get a list of all the statuses: seedcodeCalendar.get('statuses')
This function returns an array of objects, containing all of those specific filters, whether active or not. Take a look at our custom action examples for an action that creates a link to your existing view, with filters applied, for DayBack users within your organization: [[CustomActionExamples#InternalLinkToView | Custom Function: Create a Link to Calendar View]]
Valid options for the filterType parameter are:
*statuses
*resources
*contacts
*projects
*textFilters
Changed line 13 from:
to:
!!! Video and Example File Available
Changed line 13 from:
to:
--> *Video and Example File Available*
Changed lines 13-14 from:
to:
!!! --> Video and Example File Available
Changed line 75 from:
Note that neither "source", nor "id" actually filter the calendar: they're just used to tell DayBack which event you're interested in.
to:
Note that neither "source", nor "id" actually filter the calendar: they're just used to tell DayBack which event you're interested in.
Changed lines 11-13 from:
!!! Video and Example File Available
You can download an example file with button code to help you get started here: [[https://www.seedcode.com/example-file-driving-dayback-online-with-urls/ | Example File]]
You can download an example file with button code to help you get started here: [[https://www.seedcode.com/example-file-driving-dayback-online-with-urls/ | Example File]]
to:
----
--> !!! Video and Example File Available
--> You can download an example file with button code to help you get started here: [[https://www.seedcode.com/example-file-driving-dayback-online-with-urls/ | Example File]]
----
--> !!! Video and Example File Available
--> You can download an example file with button code to help you get started here: [[https://www.seedcode.com/example-file-driving-dayback-online-with-urls/ | Example File]]
----
Added lines 11-14:
!!! Video and Example File Available
You can download an example file with button code to help you get started here: [[https://www.seedcode.com/example-file-driving-dayback-online-with-urls/ | Example File]]
You can download an example file with button code to help you get started here: [[https://www.seedcode.com/example-file-driving-dayback-online-with-urls/ | Example File]]
Deleted lines 71-74:
!! Example file available
You can download an example file with button code to help you get started here: [[https://www.seedcode.com/example-file-driving-dayback-online-with-urls/ | Example File]]
Changed lines 67-69 from:
Note that neither "source", nor "id" actually filter the calendar: they're just used to tell DayBack which event you're interested in.
to:
Note that neither "source", nor "id" actually filter the calendar: they're just used to tell DayBack which event you're interested in.
You can download an example file with button code to help you get started here: [[https://www.seedcode.com/example-file-driving-dayback-online-with-urls/ | Example File]]
You can download an example file with button code to help you get started here: [[https://www.seedcode.com/example-file-driving-dayback-online-with-urls/ | Example File]]
Changed lines 65-67 from:
-> https://app.dayback.com/#/?date= &source= &id=
to:
-> https://app.dayback.com/#/?date=2016-03-23&source=My%20Server&id=635662540R4J52D
Note that neither "source", nor "id" actually filter the calendar: they're just used to tell DayBack which event you're interested in.
Note that neither "source", nor "id" actually filter the calendar: they're just used to tell DayBack which event you're interested in.
Changed line 47 from:
-> '''Date''': in the form
to:
-> '''Date''': in the form date=2016-03-26 (yyyy-mm-dd)
Changed line 65 from:
-> https://app.dayback.com/#/?date=
to:
-> https://app.dayback.com/#/?date= &source= &id=
Added lines 40-41:
Note that you can also manipulate the always-visible status and resource filters using URLs, the syntax is filterStatuses=value and/or filterResources=value
Changed line 56 from:
basicResourceHor (the Resource "Grid")\\
to:
basicResourceHor (the Resource "Grid") \\
Changed line 59 from:
You can also pull up a specific event in the calendar via url: you'd use this if you want to see a particular event in context. To do this, pass in the event's ID and the date of the event (optionally you can also include the view). DayBack will navigate to that date and bring up the event's popover just as if you'd clicked on it. If the calendar was in a filtered state so that the event wouldn't be visible, DayBack will clear those filters so you can see the event.
to:
You can also pull up a specific event in the calendar via url: you'd use this if you want to see a particular event in context. To do this, pass in the event's ID, Source, and the date of the event (optionally you can also include the view). DayBack will navigate to that date and bring up the event's popover just as if you'd clicked on it. If the calendar was in a filtered state so that the event wouldn't be visible, DayBack will clear those filters so you can see the event.
Changed lines 47-57 from:
-> '''View''': in the form
to:
-> '''View''': in the form view=agendaDay Here are the possible values for view, each corresponding to a "tab" in DayBack. "Agenda" views are the "schedule" views in DayBack--the ones with times along the left-hand side. "Basic" views are the "List" views in DayBack:
--> basicDay \\
agendaDay \\
basicWeek \\
agendaWeek \\
Month \\
basicResourceVert \\
agendaResourceVert \\
basicResourceHor (the Resource "Grid")\\
basicHorizon
--> basicDay \\
agendaDay \\
basicWeek \\
agendaWeek \\
Month \\
basicResourceVert \\
agendaResourceVert \\
basicResourceHor (the Resource "Grid")\\
basicHorizon
Changed lines 45-53 from:
-> Date: in the form
to:
-> '''Date''': in the form
-> '''View''': in the form
You can also pull up a specific event in the calendar via url: you'd use this if you want to see a particular event in context. To do this, pass in the event's ID and the date of the event (optionally you can also include the view). DayBack will navigate to that date and bring up the event's popover just as if you'd clicked on it. If the calendar was in a filtered state so that the event wouldn't be visible, DayBack will clear those filters so you can see the event.
Here is an example of the URL syntax for viewing a particular event:
-> https://app.dayback.com/#/?date=
-> '''View''': in the form
You can also pull up a specific event in the calendar via url: you'd use this if you want to see a particular event in context. To do this, pass in the event's ID and the date of the event (optionally you can also include the view). DayBack will navigate to that date and bring up the event's popover just as if you'd clicked on it. If the calendar was in a filtered state so that the event wouldn't be visible, DayBack will clear those filters so you can see the event.
Here is an example of the URL syntax for viewing a particular event:
-> https://app.dayback.com/#/?date=
Changed lines 31-32 from:
-> https://app.dayback.com/#/?filterProjects=My%20Project&filterProjects=Another%20Project& \
filterProjects=ELR%20Review&filterProjects=Blueprint%20Capital
filterProjects=ELR%20Review&filterProjects=Blueprint%20Capital
to:
-> https://app.dayback.com/#/?filterProjects=My%20Project&filterProjects=Another%20Project&...
Changed lines 31-32 from:
-> https://app.dayback.com/#/?filterProjects=My%20Project&filterProjects=Another%20Project&
\filterProjects=ELR%20Review&filterProjects=Blueprint%20Capital
to:
-> https://app.dayback.com/#/?filterProjects=My%20Project&filterProjects=Another%20Project& \
filterProjects=ELR%20Review&filterProjects=Blueprint%20Capital
filterProjects=ELR%20Review&filterProjects=Blueprint%20Capital
Changed lines 31-32 from:
-> https://app.dayback.com/#/?filterProjects=My%20Project&filterProjects=Another%20Project&filterProjects=ELR%20Review&filterProjects=Blueprint%20Capital
to:
-> https://app.dayback.com/#/?filterProjects=My%20Project&filterProjects=Another%20Project&
\filterProjects=ELR%20Review&filterProjects=Blueprint%20Capital
\filterProjects=ELR%20Review&filterProjects=Blueprint%20Capital
Changed line 31 from:
-> https://app.dayback.com/#/?filterProjects=My%20Project&filterProjects=Another%20Project
to:
-> https://app.dayback.com/#/?filterProjects=My%20Project&filterProjects=Another%20Project&filterProjects=ELR%20Review&filterProjects=Blueprint%20Capital
Added lines 32-33:
%center% %width=500% https://www.seedcode.com/rootimages/stikipad/daybackonline/projectfilter2.png
Added lines 32-37:
This means that you can load a given session with just the logged in user's active projects, for example, and the they can toggle those on or off to get the specific view they need. Note that this currently won't restrict them from turning *all* their project filters off and then seeing all projects, so this url filtering isn't for security but rather to help users focus on just the events/projects/contacts they need to work with.
Filtering contacts works the same way, and as with projects you can send multiple contacts to the filter. You can also combine contact and project filters in the same URL. The syntax for filtering contacts is:
-> https://app.dayback.com/#/?filterContacts=Joe%20Smith
Changed line 7 from:
!! Filtering by URL
to:
!! Filtering by URL (Contact and Project Filters)
Changed line 23 from:
%center width=300px% https://www.seedcode.com/rootimages/stikipad/daybackonline/projectfilter.png
to:
%center% %width=500% https://www.seedcode.com/rootimages/stikipad/daybackonline/projectfilter.png
Changed line 23 from:
%center width=500% https://www.seedcode.com/rootimages/stikipad/daybackonline/projectfilter.png
to:
%center width=300px% https://www.seedcode.com/rootimages/stikipad/daybackonline/projectfilter.png
Changed line 23 from:
https://www.seedcode.com/rootimages/stikipad/daybackonline/projectfilter.png
to:
%center width=500% https://www.seedcode.com/rootimages/stikipad/daybackonline/projectfilter.png
Changed lines 23-24 from:
to:
https://www.seedcode.com/rootimages/stikipad/daybackonline/projectfilter.png
Changed line 37 from:
-> Date: in the form
to:
-> Date: in the form
Changed lines 23-24 from:
< screenshot >
to:
<screenshot>
Changed lines 27-32 from:
-> -> https://app.dayback.com/#/?filterProjects=null
!! What else can I do wit URLs?
!! What else can I do wit
to:
-> https://app.dayback.com/#/?filterProjects=null
You can include more than one project in the filter like this:
-> https://app.dayback.com/#/?filterProjects=My%20Project&filterProjects=Another%20Project
!! What else can I do with URLs?
You can include more than one project in the filter like this:
-> https://app.dayback.com/#/?filterProjects=My%20Project&filterProjects=Another%20Project
!! What else can I do with URLs?
Changed line 37 from:
-> Date: in the form
to:
-> Date: in the form
Changed lines 13-14 from:
-> >>https://app.dayback.com/#/<<
to:
-> https://app.dayback.com/#/
Changed lines 17-18 from:
-> [@https://app.dayback.com/#/?filtersProjects=My%20Project@]
to:
-> https://app.dayback.com/#/?filterProjects=My%20Project
Added lines 21-30:
When you send filters this way you'll see the filter criteria appear in DayBack's filter sidebar:
< screenshot >
Once there, the filter can be turned off an on like any other filter and will persist until the user logs out or until the filter is cleared via url by sending "null" like this:
-> -> https://app.dayback.com/#/?filterProjects=null
< screenshot >
Once there, the filter can be turned off an on like any other filter and will persist until the user logs out or until the filter is cleared via url by sending "null" like this:
-> -> https://app.dayback.com/#/?filterProjects=null
Deleted line 35:
Changed line 17 from:
-> >>https://app.dayback.com/#/?filtersProjects=My%20Project<<
to:
-> [@https://app.dayback.com/#/?filtersProjects=My%20Project@]
Added lines 6-26:
!! Filtering by URL
In addition to the built-in status and resource filters, you can filter the calendar by contact and project as well. This is done by adding filter values to DayBack's url in the browser.
For example, DayBack's url is normally:
-> >>https://app.dayback.com/#/<<
But you can add parameters to filter the calendar. You can add parameters by hand of create buttons that will reset the url in your webviewer (if you're using WebDirect). Adding a filter to show only the project "My Project" would look like this:
-> >>https://app.dayback.com/#/?filtersProjects=My%20Project<<
Note that filters are set in name-value pairs where the name is "filtersProjects" (plural) and the value is "My%20Project" where the space between My and Project is %newwin% [[https://www.w3schools.com/tags/ref_urlencode.asp | replaced]] with %20.
!! What else can I do wit URLs?
By including additional parameters in DayBack's URL you can also specify the focus date of the calendar or navigate to a particular view. Here are the parameters DayBack accepts:
-> Date: in the form
Changed lines 5-7 from:
Filters are available on the Filters tab in the left hand status area. The main filters are "Statuses" and "Resources" though you can call them something else and change their contents easily (more on that [[Event Colors | here]]):
%center% %newwin width=440%[[https://www.seedcode.com/rootimages/stikipad/dayback/filters.png | https://www.seedcode.com/rootimages/stikipad/dayback/filterssm.png]]
%center% %newwin width=440%
to:
Filters are available on the Filters tab in the left hand status area. The main filters are "Statuses" and "Resources" though you can call them something else and change their contents easily (more on status [[Event Colors | here]] and on resources here: [[resources]]).
Changed lines 3-6 from:
Filters operate like a constraining find request, letting you see just a subset of the events in the calendar: those may be "your events", or events for a particular department, or those for a single customer. You can use the filters that come with the calendar, repurpose those, or create your own following the instructions below.
Filters are available on the Filters tab in the left hand status area. The main filters are "Statuses" though you can call them something else and change their contents easily (more on that [[Event Colors |here]]).
Filters are available on the Filters tab in the left hand status area. The main filters are "Statuses" though you can call them something else and change their contents easily (more on that [[Event Colors |
to:
Filters operate like a constraining find request, letting you see just a subset of the events in the calendar.
Filters are available on the Filters tab in the left hand status area. The main filters are "Statuses" and "Resources" though you can call them something else and change their contents easily (more on that [[Event Colors | here]]):
Filters are available on the Filters tab in the left hand status area. The main filters are "Statuses" and "Resources" though you can call them something else and change their contents easily (more on that [[Event Colors | here]]):
Deleted lines 7-72:
In addition to these status colors, DayBack ships with 3 "advanced" filters: title, project, status, and resource. To see how these works, click on Advanced Filters at the bottom of the filters tab in the calendar side bar.
%center% %width=440% https://www.seedcode.com/rootimages/stikipad/dayback/advancedfilters.png
Select one or more resources and then click "Apply and Close" and you'll see the calendar change to show just the items for those resources.
Now click "Omit" beside the filter and you'll see everything ''except'' events for the resources you've selected.
The title filter works the same way: type in "Call" and you'll see all the events where a work in the Summary begins with "Call". These filters work very much like the "constrain found set" find request you're already familiar with in FileMaker.
!! Modifying Filters
The rest of this article will discuss how you can modify the filters to suit your own use cases. Note that the Advanced Filters are shown in a new window on a FileMaker layout...not in the webviewer. This means you can manipulate this filters layout just as you would any other FileMaker layout: adding your own filters, reformatting check boxes, etc.
You'll find that layout in the Calendar Developer layouts folder. The layout is named "Filters".
(Modifying the status filters is done by manipulating the field mapped to "status" and then renaming / recoloring the filters themselves. Instructions here: [[Event Colors]].)
!! Filtering on Different Fields & Different Sources
You can point the existing filters at any fields in your events table that you'd like. Mapping filters to fields is done in the "Load Calendar Settings - On Startup..." script you edited as part of your [[integration]].
If you're using [[multiple sources]] you can map the same filter to a different field in each of your source tables. For example, our "title" filter may be mapped to the Summary field in your events table (that is, it searches for an event summary containing the text entered in the title filter) and mapped to the Procedure field in your surgeries table.
To do this (to map a filter to more than one field) separate the mapped fields with carriage returns like we've done in our sample integration for filters 1 and 2. (Note that you can only map a filter to one field from each table.)
'''More Details'''
-> A generic filter like "Event Title" may need to be mapped to a different field in each source's events table, so we let you map a return delimited list of field names (ideally GetFieldName()s) to each filter. When filtering we then execute on the first mapped field from the same table occurrence as the source in question.
-> This means we can only filter fields local to the source TO, but that is probably a good thing.
-> If no mapped fields match the source's TO we treat the filter as excluding that source. So a source of "Company meetings" might have a filter for "mandatory". That doesn't make sense in any other context. If you're then showing meetings along side your Birthdays source and you filter to see everything "mandatory", we'll hide all Birthdays since none are mandatory.
!! Can I add new filters?
Sure. Let's say you wanted to add a filter called "Staff" so you could see just the events for one or more staff members (for just you, or for the members of your team). Here's how you'd do it...
-> '''1.''' Create a staff name field in the events table.
-> If you don't already have a field in your events table for the staff member's name, create one. For the sake of this example we'll use the staff member's name as the filter, but you could use their ID, etc.
-> '''2.''' Create a value list for staff names. Then create a global text field in the CalendarInterface table called FilterGlob_5
-> '''3.''' Enter layout mode and navigate to the Filters layout in the Calendar Developer folder.
-> '''4.''' Duplicate (copy and paste) one of the existing filter fields (don't use the resource filter, it's special) on the "Filters" layout and then switch this field to be FilterGlob_5. Format this field to use the value list you created in 2 above; format it as checkboxes if you'd like to support multiple selections.
-> '''5.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear" button and "omit" switch, placing them next to your new filter and change the script's script parameters for both to use the "number" of the field ("5" in our example). Edit the conditional formatting for both of these to use the new filter number ("5" in our example). If you're not sure how to edit those fancy switches, you can learn how [[Fancy Switches | here]].
-> '''6.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField5 in our example) and, using your new field for the GetFieldName ( SampleEvents::StaffName) in our example.
-> '''8.''' Edit the script "Clear All Filters" and add additional SetField and SetVariable steps for your new filter fields.
-> '''9.''' Enter browse mode and run the Upon Opening script again. That's it!
!! Can I pre-filter the calendar so it starts up already filtered?
Yes, and this can be a great way to speed up the calendar if you have tons of events, but many are already "complete" or irrelevant.
Toward the end of the configuration script "Load Calendar Settings - On Startup --- Edit Configuration Here ---" you'll see a comment called "Pre-Filter the calendar if necessary". The next lines set the four default filters that come with our calendar. The lines are currently disabled: enable any of them if you have FileMaker Advanced, or recreate the lines you need if you don't.
!! Changing the Resource Filters
If you have large numbers of resources, the simple checkboxes used by default may not work for you. You'll find tips for modifying this to accommodate more resources, and resource categories, here: [[resources]].
Changed line 17 from:
The title filter works the same way: type in "Call" and you'll see all the events where a work in the Summary begins with "Call". These filters work very much like the "constrain found set" find request you're already familiar with in FileMaker except that these filters are case sensitive, so "Some" will find the event "Someone is coming over" but not "Get me some help."
to:
The title filter works the same way: type in "Call" and you'll see all the events where a work in the Summary begins with "Call". These filters work very much like the "constrain found set" find request you're already familiar with in FileMaker.
Changed lines 69-71 from:
Toward the end of the configuration script "Load Calendar Settings - On Startup --- Edit Configuration Here ---" you'll see a comment called "Pre-Filter the calendar if necessary". The next lines set the four default filters that come with our calendar. The lines are currently disabled: enable any pair of them if you have FileMaker Advanced, or recreate the pair of lines you need if you don't.
The first line (the Set Field) in each pair sets the value to be filtered ("Something" in our example), and the second line (the Set Variable) passes that filter into the calendar engine. Both lines in the pair need to be enabled, but you only need to edit the value in the first line of the pair ("Something" in our example).
The first line (the Set Field) in each pair sets the value to be filtered ("Something" in our example), and the second line (the Set Variable) passes that filter into the calendar engine. Both lines in the pair need to be enabled, but you only need to edit the value in the first line of the pair ("Something" in our example).
to:
Toward the end of the configuration script "Load Calendar Settings - On Startup --- Edit Configuration Here ---" you'll see a comment called "Pre-Filter the calendar if necessary". The next lines set the four default filters that come with our calendar. The lines are currently disabled: enable any of them if you have FileMaker Advanced, or recreate the lines you need if you don't.
Changed line 59 from:
-> '''5.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script's script parameters for each of these buttons to use the "number" of the field ("5" in our example). Edit the conditional formatting for each of these to use the new filter number ("5" in our example). If you're not sure how to edit those "include / omit" switches, you can learn how [[Fancy Switches | here]].
to:
-> '''5.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear" button and "omit" switch, placing them next to your new filter and change the script's script parameters for both to use the "number" of the field ("5" in our example). Edit the conditional formatting for both of these to use the new filter number ("5" in our example). If you're not sure how to edit those fancy switches, you can learn how [[Fancy Switches | here]].
Changed line 55 from:
-> '''3.''' Enter layout mode and navigate to the Filters tab of the calendar layout.
to:
-> '''3.''' Enter layout mode and navigate to the Filters layout in the Calendar Developer folder.
Changed lines 1-2 from:
!! How can I filter the calendar?
to:
!! How Can I Filter the Calendar?
Changed lines 27-30 from:
!! Filtering on different fields & different sources
%color=red% >> here
%color=red% >> here
to:
!! Filtering on Different Fields & Different Sources
Changed lines 31-32 from:
If you're using [[multiple sources]] you can map the same filter to a different field in each of your source tables. For example, our "title" filter may be mapped to the Summary field in your events table (that is, it searched for an event summary containing the text entered in the title filter) and mapped to the Procedure field in your surgeries table.
to:
If you're using [[multiple sources]] you can map the same filter to a different field in each of your source tables. For example, our "title" filter may be mapped to the Summary field in your events table (that is, it searches for an event summary containing the text entered in the title filter) and mapped to the Procedure field in your surgeries table.
Changed lines 55-62 from:
-> '''4.''' Duplicate (copy and paste) one of the existing filter fields (don't use the resource filter, it's special) on the layout and then switch this field to be FilterGlob_5. Format this field to use the value list you created in 2 above; format it as checkboxes if you'd like to support multiple selections.
-> '''5.'''These filter fields have script triggers on them: you can leave the trigger alone if you've copied one of the existing fields.
->'''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script's script parameters for each of these buttons to use the "number" of the field ("5" in our example). Edit the conditional formatting for each of these to use the new filter number ("5" in our example). If you're not sure how to edit those "include / omit" switches, you can learn how [[Fancy Switches | here]].
-> '''7.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField5 in our example) and, using your new field for the GetFieldName ( SampleEvents::StaffName) in our example.
-> '''5.'''
->
-> '''7
to:
-> '''4.''' Duplicate (copy and paste) one of the existing filter fields (don't use the resource filter, it's special) on the "Filters" layout and then switch this field to be FilterGlob_5. Format this field to use the value list you created in 2 above; format it as checkboxes if you'd like to support multiple selections.
-> '''5.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script's script parameters for each of these buttons to use the "number" of the field ("5" in our example). Edit the conditional formatting for each of these to use the new filter number ("5" in our example). If you're not sure how to edit those "include / omit" switches, you can learn how [[Fancy Switches | here]].
-> '''6.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField5 in our example) and, using your new field for the GetFieldName ( SampleEvents::StaffName) in our example.
-> '''5.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script's script parameters for each of these buttons to use the "number" of the field ("5" in our example). Edit the conditional formatting for each of these to use the new filter number ("5" in our example). If you're not sure how to edit those "include / omit" switches, you can learn how [[Fancy Switches | here]].
-> '''6.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField5 in our example) and, using your new field for the GetFieldName ( SampleEvents::StaffName) in our example.
Changed lines 63-65 from:
-> '''9.''' Edit the script "Build Filters ( Source No )" under the comment '''#Short circuit if no filters are filled in''' so the '''If''' calculation contains any new filters you've added.
-> '''10.''' Enter browse mode and run the Upon Opening script again. That's it!
-> '''10
to:
-> '''9.''' Enter browse mode and run the Upon Opening script again. That's it!
Added lines 19-26:
!! Modifying Filters
The rest of this article will discuss how you can modify the filters to suit your own use cases. Note that the Advanced Filters are shown in a new window on a FileMaker layout...not in the webviewer. This means you can manipulate this filters layout just as you would any other FileMaker layout: adding your own filters, reformatting check boxes, etc.
You'll find that layout in the Calendar Developer layouts folder. The layout is named "Filters".
(Modifying the status filters is done by manipulating the field mapped to "status" and then renaming / recoloring the filters themselves. Instructions here: [[Event Colors]].)
The rest of this article will discuss how you can modify the filters to suit your own use cases. Note that the Advanced Filters are shown in a new window on a FileMaker layout...not in the webviewer. This means you can manipulate this filters layout just as you would any other FileMaker layout: adding your own filters, reformatting check boxes, etc.
You'll find that layout in the Calendar Developer layouts folder. The layout is named "Filters".
(Modifying the status filters is done by manipulating the field mapped to "status" and then renaming / recoloring the filters themselves. Instructions here: [[Event Colors]].)
Changed lines 75-79 from:
The first line (the Set Field) in each pair sets the value to be filtered ("Something" in our example), and the second line (the Set Variable) passes that filter into the calendar engine. Both lines in the pair need to be enabled, but you only need to edit the value in the first line of the pair ("Something" in our example).
to:
The first line (the Set Field) in each pair sets the value to be filtered ("Something" in our example), and the second line (the Set Variable) passes that filter into the calendar engine. Both lines in the pair need to be enabled, but you only need to edit the value in the first line of the pair ("Something" in our example).
!! Changing the Resource Filters
If you have large numbers of resources, the simple checkboxes used by default may not work for you. You'll find tips for modifying this to accommodate more resources, and resource categories, here: [[resources]].
!! Changing the Resource Filters
If you have large numbers of resources, the simple checkboxes used by default may not work for you. You'll find tips for modifying this to accommodate more resources, and resource categories, here: [[resources]].
Changed lines 9-12 from:
In addition to these status colors, DayBack ships with 3 "advanced" filters: title, project, status, and resource. To see how these works, click on Advanced Filters at the bottom of the filters tab in the calendar side bar.
to:
In addition to these status colors, DayBack ships with 3 "advanced" filters: title, project, status, and resource. To see how these works, click on Advanced Filters at the bottom of the filters tab in the calendar side bar.
%center% %width=440% https://www.seedcode.com/rootimages/stikipad/dayback/advancedfilters.png
%center% %width=440% https://www.seedcode.com/rootimages/stikipad/dayback/advancedfilters.png
Changed lines 9-12 from:
SeedCode Calendar ships with four filters in place already: title, project, status
Now click "Omit" beside the filter and you'll see everything ''except'' events of the status
to:
In addition to these status colors, DayBack ships with 3 "advanced" filters: title, project, status, and resource. To see how these works, click on Advanced Filters at the bottom of the filters tab in the calendar side bar.
Select one or more resources and then click "Apply and Close" and you'll see the calendar change to show just the items for those resources.
Now click "Omit" beside the filter and you'll see everything ''except'' events for the resources you've selected.
Select one or more resources and then click "Apply and Close" and you'll see the calendar change to show just the items for those resources.
Now click "Omit" beside the filter and you'll see everything ''except'' events for the resources you've selected.
Changed line 7 from:
to:
%center% %newwin width=440% [[https://www.seedcode.com/rootimages/stikipad/dayback/filters.png | https://www.seedcode.com/rootimages/stikipad/dayback/filterssm.png]]
Changed lines 5-10 from:
Filters are available on the Filters tab in the left hand status area. SeedCode Calendar ships with four filters in place already: title, project, status, and resource. To see how this works, select an item in the status filter and you'll see the calendar change to show just the items of that status. Note that you can select more than one status in the filter.
to:
Filters are available on the Filters tab in the left hand status area. The main filters are "Statuses" though you can call them something else and change their contents easily (more on that [[Event Colors | here]]).
SeedCode Calendar ships with four filters in place already: title, project, status, and resource. To see how this works, select an item in the status filter and you'll see the calendar change to show just the items of that status. Note that you can select more than one status in the filter.
SeedCode Calendar ships with four filters in place already: title, project, status, and resource. To see how this works, select an item in the status filter and you'll see the calendar change to show just the items of that status. Note that you can select more than one status in the filter.
Changed line 3 from:
Filters operate like a find request, letting you see just a subset of the events in the calendar: that may be "your events", or events for a particular department, or those for a single customer. You can use the filters that come with the calendar, repurpose those, or create your own following the instructions below.
to:
Filters operate like a constraining find request, letting you see just a subset of the events in the calendar: those may be "your events", or events for a particular department, or those for a single customer. You can use the filters that come with the calendar, repurpose those, or create your own following the instructions below.
Changed lines 3-4 from:
Filters operate like a find request, letting you see just a subset of the events in the calendar.
to:
Filters operate like a find request, letting you see just a subset of the events in the calendar: that may be "your events", or events for a particular department, or those for a single customer. You can use the filters that come with the calendar, repurpose those, or create your own following the instructions below.
Changed lines 49-50 from:
-> '''9.''' Enter browse mode and run the Upon Opening script again. That's it!
to:
-> '''9.''' Edit the script "Build Filters ( Source No )" under the comment '''#Short circuit if no filters are filled in''' so the '''If''' calculation contains any new filters you've added.
-> '''10.''' Enter browse mode and run the Upon Opening script again. That's it!
-> '''10.''' Enter browse mode and run the Upon Opening script again. That's it!
Changed lines 45-46 from:
-> '''7.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField5 in our example) and, using your new field for the GetFieldName (GetFieldName ( SampleEvents::StaffName) in our example ).
to:
-> '''7.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField5 in our example) and, using your new field for the GetFieldName ( SampleEvents::StaffName) in our example.
Added lines 19-26:
'''More Details'''
-> A generic filter like "Event Title" may need to be mapped to a different field in each source's events table, so we let you map a return delimited list of field names (ideally GetFieldName()s) to each filter. When filtering we then execute on the first mapped field from the same table occurrence as the source in question.
-> This means we can only filter fields local to the source TO, but that is probably a good thing.
-> If no mapped fields match the source's TO we treat the filter as excluding that source. So a source of "Company meetings" might have a filter for "mandatory". That doesn't make sense in any other context. If you're then showing meetings along side your Birthdays source and you filter to see everything "mandatory", we'll hide all Birthdays since none are mandatory.
-> A generic filter like "Event Title" may need to be mapped to a different field in each source's events table, so we let you map a return delimited list of field names (ideally GetFieldName()s) to each filter. When filtering we then execute on the first mapped field from the same table occurrence as the source in question.
-> This means we can only filter fields local to the source TO, but that is probably a good thing.
-> If no mapped fields match the source's TO we treat the filter as excluding that source. So a source of "Company meetings" might have a filter for "mandatory". That doesn't make sense in any other context. If you're then showing meetings along side your Birthdays source and you filter to see everything "mandatory", we'll hide all Birthdays since none are mandatory.
Changed lines 47-48 from:
Toward the end of the configuration script "Load Calendar Settings - On Startup --- Edit Configuration Here ---" you'll see a comment called "Pre-Filter the calendar if necessary". The next 4 lines set the two default filters that come with our calendar. The lines are currently disable: enable 2 or 4 of them if you have FileMaker Advanced, or recreate the two or four lines you need if you don't.
to:
Toward the end of the configuration script "Load Calendar Settings - On Startup --- Edit Configuration Here ---" you'll see a comment called "Pre-Filter the calendar if necessary". The next lines set the four default filters that come with our calendar. The lines are currently disabled: enable any pair of them if you have FileMaker Advanced, or recreate the pair of lines you need if you don't.
Changed lines 11-12 from:
!! Filtering on different fields
to:
!! Filtering on different fields & different sources
Added lines 15-18:
If you're using [[multiple sources]] you can map the same filter to a different field in each of your source tables. For example, our "title" filter may be mapped to the Summary field in your events table (that is, it searched for an event summary containing the text entered in the title filter) and mapped to the Procedure field in your surgeries table.
To do this (to map a filter to more than one field) separate the mapped fields with carriage returns like we've done in our sample integration for filters 1 and 2. (Note that you can only map a filter to one field from each table.)
To do this (to map a filter to more than one field) separate the mapped fields with carriage returns like we've done in our sample integration for filters 1 and 2. (Note that you can only map a filter to one field from each table.)
Changed lines 25-32 from:
-> '''3.''' Enter layout mode and navigate to the Filters tab of the calendar layout. Read this section on [[calendar tabs]] if you're having trouble getting to the correct tab.
->'''4.''' Duplicate (copy and paste) one of the existing filter fields on the layout and then switch this field to be FilterGlob_5. Format this field to use the value list you created in 2 above; format it as checkboxes if you'd like to support multiple selections.
-> '''5.''' Edit the script trigger for this field, keeping the script the same but changingthe parameter to be the "number" of the field ("5" in our example).
-> '''6.''' Still editingthe Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script's script parameters for each of these buttons to use the "number" of the field ("5" in our example). Edit the conditional formatting for each of these to use the new filter number ("5" in our example).
->
-> '''5.''' Edit the script trigger for this field, keeping the script the same but changing
-> '''6.''' Still editing
to:
-> '''3.''' Enter layout mode and navigate to the Filters tab of the calendar layout.
-> '''4.''' Duplicate (copy and paste) one of the existing filter fields (don't use the resource filter, it's special) on the layout and then switch this field to be FilterGlob_5. Format this field to use the value list you created in 2 above; format it as checkboxes if you'd like to support multiple selections.
-> '''5.''' These filter fields have script triggers on them: you can leave the trigger alone if you've copied one of the existing fields.
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script's script parameters for each of these buttons to use the "number" of the field ("5" in our example). Edit the conditional formatting for each of these to use the new filter number ("5" in our example). If you're not sure how to edit those "include / omit" switches, you can learn how [[Fancy Switches | here]].
-> '''4.''' Duplicate (copy and paste) one of the existing filter fields (don't use the resource filter, it's special) on the layout and then switch this field to be FilterGlob_5. Format this field to use the value list you created in 2 above; format it as checkboxes if you'd like to support multiple selections.
-> '''5.''' These filter fields have script triggers on them: you can leave the trigger alone if you've copied one of the existing fields.
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script's script parameters for each of these buttons to use the "number" of the field ("5" in our example). Edit the conditional formatting for each of these to use the new filter number ("5" in our example). If you're not sure how to edit those "include / omit" switches, you can learn how [[Fancy Switches | here]].
Changed lines 35-38 from:
-> '''8.''' Enter browse mode and run the Upon Opening script again and you're done. If you've added more than 5 filters, edit the script "Apply Filter to Found Set" and change the first variable there to be the number of filters you now have.
-> '''9.''' Edit the script "Clear All Filters" (new in v 5.551) and add additional SetField and SetVariable steps for your new filter fields.
-> '''9.''' Edit the script "Clear All Filters" (new in v 5.551) and add additional SetField and SetVariable steps for your new filter fields.
to:
-> '''8.''' Edit the script "Clear All Filters" and add additional SetField and SetVariable steps for your new filter fields.
-> '''9.''' Enter browse mode and run the Upon Opening script again. That's it!
-> '''9.''' Enter browse mode and run the Upon Opening script again. That's it!
Changed lines 9-10 from:
The title filter works the same way: type in "Call" and you'll see all the events where a work in the Summary begins with "call". These filters works just like the "constrain found set" find request you're already familiar with in FileMaker.
to:
The title filter works the same way: type in "Call" and you'll see all the events where a work in the Summary begins with "Call". These filters work very much like the "constrain found set" find request you're already familiar with in FileMaker except that these filters are case sensitive, so "Some" will find the event "Someone is coming over" but not "Get me some help."
Added lines 37-38:
-> '''9.''' Edit the script "Clear All Filters" (new in v 5.551) and add additional SetField and SetVariable steps for your new filter fields.
Changed lines 5-6 from:
Filters are available on the Filters tab in the left hand status area. SeedCode Calendar ships with three filters in place already: title, status, and resource. To see how this works, select an item in the status filter and you'll see the calendar change to show just the items of that status. Note that you can select more than one status in the filter.
to:
Filters are available on the Filters tab in the left hand status area. SeedCode Calendar ships with four filters in place already: title, project, status, and resource. To see how this works, select an item in the status filter and you'll see the calendar change to show just the items of that status. Note that you can select more than one status in the filter.
Changed lines 23-24 from:
-> '''2.''' Create a value list for staff names. Then create a global text field in the CalendarInterface table called FilterGlob_4
to:
-> '''2.''' Create a value list for staff names. Then create a global text field in the CalendarInterface table called FilterGlob_5
Changed lines 27-36 from:
-> '''4.''' Duplicate (copy and paste) one of the existing filter fields on the layout and then switch this field to be FilterGlob_4. Format this field to use the value list you created in 2 above; format it as checkboxes if you'd like to support multiple selections.
-> '''5.''' Edit the script trigger for this field, keeping the script the same but changing the parameter to be the "number" of the field ("4" in our example).
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script's script parameters for each of these buttons to use the "number" of the field ("4" in our example). Edit the conditional formatting for each of these to use the new filter number ("4" in our example).
-> '''7.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField4 in our example) and, using your new field for the GetFieldName (GetFieldName ( SampleEvents::StaffName) in our example ).
-> '''8.''' Enter browse mode and run the Upon Opening script again and you're done. If you've added more than 5 filters, edit the script "Apply Filter to Found Set" and change the first variable there to be the number of filters you now have.
-> '''5.''' Edit the script trigger for this field, keeping the script the same but changing the parameter to be the "number" of the field ("
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script's script parameters for each of these buttons to use the "number" of the field ("
-> '''7.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_
-> '''8.''' Enter browse mode and run the Upon Opening script again and you're done. If you've added more than 5 filters, edit the script "Apply Filter to Found Set" and change the first variable there to be the number of filters you now have.
to:
-> '''4.''' Duplicate (copy and paste) one of the existing filter fields on the layout and then switch this field to be FilterGlob_5. Format this field to use the value list you created in 2 above; format it as checkboxes if you'd like to support multiple selections.
-> '''5.''' Edit the script trigger for this field, keeping the script the same but changing the parameter to be the "number" of the field ("5" in our example).
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script's script parameters for each of these buttons to use the "number" of the field ("5" in our example). Edit the conditional formatting for each of these to use the new filter number ("5" in our example).
-> '''7.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField5 in our example) and, using your new field for the GetFieldName (GetFieldName ( SampleEvents::StaffName) in our example ).
-> '''8.''' Enter browse mode and run the Upon Opening script again and you're done. If you've added more than 5 filters, edit the script "Apply Filter to Found Set" and change the first variable there to be the number of filters you now have.
-> '''5.''' Edit the script trigger for this field, keeping the script the same but changing the parameter to be the "number" of the field ("5" in our example).
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script's script parameters for each of these buttons to use the "number" of the field ("5" in our example). Edit the conditional formatting for each of these to use the new filter number ("5" in our example).
-> '''7.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField5 in our example) and, using your new field for the GetFieldName (GetFieldName ( SampleEvents::StaffName) in our example ).
-> '''8.''' Enter browse mode and run the Upon Opening script again and you're done. If you've added more than 5 filters, edit the script "Apply Filter to Found Set" and change the first variable there to be the number of filters you now have.
Changed lines 31-32 from:
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script parameters for each of these buttons to use the "number" of the field ("4" in our example). Edit the conditional formatting for each of these to use the new filter number ("4" in our example).
to:
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script's script parameters for each of these buttons to use the "number" of the field ("4" in our example). Edit the conditional formatting for each of these to use the new filter number ("4" in our example).
Changed lines 31-32 from:
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script parameters for each of these buttons to use he "number" of the field ("4" in our example). Edit the conditional formatting for each of these to use the new filter number ("4" in our example).
to:
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script parameters for each of these buttons to use the "number" of the field ("4" in our example). Edit the conditional formatting for each of these to use the new filter number ("4" in our example).
Changed lines 35-36 from:
-> '''8.''' Enter browse mode and run the Upon Opening script again and you're done.
to:
-> '''8.''' Enter browse mode and run the Upon Opening script again and you're done. If you've added more than 5 filters, edit the script "Apply Filter to Found Set" and change the first variable there to be the number of filters you now have.
Changed lines 23-24 from:
-> '''2.''' Create a value list for staff names
to:
-> '''2.''' Create a value list for staff names. Then create a global text field in the CalendarInterface table called FilterGlob_4
Changed lines 27-34 from:
-> '''4.''' Duplicate (copy and paste) one of the existing filter fields on the layout and then switch this field to be FilterGlob_3 (if you've already used that field create a global text field in the CalendarInterface table called FilterGlob_4). Format this field to use the value list you created in 2 above; format it as checkboxes if you'd like to support multiple selections.
-> '''5.''' Edit the script trigger for this field, keeping the script the same but changing the parameter to be the "number" of the field ("3" in our example).
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicatethe "clear", "include", and "omit" buttons, placing them next to your new filter and change the script parameters for each of these buttons to use he "number" of the field ("3" in our example). Edit the conditional formatting for each of these to use the new filter number ("3" in our example).
-> '''7.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField3 in our example) and, using your new field for the GetFieldName (GetFieldName ( SampleEvents::StaffName) in our example ).
-> '''5.''' Edit
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate
-> '''7.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField3
to:
-> '''4.''' Duplicate (copy and paste) one of the existing filter fields on the layout and then switch this field to be FilterGlob_4. Format this field to use the value list you created in 2 above; format it as checkboxes if you'd like to support multiple selections.
-> '''5.''' Edit the script trigger for this field, keeping the script the same but changing the parameter to be the "number" of the field ("4" in our example).
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script parameters for each of these buttons to use he "number" of the field ("4" in our example). Edit the conditional formatting for each of these to use the new filter number ("4" in our example).
-> '''7.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField4 in our example) and, using your new field for the GetFieldName (GetFieldName ( SampleEvents::StaffName) in our example ).
-> '''5.''' Edit the script trigger for this field, keeping the script the same but changing the parameter to be the "number" of the field ("4" in our example).
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script parameters for each of these buttons to use he "number" of the field ("4" in our example). Edit the conditional formatting for each of these to use the new filter number ("4" in our example).
-> '''7.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField4 in our example) and, using your new field for the GetFieldName (GetFieldName ( SampleEvents::StaffName) in our example ).
Added lines 11-14:
!! Filtering on different fields
You can point the existing filters at any fields in your events table that you'd like. Mapping filters to fields is done in the "Load Calendar Settings - On Startup..." script you edited as part of your [[integration]].
You can point the existing filters at any fields in your events table that you'd like. Mapping filters to fields is done in the "Load Calendar Settings - On Startup..." script you edited as part of your [[integration]].
Changed lines 5-6 from:
Filters are available on the Filters tab in the left hand status area. SeedCode Calendar ships with two filters in place already: title and status. To see how this works, select an item in the status filter and you'll see the calendar change to show just the items of that status. Note that you can select more than one status in the filter.
to:
Filters are available on the Filters tab in the left hand status area. SeedCode Calendar ships with three filters in place already: title, status, and resource. To see how this works, select an item in the status filter and you'll see the calendar change to show just the items of that status. Note that you can select more than one status in the filter.
Changed lines 23-24 from:
-> '''4.''' Duplicate (copy and paste) one of the existing filter fields on the layout and then switch this field to be FilterGlob_3 (if you've already used that field create a global text field in the CalendarInterface table called FilterGlob_4. Format this field to use the value list you created in 2 above.
to:
-> '''4.''' Duplicate (copy and paste) one of the existing filter fields on the layout and then switch this field to be FilterGlob_3 (if you've already used that field create a global text field in the CalendarInterface table called FilterGlob_4). Format this field to use the value list you created in 2 above; format it as checkboxes if you'd like to support multiple selections.
Changed lines 27-28 from:
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script parameters for each of these buttons to use he "number" of the field ("3" in our example).
to:
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script parameters for each of these buttons to use he "number" of the field ("3" in our example). Edit the conditional formatting for each of these to use the new filter number ("3" in our example).
Changed lines 29-30 from:
-> '''7.''' That' it.
to:
-> '''7.''' Finally, edit the script "Load Calendar Settings - On Startup..." and find the comment "Maps filters to fields". Create a new SetVariable line for your new filter ($$sc_FilterField3 in our example) and, using your new field for the GetFieldName (GetFieldName ( SampleEvents::StaffName) in our example ).
-> '''8.''' Enter browse mode and run the Upon Opening script again and you're done.
-> '''8.''' Enter browse mode and run the Upon Opening script again and you're done.
Changed lines 29-30 from:
- '''7.''' That' it.
to:
-> '''7.''' That' it.
Changed lines 21-22 from:
-> '''3.''' > > Continue...
to:
-> '''3.''' Enter layout mode and navigate to the Filters tab of the calendar layout. Read this section on [[calendar tabs]] if you're having trouble getting to the correct tab.
-> '''4.''' Duplicate (copy and paste) one of the existing filter fields on the layout and then switch this field to be FilterGlob_3 (if you've already used that field create a global text field in the CalendarInterface table called FilterGlob_4. Format this field to use the value list you created in 2 above.
-> '''5.''' Edit the script trigger for this field, keeping the script the same but changing the parameter to be the "number" of the field ("3" in our example).
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script parameters for each of these buttons to use he "number" of the field ("3" in our example).
- '''7.''' That' it.
> > Continue...
-> '''4.''' Duplicate (copy and paste) one of the existing filter fields on the layout and then switch this field to be FilterGlob_3 (if you've already used that field create a global text field in the CalendarInterface table called FilterGlob_4. Format this field to use the value list you created in 2 above.
-> '''5.''' Edit the script trigger for this field, keeping the script the same but changing the parameter to be the "number" of the field ("3" in our example).
-> '''6.''' Still editing the Filters tab of the Calendar layout, duplicate the "clear", "include", and "omit" buttons, placing them next to your new filter and change the script parameters for each of these buttons to use he "number" of the field ("3" in our example).
- '''7.''' That' it.
> > Continue...
Changed lines 21-29 from:
-> '''3.''' > > Continue...
to:
-> '''3.''' > > Continue...
!! Can I pre-filter the calendar so it starts up already filtered?
Yes, and this can be a great way to speed up the calendar if you have tons of events, but many are already "complete" or irrelevant.
Toward the end of the configuration script "Load Calendar Settings - On Startup --- Edit Configuration Here ---" you'll see a comment called "Pre-Filter the calendar if necessary". The next 4 lines set the two default filters that come with our calendar. The lines are currently disable: enable 2 or 4 of them if you have FileMaker Advanced, or recreate the two or four lines you need if you don't.
The first line (the Set Field) in each pair sets the value to be filtered ("Something" in our example), and the second line (the Set Variable) passes that filter into the calendar engine. Both lines in the pair need to be enabled, but you only need to edit the value in the first line of the pair ("Something" in our example).
!! Can I pre-filter the calendar so it starts up already filtered?
Yes, and this can be a great way to speed up the calendar if you have tons of events, but many are already "complete" or irrelevant.
Toward the end of the configuration script "Load Calendar Settings - On Startup --- Edit Configuration Here ---" you'll see a comment called "Pre-Filter the calendar if necessary". The next 4 lines set the two default filters that come with our calendar. The lines are currently disable: enable 2 or 4 of them if you have FileMaker Advanced, or recreate the two or four lines you need if you don't.
The first line (the Set Field) in each pair sets the value to be filtered ("Something" in our example), and the second line (the Set Variable) passes that filter into the calendar engine. Both lines in the pair need to be enabled, but you only need to edit the value in the first line of the pair ("Something" in our example).
Changed lines 21-23 from:
-> '''3.''' Create a Staff field.
-> If y
-> If y
to:
-> '''3.''' > > Continue...
Changed lines 7-8 from:
Now click "Omit" beside the filter and you'll see everything ''except'' events of the status you've selected.
to:
Now click "Omit" beside the filter and you'll see everything ''except'' events of the status you've selected.
The title filter works the same way: type in "Call" and you'll see all the events where a work in the Summary begins with "call". These filters works just like the "constrain found set" find request you're already familiar with in FileMaker.
The title filter works the same way: type in "Call" and you'll see all the events where a work in the Summary begins with "call". These filters works just like the "constrain found set" find request you're already familiar with in FileMaker.
Changed lines 13-23 from:
Sure...
to:
Sure. Let's say you wanted to add a filter called "Staff" so you could see just the events for one or more staff members (for just you, or for the members of your team). Here's how you'd do it...
-> '''1.''' Create a staff name field in the events table.
-> If you don't already have a field in your events table for the staff member's name, create one. For the sake of this example we'll use the staff member's name as the filter, but you could use their ID, etc.
-> '''2.''' Create a value list for staff names
-> '''3.''' Create a Staff field.
-> If y
-> '''1.''' Create a staff name field in the events table.
-> If you don't already have a field in your events table for the staff member's name, create one. For the sake of this example we'll use the staff member's name as the filter, but you could use their ID, etc.
-> '''2.''' Create a value list for staff names
-> '''3.''' Create a Staff field.
-> If y
Added lines 1-11:
!! How can I filter the calendar?
Filters operate like a find request, letting you see just a subset of the events in the calendar.
Filters are available on the Filters tab in the left hand status area. SeedCode Calendar ships with two filters in place already: title and status. To see how this works, select an item in the status filter and you'll see the calendar change to show just the items of that status. Note that you can select more than one status in the filter.
Now click "Omit" beside the filter and you'll see everything ''except'' events of the status you've selected.
!! Can I add new filters?
Sure...
Filters operate like a find request, letting you see just a subset of the events in the calendar.
Filters are available on the Filters tab in the left hand status area. SeedCode Calendar ships with two filters in place already: title and status. To see how this works, select an item in the status filter and you'll see the calendar change to show just the items of that status. Note that you can select more than one status in the filter.
Now click "Omit" beside the filter and you'll see everything ''except'' events of the status you've selected.
!! Can I add new filters?
Sure...