Esempio n. 1
0
        /// <summary>
        /// Delete widget
        /// </summary>
        /// <param name="widget">Widget</param>
        public virtual void DeleteWidget(Widget widget)
        {
            if (widget == null)
                throw new ArgumentNullException("widget");

            _widgetRepository.Delete(widget);

            _cacheManager.RemoveByPattern(WIDGETS_PATTERN_KEY);

            //event notification
            _eventPublisher.EntityDeleted(widget);
        }
        public void Can_save_and_load_widget()
        {
            var widget = new Widget
            {
                WidgetZone = WidgetZone.AfterContent,
                PluginSystemName = "TestPluginSystemName",
                DisplayOrder = 1,
            };

            var fromDb = SaveAndLoadEntity(widget);
            fromDb.ShouldNotBeNull();
            fromDb.WidgetZone.ShouldEqual(WidgetZone.AfterContent);
            fromDb.PluginSystemName.ShouldEqual("TestPluginSystemName");
            fromDb.DisplayOrder.ShouldEqual(1);
        }
Esempio n. 3
0
        public ActionResult Create(string systemName, EditWidgetModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageWidgets))
                return AccessDeniedView();

            var widgetPlugin = _widgetService.LoadWidgetPluginBySystemName(systemName);
            if (widgetPlugin == null)
                //No widget plugin found with the specified id
                return RedirectToAction("List");

            var widget = new Widget();
            widget.PluginSystemName = systemName;
            widget.DisplayOrder = model.DisplayOrder;
            widget.WidgetZoneId = model.WidgetZoneId;
            _widgetService.InsertWidget(widget);

            model.Id = widget.Id;

            var supportedWidgetZones = widgetPlugin.SupportedWidgetZones();
            if (supportedWidgetZones == null || supportedWidgetZones.Count == 0)
            {
                model.SupportedWidgetZones = WidgetZone.HeadHtmlTag.ToSelectList();
            }
            else
            {
                var zoneValues = from supportedWidgetZone in supportedWidgetZones
                                 select new { ID = Convert.ToInt32(supportedWidgetZone), Name = supportedWidgetZone.GetLocalizedEnum(_localizationService, _workContext) };
                model.SupportedWidgetZones = new SelectList(zoneValues, "ID", "Name");
            }

            string actionName, controllerName;
            RouteValueDictionary routeValues;
            widgetPlugin.GetConfigurationRoute(widget.Id, out actionName, out controllerName, out routeValues);
            model.ConfigurationActionName = actionName;
            model.ConfigurationControllerName = controllerName;
            model.ConfigurationRouteValues = routeValues;

            model.PluginFriendlyName = widgetPlugin.PluginDescriptor.FriendlyName;

            ViewBag.RedirectedToList = true;

            //activity log
            _customerActivityService.InsertActivity("AddNewWidget", _localizationService.GetResource("ActivityLog.AddNewWidget"), widget.Id);

            SuccessNotification(_localizationService.GetResource("Admin.ContentManagement.Widgets.Added"));
            return View(model);
        }
Esempio n. 4
0
        protected WidgetModel PrepareWidgetModel(Widget widget)
        {
            var widgetPlugin = _widgetService.LoadWidgetPluginBySystemName(widget.PluginSystemName);
            if (widgetPlugin == null || !widgetPlugin.PluginDescriptor.Installed)
                return null;    //don't throw an exception. Maybe, plugin widget was deleted.
            var model = new WidgetModel()
            {
                Id = widget.Id,
                WidgetZoneId = widget.WidgetZoneId,
                WidgetZoneName = widget.WidgetZone.GetLocalizedEnum(_localizationService, _workContext),
                PluginFriendlyName = widgetPlugin.PluginDescriptor.FriendlyName,
                DisplayOrder = widget.DisplayOrder,
            };

            return model;
        }