spGetEventCalendars_ForCalendarView

Parameters

Parameter Parameter Type Mode Description
@iEvtCalViewID int IN
@ClientUsersID int IN
@ClientsID int IN
@FunctionMode int IN
@ForHighlights bit IN

Definition

Copy

                CREATE   PROCEDURE [dbo].[spGetEventCalendars_ForCalendarView]
        (
            @iEvtCalViewID    int,
            @ClientUsersID    int,
            @ClientsID        int,
            @FunctionMode    int,        -- display: 0; editor: 1
            @ForHighlights  bit            -- Join to EventCalendarGroup or EventCalendarHighlights
        )
        AS
        begin
        set nocount on
        -- This proc returns a table of all the event calendars in the database to Calendar View editor; and
        -- indicates which ones are the subcalendars of the calendar view (identified by @iEvtCalViewID)
        -- However, it returns to Calendar View display a table of the event calendars that the user has view rights only.

        -- The table has 6 columns:
        -- ID: the event calendar ID
        -- Name: the event calendar name
        -- IsSubcalendar: returns 1 if the calendar is a subcalender
        -- CalSiteContentGUID: guid of the calendar part in the SiteContent table
        -- ContentTypesID: can be used to check what types of calendar this is (personal, event, athletic)
            IF @ForHighlights=0
            begin
                IF @FunctionMode = 1 -- don't check category security if coming from editor, or supervisor login
                begin
                    SELECT c.ID, c.Name, vd.DisplayColor, vd.IconID, cs.Name as 'SiteName', 'IsSrcCalendar' =
                        CASE vd.EventCalendarViewID
                            WHEN @iEvtCalViewID THEN 1
                            ELSE 0
                        END,
                        sc.guid as 'CalSiteContentGUID',
                        sc.ContentTypesID
                    FROM dbo.EventCalendar c
                    LEFT JOIN dbo.EventCalendarViewDetail vd
                        ON c.id = vd.SubcalendarID AND vd.EventCalendarViewID = @iEvtCalViewID
                    INNER JOIN dbo.SiteContent sc
                        ON sc.id = c.SiteContentID
                    INNER JOIN dbo.ClientSites cs
                        on cs.ID = sc.ClientSitesID
                    WHERE c.SiteContentID NOT IN (SELECT ppe.SiteContentID FROM dbo.PersonalPageElements ppe)
                    AND sc.Deleted = 0
                    ORDER BY c.Name
                end
                ELSE
                begin
                    SELECT c.ID, c.Name, vd.DisplayColor, vd.IconID, cs.Name as 'SiteName', 'IsSrcCalendar' =
                        CASE vd.EventCalendarViewID
                            WHEN @iEvtCalViewID THEN 1
                            ELSE 0
                        END,
                        sc.guid as 'CalSiteContentGUID',
                        sc.ContentTypesID
                    FROM dbo.EventCalendar c
                    LEFT JOIN dbo.EventCalendarViewDetail vd
                        ON c.id = vd.SubcalendarID AND vd.EventCalendarViewID = @iEvtCalViewID
                    INNER JOIN dbo.SiteContent sc
                        ON sc.id = c.SiteContentID
                    INNER JOIN dbo.ClientSites cs
                        on cs.ID = sc.ClientSitesID
                    WHERE ((select canView from dbo.fnUserPrivs(@ClientUsersID, @ClientsID, 1) priv
                            where sc.guid = priv.ObjectGuid) <> 0)
                    AND sc.Deleted = 0
                    ORDER BY c.Name
                end
            end
            ELSE
            begin
                IF @FunctionMode = 1 -- don't check calendar security if coming from editor, or supervisor login
                begin
                    SELECT c.ID, c.Name, hd.DisplayColor, hd.IconID, cs.Name as 'SiteName', 'IsSrcCalendar' =
                        CASE hd.EventCalendarHighlightID
                            WHEN @iEvtCalViewID THEN 1
                            ELSE 0
                        END,
                        sc.guid as 'CalSiteContentGUID',
                        sc.ContentTypesID
                    FROM dbo.EventCalendar c
                    LEFT JOIN dbo.EventCalendarHighlightDetail hd
                        ON c.id = hd.SrcCalendarID AND hd.EventCalendarHighlightID = @iEvtCalViewID
                    INNER JOIN dbo.SiteContent sc
                        ON sc.id = c.SiteContentID
                    INNER JOIN dbo.ClientSites cs
                        on cs.ID = sc.ClientSitesID
                    WHERE c.SiteContentID NOT IN (SELECT ppe.SiteContentID FROM dbo.PersonalPageElements ppe)
                    AND sc.Deleted = 0
                    ORDER BY c.Name
                end
                ELSE
                begin
                    SELECT c.ID, c.Name, hd.DisplayColor, hd.IconID, cs.Name as 'SiteName', 'IsSrcCalendar' =
                        CASE hd.EventCalendarHighlightID
                            WHEN @iEvtCalViewID THEN 1
                            ELSE 0
                        END,
                        sc.guid as 'CalSiteContentGUID',
                        sc.ContentTypesID
                    FROM dbo.EventCalendar c
                    LEFT JOIN dbo.EventCalendarHighlightDetail hd
                        ON c.id = hd.SrcCalendarID AND hd.EventCalendarHighlightID = @iEvtCalViewID
                    INNER JOIN dbo.SiteContent sc
                        ON sc.id = c.SiteContentID
                    INNER JOIN dbo.ClientSites cs
                        on cs.ID = sc.ClientSitesID
                    WHERE ((select canView from dbo.fnUserPrivs(@ClientUsersID, @ClientsID, 1) priv
                            where sc.guid = priv.ObjectGuid) <> 0)
                    AND sc.Deleted = 0
                    ORDER BY c.Name
                end
            end
        end