USP_DATALIST_EVENTWIDGET

Get List of Widgets available in event.

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN EventID
@ROLECODE tinyint IN RoleCode
@WIDGETID int IN WidgetID

Definition

Copy


CREATE procedure dbo.USP_DATALIST_EVENTWIDGET
                (    @EVENTID uniqueidentifier, 
                    @ROLECODE tinyint
                    @WIDGETID int = NULL
                )with execute as caller
as
    set nocount on;

    declare @CHANGEAGENTID uniqueidentifier 
    exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

    declare @CURRENTDATE datetime
    set @CURRENTDATE = getdate()

    -- Load the missing defaults into the EventWidget table

    INSERT INTO EVENTWIDGET (ID,widgetid,eventid,displaytext,rolecode,isactive,addedbyid,changedbyid,dateadded,datechanged)
    SELECT NEWID(),WG.WIDGETID,@EVENTID,WG.DEFAULTTEXT,@ROLECODE,1,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE
    FROM dbo.WIDGETGALLERY WG
    LEFT OUTER JOIN dbo.EVENTWIDGET EW
    ON WG.WIDGETID = EW.WIDGETID
    AND EW.EVENTID = @EVENTID
    AND EW.ROLECODE = @ROLECODE
    WHERE EW.WIDGETID IS NULL
  AND WG.ISACTIVE = 1


    -- Get the main widgets

    IF @WIDGETID IS NULL
        SELECT EW.ID,
               EW.WIDGETID,
               WG.NAME,
               WG.DESCRIPTION,
               EW.DISPLAYTEXT,
               EW.ISACTIVE,
               WG.PARENTWIDGETID,
               EW.ALLOWEDIT,
               EW.ALLOWMOVE,
               EW.ALLOWREMOVE
        FROM dbo.EVENTWIDGET EW WITH (NOLOCK)
        INNER JOIN dbo.WIDGETGALLERY WG WITH (NOLOCK)
        ON WG.WIDGETID = EW.WIDGETID
        WHERE EW.EVENTID = @EVENTID
        AND EW.ROLECODE = @ROLECODE
    -- return all event widget data so front end can cache it at event level to improve performance

    -- the filtering will be done on the front end

        --AND WG.PARENTWIDGETID IS NULL  


    ELSE    -- Get the Widget and Child widgets


        SELECT EW.ID,
               EW.WIDGETID,
               WG.NAME,
               WG.DESCRIPTION,
               EW.DISPLAYTEXT,
               EW.ISACTIVE,
               WG.PARENTWIDGETID,
               EW.ALLOWEDIT,
               EW.ALLOWMOVE,
               EW.ALLOWREMOVE

        FROM dbo.EVENTWIDGET EW WITH (NOLOCK)
        INNER JOIN dbo.WIDGETGALLERY WG WITH (NOLOCK)
        ON WG.WIDGETID = EW.WIDGETID
        WHERE EW.EVENTID = @EVENTID
        AND EW.ROLECODE = @ROLECODE
        AND (EW.WIDGETID = @WIDGETID OR WG.PARENTWIDGETID = @WIDGETID)