Exemplo n.º 1
0
        public static Query.Models.Card Create(int boardId, int listId, string name, string description = "", DateTime?dateDue = null, string colors = "")
        {
            var query = new Query.Cards();
            var card  = new Query.Models.Card()
            {
                boardId     = boardId,
                listId      = listId,
                name        = name,
                colors      = colors,
                description = description,
                datedue     = dateDue,
                datecreated = DateTime.Now
            };

            try
            {
                var id = query.Create(card);
                card.cardId = id;
                return(card);
            }
            catch (ServiceErrorException)
            {
                throw new ServiceErrorException("Error creating new card");
            }
        }
Exemplo n.º 2
0
 public string LoadCardHtml(Query.Models.Card card)
 {
     if (!CheckSecurity())
     {
         return(AccessDenied());
     }
     return(Common.Card.Kanban.RenderCard(this, card));
 }
Exemplo n.º 3
0
 public string GetCard(int boardId, Query.Models.Card card)
 {
     //get card HTML based on board type (kanban, timeline, etc)
     switch (card.boardType)
     {
     case Query.Models.Board.BoardType.kanban:
         return(Common.Platform.Card.Kanban.RenderCard(card));
     }
     return("");
 }
Exemplo n.º 4
0
        public static string RenderCard(Query.Models.Card card)
        {
            var  useLayout = false;
            View cardscaff;

            if (card.name.IndexOf("----") == 0)
            {
                //separator
                cardscaff = new View("/Views/Card/Kanban/Type/separator.html");
            }
            else if (card.name.IndexOf("# ") == 0)
            {
                //header
                cardscaff         = new View("/Views/Card/Kanban/Type/header.html");
                cardscaff["name"] = card.name.TrimStart(new char[] { '#', ' ' });
            }
            else
            {
                //card
                cardscaff = new View("/Views/Card/Kanban/Type/card.html");
                useLayout = true;
            }

            if (useLayout == true)
            {
                //load card custom design
                var view = new View("/Views/Card/Kanban/Layout/" + card.layout.ToString() + ".html");

                if (card.name.IndexOf("[x]") == 0 || card.name.IndexOf("[X]") == 0)
                {
                    var checkmark = new View("/Views/Card/Kanban/Elements/checkmark.html");
                    view["name"] = checkmark.Render() + card.name.Substring(4);
                }
                else if (card.name.IndexOf("[!]") == 0 || card.name.IndexOf("[!]") == 0)
                {
                    var checkmark = new View("/Views/Card/Kanban/Elements/warning.html");
                    view["name"] = checkmark.Render() + card.name.Substring(4);
                }
                else
                {
                    view["name"] = card.name;
                }

                view["colors"] = "";

                //render custom design inside card container
                cardscaff["layout"] = view.Render();
            }

            //load card container
            cardscaff["id"] = card.cardId.ToString();

            //render card container
            return(cardscaff.Render());
        }
Exemplo n.º 5
0
        public static string RenderCard(Query.Models.Card card)
        {
            var type      = "default";
            var cardscaff = new Scaffold("/Views/Card/Kanban/card.html");

            //load card custom design
            var scaffold = new Scaffold("/Views/Card/Kanban/Card/" + type + ".html");

            scaffold.Data["title"]  = card.name;
            scaffold.Data["colors"] = "";

            //load card container
            cardscaff.Data["id"] = card.cardId.ToString();

            //render custom design inside card container
            cardscaff.Data["layout"] = scaffold.Render();

            //render card container
            return(cardscaff.Render());
        }
Exemplo n.º 6
0
        public string GetCard(int boardId, Query.Models.Card card)
        {
            //check security
            var board = Query.Boards.GetInfo(boardId);

            if (!User.CheckSecurity(board.orgId, new string[] { Security.Keys.CardCanView.ToString(), Security.Keys.CardFullAccess.ToString() }, Models.Scope.Card, card.cardId) ||
                !User.CheckSecurity(board.orgId, new string[] {
                Security.Keys.BoardCanView.ToString(), Security.Keys.BoardsFullAccess.ToString(), Security.Keys.BoardsCanViewAll.ToString()
            }, Models.Scope.Board, boardId)
                )
            {
                return(AccessDenied());
            }

            //get card HTML based on board type (kanban, timeline, etc)
            switch (card.boardType)
            {
            case Query.Models.Board.BoardType.kanban:
                return(Common.Card.Kanban.RenderCard(this, card));
            }
            return("");
        }
Exemplo n.º 7
0
        public static string RenderCard(IRequest request, Query.Models.Card card, string boardColor = "", string boardName = "")
        {
            var  useLayout = false;
            View cardview;

            if (card.name.IndexOf("----") == 0)
            {
                //separator
                cardview = new View("/Views/Card/Kanban/Type/separator.html");
            }
            else if (card.name.IndexOf("# ") == 0)
            {
                //header
                cardview         = new View("/Views/Card/Kanban/Type/header.html");
                cardview["name"] = card.name.TrimStart(new char[] { '#', ' ' });
            }
            else if (card.layout == Query.Models.Card.CardLayout.custom && card.type != "" && Core.Vendors.Cards.ContainsKey(card.type))
            {
                //custom card from vendor plugin
                var vendor = Core.Vendors.Cards[card.type];
                return(vendor.Render(request));
            }
            else
            {
                //card
                cardview  = new View("/Views/Card/Kanban/Type/card.html");
                useLayout = true;
            }

            if (useLayout == true)
            {
                //load card custom design
                var view = new View("/Views/Card/Kanban/Layout/" + card.layout.ToString() + ".html");

                if (card.name.IndexOf("[x]") == 0 || card.name.IndexOf("[X]") == 0)
                {
                    var checkmark = new View("/Views/Card/Kanban/Elements/checkmark.html");
                    view["name"] = checkmark.Render() + card.name.Substring(4);
                }
                else if (card.name.IndexOf("[!]") == 0 || card.name.IndexOf("[!]") == 0)
                {
                    var checkmark = new View("/Views/Card/Kanban/Elements/warning.html");
                    view["name"] = checkmark.Render() + card.name.Substring(4);
                }
                else
                {
                    view["name"] = card.name;
                }

                view["colors"] = "";

                if (boardColor != "")
                {
                    view.Show("has-board-color");
                    view["board-color"] = "#" + boardColor;
                    view["board-name"]  = boardName;
                }

                //render custom design inside card container
                cardview["boardid"] = card.boardId.ToString();
                cardview["layout"]  = view.Render();
            }

            //load card container
            cardview["id"] = card.cardId.ToString();

            //render card container
            return(cardview.Render());
        }