Exemplo n.º 1
0
        private void WriteScriptStatements(TextWriter writer)
        {
            string cleanUpScripts = WriteCleanUpScripts().ToString();

            bool shouldWriteOnDocumentReady = scriptableComponents.Any() || OnDocumentReadyActions.Any() || OnDocumentReadyStatements.Any() || OutputGlobalization;
            bool shouldWriteOnWindowUnload  = OnWindowUnloadActions.Any() || OnWindowUnloadStatements.Any() || cleanUpScripts.Trim().HasValue();

            if (shouldWriteOnDocumentReady || shouldWriteOnWindowUnload)
            {
                bool isFirst;

                writer.WriteLine("<script type=\"text/javascript\">{0}//<![CDATA[".FormatWith(Environment.NewLine));

                // pageLoad

                if (shouldWriteOnDocumentReady)
                {
                    writer.WriteLine(ScriptWrapper.OnPageLoadStart);

                    // globalization
                    if (OutputGlobalization)
                    {
                        var globalizationInfo = new GlobalizationInfo(CultureInfo.CurrentCulture);

                        writer.WriteLine("if(!jQuery.telerik) jQuery.telerik = {};");
                        writer.Write("jQuery.telerik.cultureInfo=");
                        writer.Write(new JavaScriptSerializer().Serialize(globalizationInfo.ToDictionary()));
                        writer.WriteLine(";");
                    }

                    isFirst = true;

                    foreach (IScriptableComponent component in scriptableComponents.Where(s => !s.IsSelfInitialized))
                    {
                        if (!isFirst)
                        {
                            writer.WriteLine();
                        }

                        component.WriteInitializationScript(writer);
                        isFirst = false;
                    }

                    isFirst = true;

                    foreach (Action action in OnDocumentReadyActions)
                    {
                        if (!isFirst)
                        {
                            writer.WriteLine();
                        }

                        action();

                        isFirst = false;
                    }

                    isFirst = true;

                    foreach (string statement in OnDocumentReadyStatements)
                    {
                        if (!isFirst)
                        {
                            writer.WriteLine();
                        }

                        writer.Write(statement);

                        isFirst = false;
                    }

                    writer.WriteLine(ScriptWrapper.OnPageLoadEnd);
                }

                // pageUnload
                if (shouldWriteOnWindowUnload)
                {
                    writer.WriteLine(ScriptWrapper.OnPageUnloadStart);

                    isFirst = true;

                    foreach (Action action in OnWindowUnloadActions)
                    {
                        if (!isFirst)
                        {
                            writer.WriteLine();
                        }

                        action();

                        isFirst = false;
                    }

                    isFirst = true;

                    foreach (string statement in OnWindowUnloadStatements)
                    {
                        if (!isFirst)
                        {
                            writer.WriteLine();
                        }

                        writer.Write(statement);

                        isFirst = false;
                    }

                    writer.WriteLine(cleanUpScripts); // write clean up scripts

                    writer.WriteLine(ScriptWrapper.OnPageUnloadEnd);
                }

                writer.Write("//]]>{0}</script>".FormatWith(Environment.NewLine));
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Write the script statements.
        /// </summary>
        /// <param name="writer">The text writer attachec to the Mvc view context output stream.</param>
        private void WriteScriptStatements(TextWriter writer)
        {
            StringBuilder cleanUpScripts = WriteCleanUpScripts();

            bool shouldWriteOnDocumentReady = !scriptableComponents.IsEmpty() || !OnDocumentReadyActions.IsEmpty() || !OnDocumentReadyStatements.IsEmpty();
            bool shouldWriteOnWindowUnload  = !OnWindowUnloadActions.IsEmpty() || !OnWindowUnloadStatements.IsEmpty() || cleanUpScripts.Length > 0;

            if (shouldWriteOnDocumentReady || shouldWriteOnWindowUnload)
            {
                bool isFirst;
                writer.WriteLine("<script type=\"text/javascript\">{0}//<![CDATA[".FormatWith(Environment.NewLine));

                // pageLoad
                if (shouldWriteOnDocumentReady)
                {
                    writer.WriteLine(ScriptWrapper.OnPageLoadStart);

                    // globalization
                    if (EnableGlobalization && CultureInfo.CurrentCulture.Name != "en-US")
                    {
                        writer.WriteLine("if (!jQuery.nequeo) jQuery.nequeo = {};");
                        GlobalizationInfo globalizationInfo = new GlobalizationInfo(CultureInfo.CurrentCulture);
                        writer.Write("jQuery.nequeo.cultureInfo=");
                        writer.Write(new JavaScriptSerializer().Serialize(globalizationInfo.ToDictionary()));
                        writer.WriteLine(";");
                    }

                    isFirst = true;

                    foreach (IScriptableComponent component in scriptableComponents.Where(s => !s.IsSelfInitialized))
                    {
                        if (!isFirst)
                        {
                            writer.WriteLine();
                        }

                        component.WriteInitializationScript(writer);
                        isFirst = false;
                    }

                    isFirst = true;

                    foreach (Action action in OnDocumentReadyActions)
                    {
                        if (!isFirst)
                        {
                            writer.WriteLine();
                        }

                        action();
                        isFirst = false;
                    }

                    isFirst = true;

                    foreach (string statement in OnDocumentReadyStatements)
                    {
                        if (!isFirst)
                        {
                            writer.WriteLine();
                        }

                        writer.Write(statement);
                        isFirst = false;
                    }

                    writer.WriteLine(ScriptWrapper.OnPageLoadEnd);
                }

                // pageUnload
                if (shouldWriteOnWindowUnload)
                {
                    writer.WriteLine(ScriptWrapper.OnPageUnloadStart);
                    isFirst = true;

                    foreach (Action action in OnWindowUnloadActions)
                    {
                        if (!isFirst)
                        {
                            writer.WriteLine();
                        }

                        action();
                        isFirst = false;
                    }

                    isFirst = true;

                    foreach (string statement in OnWindowUnloadStatements)
                    {
                        if (!isFirst)
                        {
                            writer.WriteLine();
                        }

                        writer.Write(statement);
                        isFirst = false;
                    }

                    writer.WriteLine(cleanUpScripts.ToString()); // write clean up scripts
                    writer.WriteLine(ScriptWrapper.OnPageUnloadEnd);
                }

                writer.Write("//]]>{0}</script>".FormatWith(Environment.NewLine));
            }
        }