/// <summary>
        /// Initializes a new instance of the <see cref="ImageEditorJavaScriptModuleDescriptor" /> class.
        /// </summary>
        /// <param name="containerModule">The container module.</param>
        public ImageEditorJavaScriptModuleDescriptor(ModuleDescriptor containerModule)
            : base(containerModule, "bcms.media.imageeditor", "/file/bcms-media/scripts/bcms.media.imageeditor")
        {
            Links = new IActionProjection[]
                {
                    new JavaScriptModuleLinkTo<ImagesController>(this, "imageEditorDialogUrl", c => c.ImageEditor("{0}")),
                    new JavaScriptModuleLinkTo<ImagesController>(this, "imageEditorInsertDialogUrl", c => c.ImageEditorInsert("{0}")),
                    new JavaScriptModuleLinkTo<ImagesController>(this, "imageEditorCroppingDialogUrl", c => c.ImageCropper("{0}")),
                    new JavaScriptModuleLinkTo<ImagesController>(this, "imageResizeUrl", c => c.ImageResize("{0}", "{1}", "{2}", "{3}")),
                };

            Globalization = new IActionProjection[]
                {
                    new JavaScriptModuleGlobalization(this, "imageEditorDialogTitle", () => MediaGlobalization.ImageEditor_Dialog_Title),
                    new JavaScriptModuleGlobalization(this, "imageEditorInsertDialogTitle", () => MediaGlobalization.ImageEditor_InsertDialog_Title),
                    new JavaScriptModuleGlobalization(this, "imageEditorInsertDialogAcceptButton", () => MediaGlobalization.ImageEditor_InsertDialog_AcceptButton),
                    new JavaScriptModuleGlobalization(this, "imageEditorUpdateFailureMessageTitle", () => MediaGlobalization.ImageEditor_UpdateFailureMessage_Title),
                    new JavaScriptModuleGlobalization(this, "imageEditorUpdateFailureMessageMessage", () => MediaGlobalization.ImageEditor_UpdateFailureMessage_Message),
                    new JavaScriptModuleGlobalization(this, "imageEditorResizeFailureMessageTitle", () => MediaGlobalization.ImageEditor_ResizeFailureMessage_Title),
                    new JavaScriptModuleGlobalization(this, "imageEditorResizeFailureMessageMessage", () => MediaGlobalization.ImageEditor_ResizeFailureMessage_Message),
                    new JavaScriptModuleGlobalization(this, "imageEditorCroppingDialogTitle", () => MediaGlobalization.ImageEditor_CroppingDialog_Title),
                    new JavaScriptModuleGlobalization(this, "imageEditorCropFailureMessageTitle", () => MediaGlobalization.ImageEditor_CropFailureMessage_Title),
                    new JavaScriptModuleGlobalization(this, "imageEditorCropFailureMessageMessage", () => MediaGlobalization.ImageEditor_CropFailureMessage_Message),
                };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="WidgetsJavaScriptModuleDescriptor" /> class.
        /// </summary>
        /// <param name="containerModule">The container module.</param>
        public WidgetsJavaScriptModuleDescriptor(ModuleDescriptor containerModule)
            : base(containerModule, "bcms.pages.widgets", "/file/bcms-pages/scripts/bcms.pages.widgets")
        {
            Links = new IActionProjection[]
                        {
                            new JavaScriptModuleLinkTo<WidgetsController>(this, "loadSiteSettingsWidgetListUrl", c => c.Widgets(null)),
                            new JavaScriptModuleLinkTo<WidgetsController>(this, "loadCreateHtmlContentWidgetDialogUrl", controller => controller.CreateHtmlContentWidget()),
                            new JavaScriptModuleLinkTo<WidgetsController>(this, "loadEditHtmlContentWidgetDialogUrl", controller => controller.EditHtmlContentWidget("{0}"))
                            ,
                            new JavaScriptModuleLinkTo<WidgetsController>(this, "loadCreateServerControlWidgetDialogUrl", controller => controller.CreateServerControlWidget()),
                            new JavaScriptModuleLinkTo<WidgetsController>(this, "loadEditServerControlWidgetDialogUrl", controller => controller.EditServerControlWidget("{0}")),
                            new JavaScriptModuleLinkTo<WidgetsController>(this, "deleteWidgetUrl", controller => controller.DeleteWidget("{0}", "{1}")),
                            new JavaScriptModuleLinkTo<ContentController>(this, "loadPageContentOptionsDialogUrl", controller => controller.PageContentOptions("{0}"))
                        };

            Globalization = new IActionProjection[]
                                {
                                    new JavaScriptModuleGlobalization(this, "createHtmlContentWidgetDialogTitle", () => PagesGlobalization.CreateHtmlContentWidget_Dialog_Title),
                                    new JavaScriptModuleGlobalization(this, "editAdvancedContentDialogTitle", () => PagesGlobalization.EditWidget_Dialog_Title),
                                    new JavaScriptModuleGlobalization(this, "createWidgetDialogTitle", () => PagesGlobalization.CreateWidget_Dialog_Title),
                                    new JavaScriptModuleGlobalization(this, "editWidgetDialogTitle", () => PagesGlobalization.EditWidget_Dialog_Title),
                                    new JavaScriptModuleGlobalization(this, "editPageWidgetOptionsTitle", () => PagesGlobalization.PageWidgetOptions_Dialog_Title),
                                    new JavaScriptModuleGlobalization(this, "deleteWidgetConfirmMessage", () => PagesGlobalization.DeleteWidget_Confirmation_Message),
                                    new JavaScriptModuleGlobalization(this, "deleteOptionConfirmMessage", () => PagesGlobalization.DeleteOption_Confirmation_Message),
                                };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="WidgetsJavaScriptModuleDescriptor" /> class.
        /// </summary>
        /// <param name="containerModule">The container module.</param>
        public PagesContentJavaScriptModuleDescriptor(ModuleDescriptor containerModule)
            : base(containerModule, "bcms.pages.content", "/file/bcms-pages/scripts/bcms.pages.content")
        {
            Links = new IActionProjection[]
                {
                    new JavaScriptModuleLinkTo<ContentController>(this, "loadWidgetsFromCategoryUrl", controller => controller.WidgetCategory("{1}")),
                    new JavaScriptModuleLinkTo<ContentController>(this, "loadWidgetsUrl", controller => controller.Widgets("{0}")),
                    new JavaScriptModuleLinkTo<ContentController>(this, "loadAddNewHtmlContentDialogUrl", controller => controller.AddPageContent("{0}", "{1}")),
                    new JavaScriptModuleLinkTo<ContentController>(this, "insertContentToPageUrl", controller => controller.InsertContentToPage("{0}", "{1}", "{2}")),
                    new JavaScriptModuleLinkTo<ContentController>(this, "deletePageContentUrl", controller => controller.DeletePageContent("{0}", "{1}", "{2}")),
                    new JavaScriptModuleLinkTo<ContentController>(this, "editPageContentUrl", controller => controller.EditPageContent("{0}")),
                    new JavaScriptModuleLinkTo<ContentController>(this, "sortPageContentUrl", controller => controller.SortPageContent(null)),
                };

            Globalization = new IActionProjection[]
                {
                    new JavaScriptModuleGlobalization(this, "addNewContentDialogTitle", () => PagesGlobalization.AddNewContent_Dialog_Title),
                    new JavaScriptModuleGlobalization(this, "editContentDialogTitle", () => PagesGlobalization.EditContent_Dialog_Title),

                    new JavaScriptModuleGlobalization(this, "insertingWidgetInfoMessage", () => PagesGlobalization.AddPageContent_InsertingWidget_Information_Message),
                    new JavaScriptModuleGlobalization(this, "insertingWidgetInfoHeader", () => PagesGlobalization.AddPageContent_InsertingWidget_Information_Header),
                    new JavaScriptModuleGlobalization(this, "insertingWidgetErrorMessage", () => PagesGlobalization.AddPageContent_InsertingWidget_Information_Message),

                    new JavaScriptModuleGlobalization(this, "deleteContentConfirmationTitle", () => PagesGlobalization.DeletePageContent_ConfirmationTitle),
                    new JavaScriptModuleGlobalization(this, "deleteContentConfirmationMessage", () => PagesGlobalization.DeletePageContent_ConfirmationMessage),
                    new JavaScriptModuleGlobalization(this, "deleteContentSuccessMessageTitle", () => PagesGlobalization.DeletePageContent_SuccessMessage_Title),
                    new JavaScriptModuleGlobalization(this, "deleteContentSuccessMessageMessage", () => PagesGlobalization.DeletePageContent_SuccessMessage_Message),
                    new JavaScriptModuleGlobalization(this, "deleteContentFailureMessageTitle", () => PagesGlobalization.DeletePageContent_FailureMessage_Title),
                    new JavaScriptModuleGlobalization(this, "deleteContentFailureMessageMessage", () => PagesGlobalization.DeletePageContent_FailureMessage_Message),
                    new JavaScriptModuleGlobalization(this, "sortPageContentFailureMessageTitle", () => PagesGlobalization.SortPageContent_FailureMessage_Title),
                    new JavaScriptModuleGlobalization(this, "sortPageContentFailureMessageMessage", () => PagesGlobalization.SortPageContent_FailureMessage_Message),

                    new JavaScriptModuleGlobalization(this, "errorTitle", () => RootGlobalization.Alert_ErrorTitle),
                };
        }
예제 #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="JsIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        /// <param name="name">The module name.</param>
        /// <param name="fileName">Name of the module file.</param>
        /// <param name="minFileName">Name of the minified file.</param>
        /// <param name="isAutoGenerated">if set to <c>true</c> then it indicates that this JS include file is auto generated and is not going to be minimized or loaded from CDN.</param>
        public JsIncludeDescriptor(ModuleDescriptor module, string name, string fileName = null, string minFileName = null, 
            bool isAutoGenerated = false, bool isExternal = false, JsShimConfigDescriptor shimConfig = null)
        {
            Links = new List<IActionProjection>();
            Globalization = new List<IActionProjection>();

            Module = module;
            Name = name;
            IsAutoGenerated = isAutoGenerated;
            ShimConfiguration = shimConfig;

            if (isExternal)
            {
                if (string.IsNullOrEmpty(fileName) || string.IsNullOrEmpty(minFileName))
                {
                    throw new CmsException("Paths for the external JS file and minified JS file can not by empty");
                }

                FileName = System.IO.Path.GetFileName(fileName);
                Path = fileName;
                MinPath = minFileName;
            }
            else
            {
                FileName = fileName ?? name + ".js";
                Path = VirtualPath.Combine(module.JsBasePath, fileName ?? name + ".js");

                // If minFileName is not given then CMS will try to load it from a bcms.[module-name].min.js file.
                if (!string.IsNullOrEmpty(minFileName))
                {
                    MinPath = VirtualPath.Combine(module.JsBasePath, minFileName);
                }
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="CategoriesJavaScriptModuleDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public CategoriesJavaScriptModuleDescriptor(ModuleDescriptor module)
            : base(module, "bcms.categories")
        {

            Links = new IActionProjection[]
                {
                      new JavaScriptModuleLinkTo<CategoryController>(this, "loadSiteSettingsCategoryTreesListUrl", c => c.CategoryTrees(null)),
                      new JavaScriptModuleLinkTo<CategoryController>(this, "categoryTreeEditDialogUrl", c => c.EditCategoryTree("{0}")),
                      new JavaScriptModuleLinkTo<CategoryController>(this, "saveCategoryTreeUrl", c => c.SaveCategoryTree(null)),
                      new JavaScriptModuleLinkTo<CategoryController>(this, "deleteCategoryTreeUrl", c => c.DeleteCategoryTree("{0}", "{1}")),
                       new JavaScriptModuleLinkTo<CategoryController>(this, "categoriesSuggestionServiceUrl", c => c.SuggestCategories(null))
                };

            Globalization = new IActionProjection[]
                {      
                    new JavaScriptModuleGlobalization(this, "categoryTreeCreatorDialogTitle", () => RootGlobalization.CategoryTree_CreatorDialog_Title),
                    new JavaScriptModuleGlobalization(this, "categoryTreeEditorDialogTitle", () => RootGlobalization.CategoryTree_EditorDialog_Title),
                    new JavaScriptModuleGlobalization(this, "nodeOkButton", () => RootGlobalization.Button_Ok),
                    new JavaScriptModuleGlobalization(this, "placeNodeHere", () => RootGlobalization.CategoryTree_PlaceLinkHere_Message),
                    new JavaScriptModuleGlobalization(this, "categoryTreeIsEmpty", () => RootGlobalization.CategoryTree_TreeIsEmpty_Message),
                    new JavaScriptModuleGlobalization(this, "deleteCategoryNodeConfirmationMessage", () => RootGlobalization.CategoryTree_DeleteNode_Confirmation_Message),
                    new JavaScriptModuleGlobalization(this, "someCategoryNodesAreInEditingState", () => RootGlobalization.CategoryTree_SomeNodesAreInEditingState),
                    new JavaScriptModuleGlobalization(this, "categoryTreeDeleteConfirmMessage", () => RootGlobalization.CategoryTree_Delete_Confirmation_Message),
                };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="PagesJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public PagesJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.pages")
        {
            Links = new IActionProjection[]
                {
                    new JavaScriptModuleLinkTo<PageController>(this, "loadAddNewPageDialogUrl", c => c.AddNewPage("{0}", "{1}")),
                    new JavaScriptModuleLinkTo<PageController>(this, "loadSiteSettingsPageListUrl", c => c.Pages(null)),
                    new JavaScriptModuleLinkTo<PageController>(this, "loadSelectPageUrl", c => c.SelectPage(null)),
                    new JavaScriptModuleLinkTo<PageController>(this, "deletePageConfirmationUrl", c => c.DeletePageConfirmation("{0}")),
                    new JavaScriptModuleLinkTo<PageController>(this, "changePublishStatusUrl", c => c.ChangePublishStatus(null)),
                    new JavaScriptModuleLinkTo<PageController>(this, "clonePageDialogUrl", c => c.ClonePage("{0}")),
                    new JavaScriptModuleLinkTo<PageController>(this, "clonePageWithLanguageDialogUrl", c => c.ClonePageWithLanguage("{0}")),
                    new JavaScriptModuleLinkTo<PageController>(this, "convertStringToSlugUrl", c => c.ConvertStringToSlug("{0}", "{1}", "{2}", "{3}", "{4}", "{5}"))
                };

            Globalization = new IActionProjection[]
                {
                    new JavaScriptModuleGlobalization(this, "addNewPageDialogTitle", () => PagesGlobalization.AddNewPage_Dialog_Title),
                    new JavaScriptModuleGlobalization(this, "addNewMasterPageDialogTitle", () => PagesGlobalization.AddNewMasterPage_PageTitle),
                    new JavaScriptModuleGlobalization(this, "deletePageDialogTitle", () => PagesGlobalization.DeletePage_Dialog_Title),
                    new JavaScriptModuleGlobalization(this, "pageDeletedMessage", () => PagesGlobalization.DeletePage_SuccessMessage_Message),
                    new JavaScriptModuleGlobalization(this, "pageDeletedTitle", () => PagesGlobalization.DeletePage_SuccessMessage_Title),
                    new JavaScriptModuleGlobalization(this, "clonePageDialogTitle", () => PagesGlobalization.ClonePage_Dialog_Title),
                    new JavaScriptModuleGlobalization(this, "clonePageWithLanguageDialogTitle", () => PagesGlobalization.ClonePageWithLanguage_Dialog_Title),
                    new JavaScriptModuleGlobalization(this, "cloneButtonTitle", () => PagesGlobalization.ClonePage_Dialog_CloneButton), 
                    new JavaScriptModuleGlobalization(this, "deleteButtonTitle", () => PagesGlobalization.DeletePage_Dialog_DeleteButton),
                    new JavaScriptModuleGlobalization(this, "pageStatusChangeConfirmationMessagePublish", () => PagesGlobalization.EditPageProperties_PageStatusChange_ConfirmationMessage_Publish),
                    new JavaScriptModuleGlobalization(this, "pageStatusChangeConfirmationMessageUnPublish", () => PagesGlobalization.EditPageProperties_PageStatusChange_ConfirmationMessage_UnPublish),
                    new JavaScriptModuleGlobalization(this, "selectPageDialogTitle", () => PagesGlobalization.SelectPage_Dialog_Title),
                    new JavaScriptModuleGlobalization(this, "selectPageSelectButtonTitle", () => PagesGlobalization.SelectPage_Select_ButtonTitle),
                    new JavaScriptModuleGlobalization(this, "pageNotSelectedMessage", () => PagesGlobalization.SelectPage_PageIsNotSelected_Message),
                    new JavaScriptModuleGlobalization(this, "pagesListTitle", () => PagesGlobalization.Pages_List_Title),
                };
        }
예제 #7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WidgetsJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public WidgetsJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.pages.widgets")
        {

            Links = new IActionProjection[]
                        {
                            new JavaScriptModuleLinkTo<WidgetsController>(this, "loadSiteSettingsWidgetListUrl", c => c.Widgets(null)),
                            new JavaScriptModuleLinkTo<WidgetsController>(this, "loadCreateHtmlContentWidgetDialogUrl", controller => controller.CreateHtmlContentWidget()),
                            new JavaScriptModuleLinkTo<WidgetsController>(this, "loadEditHtmlContentWidgetDialogUrl", controller => controller.EditHtmlContentWidget("{0}"))
                            ,
                            new JavaScriptModuleLinkTo<WidgetsController>(this, "loadCreateServerControlWidgetDialogUrl", controller => controller.CreateServerControlWidget()),
                            new JavaScriptModuleLinkTo<WidgetsController>(this, "loadEditServerControlWidgetDialogUrl", controller => controller.EditServerControlWidget("{0}")),
                            new JavaScriptModuleLinkTo<WidgetsController>(this, "deleteWidgetUrl", controller => controller.DeleteWidget("{0}", "{1}")),
                            new JavaScriptModuleLinkTo<ContentController>(this, "loadPageContentOptionsDialogUrl", controller => controller.PageContentOptions("{0}"))
                        };

            Globalization = new IActionProjection[]
                                {
                                    new JavaScriptModuleGlobalization(this, "createHtmlContentWidgetDialogTitle", () => PagesGlobalization.CreateHtmlContentWidget_Dialog_Title),
                                    new JavaScriptModuleGlobalization(this, "editAdvancedContentDialogTitle", () => PagesGlobalization.EditWidget_Dialog_Title),
                                    new JavaScriptModuleGlobalization(this, "createWidgetDialogTitle", () => PagesGlobalization.CreateWidget_Dialog_Title),
                                    new JavaScriptModuleGlobalization(this, "editWidgetDialogTitle", () => PagesGlobalization.EditWidget_Dialog_Title),
                                    new JavaScriptModuleGlobalization(this, "editPageWidgetOptionsTitle", () => PagesGlobalization.PageWidgetOptions_Dialog_Title),
                                    new JavaScriptModuleGlobalization(this, "deleteWidgetConfirmMessage", () => PagesGlobalization.DeleteWidget_Confirmation_Message),
                                    new JavaScriptModuleGlobalization(this, "widgetStatusPublished", () => RootGlobalization.ContentStatus_Published),
                                    new JavaScriptModuleGlobalization(this, "widgetStatusDraft", () => RootGlobalization.ContentStatus_Draft),
                                    new JavaScriptModuleGlobalization(this, "widgetStatusPublishedWithDraft", () => RootGlobalization.ContentStatus_PublishedWithDraft),
                                    new JavaScriptModuleGlobalization(this, "previewImageNotFoundMessage", () => PagesGlobalization.EditWidget_PreviewImageNotFound_Message),
                                    new JavaScriptModuleGlobalization(this, "deletingMessage", () => RootGlobalization.Message_Deleting),
                                    new JavaScriptModuleGlobalization(this, "widgetUsageTitle", () => PagesGlobalization.SiteSettings_Widgets_PagesUsingWidget_Title)
                                };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="BlogJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public BlogJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.blog")
        {
            Links = new IActionProjection[]
                        {
                            new JavaScriptModuleLinkTo<BlogController>(this, "loadSiteSettingsBlogsUrl", c => c.Index(null)),
                            new JavaScriptModuleLinkTo<BlogController>(this, "loadCreateNewPostDialogUrl", c => c.CreateBlogPost("{0}")),
                            new JavaScriptModuleLinkTo<BlogController>(this, "loadEditPostDialogUrl", c => c.EditBlogPost("{0}")),
                            new JavaScriptModuleLinkTo<AuthorController>(this, "loadAuthorsTemplateUrl", c => c.ListTemplate()),
                            new JavaScriptModuleLinkTo<AuthorController>(this, "loadAuthorsUrl", c => c.AuthorsList(null)),
                            new JavaScriptModuleLinkTo<AuthorController>(this, "deleteAuthorsUrl", c => c.DeleteAuthor(null, null)),
                            new JavaScriptModuleLinkTo<AuthorController>(this, "saveAuthorsUrl", c => c.SaveAuthor(null)),
                            new JavaScriptModuleLinkTo<OptionController>(this, "loadTemplatesUrl", c => c.Templates()),
                            new JavaScriptModuleLinkTo<OptionController>(this, "saveDefaultTemplateUrl", c => c.SaveDefaultTemplate("{0}")),
                            new JavaScriptModuleLinkTo<BlogController>(this, "convertStringToSlugUrl", c => c.ConvertStringToSlug("{0}", "{1}"))
                        };

            Globalization = new IActionProjection[]
                        {
                            new JavaScriptModuleGlobalization(this, "createNewPostDialogTitle", () => BlogGlobalization.CreateNewPost_Dialog_Title),
                            new JavaScriptModuleGlobalization(this, "editPostDialogTitle", () => BlogGlobalization.EditPost_Dialog_Title),
                            new JavaScriptModuleGlobalization(this, "deleteBlogDialogTitle", () => BlogGlobalization.DeletePost_Dialog_Title),
                            new JavaScriptModuleGlobalization(this, "deleteAuthorDialogTitle", () => BlogGlobalization.DeleteAuthor_Confirmation_Message),
                            new JavaScriptModuleGlobalization(this, "blogPostsTabTitle", () => BlogGlobalization.SiteSettings_Blogs_PostsTab_Title),
                            new JavaScriptModuleGlobalization(this, "authorsTabTitle", () => BlogGlobalization.SiteSettings_Blogs_AuthorsTab_Title),
                            new JavaScriptModuleGlobalization(this, "templatesTabTitle", () => BlogGlobalization.SiteSettings_Blogs_TemplatesTab_Title),
                            new JavaScriptModuleGlobalization(this, "datePickerTooltipTitle", () => BlogGlobalization.Date_Picker_Tooltip_Title)
                        };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="WidgetsJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public TemplatesJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.pages.template")
        {

            Links = new IActionProjection[]
                        {
                            new JavaScriptModuleLinkTo<TemplatesController>(this, "loadSiteSettingsTemplateListUrl", controller => controller.Templates(null)),
                            new JavaScriptModuleLinkTo<TemplatesController>(this, "loadRegisterTemplateDialogUrl", controller => controller.RegisterTemplate()),
                            new JavaScriptModuleLinkTo<TemplatesController>(this, "loadEditTemplateDialogUrl", controller => controller.EditTemplate("{0}")),
                            new JavaScriptModuleLinkTo<TemplatesController>(this, "deleteTemplateUrl", controller => controller.DeleteTemplate("{0}", "{1}")),
                            new JavaScriptModuleLinkTo<ContentController>(this, "loadTemplateRegionDialogUrl", controller => controller.PageContentOptions("{0}"))
                        };

            Globalization = new IActionProjection[]
                                {
                                    new JavaScriptModuleGlobalization(this, "createTemplateDialogTitle", () => PagesGlobalization.CreatTemplate_Dialog_Title),
                                    new JavaScriptModuleGlobalization(this, "editTemplateDialogTitle", () => PagesGlobalization.EditTemplate_Dialog_Title),
                                    new JavaScriptModuleGlobalization(this, "editTemplateRegionTitle", () => PagesGlobalization.SiteSettings_TemplatesMenuItem),
                                    new JavaScriptModuleGlobalization(this, "deleteTemplateConfirmMessage", () => PagesGlobalization.SiteSettings_Template_DeleteCategoryMessage),
                                    new JavaScriptModuleGlobalization(this, "deleteRegionConfirmMessage", () => PagesGlobalization.DeleteRegion_Confirmation_Message),
                                    new JavaScriptModuleGlobalization(this, "previewImageNotFoundMessage", () => PagesGlobalization.EditTemplate_PreviewImageNotFound_Message),
                                    new JavaScriptModuleGlobalization(this, "deletingMessage", () => RootGlobalization.Message_Deleting),
                                    new JavaScriptModuleGlobalization(this, "templatesTabTitle", () => PagesGlobalization.SiteSettings_Templates_Title)
                                };
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="JavaScriptModuleDescriptor" /> class.
 /// </summary>
 /// <param name="containerModule">The container module.</param>
 /// <param name="name">The name.</param>
 /// <param name="path">The path.</param>
 public JavaScriptModuleDescriptor(ModuleDescriptor containerModule, string name, string path)
 {
     ContainerModule = containerModule;
     Name = name;
     Path = path;
     Links = new List<IActionProjection>();
     Globalization = new List<IActionProjection>();
 }
예제 #11
0
 public ModuleWorkerJob(IPackageService packageService, ModuleDescriptor moduleDescriptor, ModuleAction action)
 {
     Id = Guid.NewGuid().ToString("N");
     CancellationToken = new CancellationToken();
     PackageService = packageService;
     ModuleDescriptor = moduleDescriptor;
     Action = action;
     ProgressLog = new List<ProgressMessage>();
 }
예제 #12
0
 public FaqJsModuleIncludeDescriptor(ModuleDescriptor module)
     : base(module, "bcms.faq")
 {
     Links = new IActionProjection[]
     {
         new JavaScriptModuleLinkTo<FaqController>(this, "loadSiteSettingsFaqUrl", c => c.Index(null)),
         new JavaScriptModuleLinkTo<FaqController>(this, "loadEditFaqUrl", c=> c.Edit("{0}")),
         new JavaScriptModuleLinkTo<FaqController>(this, "loadCreateFaqUrl", c=> c.Create()),
         new JavaScriptModuleLinkTo<FaqController>(this, "deleteFaqUrl", c => c.Delete("{0}", "{1}"))
     };
 }
        public DynamicContentJavaScriptModuleDescriptor(ModuleDescriptor containerModule)
            : base(containerModule, "bcms.dynamicContent", "/file/bcms-root/scripts/bcms.dynamicContent")
        {
            Links = new IActionProjection[]
                {
                };

            Globalization = new IActionProjection[]
                {
                };
        }
 public CategoryJsModuleIncludeDescriptor(ModuleDescriptor module)
     : base(module, "bcms.faq.category")
 {
     Links = new IActionProjection[]
                 {
                     new JavaScriptModuleLinkTo<CategoryController>(this, "loadSiteSettingsCategoriesUrl", c => c.Index(null)),
                     new JavaScriptModuleLinkTo<CategoryController>(this, "loadEditCategoryUrl", c=> c.Edit("{0}")),
                     new JavaScriptModuleLinkTo<CategoryController>(this, "loadCreateCategoryUrl", c=> c.Create()),
                     new JavaScriptModuleLinkTo<CategoryController>(this, "deleteCategoryUrl", c => c.Delete("{0}", "{1}"))
                 };
 }
 public NewsJsModuleIncludeDescriptor(ModuleDescriptor module)
     : base(module, "bcms.news")
 {
     Links = new IActionProjection[]
     {
         new JavaScriptModuleLinkTo<NewsController>(this, "loadSiteSettingsNewsUrl", c => c.Index(null)),
         new JavaScriptModuleLinkTo<NewsController>(this, "loadEditNewsUrl", c=> c.EditNews("{0}")),
         new JavaScriptModuleLinkTo<NewsController>(this, "loadCreateNewsUrl", c=> c.CreateNews()),
         new JavaScriptModuleLinkTo<NewsController>(this, "deleteNewsUrl", c => c.DeleteNews("{0}", "{1}"))
     };
 }
        public FormsJavaScriptModuleDescriptor(ModuleDescriptor containerModule)
            : base(containerModule, "bcms.forms", "/file/bcms-root/scripts/bcms.forms")
        {
            Links = new IActionProjection[]
                {
                };

            Globalization = new IActionProjection[]
                {
                };
        }
 public ProductJsModuleIncludeDescriptor(ModuleDescriptor module)
     : base(module, "bcms.product")
 {
     Links = new IActionProjection[]
     {
         new JavaScriptModuleLinkTo<ProductController>(this, "loadSiteSettingsProductsUrl", c => c.Index(null)),
         new JavaScriptModuleLinkTo<ProductController>(this, "loadEditProductUrl", c=> c.EditProduct("{0}")),
         new JavaScriptModuleLinkTo<ProductController>(this, "loadCreateProductUrl", c=> c.CreateProduct()),
         new JavaScriptModuleLinkTo<ProductController>(this, "deleteProductUrl", c => c.DeleteProduct("{0}", "{1}"))
     };
 }
        public HtmlEditorJavaScriptModuleDescriptor(ModuleDescriptor containerModule)
            : base(containerModule, "bcms.htmlEditor", "/file/bcms-root/scripts/bcms.htmlEditor")
        {
            Links = new IActionProjection[]
                {
                };

            Globalization = new IActionProjection[]
                {
                };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ContentJavaScriptModuleDescriptor" /> class.
        /// </summary>
        /// <param name="containerModule">The container module.</param>
        public ContentJavaScriptModuleDescriptor(ModuleDescriptor containerModule)
            : base(containerModule, "bcms.content", "/file/bcms-root/scripts/bcms.content")
        {
            Links = new IActionProjection[]
                {
                };

            Globalization = new IActionProjection[]
                {
                    new JavaScriptModuleGlobalization(this, "failedLoadDialogMessage", () => RootGlobalization.Message_FailedToLoadDialog),
                };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="MediaManagerJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public MediaManagerJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.media")
        {
            Links = new IActionProjection[]
                {
                    new JavaScriptModuleLinkTo<MediaManagerController>(this, "loadSiteSettingsMediaManagerUrl", c => c.Index()),
                    new JavaScriptModuleLinkTo<ImagesController>(this, "loadImagesUrl", c => c.GetImagesList(null)),
                    new JavaScriptModuleLinkTo<FilesController>(this, "loadFilesUrl", c => c.GetFilesList(null)),
                    new JavaScriptModuleLinkTo<AudiosController>(this, "loadAudiosUrl", c => c.GetAudiosList(null)),
                    new JavaScriptModuleLinkTo<VideosController>(this, "loadVideosUrl", c => c.GetVideosList(null)),
                    new JavaScriptModuleLinkTo<ImagesController>(this, "insertImageDialogUrl", c => c.ImageInsert()),
                    new JavaScriptModuleLinkTo<FilesController>(this, "insertFileDialogUrl", c => c.FileInsert()),
                    new JavaScriptModuleLinkTo<ImagesController>(this, "deleteImageUrl", c => c.ImageDelete("{0}", "{1}")),
                    new JavaScriptModuleLinkTo<AudiosController>(this, "deleteAudioUrl", c => c.AudioDelete("{0}", "{1}")),
                    new JavaScriptModuleLinkTo<VideosController>(this, "deleteVideoUrl", c => c.VideoDelete("{0}", "{1}")),
                    new JavaScriptModuleLinkTo<FilesController>(this, "deleteFileUrl", c => c.FileDelete("{0}", "{1}")),
                    new JavaScriptModuleLinkTo<ImagesController>(this, "getImageUrl", c => c.GetImage("{0}")),
                    new JavaScriptModuleLinkTo<FilesController>(this, "downloadFileUrl", c => c.Download("{0}")),
                    new JavaScriptModuleLinkTo<FolderController>(this, "saveFolderUrl", c => c.SaveFolder(null)),
                    new JavaScriptModuleLinkTo<FolderController>(this, "deleteFolderUrl", c => c.DeleteFolder("{0}", "{1}")),
                    new JavaScriptModuleLinkTo<MediaManagerController>(this, "renameMediaUrl", c => c.RenameMedia(null))
                };

            Globalization = new IActionProjection[]
                {
                    new JavaScriptModuleGlobalization(this, "insertImageDialogTitle", () => MediaGlobalization.InsertImage_Dialog_Title),
                    new JavaScriptModuleGlobalization(this, "insertImageFailureMessageTitle", () => MediaGlobalization.InsertImage_FailureMessage_Title),
                    new JavaScriptModuleGlobalization(this, "insertImageFailureMessageMessage", () => MediaGlobalization.InsertImage_FailureMessage_Message),
                    new JavaScriptModuleGlobalization(this, "imageNotSelectedMessageMessage", () => MediaGlobalization.ImageNotSelected_MessageMessage),

                    new JavaScriptModuleGlobalization(this, "insertFileDialogTitle", () => MediaGlobalization.InsertFile_Dialog_Title),
                    new JavaScriptModuleGlobalization(this, "insertFileFailureMessageTitle", () => MediaGlobalization.InsertFile_FailureMessage_Title),
                    new JavaScriptModuleGlobalization(this, "insertFileFailureMessageMessage", () => MediaGlobalization.InsertFile_FailureMessage_Message),
                    new JavaScriptModuleGlobalization(this, "fileNotSelectedMessageMessage", () => MediaGlobalization.FileNotSelected_MessageMessage),

                    new JavaScriptModuleGlobalization(this, "deleteImageConfirmMessage", () => MediaGlobalization.DeleteImage_Confirmation_Message),
                    new JavaScriptModuleGlobalization(this, "deleteAudioConfirmMessage", () => MediaGlobalization.DeleteAudio_Confirmation_Message),
                    new JavaScriptModuleGlobalization(this, "deleteVideoConfirmMessage", () => MediaGlobalization.DeleteVideo_Confirmation_Message),
                    new JavaScriptModuleGlobalization(this, "deleteFileConfirmMessage", () => MediaGlobalization.DeleteFile_Confirmation_Message),
                    new JavaScriptModuleGlobalization(this, "deleteFolderConfirmMessage", () => MediaGlobalization.DeleteFolder_ConfirmationMessage),

                    new JavaScriptModuleGlobalization(this, "imagesTabTitle", () => MediaGlobalization.ImagesTab_Title),
                    new JavaScriptModuleGlobalization(this, "audiosTabTitle", () => MediaGlobalization.AudiosTab_Title),
                    new JavaScriptModuleGlobalization(this, "videosTabTitle", () => MediaGlobalization.VideosTab_Title),
                    new JavaScriptModuleGlobalization(this, "filesTabTitle", () => MediaGlobalization.FilesTab_Title),

                    new JavaScriptModuleGlobalization(this, "uploadImage", () => MediaGlobalization.ImagesTab_UploadImage),
                    new JavaScriptModuleGlobalization(this, "uploadAudio", () => MediaGlobalization.AudiosTab_UploadAudio),
                    new JavaScriptModuleGlobalization(this, "uploadVideo", () => MediaGlobalization.VideosTab_UploadVideo),
                    new JavaScriptModuleGlobalization(this, "uploadFile", () => MediaGlobalization.FilesTab_UploadFile)
                };
        }
        public SiteSettingsJavaScriptModuleDescriptor(ModuleDescriptor containerModule)
            : base(containerModule, "bcms.siteSettings", "/file/bcms-root/scripts/bcms.siteSettings")
        {
            Links = new IActionProjection[]
                {
                    new JavaScriptModuleLinkTo<SiteSettingsController>(this, "loadSiteSettingsUrl", c => c.Container())
                };

            Globalization = new IActionProjection[]
                {
                    new JavaScriptModuleGlobalization(this, "siteSettingsTitle", () => RootGlobalization.SiteSettings_Title),
                };
        }
        public SidemenuJavaScriptModuleDescriptor(ModuleDescriptor containerModule)
            : base(containerModule, "bcms.sidemenu", "/file/bcms-root/scripts/bcms.sidemenu")
        {
            Links = new IActionProjection[]
                {
                };

            Globalization = new IActionProjection[]
                {
                     new JavaScriptModuleGlobalization(this, "stickRightMenuTitle", () => RootGlobalization.Sidebar_Footer_Right_DragTitle),
                     new JavaScriptModuleGlobalization(this, "stickLeftMenuTitle", () => RootGlobalization.Sidebar_Footer_Left_DragTitle)
                };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="AuthenticationScriptModuleDescriptor" /> class.
        /// </summary>
        /// <param name="containerModule">The container module.</param>
        public AuthenticationScriptModuleDescriptor(ModuleDescriptor containerModule)
            : base(containerModule, "bcms.authentication", "/file/bcms-root/scripts/bcms.authentication")
        {
            Links = new IActionProjection[]
                {
                    new JavaScriptModuleLinkTo<AuthenticationController>(this, "logoutUrl", c => c.Logout())
                };

            Globalization = new IActionProjection[]
                {
                    new JavaScriptModuleGlobalization(this, "confirmLogoutMessage", () => RootGlobalization.Authentication_LogOutConfirmationMessage)
                };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="PagePropertiesJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public PagePropertiesJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.pages.properties")
        {
            Links = new IActionProjection[]
                {
                    new JavaScriptModuleLinkTo<PageController>(this, "loadEditPropertiesDialogUrl", c => c.EditPageProperties("{0}"))
                };

            Globalization = new IActionProjection[]
                {
                    new JavaScriptModuleGlobalization(this, "editPagePropertiesModalTitle", () => PagesGlobalization.EditPageProperties_Title),
                };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="SeoJavaScriptModuleDescriptor" /> class.
        /// </summary>
        /// <param name="containerModule">The container module.</param>
        public SeoJavaScriptModuleDescriptor(ModuleDescriptor containerModule)
            : base(containerModule, "bcms.pages.seo", "/file/bcms-pages/scripts/bcms.pages.seo")
        {
            Links = new IActionProjection[]
                {
                    new JavaScriptModuleLinkTo<SeoController>(this, "loadEditSeoDialogUrl", controller => controller.EditSeo("{0}"))
                };

            Globalization = new IActionProjection[]
                {
                     new JavaScriptModuleGlobalization(this, "editSeoDialogTitle", () => PagesGlobalization.EditSeo_Dialog_Title)
                };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="InlineEditorJavaScriptModuleDescriptor" /> class.
        /// </summary>
        /// <param name="containerModule">The container module.</param>
        public InlineEditorJavaScriptModuleDescriptor(ModuleDescriptor containerModule)
            : base(containerModule, "bcms.inlineEdit", "/file/bcms-root/scripts/bcms.inlineEdit")
        {
            Links = new IActionProjection[]
                {
                };

            Globalization = new IActionProjection[]
                {
                    new JavaScriptModuleGlobalization(this, "messageDeleting", () => RootGlobalization.Message_Deleting),
                    new JavaScriptModuleGlobalization(this, "messageSaving", () => RootGlobalization.Message_Saving),
                    new JavaScriptModuleGlobalization(this, "confirmDeleteMessage", () => RootGlobalization.Confirm_Delete_DefaultMessage),
                };
        }
		void RunIncotexAnalytics(StreamInfoArgs args, Model model) {
			AnalyticsVideoDescriptor videoDescr = new AnalyticsVideoDescriptor();
			ModuleDescriptor moduleDescriptor = new ModuleDescriptor(model.config, model.configDescription, model.schemes);

			ApproAnalyticsConfigView customview = new ApproAnalyticsConfigView();
			bool retres = customview.Init(activityContext.container, args, moduleDescriptor);
			if (!retres) {
				Error(new Exception("Module is in unproper state. Please delete and create new one."));
			}
			Apply = customview.Apply;

			StartConfiguring(customview);
			controlDisposable = customview;
		}
        /// <summary>
        /// Initializes a new instance of the <see cref="FileEditorJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public FileEditorJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.media.fileeditor")
        {
            Links = new IActionProjection[]
                {
                    new JavaScriptModuleLinkTo<FilesController>(this, "fileEditorDialogUrl", c => c.FileEditor("{0}")),
                };

            Globalization = new IActionProjection[]
                {
                    new JavaScriptModuleGlobalization(this, "fileEditorDialogTitle", () => MediaGlobalization.FileEditor_Dialog_Title),
                    new JavaScriptModuleGlobalization(this, "fileEditorUpdateFailureMessageTitle", () => MediaGlobalization.FileEditor_UpdateFailureMessage_Title),
                    new JavaScriptModuleGlobalization(this, "fileEditorUpdateFailureMessageMessage", () => MediaGlobalization.FileEditor_UpdateFailureMessage_Message),
                };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="RedirectsJavaScriptModuleDescriptor" /> class.
        /// </summary>
        /// <param name="containerModule">The container module.</param>
        public RedirectsJavaScriptModuleDescriptor(ModuleDescriptor containerModule)
            : base(containerModule, "bcms.pages.redirects", "/file/bcms-pages/scripts/bcms.pages.redirects")
        {
            Links = new IActionProjection[]
                {
                    new JavaScriptModuleLinkTo<RedirectController>(this, "loadSiteSettingsRedirectListUrl", c => c.Redirects(null)),
                    new JavaScriptModuleLinkTo<RedirectController>(this, "deleteRedirectUrl", c => c.DeleteRedirect(null)),
                    new JavaScriptModuleLinkTo<RedirectController>(this, "saveRedirectUrl", c => c.SaveRedirect(null))
                };

            Globalization = new IActionProjection[]
                {
                    new JavaScriptModuleGlobalization(this, "deleteRedirectMessage", () => PagesGlobalization.DeleteRedirect_Confirmation_Message)
                };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="SalesJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public SalesJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.sales")
        {
            Links = new IActionProjection[]
                {
                    new JavaScriptModuleLinkTo<ProductController>(this, "loadSiteSettingsProductsUrl", c => c.ListTemplate()),
                    new JavaScriptModuleLinkTo<ProductController>(this, "loadProductsUrl", c => c.ProductsList(null)),
                    new JavaScriptModuleLinkTo<ProductController>(this, "saveProductUrl", c => c.SaveProduct(null)),
                    new JavaScriptModuleLinkTo<ProductController>(this, "deleteProductUrl", c => c.DeleteProduct(null, null)),

                    new JavaScriptModuleLinkTo<UnitController>(this, "loadSiteSettingsUnitsUrl", c => c.ListTemplate()),
                    new JavaScriptModuleLinkTo<UnitController>(this, "loadUnitsUrl", c => c.UnitsList(null)),
                    new JavaScriptModuleLinkTo<UnitController>(this, "saveUnitUrl", c => c.SaveUnit(null)),
                    new JavaScriptModuleLinkTo<UnitController>(this, "deleteUnitUrl", c => c.DeleteUnit(null, null)),

                    new JavaScriptModuleLinkTo<BuyerController>(this, "loadSiteSettingsBuyersUrl", c => c.ListTemplate()),
                    new JavaScriptModuleLinkTo<BuyerController>(this, "loadBuyersUrl", c => c.BuyersList(null)),
                    new JavaScriptModuleLinkTo<BuyerController>(this, "saveBuyerUrl", c => c.SaveBuyer(null)),
                    new JavaScriptModuleLinkTo<BuyerController>(this, "deleteBuyerUrl", c => c.DeleteBuyer(null, null)),

                    new JavaScriptModuleLinkTo<SupplierController>(this, "loadSiteSettingsSuppliersUrl", c => c.ListTemplate()),
                    new JavaScriptModuleLinkTo<SupplierController>(this, "loadSuppliersUrl", c => c.SuppliersList(null)),
                    new JavaScriptModuleLinkTo<SupplierController>(this, "saveSupplierUrl", c => c.SaveSupplier(null)),
                    new JavaScriptModuleLinkTo<SupplierController>(this, "deleteSupplierUrl", c => c.DeleteSupplier(null, null)),

                    new JavaScriptModuleLinkTo<PurchaseController>(this, "loadSiteSettingsPurchasesUrl", c => c.ListTemplate()),
                    new JavaScriptModuleLinkTo<PurchaseController>(this, "createPurchaseUrl", c => c.CreatePurchase()),
                    new JavaScriptModuleLinkTo<PurchaseController>(this, "editPurchaseUrl", c => c.EditPurchase("{0}")),
                    new JavaScriptModuleLinkTo<PurchaseController>(this, "deletePurchaseUrl", c => c.DeletePurchase(null, null)),

                    new JavaScriptModuleLinkTo<SupplierController>(this, "suggestSupplierUrl", c => c.SuggestSupplier(null)),
                };

            Globalization = new IActionProjection[]
                {
                    new JavaScriptModuleGlobalization(this, "deleteProductDialogTitle", () => SalesGlobalization.DeleteProduct_Confirmation_Message),
                    new JavaScriptModuleGlobalization(this, "deleteUnitDialogTitle", () => SalesGlobalization.DeleteUnit_Confirmation_Message),
                    new JavaScriptModuleGlobalization(this, "deleteBuyerDialogTitle", () => SalesGlobalization.DeleteBuyer_Confirmation_Message),
                    new JavaScriptModuleGlobalization(this, "deleteSupplierDialogTitle", () => SalesGlobalization.DeleteSupplier_Confirmation_Message),
                    new JavaScriptModuleGlobalization(this, "deletePurchaseDialogTitle", () => SalesGlobalization.DeletePurchase_Confirmation_Message),

                    new JavaScriptModuleGlobalization(this, "buyersTabTitle", () => SalesGlobalization.SiteSettings_Buyers_Title),
                    new JavaScriptModuleGlobalization(this, "suppliersTabTitle", () => SalesGlobalization.SiteSettings_Suppliers_Title),

                    new JavaScriptModuleGlobalization(this, "editPurchaseTitle", () => SalesGlobalization.EditPurchase_Dialog_Title),
                    new JavaScriptModuleGlobalization(this, "createNewPurchaseTitle", () => SalesGlobalization.CreatePurchase_Dialog_Title),
                };
        }
예제 #31
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WidgetsJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public PagesContentJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.pages.content")
        {
            Links = new IActionProjection[]
            {
                new JavaScriptModuleLinkTo <ContentController>(this, "loadWidgetsUrl", controller => controller.Widgets("{0}")),
                new JavaScriptModuleLinkTo <ContentController>(this, "loadAddNewHtmlContentDialogUrl", controller => controller.AddPageHtmlContent("{0}", "{1}", "{2}")),
                new JavaScriptModuleLinkTo <ContentController>(this, "insertContentToPageUrl", controller => controller.InsertContentToPage("{0}", "{1}", "{2}", "{3}", "{4}")),
                new JavaScriptModuleLinkTo <ContentController>(this, "deletePageContentUrl", controller => controller.DeletePageContent("{0}", "{1}", "{2}", "{3}")),
                new JavaScriptModuleLinkTo <ContentController>(this, "editPageContentUrl", controller => controller.EditPageHtmlContent("{0}")),
                new JavaScriptModuleLinkTo <ContentController>(this, "sortPageContentUrl", controller => controller.SortPageContent(null)),
                new JavaScriptModuleLinkTo <WidgetsController>(this, "selectWidgetUrl", controller => controller.SelectWidget(null))
            };

            Globalization = new IActionProjection[]
            {
                new JavaScriptModuleGlobalization(this, "addNewContentDialogTitle", () => PagesGlobalization.AddNewContent_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "editContentDialogTitle", () => PagesGlobalization.EditContent_Dialog_Title),

                new JavaScriptModuleGlobalization(this, "insertingWidgetInfoMessage", () => PagesGlobalization.AddPageContent_InsertingWidget_Information_Message),
                new JavaScriptModuleGlobalization(this, "insertingWidgetInfoHeader", () => PagesGlobalization.AddPageContent_InsertingWidget_Information_Header),
                new JavaScriptModuleGlobalization(this, "insertingWidgetErrorMessage", () => PagesGlobalization.AddPageContent_InsertingWidget_Information_Message),

                new JavaScriptModuleGlobalization(this, "sortingPageContentMessage", () => PagesGlobalization.SortPageContent_Info_Message),

                new JavaScriptModuleGlobalization(this, "deleteContentConfirmationTitle", () => PagesGlobalization.DeletePageContent_ConfirmationTitle),
                new JavaScriptModuleGlobalization(this, "deleteContentConfirmationMessage", () => PagesGlobalization.DeletePageContent_ConfirmationMessage),
                new JavaScriptModuleGlobalization(this, "deleteContentSuccessMessageTitle", () => PagesGlobalization.DeletePageContent_SuccessMessage_Title),
                new JavaScriptModuleGlobalization(this, "deleteContentSuccessMessageMessage", () => PagesGlobalization.DeletePageContent_SuccessMessage_Message),
                new JavaScriptModuleGlobalization(this, "deleteContentFailureMessageTitle", () => PagesGlobalization.DeletePageContent_FailureMessage_Title),
                new JavaScriptModuleGlobalization(this, "deleteContentFailureMessageMessage", () => PagesGlobalization.DeletePageContent_FailureMessage_Message),
                new JavaScriptModuleGlobalization(this, "sortPageContentFailureMessageTitle", () => PagesGlobalization.SortPageContent_FailureMessage_Title),
                new JavaScriptModuleGlobalization(this, "sortPageContentFailureMessageMessage", () => PagesGlobalization.SortPageContent_FailureMessage_Message),
                new JavaScriptModuleGlobalization(this, "datePickerTooltipTitle", () => RootGlobalization.Date_Picker_Tooltip_Title),

                new JavaScriptModuleGlobalization(this, "errorTitle", () => RootGlobalization.Alert_ErrorTitle),
                new JavaScriptModuleGlobalization(this, "selectWidgetDialogTitle", () => PagesGlobalization.Widgets_SelectWidget_DialogTitle)
            };
        }
        public void TestInternalReferencesOutsideModuleAreNotAllowed()
        {
            var content = "import * as Foo from \"./DoesNotExist.dsc\";";

            var parser            = new Parser();
            var sourceFile        = parser.ParseSourceFileContent(m_fakeMainFile.ToString(PathTable), content);
            var referenceResolver = new ModuleReferenceResolver(PathTable);

            var module = ModuleDefinition.CreateModuleDefinitionWithExplicitReferencesWithEmptyQualifierSpace(
                ModuleDescriptor.CreateForTesting("Test"),
                m_fakeMainFile,
                m_fakeModuleConfigFile,
                new[] { m_fakeMainFile },
                PathTable);

            Failure[] failures;
            var       result = referenceResolver.TryUpdateAllInternalModuleReferences(sourceFile, module, out failures);

            XAssert.IsFalse(result);
            XAssert.AreEqual(1, failures.Length);
            XAssert.IsTrue(failures[0] is SpecNotUnderAModuleFailure);
        }
예제 #33
0
        private async Task <Possible <NinjaGraphWithModuleDefinition> > TryComputeBuildGraphAsync()
        {
            Possible <NinjaGraphResult> maybeGraph = await ComputeBuildGraphAsync();

            var result         = maybeGraph.Result;
            var specFileConfig = SpecFile.ChangeExtension(m_context.PathTable, PathAtom.Create(m_context.StringTable, ".ninja.dsc")); // It needs to be a .dsc for the parsing to work

            var moduleDescriptor = ModuleDescriptor.CreateWithUniqueId(m_context.StringTable, m_resolverSettings.ModuleName, this);
            var moduleDefinition = ModuleDefinition.CreateModuleDefinitionWithImplicitReferences(
                moduleDescriptor,
                ProjectRoot,
                m_resolverSettings.File,
                new List <AbsolutePath>()
            {
                specFileConfig
            },
                allowedModuleDependencies: null, // no module policies
                cyclicalFriendModules: null,     // no allowlist of cycles
                mounts: null);

            return(new NinjaGraphWithModuleDefinition(result.Graph, moduleDefinition));
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="UserJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public UserJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.user")
        {
            Links = new IActionProjection[]
            {
                new JavaScriptModuleLinkTo <UserController>(this, "loadSiteSettingsUsersUrl", c => c.Index(null)),
                new JavaScriptModuleLinkTo <UserController>(this, "loadEditUserUrl", c => c.EditUser("{0}")),
                new JavaScriptModuleLinkTo <UserController>(this, "deleteUserUrl", c => c.DeleteUser("{0}", "{1}")),

                /*new JavaScriptModuleLinkTo<RoleController>(this, "loadEditRoleUrl", c => c.EditRoleView("{0}")),
                 * new JavaScriptModuleLinkTo<RoleController>(this, "loadSiteSettingsRoleUrl", c => c.RolesListView(null)) */
            };

            Globalization = new IActionProjection[]
            {
                new JavaScriptModuleGlobalization(this, "usersListTabTitle", () => UsersGlobalization.SiteSettings_Users_ListTab_Title),
                new JavaScriptModuleGlobalization(this, "usersAddNewTitle", () => UsersGlobalization.EditUser_Window_Title),
                new JavaScriptModuleGlobalization(this, "rolesListTabTitle", () => UsersGlobalization.SiteSettings_Roles_ListTab_Title),
                new JavaScriptModuleGlobalization(this, "rolesAddNewTitle", () => UsersGlobalization.Role_AddNeww_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "deleteUserConfirmMessage", () => UsersGlobalization.DeleteUser_Confirmation_Message)
            };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="BlogJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public BlogJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.blog")
        {
            Links = new IActionProjection[]
            {
                new JavaScriptModuleLinkTo <BlogController>(this, "loadSiteSettingsBlogsUrl", c => c.Index(null)),
                new JavaScriptModuleLinkTo <BlogController>(this, "loadCreateNewPostDialogUrl", c => c.CreateBlogPost("{0}")),
                new JavaScriptModuleLinkTo <BlogController>(this, "loadEditPostDialogUrl", c => c.EditBlogPost("{0}")),
                new JavaScriptModuleLinkTo <AuthorController>(this, "loadAuthorsTemplateUrl", c => c.ListTemplate()),
                new JavaScriptModuleLinkTo <AuthorController>(this, "loadAuthorsUrl", c => c.AuthorsList(null)),
                new JavaScriptModuleLinkTo <AuthorController>(this, "deleteAuthorsUrl", c => c.DeleteAuthor(null, null)),
                new JavaScriptModuleLinkTo <AuthorController>(this, "saveAuthorsUrl", c => c.SaveAuthor(null)),
                new JavaScriptModuleLinkTo <OptionController>(this, "loadTemplatesUrl", c => c.Templates()),
                new JavaScriptModuleLinkTo <OptionController>(this, "saveDefaultTemplateUrl", c => c.SaveDefaultTemplate("{0}", "{1}")),
                new JavaScriptModuleLinkTo <BlogController>(this, "convertStringToSlugUrl", c => c.ConvertStringToSlug("{0}", "{1}")),
                new JavaScriptModuleLinkTo <BlogMLController>(this, "uploadBlogPostsImportFileUrl", c => c.UploadImportFile(null, null)),
                new JavaScriptModuleLinkTo <BlogMLController>(this, "startImportUrl", c => c.StartImport(null)),
                new JavaScriptModuleLinkTo <BlogMLController>(this, "deleteUploadedFileUrl", c => c.DeleteUploadedFile("{0}")),
                new JavaScriptModuleLinkTo <BlogMLController>(this, "exportBlogPostsUrl", c => c.Export(null)),
            };

            Globalization = new IActionProjection[]
            {
                new JavaScriptModuleGlobalization(this, "createNewPostDialogTitle", () => BlogGlobalization.CreateNewPost_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "editPostDialogTitle", () => BlogGlobalization.EditPost_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "deleteBlogDialogTitle", () => BlogGlobalization.DeletePost_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "deleteAuthorDialogTitle", () => BlogGlobalization.DeleteAuthor_Confirmation_Message),
                new JavaScriptModuleGlobalization(this, "blogPostsTabTitle", () => BlogGlobalization.SiteSettings_Blogs_PostsTab_Title),
                new JavaScriptModuleGlobalization(this, "authorsTabTitle", () => BlogGlobalization.SiteSettings_Blogs_AuthorsTab_Title),
                new JavaScriptModuleGlobalization(this, "templatesTabTitle", () => BlogGlobalization.SiteSettings_Blogs_TemplatesTab_Title),
                new JavaScriptModuleGlobalization(this, "datePickerTooltipTitle", () => BlogGlobalization.Date_Picker_Tooltip_Title),
                new JavaScriptModuleGlobalization(this, "importBlogPostsTitle", () => BlogGlobalization.ImportBlogPosts_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "pleaseSelectAFile", () => BlogGlobalization.ImportBlogPosts_PleaseSelectAFile_message),
                new JavaScriptModuleGlobalization(this, "uploadButtonTitle", () => BlogGlobalization.ImportBlogPosts_UploadButton_Title),
                new JavaScriptModuleGlobalization(this, "importButtonTitle", () => BlogGlobalization.ImportBlogPosts_ImportButton_Title),
                new JavaScriptModuleGlobalization(this, "closeButtonTitle", () => RootGlobalization.Button_Close),
                new JavaScriptModuleGlobalization(this, "noBlogPostsSelectedToImport", () => BlogGlobalization.ImportBlogPosts_NoBlogPostSelected_Message)
            };
        }
        public void TestUpdateInternalModuleReferences(string internalReference)
        {
            var content = "import * as Foo from \"" + internalReference + "\";";

            // We create a module with a fake main file at the root and one project under SubDir
            var projectDir = AbsolutePath.Create(PathTable, A("c", "SubDir", "project.dsc"));

            var parser            = new Parser();
            var sourceFile        = parser.ParseSourceFileContent(projectDir.ToString(PathTable), content);
            var referenceResolver = new ModuleReferenceResolver(PathTable);

            var module =
                ModuleDefinition.CreateModuleDefinitionWithExplicitReferencesWithEmptyQualifierSpace(
                    ModuleDescriptor.CreateForTesting("Test"), m_fakeMainFile, m_fakeModuleConfigFile, new[] { m_fakeMainFile, projectDir },
                    PathTable);

            Failure[] failures;
            var       result = referenceResolver.TryUpdateAllInternalModuleReferences(sourceFile, module, out failures);

            XAssert.IsTrue(result);
            XAssert.IsTrue(sourceFile.ResolvedModules.ContainsKey(internalReference));
        }
예제 #37
0
        public void Impres_ProcedureByOrdinal()
        {
            var proj = new Project
            {
                MetadataFiles =
                {
                    new MetadataFile
                    {
                        ModuleName = "foo"
                    }
                },
                Programs =
                {
                    program
                }
            };

            var module = new ModuleDescriptor("foo")
            {
                ServicesByOrdinal =
                {
                    {
                        9,
                        new SystemService
                        {
                            Name      = "bar",
                            Signature = new FunctionType()
                        }
                    }
                }
            };

            program.EnvironmentMetadata.Modules.Add(module.ModuleName, module);

            var impres = new ImportResolver(proj, program, new FakeDecompilerEventListener());
            var ep     = impres.ResolveProcedure("foo", 9, platform.Object);

            Assert.AreEqual("bar", ep.Name);
        }
예제 #38
0
        public async Task ClosureContainsAllElements(string importOrExport)
        {
            var module1 = ModuleDescriptor.CreateForTesting("Module1");
            var module2 = ModuleDescriptor.CreateForTesting("Module2");
            var module3 = ModuleDescriptor.CreateForTesting("Module3");

            var moduleWithContent = CreateEmptyContent()
                                    .AddContent(module1, importOrExport + " * from \"Module2\";")
                                    .AddContent(module2, importOrExport + " * from \"Module3\";")
                                    .AddContent(module3, "return 3;")
                                    .AddContent("Module4", "return 4;");

            var workspaceProvider = CreateWorkspaceProviderFromContent(false, moduleWithContent);
            var workspace         = await workspaceProvider.CreateWorkspaceFromModuleAsync(module1);

            var modules = AssertSuccessAndGetAllModules(workspace);

            // We should have module 1, 2 and 3. Not 4.
            XAssert.AreEqual(3, modules.Count);
            var names = modules.Select(module => module.Descriptor);

            XAssert.AreEqual(3, names.Intersect(new[] { module1, module2, module3 }).Count());
        }
예제 #39
0
        public async Task AllSpecsAreAddedToTheModuleWhenCancelOnFirstFailureIsDisabled()
        {
            var module1 = ModuleDescriptor.CreateForTesting("Module1");

            var moduleWithContent = CreateEmptyContent()
                                    .AddContent(
                module1,
                "This spec is not DScript;",
                "This spec is not DScript either;");

            var queue = CreateParsingQueueFromContent(new[] { moduleWithContent });

            var modules = new[]
            {
                GetModuleDefinitionFromContent(module1, moduleWithContent),
            };

            var parsingResult = await queue.ProcessAsync(modules);

            // There should be two specs and two failures
            XAssert.AreEqual(2, parsingResult.SpecCount);
            XAssert.AreEqual(2, parsingResult.Failures.Count);
        }
예제 #40
0
        internal void UpdateDataForDownloadData(DownloadData downloadData, FrontEndContext context = null)
        {
            context = context ?? m_context;
            Contract.Assert(context != null);

            var name = downloadData.Settings.ModuleName;

            var moduleId   = ModuleId.Create(context.StringTable, name);
            var descriptor = new ModuleDescriptor(moduleId, name, name, string.Empty, Kind, Name);

            var definition = ModuleDefinition.CreateModuleDefinitionWithImplicitReferences(
                descriptor,
                downloadData.ModuleRoot,
                downloadData.ModuleConfigFile,
                new[] { downloadData.ModuleSpecFile },
                allowedModuleDependencies: null,
                cyclicalFriendModules: null); // A Download package does not have any module dependency restrictions nor whitelists cycles

            m_descriptors.Add(descriptor);
            m_descriptorsByName.Add(name, descriptor);
            m_descriptorsBySpecPath.Add(downloadData.ModuleSpecFile, descriptor);
            m_definitions.Add(descriptor, definition);
        }
예제 #41
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ImageEditorJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public ImageEditorJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.media.imageeditor")
        {
            Links = new IActionProjection[]
            {
                new JavaScriptModuleLinkTo <ImagesController>(this, "imageEditorDialogUrl", c => c.ImageEditor("{0}")),
                new JavaScriptModuleLinkTo <ImagesController>(this, "imageEditorInsertDialogUrl", c => c.ImageEditorInsert("{0}"))
            };

            Globalization = new IActionProjection[]
            {
                new JavaScriptModuleGlobalization(this, "imageEditorDialogTitle", () => MediaGlobalization.ImageEditor_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "imageEditorInsertDialogTitle", () => MediaGlobalization.ImageEditor_InsertDialog_Title),
                new JavaScriptModuleGlobalization(this, "imageEditorInsertDialogAcceptButton", () => MediaGlobalization.ImageEditor_InsertDialog_AcceptButton),
                new JavaScriptModuleGlobalization(this, "imageEditorUpdateFailureMessageTitle", () => MediaGlobalization.ImageEditor_UpdateFailureMessage_Title),
                new JavaScriptModuleGlobalization(this, "imageEditorUpdateFailureMessageMessage", () => MediaGlobalization.ImageEditor_UpdateFailureMessage_Message),
                new JavaScriptModuleGlobalization(this, "imageEditorHasChangesMessage", () => MediaGlobalization.ImageEditor_HasChanges_Message),
                new JavaScriptModuleGlobalization(this, "saveButtonTitle", () => MediaGlobalization.ImageEditor_Save_Title),
                new JavaScriptModuleGlobalization(this, "saveAsNewVersionButtonTitle", () => MediaGlobalization.ImageEditor_SaveAsNewVersion_Title),
                new JavaScriptModuleGlobalization(this, "saveWithOverrideButtonTitle", () => MediaGlobalization.ImageEditor_SaveWithOverride_Title),
                new JavaScriptModuleGlobalization(this, "closeButtonTitle", () => RootGlobalization.Button_Close)
            };
        }
예제 #42
0
파일: MockFactory.cs 프로젝트: nemerle/reko
        public void Given_UserDefinedMetafile(
            string moduleName,
            Dictionary <string, DataType> types,
            Dictionary <string, FunctionType> signatures,
            Dictionary <string, DataType> globals,
            ModuleDescriptor module)
        {
            if (types == null)
            {
                types = new Dictionary <string, DataType>();
            }
            if (signatures == null)
            {
                signatures = new Dictionary <string, FunctionType>();
            }
            if (globals == null)
            {
                globals = new Dictionary <string, DataType>();
            }
            var loaderMetadata = new TypeLibrary(
                false,
                types,
                signatures,
                new Dictionary <string, ProcedureCharacteristics>(),
                globals);

            if (module != null)
            {
                loaderMetadata.Modules.Add(moduleName, module);
            }

            var loader = CreateLoader();

            var metafileName = moduleName + ".xml";

            CreateLoadMetadataStub(metafileName, mockPlatform.Object, loaderMetadata);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="PagesJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public PagesJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.pages")
        {
            Links = new IActionProjection[]
            {
                new JavaScriptModuleLinkTo <PageController>(this, "loadAddNewPageDialogUrl", c => c.AddNewPage("{0}")),
                new JavaScriptModuleLinkTo <PageController>(this, "loadSiteSettingsPageListUrl", c => c.Pages(null)),
                new JavaScriptModuleLinkTo <PageController>(this, "deletePageConfirmationUrl", c => c.DeletePageConfirmation("{0}")),
                new JavaScriptModuleLinkTo <PageController>(this, "changePublishStatusUrl", c => c.ChangePublishStatus(null)),
                new JavaScriptModuleLinkTo <PageController>(this, "clonePageDialogUrl", c => c.ClonePage("{0}")),
                new JavaScriptModuleLinkTo <PageController>(this, "convertStringToSlugUrl", c => c.ConvertStringToSlug("{0}", "{1}", "{2}"))
            };

            Globalization = new IActionProjection[]
            {
                new JavaScriptModuleGlobalization(this, "addNewPageDialogTitle", () => PagesGlobalization.AddNewPage_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "deletePageDialogTitle", () => PagesGlobalization.DeletePage_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "pageDeletedMessage", () => PagesGlobalization.DeletePage_SuccessMessage_Message),
                new JavaScriptModuleGlobalization(this, "pageDeletedTitle", () => PagesGlobalization.DeletePage_SuccessMessage_Title),
                new JavaScriptModuleGlobalization(this, "clonePageDialogTitle", () => PagesGlobalization.ClonePage_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "cloneButtonTitle", () => PagesGlobalization.ClonePage_Dialog_CloneButton),
                new JavaScriptModuleGlobalization(this, "deleteButtonTitle", () => PagesGlobalization.DeletePage_Dialog_DeleteButton)
            };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="CategoriesJavaScriptModuleDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public CategoriesJavaScriptModuleDescriptor(ModuleDescriptor module)
            : base(module, "bcms.categories")
        {
            Links = new IActionProjection[]
            {
                new JavaScriptModuleLinkTo <CategoryController>(this, "loadSiteSettingsCategoryTreesListUrl", c => c.CategoryTrees(null)),
                new JavaScriptModuleLinkTo <CategoryController>(this, "categoryTreeEditDialogUrl", c => c.EditCategoryTree("{0}")),
                new JavaScriptModuleLinkTo <CategoryController>(this, "saveCategoryTreeUrl", c => c.SaveCategoryTree(null)),
                new JavaScriptModuleLinkTo <CategoryController>(this, "deleteCategoryTreeUrl", c => c.DeleteCategoryTree("{0}", "{1}")),
                new JavaScriptModuleLinkTo <CategoryController>(this, "categoriesSuggestionServiceUrl", c => c.SuggestCategories(null))
            };

            Globalization = new IActionProjection[]
            {
                new JavaScriptModuleGlobalization(this, "categoryTreeCreatorDialogTitle", () => RootGlobalization.CategoryTree_CreatorDialog_Title),
                new JavaScriptModuleGlobalization(this, "categoryTreeEditorDialogTitle", () => RootGlobalization.CategoryTree_EditorDialog_Title),
                new JavaScriptModuleGlobalization(this, "nodeOkButton", () => RootGlobalization.Button_Ok),
                new JavaScriptModuleGlobalization(this, "placeNodeHere", () => RootGlobalization.CategoryTree_PlaceLinkHere_Message),
                new JavaScriptModuleGlobalization(this, "categoryTreeIsEmpty", () => RootGlobalization.CategoryTree_TreeIsEmpty_Message),
                new JavaScriptModuleGlobalization(this, "deleteCategoryNodeConfirmationMessage", () => RootGlobalization.CategoryTree_DeleteNode_Confirmation_Message),
                new JavaScriptModuleGlobalization(this, "someCategoryNodesAreInEditingState", () => RootGlobalization.CategoryTree_SomeNodesAreInEditingState),
                new JavaScriptModuleGlobalization(this, "categoryTreeDeleteConfirmMessage", () => RootGlobalization.CategoryTree_Delete_Confirmation_Message),
            };
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="SitemapJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public SitemapJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.pages.sitemap")
        {
            Links = new IActionProjection[]
            {
                new JavaScriptModuleLinkTo <SitemapController>(this, "loadSiteSettingsSitemapUrl", c => c.Index(null)),
                new JavaScriptModuleLinkTo <SitemapController>(this, "saveSitemapUrl", c => c.SaveSitemap(null)),
                new JavaScriptModuleLinkTo <SitemapController>(this, "saveSitemapNodeUrl", c => c.SaveSitemapNode(null)),
                new JavaScriptModuleLinkTo <SitemapController>(this, "deleteSitemapNodeUrl", c => c.DeleteSitemapNode(null)),
                new JavaScriptModuleLinkTo <SitemapController>(this, "sitemapEditDialogUrl", c => c.EditSitemap()),
                new JavaScriptModuleLinkTo <SitemapController>(this, "sitemapAddNewPageDialogUrl", c => c.AddNewPage())
            };

            Globalization = new IActionProjection[]
            {
                new JavaScriptModuleGlobalization(this, "sitemapEditorDialogTitle", () => NavigationGlobalization.Sitemap_EditorDialog_Title),
                new JavaScriptModuleGlobalization(this, "sitemapEditorDialogCustomLinkTitle", () => NavigationGlobalization.Sitemap_EditorDialog_CustomLinkTitle),
                new JavaScriptModuleGlobalization(this, "sitemapAddNewPageDialogTitle", () => NavigationGlobalization.Sitemap_AddNewPageDialog_Title),
                new JavaScriptModuleGlobalization(this, "sitemapDeleteNodeConfirmationMessage", () => NavigationGlobalization.Sitemap_DeleteNode_Confirmation_Message),
                new JavaScriptModuleGlobalization(this, "sitemapSomeNodesAreInEditingState", () => NavigationGlobalization.Sitemap_EditDialog_SomeNodesAreInEditingState),
                new JavaScriptModuleGlobalization(this, "sitemapNodeSaveButton", () => RootGlobalization.Button_Save),
                new JavaScriptModuleGlobalization(this, "sitemapNodeOkButton", () => RootGlobalization.Button_Ok)
            };
        }
예제 #46
0
        private void ParseModuleAttributes(ModuleDescriptor module, XElement moduleElement)
        {
            module.Name = moduleElement.Attribute(XName.Get("name"))?.Value ?? String.Empty;

            if (module.Name.IsNullOrWhiteSpace())
            {
                throw new SchubertException($@"读取 XML 模块配置文件发生错误, module 元素必须制定 name 属性。");
            }
            module.RootNamespce         = moduleElement.Attribute(XName.Get("Namespace"))?.Value ?? null;
            module.Author               = moduleElement.Attribute(XName.Get("author"))?.Value ?? "unknown";
            module.Version              = moduleElement.Attribute(XName.Get("version"))?.Value ?? "unknown";
            module.IncludeUserInterface = Boolean.Parse(moduleElement.Attribute(XName.Get("includeUserInterface"))?.Value ?? "true");
            module.Description          = this.GetElementDescription(moduleElement);

            var versionElement = moduleElement.Element(XName.Get("supportVersions"));

            if (versionElement != null)
            {
                module.SupportVersions = versionElement.Elements(XName.Get("versions")).Select(e => e.Value).ToArray();
            }

            module.Dependencies = (moduleElement.Element(XName.Get("dependencies"))?.Value ?? String.Empty)
                                  .Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries) ?? Enumerable.Empty <String>();
        }
예제 #47
0
        /// <summary>
        /// Initializes a new instance of the <see cref="WidgetsJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public TemplatesJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.pages.template")
        {
            Links = new IActionProjection[]
            {
                new JavaScriptModuleLinkTo <TemplatesController>(this, "loadSiteSettingsTemplateListUrl", controller => controller.Templates(null)),

                new JavaScriptModuleLinkTo <TemplatesController>(this, "loadRegisterTemplateDialogUrl", controller => controller.RegisterTemplate()),
                new JavaScriptModuleLinkTo <TemplatesController>(this, "loadEditTemplateDialogUrl", controller => controller.EditTemplate("{0}")),
                new JavaScriptModuleLinkTo <TemplatesController>(this, "deleteTemplateUrl", controller => controller.DeleteTemplate("{0}", "{1}")),
                new JavaScriptModuleLinkTo <ContentController>(this, "loadTemplateRegionDialogUrl", controller => controller.PageContentOptions("{0}"))
            };

            Globalization = new IActionProjection[]
            {
                new JavaScriptModuleGlobalization(this, "createTemplateDialogTitle", () => PagesGlobalization.CreatTemplate_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "editTemplateDialogTitle", () => PagesGlobalization.EditTemplate_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "editTemplateRegionTitle", () => PagesGlobalization.SiteSettings_TemplatesMenuItem),
                new JavaScriptModuleGlobalization(this, "deleteTemplateConfirmMessage", () => PagesGlobalization.SiteSettings_Template_DeleteCategoryMessage),
                new JavaScriptModuleGlobalization(this, "deleteRegionConfirmMessage", () => PagesGlobalization.DeleteRegion_Confirmation_Message),
                new JavaScriptModuleGlobalization(this, "previewImageNotFoundMessage", () => PagesGlobalization.EditTemplate_PreviewImageNotFound_Message),
                new JavaScriptModuleGlobalization(this, "deletingMessage", () => RootGlobalization.Message_Deleting)
            };
        }
예제 #48
0
 private ParsedModule ConfigurationModule()
 {
     return(CreateEmptyParsedModule(ModuleDescriptor.CreateForTesting(Names.ConfigModuleName)));
 }
예제 #49
0
 private ParsedModule Prelude()
 {
     return(CreateEmptyParsedModule(ModuleDescriptor.CreateForTesting("Sdk.Prelude")));
 }
예제 #50
0
        public void TargetWorkspaceHasFullModulesAndPartialModulesBasedOnAFilter()
        {
            // Arrange
            // Base module. Root spec
            var baseModule            = ModuleDescriptor.CreateForTesting("MyBaseModule");
            var baseModuleSourceFile  = SourceFile(baseSpec);
            var baseModuleSourceFile2 = SourceFile(baseSpec2);

            // MyModule: depends on a spec from the base module
            var moduleDescriptor = ModuleDescriptor.CreateForTesting("MyModule");
            var mySpecPath       = myModule;
            var moduleSourceFile = SourceFile(mySpecPath);

            var moduleSourceFile2 = SourceFile(myModule2);

            // MyDerivedModule: depends on MyModule spec
            var derivedDescriptor   = ModuleDescriptor.CreateForTesting("MyDerivedModule");
            var myDerivedSourceFile = SourceFile(myDerivedModule);

            var workspace = CreateWorkspace(
                CreateEmptyParsedModule(moduleDescriptor, moduleSourceFile, moduleSourceFile2),
                CreateEmptyParsedModule(baseModule, baseModuleSourceFile, baseModuleSourceFile2),
                CreateEmptyParsedModule(derivedDescriptor, myDerivedSourceFile));

            AddUpStreamDependency(workspace, moduleSourceFile, baseSpec);
            AddUpStreamDependency(workspace, myDerivedSourceFile, mySpecPath);

            // Filter takes base module and one spec from the derived one
            var filter = new EvaluationFilter(
                m_symbolTable,
                m_pathTable,
                valueNamesToResolve: CollectionUtilities.EmptyArray <FullSymbol>(),
                valueDefinitionRootsToResolve: new List <AbsolutePath>()
            {
                AbsolutePath.Create(m_pathTable, mySpecPath)
            },
                modulesToResolver: new List <StringId>()
            {
                StringId.Create(StringTable, "MyBaseModule")
            });

            // Act
            FilterWorkspace(workspace, filter);

            // Assert
            var moduleFromFilteredWorksapce = workspace.SpecModules.FirstOrDefault(m => m.Descriptor.Name == "MyModule");

            Assert.NotNull(moduleFromFilteredWorksapce);

            // MyModule in filtered workspace has just one spec
            Assert.Equal(moduleFromFilteredWorksapce.Specs.Count, 1);
            Assert.Equal(moduleFromFilteredWorksapce.Specs.First().Value, moduleSourceFile);

            // Filtered workspace has the base module as well, because there is a dependency between MyModule and BaseModule
            var baseModuleFromFilteredWorkspace = workspace.SpecModules.FirstOrDefault(m => m.Descriptor.Name == "MyBaseModule");

            Assert.NotNull(baseModuleFromFilteredWorkspace);

            // Both specs from the base module shoudl be presented.
            Assert.Equal(baseModuleFromFilteredWorkspace.Specs.Count, 2);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="MediaManagerJsModuleIncludeDescriptor" /> class.
        /// </summary>
        /// <param name="module">The container module.</param>
        public MediaManagerJsModuleIncludeDescriptor(ModuleDescriptor module)
            : base(module, "bcms.media")
        {
            Links = new IActionProjection[]
            {
                new JavaScriptModuleLinkTo <MediaManagerController>(this, "loadSiteSettingsMediaManagerUrl", c => c.Index()),
                new JavaScriptModuleLinkTo <ImagesController>(this, "loadImagesUrl", c => c.GetImagesList(null)),
                new JavaScriptModuleLinkTo <FilesController>(this, "loadFilesUrl", c => c.GetFilesList(null)),
                new JavaScriptModuleLinkTo <AudiosController>(this, "loadAudiosUrl", c => c.GetAudiosList(null)),
                new JavaScriptModuleLinkTo <VideosController>(this, "loadVideosUrl", c => c.GetVideosList(null)),
                new JavaScriptModuleLinkTo <ImagesController>(this, "insertImageDialogUrl", c => c.ImageInsert()),
                new JavaScriptModuleLinkTo <FilesController>(this, "insertFileDialogUrl", c => c.FileInsert()),
                new JavaScriptModuleLinkTo <ImagesController>(this, "deleteImageUrl", c => c.ImageDelete("{0}", "{1}")),
                new JavaScriptModuleLinkTo <AudiosController>(this, "deleteAudioUrl", c => c.AudioDelete("{0}", "{1}")),
                new JavaScriptModuleLinkTo <VideosController>(this, "deleteVideoUrl", c => c.VideoDelete("{0}", "{1}")),
                new JavaScriptModuleLinkTo <FilesController>(this, "deleteFileUrl", c => c.FileDelete("{0}", "{1}")),
                new JavaScriptModuleLinkTo <ImagesController>(this, "getImageUrl", c => c.GetImage("{0}")),
                new JavaScriptModuleLinkTo <FilesController>(this, "downloadFileUrl", c => c.Download("{0}")),
                new JavaScriptModuleLinkTo <FilesController>(this, "getFileUrl", c => c.Download("{0}")),
                new JavaScriptModuleLinkTo <FolderController>(this, "saveFolderUrl", c => c.SaveFolder(null)),
                new JavaScriptModuleLinkTo <FolderController>(this, "deleteFolderUrl", c => c.DeleteFolder("{0}", "{1}")),
                new JavaScriptModuleLinkTo <MediaManagerController>(this, "renameMediaUrl", c => c.RenameMedia(null)),
                new JavaScriptModuleLinkTo <MediaManagerController>(this, "archiveMediaUrl", c => c.ArchiveMedia("{0}", "{1}")),
                new JavaScriptModuleLinkTo <MediaManagerController>(this, "unarchiveMediaUrl", c => c.UnarchiveMedia("{0}", "{1}")),
            };

            Globalization = new IActionProjection[]
            {
                new JavaScriptModuleGlobalization(this, "insertImageDialogTitle", () => MediaGlobalization.InsertImage_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "insertImageFailureMessageTitle", () => MediaGlobalization.InsertImage_FailureMessage_Title),
                new JavaScriptModuleGlobalization(this, "insertImageFailureMessageMessage", () => MediaGlobalization.InsertImage_FailureMessage_Message),
                new JavaScriptModuleGlobalization(this, "imageNotSelectedMessageMessage", () => MediaGlobalization.ImageNotSelected_MessageMessage),

                new JavaScriptModuleGlobalization(this, "insertFileDialogTitle", () => MediaGlobalization.InsertFile_Dialog_Title),
                new JavaScriptModuleGlobalization(this, "insertFileFailureMessageTitle", () => MediaGlobalization.InsertFile_FailureMessage_Title),
                new JavaScriptModuleGlobalization(this, "insertFileFailureMessageMessage", () => MediaGlobalization.InsertFile_FailureMessage_Message),
                new JavaScriptModuleGlobalization(this, "fileNotSelectedMessageMessage", () => MediaGlobalization.FileNotSelected_MessageMessage),

                new JavaScriptModuleGlobalization(this, "searchedInPathPrefix", () => MediaGlobalization.MediaManager_SearchedInPath_Prefix),

                new JavaScriptModuleGlobalization(this, "deleteImageConfirmMessage", () => MediaGlobalization.DeleteImage_Confirmation_Message),
                new JavaScriptModuleGlobalization(this, "deleteAudioConfirmMessage", () => MediaGlobalization.DeleteAudio_Confirmation_Message),
                new JavaScriptModuleGlobalization(this, "deleteVideoConfirmMessage", () => MediaGlobalization.DeleteVideo_Confirmation_Message),
                new JavaScriptModuleGlobalization(this, "deleteFileConfirmMessage", () => MediaGlobalization.DeleteFile_Confirmation_Message),
                new JavaScriptModuleGlobalization(this, "deleteFolderConfirmMessage", () => MediaGlobalization.DeleteFolder_ConfirmationMessage),

                new JavaScriptModuleGlobalization(this, "archiveMediaConfirmMessage", () => MediaGlobalization.ArchiveMedia_ConfirmationMessage),
                new JavaScriptModuleGlobalization(this, "unarchiveMediaConfirmMessage", () => MediaGlobalization.UnarchiveMedia_ConfirmationMessage),
                new JavaScriptModuleGlobalization(this, "archiveImageConfirmMessage", () => MediaGlobalization.ArchiveImage_ConfirmationMessage),
                new JavaScriptModuleGlobalization(this, "unarchiveImageConfirmMessage", () => MediaGlobalization.UnarchiveImage_ConfirmationMessage),
                new JavaScriptModuleGlobalization(this, "archiveVideoConfirmMessage", () => MediaGlobalization.ArchiveVideo_ConfirmationMessage),
                new JavaScriptModuleGlobalization(this, "unarchiveVideoConfirmMessage", () => MediaGlobalization.UnarchiveVideo_ConfirmationMessage),
                new JavaScriptModuleGlobalization(this, "archiveFileConfirmMessage", () => MediaGlobalization.ArchiveFile_ConfirmationMessage),
                new JavaScriptModuleGlobalization(this, "unarchiveFileConfirmMessage", () => MediaGlobalization.UnarchiveFile_ConfirmationMessage),

                new JavaScriptModuleGlobalization(this, "imagesTabTitle", () => MediaGlobalization.ImagesTab_Title),
                new JavaScriptModuleGlobalization(this, "audiosTabTitle", () => MediaGlobalization.AudiosTab_Title),
                new JavaScriptModuleGlobalization(this, "videosTabTitle", () => MediaGlobalization.VideosTab_Title),
                new JavaScriptModuleGlobalization(this, "filesTabTitle", () => MediaGlobalization.FilesTab_Title),

                new JavaScriptModuleGlobalization(this, "uploadImage", () => MediaGlobalization.ImagesTab_UploadImage),
                new JavaScriptModuleGlobalization(this, "uploadAudio", () => MediaGlobalization.AudiosTab_UploadAudio),
                new JavaScriptModuleGlobalization(this, "uploadVideo", () => MediaGlobalization.VideosTab_UploadVideo),
                new JavaScriptModuleGlobalization(this, "uploadFile", () => MediaGlobalization.FilesTab_UploadFile)
            };
        }
예제 #52
0
 public GraphBasedTestBase(ITestOutputHelper output) : base(output)
 {
     TestModule = ModuleDescriptor.CreateForTesting("TestModule");
 }
예제 #53
0
 /// <summary>
 /// A non-validated version of <see cref="GetPathToModuleAndSpec"/>. The module and index
 /// can actually not be part of this modules with content, in which case an exception
 /// is thrown.
 /// </summary>
 private AbsolutePath GetPathToModuleAndSpecUnsafe(ModuleDescriptor module, int index)
 {
     return(RootDir
            .Combine(PathTable, module.Name)
            .Combine(PathTable, I($"{m_backingDictionary[module][index].SpecName}")));
 }
예제 #54
0
        /// <inheritdoc/>
        public async ValueTask <Possible <ModuleDefinition> > TryGetModuleDefinitionAsync(ModuleDescriptor moduleDescriptor)
        {
            Possible <ModuleDefinition> result = (await TryComputeBuildGraphIfNeededAsync()).Then <ModuleDefinition>(
                parsedResult =>
            {
                // There is a single module, so we check against that
                if (parsedResult.ModuleDefinition.Descriptor != moduleDescriptor)
                {
                    return(new ModuleNotOwnedByThisResolver(moduleDescriptor));
                }

                return(parsedResult.ModuleDefinition);
            });

            return(result);
        }
예제 #55
0
        /// <summary>
        /// From a given <param name="path"/> that points to a module and spec, returns its module.
        /// </summary>
        public ModuleDescriptor GetModuleFromPath(AbsolutePath path)
        {
            var moduleName = path.GetParent(PathTable).GetName(PathTable).ToString(PathTable.StringTable);

            return(ModuleDescriptor.CreateForTesting(moduleName));
        }
예제 #56
0
 /// <summary>
 /// Convenience method, mainly for testing. <see cref="AddContent(ModuleDescriptor,string[])"/>
 /// </summary>.
 public ModuleRepository AddContent(string moduleName, params string[] content)
 {
     return(AddContent(ModuleDescriptor.CreateForTesting(moduleName), content));
 }
        public async Task <ActionResult> UploadModuleArchive()
        {
            ModuleDescriptor result = null;

            EnsureModulesCatalogInitialized();

            if (!MultipartRequestHelper.IsMultipartContentType(Request.ContentType))
            {
                return(BadRequest($"Expected a multipart request, but got {Request.ContentType}"));
            }

            string targetFilePath = null;

            var boundary = MultipartRequestHelper.GetBoundary(MediaTypeHeaderValue.Parse(Request.ContentType), _defaultFormOptions.MultipartBoundaryLengthLimit);
            var reader   = new MultipartReader(boundary, HttpContext.Request.Body);

            var section = await reader.ReadNextSectionAsync();

            if (section != null)
            {
                ContentDispositionHeaderValue contentDisposition;
                var hasContentDispositionHeader = ContentDispositionHeaderValue.TryParse(section.ContentDisposition, out contentDisposition);

                if (hasContentDispositionHeader)
                {
                    if (MultipartRequestHelper.HasFileContentDisposition(contentDisposition))
                    {
                        targetFilePath = Path.Combine(_hostingEnv.MapPath(_uploadsUrl), contentDisposition.FileName.Value);
                        using (var targetStream = System.IO.File.Create(targetFilePath))
                        {
                            await section.Body.CopyToAsync(targetStream);
                        }
                    }
                }
            }

            using (var packageStream = System.IO.File.Open(targetFilePath, FileMode.Open))
                using (var package = new ZipArchive(packageStream, ZipArchiveMode.Read))
                {
                    var entry = package.GetEntry("module.manifest");
                    if (entry != null)
                    {
                        using (var manifestStream = entry.Open())
                        {
                            var manifest           = ManifestReader.Read(manifestStream);
                            var module             = new ManifestModuleInfo(manifest);
                            var alreadyExistModule = _moduleCatalog.Modules.OfType <ManifestModuleInfo>().FirstOrDefault(x => x.Equals(module));
                            if (alreadyExistModule != null)
                            {
                                module = alreadyExistModule;
                            }
                            else
                            {
                                //Force dependency validation for new module
                                _moduleCatalog.CompleteListWithDependencies(new[] { module }).ToList().Clear();
                                _moduleCatalog.AddModule(module);
                            }

                            module.Ref = targetFilePath;
                            result     = AbstractTypeFactory <ModuleDescriptor> .TryCreateInstance().FromModel(module);
                        }
                    }
                }
            return(Ok(result));
        }
예제 #58
0
        private ParsedModule CreateEmptyParsedModule(ModuleDescriptor moduleDescriptor)
        {
            var moduleDefinition = CreateModuleDefinition(moduleDescriptor, Enumerable.Empty <AbsolutePath>());

            return(new ParsedModule(moduleDefinition, new Dictionary <AbsolutePath, ISourceFile>(), new ReadOnlyHashSet <(ModuleDescriptor, Location)>()));
        }
예제 #59
0
 static void WriteModuleLine(ModuleDescriptor module)
 {
     Debug.WriteLine("{0} {1}", module.Id, module.Version);
 }
예제 #60
0
        public string[] GetDependencyErrors(ModuleDescriptor package)
        {
            var dependencyErrors = GetDependencyErrors(package, GetModules());

            return(dependencyErrors.ToArray());
        }