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