Exemplo n.º 1
0
        public override string Render(string body = "")
        {
            if (User.UserId == 0)
            {
                //load login page
                var page = new Login();
                page.Context    = Context;
                page.Parameters = Parameters;
                page.Path       = Path;
                page.PathParts  = PathParts;
                page.Init();
                return(page.Render());
            }
            //load boards list
            var view = new View("/Views/Boards/boards.html");

            view["list"] = Common.Boards.RenderList(User.UserId, this);

            //load page resources
            AddScript("/js/dashboard.js?v=" + Server.Version);
            AddCSS("/css/dashboard.css?v=" + Server.Version);

            //load header
            LoadHeader(ref view, HasMenu.Boards);

            //init boards page
            Scripts.Append("<script>S.boards.page.init();</script>");

            //render page
            return(base.Render(view.Render()));
        }
Exemplo n.º 2
0
        public void LoadHeader(ref View view, bool hasMenu = true)
        {
            if (User.userId > 0)
            {
                view.Child("header").Show("user");
                view.Child("header")["boards-menu"] = Common.Platform.Boards.RenderBoardsMenu(this);

                if (User.photo == true)
                {
                    view.Child("header")["user-photo"] = "/users/" + FileSystem.DateFolders(User.datecreated) + "/photo.jpg";
                }
                else
                {
                    view.Child("header").Show("no-user");
                }

                //apply user settings to UI layout configuration
                if (hasMenu == true)
                {
                    view.Child("header").Show("boards");
                    view.Child("header").Show("boards-2");
                    if (User.keepMenuOpen == true)
                    {
                        Scripts.Append("<script language=\"javascript\">S.head.boards.show();S.head.boards.alwaysShow(true);</script>");
                    }
                }
            }
            else
            {
                view.Child("header").Show("no-user");
            }
        }
Exemplo n.º 3
0
        public override string Render(string body = "")
        {
            if (User.UserId > 0)
            {
                //redirect to dashboard
                return(base.Render(Redirect("/boards/")));
            }

            //check for database reset
            var view = new View("/Views/Login/login.html");

            if (App.Environment == Environment.development && Server.HasAdmin == false)
            {
                //load new administrator form
                view          = new View("/Views/Login/new-admin.html");
                view["title"] = "Create an administrator account";
                Scripts.Append("<script src=\"/js/views/login/new-admin.js?v=" + Server.Version + "\"></script>");
            }
            else if (App.Environment == Environment.development && User.ResetPass == true)
            {
                //load new password form (for admin only)
                view          = new View("/Views/Login/new-pass.html");
                view["title"] = "Create an administrator password";
                Scripts.Append("<script src=\"/js/views/login/new-pass.js?v=" + Server.Version + "\"></script>");
            }
            else
            {
                //load login form (default)
                Scripts.Append("<script src=\"/js/views/login/login.js?v=" + Server.Version + "\"></script>");
            }

            //load login page
            return(base.Render(view.Render()));
        }
Exemplo n.º 4
0
        public virtual string Render(string body = "")
        {
            if (usePlatform == true)
            {
                Scripts.Append("<script language=\"javascript\">S.svg.load('/themes/default/icons.svg?v=" + Server.Version + "');</script>");
            }
            var view = new View("/Views/Shared/layout.html");

            view["title"]       = title;
            view["description"] = description;
            view["theme"]       = theme;
            view["head-css"]    = Css.ToString();
            view["favicon"]     = favicon;
            view["body"]        = body;
            if (usePlatform)
            {
                view.Show("platform-1");
                view.Show("platform-2");
                view.Show("platform-3");
            }

            //add initialization script
            view["scripts"] = Scripts.ToString();

            return(view.Render());
        }
Exemplo n.º 5
0
 public override void AddScript(string url, string id = "", string callback = "")
 {
     if (ContainsResource(url))
     {
         return;
     }
     Scripts.Append("<script language=\"javascript\"" + (id != "" ? " id=\"" + id + "\"" : "") + " src=\"" + url + "\"" +
                    (callback != "" ? " onload=\"" + callback + "\"" : "") + "></script>");
 }
Exemplo n.º 6
0
        public override string Render(string body = "")
        {
            //load signup form
            var view = new View("/Views/Signup/signup.html");

            view["title"] = "Create a new Kandu account";
            Scripts.Append("<script src=\"/js/views/signup/signup.js?v=" + Server.Version + "\"></script>");

            //load signup page
            return(base.Render(view.Render()));
        }
Exemplo n.º 7
0
        public new void LoadHeader(ref View view, HasMenu hasMenu = HasMenu.None)
        {
            if (User.UserId > 0)
            {
                //user logged in
                view.Child("header").Show("user");

                if (User.Photo == true)
                {
                    view.Child("header")["user-photo"] = "/users/" + FileSystem.DateFolders(User.DateCreated) + "/photo.jpg";
                }
                else
                {
                    view.Child("header").Show("no-photo");
                }

                if (hasMenu == HasMenu.Boards)
                {
                    //show drop down menu for boards list
                }
                else if (hasMenu == HasMenu.Board)
                {
                    //show drop down menu for board
                    view.Child("header").Show("boards");
                    view.Child("header")["boards-menu"] = Common.Boards.RenderSideBar(this);

                    if (User.KeepMenuOpen == true)
                    {
                        //apply user settings to UI layout configuration
                        Scripts.Append("<script language=\"javascript\">S.head.boards.show();S.head.boards.alwaysShow(true);</script>");
                    }
                }

                //load user menu
                view.Child("header")["user-menu"] = Common.User.RenderUserMenu(this);

                //load organization templates
                view.Child("header")["org-menu"]      = Common.Organizations.RenderList(this);
                view.Child("header")["org-templates"] = Cache.LoadFile("/Views/Organizations/templates.html");;
            }
            else
            {
                //user not logged in
                view.Child("header").Show("no-user");
            }
        }
Exemplo n.º 8
0
        public override string Render(string body = "")
        {
            Scripts.Append("<script language=\"javascript\">S.svg.load('/themes/default/icons.svg?v=" + Server.Version + "');</script>");
            var view = new View("/Views/Shared/layout.html");

            view["title"]       = Title;
            view["description"] = Description;
            view["theme"]       = Theme;
            view["head-css"]    = Css.ToString();
            view["favicon"]     = Favicon;
            view["body"]        = body;

            //add initialization script
            view["scripts"] = Scripts.ToString();

            return(view.Render());
        }
Exemplo n.º 9
0
        public virtual string Render(string body = "")
        {
            Scripts.Append("<script language=\"javascript\">S.svg.load('/images/icons.svg?v=" + Server.Version + "');</script>");
            var view = new View("/Views/Shared/layout.html");

            view["title"]       = title;
            view["description"] = description;
            view["version"]     = Server.Version;
            view["language"]    = User.language;
            view["theme"]       = theme;
            view["head-css"]    = Css.ToString();

            //load body
            view["body"] = body;

            //add initialization script
            view["scripts"] = Scripts.ToString();

            return(view.Render());
        }
Exemplo n.º 10
0
        public override string Render(string body = "")
        {
            //check security
            if (PathParts.Length < 2)
            {
                return(Error());
            }
            var boardId = int.Parse(PathParts[1]);

            if (User.userId == 0)
            {
                return(AccessDenied <Login>());
            }
            if (!User.CheckSecurity(boardId))
            {
                return(AccessDenied <Login>());
            }

            //add client-side dependencies
            AddScript("/js/views/board/board.js?v=" + Server.Version);
            AddScript("/js/dashboard.js?v=" + Server.Version);
            AddCSS("/css/dashboard.css?v=" + Server.Version);

            var view = new View("/Views/Board/board.html");

            //load board details
            var       colors = new Utility.Colors();
            var       board  = Query.Boards.GetBoardAndLists(boardId);
            BoardPage page;

            //add custom javascript for User Settings & Board info
            Scripts.Append("<script language=\"javascript\">" +
                           "S.board.id=" + board.boardId + ";" +
                           (User.allColor ? "S.head.allColor();" : "") +
                           "</script>");

            //choose which Lists Type to render
            switch (board.type)
            {
            default:
            case Query.Models.Board.BoardType.kanban:     //kanban
                page = new Kanban();
                page.Init(Context, Parameters, Path, PathParts);
                break;
            }

            //dependancy injection
            page.board = board;

            //set background color of board
            view["color"]      = "#" + board.color;
            view["color-dark"] = colors.ChangeHexBrightness(board.color, (float)-0.3);

            //transfer resources from page
            Scripts.Append(page.Scripts.ToString());
            Css.Append(page.Css.ToString());

            //render board lists
            view["content"] = page.Render();

            //load header
            LoadHeader(ref view);


            return(base.Render(view.Render()));
        }
Exemplo n.º 11
0
 public Kanban()
 {
     //load page resources
     Scripts.Append("<script src=\"/js/views/board/kanban/kanban.js?v=" + Server.Version + "\"></script>");
     Css.Append("<link type=\"text/css\" rel=\"stylesheet\" href=\"/css/views/board/kanban/kanban.css?v=" + Server.Version + "\">");
 }
Exemplo n.º 12
0
        public override string Render(string body = "")
        {
            if (!CheckSecurity())
            {
                return(AccessDenied <Login>());
            }

            //add Scripts to page
            AddScript("/js/dashboard.js?v=" + Server.Version);
            AddCSS("/css/dashboard.css?v=" + Server.Version);

            var dash = new View("/Views/Dashboard/dashboard.html");

            //get list of books
            var html  = new StringBuilder();
            var books = Query.Books.GetList(User.userId);

            if (books.Count > 0)
            {
                //books exist
                var list = new View("/Views/Books/list-item.html");
                var i    = 0;
                books.ForEach((Query.Models.Book book) =>
                {
                    if (i == 0)
                    {
                        list["selected"] = "selected";
                    }
                    else
                    {
                        list["selected"] = "";
                    }
                    list["id"]    = book.bookId.ToString();
                    list["title"] = book.title;
                    html.Append(list.Render());
                    i++;
                });
                dash["books"] = html.ToString();

                //get list of entries for top book
                var bookId  = 0;
                var entryId = 0;
                if (books.Count > 0)
                {
                    bookId = books[0].bookId;
                    var first  = Query.Entries.GetFirst(User.userId, bookId, (int)Entries.SortType.byChapter);
                    var script = new StringBuilder("<script language=\"javascript\">S.entries.bookId=" + bookId + ";");
                    entryId = first.entryId;

                    if (first != null)
                    {
                        //load content of first entry
                        dash["editor-content"] = Entries.LoadEntry(first.entryId, bookId);
                        script.Append("S.editor.entryId=" + entryId.ToString() + ";$('.editor').removeClass('hide');");
                    }
                    else
                    {
                        dash["no-entries"] = "hide";
                        script.Append("S.entries.noentries();");
                    }
                    Scripts.Append(script.ToString() + "S.dash.init();</script>");
                }
                dash["entries"] = Entries.GetList(User.userId, bookId, entryId, 1, 500, Entries.SortType.byChapter);
            }
            else
            {
                dash["no-books"]   = "hide";
                dash["no-entries"] = "hide";
                dash["no-content"] = Server.LoadFileFromCache("/Views/Dashboard/templates/nobooks.html");
            }

            //get count for tags & trash

            dash["tags-count"]  = "0";
            dash["trash-count"] = Trash.GetCount(User.userId).ToString();

            //load script templates (for popups)
            dash["templates"] =
                Server.LoadFileFromCache("/Views/Dashboard/templates/newbook.html") +
                Server.LoadFileFromCache("/Views/Dashboard/templates/newentry.html") +
                Server.LoadFileFromCache("/Views/Dashboard/templates/newchapter.html") +
                Server.LoadFileFromCache("/Views/Dashboard/templates/noentries.html");

            return(base.Render(dash.Render()));
        }