zaagan
2/10/2019 - 7:35 AM

SF Jquery Plugins

Jquery plugin architecture implemented by SageFrame modules

var PluginName;

(function ($) {

    $.PluginName = function (p) {
        p = $.extend({
             modulePath: '', DataObj: '', portalID: 0, userModuleID: ''
        }, p);
        PluginName = {
            config: {
                isPostBack: false,
                async: false,
                cache: false,
                type: 'POST',
                contentType: "application/json; charset=utf-8",
                data: '{}',
                dataType: 'json',
                crossDomain: true,
                baseURL: p.modulePath + 'Services/PluginNameService.asmx/',
                method: "",
                url: "",
                ajaxCallMode: "",
                userModuleID: p.userModuleID
            },
            init: function () {
               
            },
            ajaxSuccess: function (data) {
            },
            ajaxFailure: function () {
            },
            ajaxCall: function (config) {
                $.ajax({
                    type: PluginName.config.type,
                    contentType: PluginName.config.contentType,
                    async: PluginName.config.async,
                    cache: PluginName.config.cache,
                    url: PluginName.config.url,
                    data: PluginName.config.data,
                    dataType: PluginName.config.dataType,
                    success: PluginName.config.ajaxCallMode,
                    error: PluginName.ajaxFailure

                });

            },


           GetRequest: function () {

                PluginName.config.url = PluginName.config.baseURL + "GetSomeData";

                PluginName.config.data = JSON.stringify({
                    portalID: parseInt(SageFramePortalID),
                    userModuleID: p.userModuleID,
                    userName: SageFrameUserName,
                    secureToken: SageFrameSecureToken

                });

                PluginName.config.ajaxCallMode = PluginName.CallBackRequest;

                PluginName.config.async = false;

                PluginName.ajaxCall(PluginName.config);

            },

      CallBackRequest : function (data) {
                if (data.d !== null && data.d !== '') {
                }

            },

        };
        PluginName.init();
    }

    $.fn.PluginName = function (p) {

        $.PluginName(p);
    };

})(jQuery);


<script type="text/javascript">
    $(function () {
        $(this).PluginName({
            modulePath: '<%=modulePath%>',
            portalID: '<%=portalID%>',
            userModuleID: '<%=userModuleID%>'

        });
    });
</script>


var SFPlugin;
(function ($) {
    $.SFPlugin = function (p) {
        p = $.extend({
            modulePath: '', DataObj: '', portalID: 0, userModuleID: ''
        }, p);
        SFPlugin = {
            config: {
                isPostBack: false,
                async: false,
                cache: false,
                type: 'POST',
                contentType: "application/json; charset=utf-8",
                data: '{}',
                dataType: 'json',
                crossDomain: true,
                baseURL: p.modulePath + 'Services/SFPlugin.asmx/',
                method: "",
                url: "",
                ajaxCallMode: "",
                UserName: SageFrameUserName,
                userModuleID: p.userModuleID,
                portalID: p.portalID,
                service: {
                    Create: "CreateNew",
                    Delete: "DeleteSFPlugin",
                }
            },
            init: function () {
                SFPlugin.InitEvents();
            },
            ajaxSuccess: function (data) { },
            ajaxFailure: function () { },
            ajaxCall: function (config) {
                $.ajax({
                    type: SFPlugin.config.type,
                    contentType: SFPlugin.config.contentType,
                    async: SFPlugin.config.async,
                    cache: SFPlugin.config.cache,
                    url: SFPlugin.config.url,
                    data: SFPlugin.config.data,
                    dataType: SFPlugin.config.dataType,
                    success: SFPlugin.config.ajaxCallMode,
                    error: SFPlugin.ajaxFailure
                });
            },
            defaultParams: function () {
                return {
                    portalID: SFPlugin.config.portalID,
                    SageFrameUser: SFPlugin.config.UserName,
                    userModuleID: SFPlugin.config.userModuleID,
                    authToken: SageFrameSecureToken
                };
            },
            generateURL: function (postURL) {
                return SFPlugin.config.baseURL + postURL;
            },
            extendDefaultParams: function (param) {
                var newParams = Object.assign(param, SFPlugin.defaultParams());
                return newParams;
            },
            NotifySF: function (message, msgType) { SageFrame.messaging.show(message, msgType); },

            InitEvents: function () { },

        };
        SFPlugin.init();
    }
    $.fn.SFPlugin = function (p) {
        $.SFPlugin(p);
    };
})(jQuery);