Example #1
0
        private void MoveToSelectedTags()
        {
            if (AllTagsSelectedItem != null)
            {
                if (!SelectedTags.Contains(AllTagsSelectedItem))
                {
                    SelectedTags.Add(AllTagsSelectedItem);
                    Tags.Remove(AllTagsSelectedItem);

                    FilterTaggedObjects();
                }
            }
        }
Example #2
0
 private void AddToSelectedTags(Tag value)
 {
     if (value != null)
     {
         if (!SelectedTags.Contains(value))
         {
             SelectedTags.Add(value);
             if (SelectedTagsAsString == EMPTY_TAG_LIST)
             {
                 SelectedTagsAsString      = value.Name;
                 IsClearTagSelectedVisible = true;
             }
             else
             {
                 SelectedTagsAsString += ", " + value.Name;
             }
         }
         SelectedTag = null;
     }
 }
Example #3
0
 void TagClicked(Tag tag)
 {
     if (SelectedTags.Contains(tag))
     {
         SelectedTags.Remove(tag);
     }
     else
     {
         SelectedTags.RemoveAll(t => t.Group == tag.Group);
         SelectedTags.Add(tag);
     }
     if (Button.TagMode == TagMode.Free)
     {
         StartRecording();
     }
     else
     {
         Active     = true;
         delayEvent = true;
     }
     ReDraw();
 }
Example #4
0
        /// <summary>
        /// Saves the page model.
        /// </summary>
        /// <param name="api">The current api</param>
        /// <param name="alias">The suggested alias</param>
        /// <param name="publish">If the page should be published</param>
        /// <returns>If the page was successfully saved</returns>
        public bool Save(IApi api, out string alias, bool?publish = null)
        {
            var post = api.Posts.GetById(Id);

            alias = null;

            if (post == null)
            {
                post = Piranha.Models.DynamicPost.Create(api, this.TypeId);
            }
            else
            {
                if (Slug != post.Slug && Published.HasValue)
                {
                    alias = post.Slug;
                }
            }

            Module.Mapper.Map <PostEditModel, Piranha.Models.PostBase>(this, post);
            SaveRegions(api, this, post);

            // Update category
            var category = api.Categories.GetBySlug(BlogId, SelectedCategory);

            if (category != null)
            {
                post.Category = category;
            }
            else
            {
                post.Category = new Piranha.Models.Taxonomy()
                {
                    Title = SelectedCategory
                }
            };

            // Update tags
            post.Tags.RemoveAll(t => !SelectedTags.Contains(t.Slug));

            foreach (var selectedTag in SelectedTags)
            {
                if (!post.Tags.Any(t => t.Slug == selectedTag))
                {
                    var tag = api.Tags.GetBySlug(BlogId, selectedTag);

                    if (tag != null)
                    {
                        post.Tags.Add(new Piranha.Models.Taxonomy()
                        {
                            Id    = tag.Id,
                            Title = tag.Title,
                            Slug  = tag.Slug
                        });
                    }
                    else
                    {
                        post.Tags.Add(new Piranha.Models.Taxonomy()
                        {
                            Title = selectedTag
                        });
                    }
                }
            }

            if (publish.HasValue)
            {
                if (publish.Value && !post.Published.HasValue)
                {
                    post.Published = DateTime.Now;
                }
                else if (!publish.Value)
                {
                    post.Published = null;
                }
            }
            api.Posts.Save(post);
            Id = post.Id;

            // Now tidy up the categories & tags for the blog
            api.Categories.DeleteUnused(post.BlogId);
            api.Tags.DeleteUnused(post.BlogId);

            return(true);
        }