lecoati / leblender Goto Github PK
View Code? Open in Web Editor NEWLeBlender is an open source Umbraco backoffice extension which made the Grid Canvas Editors management easier and flexible.
LeBlender is an open source Umbraco backoffice extension which made the Grid Canvas Editors management easier and flexible.
If you create a leblender property, save the page (don't publish) and go back to it, you will receive an Object reference is not set to an instance of an object error.
After Umbraco Cloud has upgraded from 7.5.3 to 7.5.4, it seems it broke LeBlender.
E.g. an error in console like:
Failed to load resource: the server responded with a status of 417 (Missing token)
/umbraco/backoffice/LeBlenderApi/DataType/GetPropertyEditors?guid=0cc0eba1-9960-42c9-bf9b-60e150b429ae
From the commit in UaaS / Umbraco Cloud AutoMapper has beeen modified, which could be the reason why it fails somewhere in this method:
I created an editor where one of the properties was originally a dropdown list datatype. I have content in the DB using this editor. I then switched that datatype to a MNTP, but I did not change the property name or alias. When saving the content a second time (after selecting content with the MNTP), the value in the database changes but the dataTypeGuid does not.
The reason that this is a problem is that it will not deploy properly using Courier. The deployed value gets wiped out on the receiving instance.
Here's an example of the data stored in the DB (property is called Science Branch) when it was saved with the DDL datatype:
"scienceBranch": { "value": "29", "dataTypeGuid": "118f8ef3-c212-4c5f-92ea-413f4fdbdeca", "editorAlias": "scienceBranch", "editorName": "Science Branch" }
After switching to a MNTP, this is what's in the DB:
"scienceBranch": { "value": "1085", "dataTypeGuid": "118f8ef3-c212-4c5f-92ea-413f4fdbdeca", "editorAlias": "scienceBranch", "editorName": "Science Branch" }
But it really should be this:
"scienceBranch": { "value": "1085", "dataTypeGuid": "f3e624bc-924c-4506-b6Ba-8d3a6eCe15ce", "editorAlias": "scienceBranch", "editorName": "Science Branch" }
If I change the property alias, it then correctly updates the dataTypeGuid, however, it clears out the values I had previously selected. Seems like maybe it's just missing a check to see if they data type changed.
I have a case where I am creating an Image Box, with different properties like an image, a heading, a link etc.
Because of its alias "imageBox" it is by default looking for "ImageBox.cshtml" ... it would be great if you could select or speficy alternative view that the editors can choose between.
E.g. when you have the same model, but just want the present it in different ways..
At the moment I have to create a grid editor for each alternative view or use conditions like if, else if and else to output different markup based on a property.
I have a LeBlender editor width two textboxes and a "Nested Content" containing some textfields and an url picker (RJP.MultiUrlPicker).
When the control is existing, and then edited, the nested content property is invalid until I make any changes in it.
Anyone else have had this problem?
I'm trying to make Vorto compatible with LeBlender, but one of the issues is that access to the property is marked internal or private in the majority of the LeBlender classes. To get things working it would be necessary to get access to the guid for a given LeBlender value which is available in properties object of LeBlenderValue but internal. Could any of this be opened up or a method put in the LeBlenderHelper class to provide access to the property?
three of the 4 views from here: (LeBlender/Src/Lecoati.LeBlender.Ui/App_Plugins/LeBlender/views_samples) are missing a colon on the line:
Layout="" (should end with a colon)
this causes a compile error when running through a build server which checks view compilation
When a view contains an error, it would be nice to have a better error message - not just the exception message. Event just the YSOD would be good, but if it could be contained it would be better.
The distribution on Our.umbraco was built in release but your nuget package was not.
(I checked with a directory scanning fork of https://assemblyinformation.codeplex.com/)
Great package btw!
Hi!
I'm using LeBlender at the moment inside a WebApi method, but getting a value in the partial view is triggering an Exception.
The problem is inside Lecoati.LeBlender.Extension.Helper.GetTargetContentType():
internal static PublishedContentType GetTargetContentType()
{
if (UmbracoContext.Current.IsFrontEndUmbracoRequest)
{
return GetUmbracoHelper().AssignedContentItem.ContentType;
}
else if (!string.IsNullOrEmpty(HttpContext.Current.Request["doctype"]))
{
return PublishedContentType.Get(PublishedItemType.Content, HttpContext.Current.Request["doctype"]);
}
else
{
int contenId = int.Parse(HttpContext.Current.Request["id"]);
return (PublishedContentType)ApplicationContext.Current.ApplicationCache.RuntimeCache.GetCacheItem(
"LeBlender_GetTargetContentType_" + contenId,
() =>
{
var services = ApplicationContext.Current.Services;
var contentType = PublishedContentType.Get(PublishedItemType.Content, services.ContentService.GetById(contenId).ContentType.Alias);
return contentType;
});
}
}
Because IsFrontEndUmbracoRequest
is false and there's no doctype in the request, the code falls back to getting the request id.
This fails, because there is no request id. There should be a method to pass a content id via the GetValue
method.
I recently became aware of an issue, which I've described in detail here:
https://our.umbraco.org/documentation/Umbraco-Cloud/Troubleshooting/Plugins-Known-Issues/#leblender
I would recommend to change the rte
's valueType
as a quick fix for future LeBlender installs.
When using core property value converters in Umbraco 7.6.x and 7.7.x and casting e.g. value from an Author Picker Umbraco.MultiNodeTreePicker2
to IEnumerable<IPublishedContent>
it returns an exception:
Der opstod en fejl under udførelsen af den underordnede anmodning for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'.
foreach (BlogPost blogPost in blogPosts)
{
Employee author = (blogPost.Author ?? Enumerable.Empty<IPublishedContent>()).FirstOrDefault() as Employee;
}
When I use same logic just in a regular partial view there are no issues.
The datatype should be mandatory, when creating a new grid-editor and thereby avoid submitting to model and saving the grid editor with properties, which might not have a datatype assigned.
I installed version 1.0.8.4 with nuget, and it works fine for me locally, but when anyone else tries to run the project, it doesn't restore all the Leblender files correctly into the project. The correct version of leblender is in my packages.config file, and it seems to copy the dll, but none of the other files (views/js/etc.).
Instead we get the error:
System.InvalidOperationException: The partial view '/appplugins/leblender/editors/leblendereditor/views/base.cshtml' was not found or no view engine supports the searched locations. The following locations were searched: /appplugins/leblender/editors/leblendereditor/views/base.cshtml
The workaround for us was to just copy all the leblender folders/files from \packages\Lecoati.LeBlender.1.0.8.4\Content\App_Plugins\LeBlender to the App-Plugins\LeBlender folder in the project. When restoring a package, should those folders be getting copied over into the project?
FYI - I am running Umbraco 7.4.3. Thanks.
Cannot add leblender to unit tests project without including app plugins in tests project
Suggestion:
Could have two nuget packages, original + core ?
Core should contain c# classes, and original should include the content (app_plugins folder) and a dependency to core.
I noticed when selecting "custom" datatype option in datatypes dropdown in the property setting dialog, it didn't show the additional "view" and "config" properties.
Furthermore I think it was an issue that this "custom" option just saved an empty string in the guid property, because Angular didn't select the option from the empty value. Instead I have changed this to an empty guid 00000000-0000-0000-0000-000000000000
I have a number of custom LeBlender Editors, each with several properties of varying types (Image Pickers, Textstrings, True/False).
I need a way to stop people from adding a content block to the grid if they don't fill out all of the fields. Is there any way I can implement some sort of Required validation on them? i.e. if they don't fill them all out, it won't add the custom grid editor to the grid and will display an appropriate error.
It would be great if it was possible to define cascading properties, e.g. if you want to show a textbox property if the editor has chosen a certain value or values from a dropdown list.
Maybe based on some conditions using a query builder like this:
http://angularscript.com/angular-query-builder-directive/
Hi
I'm using the GridData for the strongly typed grid. I need to write a new converter for the leblender. I have the converter below but i cannot get the leblendervalue
from the json.
How are you parsing the json? Could you provide some methods?
The magic should happen here
Value = token.Value<LeBlenderValue>(); // <= here i need to parse the json
Here is the complete file:
[JsonConverter(typeof(LeBlenderModelMatchingConverter))]
public class GridControlLeBlenderValue : IGridControlValue
{
public GridControl Control { get; private set; }
[JsonIgnore]
public JToken JToken { get; private set; }
[JsonProperty("value")]
public LeBlenderValue Value;
protected GridControlLeBlenderValue(GridControl control, JToken token)
{
Control = control;
JToken = token;
Value = token.Value<LeBlenderValue>(); // <= here i need to parse the json
}
public static GridControlLeBlenderValue Parse(GridControl control, JToken token)
{
if (token == null) return null;
return new GridControlLeBlenderValue(control, token);
}
#endregion
}
Thanks for your help!
When using classes like left
og right
in backoffice the element is using float
.
In this example the element is positioned left, center or right based on classes with the same names.
However when floating to right I actually can't edit the grid element (second click), because the height of the container is 0.
But if you add a class to the container like preview
with following style, then the height if adjusted to the content:
.preview:after {
content: ".";
visibility: hidden;
display: block;
height: 0;
clear: both;
}
In the grid editors json for config -> editors there is a typo propretyType
.. it should be propertyType
.
There hasn't been any recent updates, but I couldn't use the Grid without LeBlender.
So is the project dead?
Hi,
This is more of a feature request than an issue, but would it be possible to detect if the grid editor view is rendered for the back-office or the front-end?
Just like Doc Type Grid Editor:
If your front end view is rather complex, you may decide that you want to feed the back office
preview an alternative, less complex view. To do this, within your cshtml, simply check for a
querystring parameter dtgePreview being set to “1” to detect being in preview mode to provide an
alternative view.
Example:@inherits Umbraco.Web.Mvc.UmbracoViewPage @if(Request.QueryString[“dtgePreview”] == "1"){ // Render preview view } else { // Render front end view }
When I clone the repo to my computer and try to open the solution, I bump into 2 issues:
The option to use multiple items in LeBlender editor change cursor style to pointer on the container, which also affect the UI when only having 1 item.
It makes a large part of the area in the dialog seem to be clickable - even it is not.
Instead of change cursor style on .list
it should be added to its child node span.list-number
.
Hi,
Just a question this time.
I'm using a custom controller and I though it would be possible to pass on a custom model to the view, like this:
public class TwitterController : LeBlenderController
{
public ActionResult Index(LeBlenderModel model)
{
var item = model.Items.Single();
string tweetUrl = item.GetValue<string>("tweetURL");
return View(tweetUrl);
}
}
And the view:
@inherits UmbracoViewPage<string>
@Model
Unfortunately the Model is null in the view. Am I doing something wrong?
We are facing a strange behaviour with LeBlender editor, we have the following scenario we setup a datatype in backoffice, which is leblender type. Then we pick up a new property which is an archetype datatype and this child could hold as you may know complex datatypes contents as user wants. Now the tricky part is coming, because we set here a grid content page which can holds modules. These modules are all kind of types, doesn't matter, mostly BUT, if we have a module which type is LeBlender then we've got an exception that ,, An item with the same key has already been added" - so basicly the problem is, I think then when leblender render the editor it gives the same key for both - same for the parent and same for the child. Basically we have leblender editor in leblender editor. At backoffice side everything looks great.
Could you point me out what should we change, or maybe you could give us some updates?! Thanks in advance!
I've installed Leblender in a fresh install of Umbraco 7.6. LeBlender was working for some time; however, it's suddenly stopped. When I click on a grid editor it throws an angular error
angular.min.js?cdv=1809374105:63 SyntaxError: Unexpected token ' in JSON at position 1337 at JSON.parse (<anonymous>) at ub (http://localhost:51857/umbraco/lib/angular/1.1.5/angular.min.js?cdv=1809374105:13:122) at e.defaults.transformResponse (http://localhost:51857/umbraco/lib/angular/1.1.5/angular.min.js?cdv=1809374105:98:83) at http://localhost:51857/umbraco/lib/angular/1.1.5/angular.min.js?cdv=1809374105:97:347 at Array.forEach (native) at n (http://localhost:51857/umbraco/lib/angular/1.1.5/angular.min.js?cdv=1809374105:6:470) at Yb (http://localhost:51857/umbraco/lib/angular/1.1.5/angular.min.js?cdv=1809374105:97:329) at c (http://localhost:51857/umbraco/lib/angular/1.1.5/angular.min.js?cdv=1809374105:99:14) at i (http://localhost:51857/umbraco/lib/angular/1.1.5/angular.min.js?cdv=1809374105:79:437) at http://localhost:51857/umbraco/lib/angular/1.1.5/angular.min.js?cdv=1809374105:80:485
I took a look at the JSON being returned from /backoffice/LeBlenderApi/PropertyGridEditor/GetAll and it looks a little messed
)]}', [{"name":"Rich text editor","alias":"rte","isGridEditor":true,"editor":{"view":"rte"},"prevalues":null},{"name":"Image","alias":"image","isGridEditor":true,"editor":{"view":"media"},"prevalues":null},{"name":"Macro","alias":"macro","isGridEditor":true,"editor":{"view":"macro"},"prevalues":null},{"name":"Embed","alias":"embed","isGridEditor":true,"editor":{"view":"embed"},"prevalues":null},{"name":"Textstring","alias":"textstring","isGridEditor":true,"editor":{"view":"textstring"},"prevalues":{"fields":[{"label":"Style","key":"style","description":"inline style","view":"textstring","advanced":false},{"label":"Markup","key":"markup","description":"markup of the input","view":"textstring","advanced":false}]}},{"name":"LeBlender Editor","alias":"leblenderEditor","isGridEditor":true,"editor":{"view":"/App_Plugins/LeBlender/editors/leblendereditor/LeBlendereditor.html"},"prevalues":{"fields":[{"label":"Properties","key":"editors","description":"LeBlender Editor properties","view":"/App_Plugins/LeBlender/editors/leblendereditor/leblenderproperties.html","advanced":false},{"label":"Render in the grid","key":"renderInGrid","description":"Render in the grid","view":"boolean","advanced":true},{"label":"Min","key":"min","description":"Minimum number of items","view":"number","advanced":true},{"label":"Max","key":"max","description":"Maximum number of items","view":"number","advanced":true},{"label":"Cache period","key":"expiration","description":"Cache period in seconds (by page)","view":"number","advanced":true}]}}]
I wonder if this is related to the update to latest JSON.Net http://issues.umbraco.org/issue/U4-9499
Hi,
I have an issue getting my LeBlenderControllers to work with IoC (Autofac).
I am experiencing the same issue, as reported in this thread. I have IoC working fine for everything else, and my container registrations are the same as in the above thread.
Any suggestions would be very much appreciated.
Thanks,
David
I have some of my grid editors defined in the App_Plugins folder. They load and work OK, but my Umbraco trace log is filled with NullReferenceExceptions from GetCacheExpiration(). It appears that when checking for grid editor settings, LeBlender only looks in \config\grid.editors.config.js and not in App_Plugins.
When Umbraco is hosted in a virtual directory, then LeBlender will not work correctly because all of the URLs is uses start with '/' which means that unless Umbraco is in the site root, they will not resolve correctly.
It is possible to work around some of the JS references using URL rewrite rules, but you can not change the location is tries to POST any changes to.
It also means that when trying to render content server site, you get an error because it is trying to access content which .Net believes is outside of the current running application.
An example of the stack trace you receive when trying to render a page is:
System.ArgumentException: The virtual path '/app_plugins/leblender/editors/leblendereditor/views/base.cshtml' maps to another application, which is not allowed.
at System.Web.Compilation.BuildManager.ValidateVirtualPathInternal(VirtualPath virtualPath, Boolean allowCrossApp, Boolean codeFile)
at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)
at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound)
at System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.FileExists(String virtualPath)
at Microsoft.Web.Mvc.ViewEngineFixWorker`1.GetPathFromSpecificName(ControllerContext controllerContext, String name, String cacheKey, String[]& searchedLocations)
at Microsoft.Web.Mvc.ViewEngineFixWorker`1.GetPath(ControllerContext controllerContext, String[] locations, String[] areaLocations, String locationsPropertyName, String name, String controllerName, String cacheKeyPrefix, Boolean useCache, String[]& searchedLocations)
at Microsoft.Web.Mvc.ViewEngineFixWorker`1.FindPartialView(ControllerContext controllerContext, String partialViewName, Boolean useCache)
at Umbraco.Core.Profiling.ProfilingViewEngine.FindPartialView(ControllerContext controllerContext, String partialViewName, Boolean useCache)
at System.Web.Mvc.ViewEngineCollection.Find(Func`2 lookup, Boolean trackSearchedPaths)
at System.Web.Mvc.HtmlHelper.FindPartialView(ViewContext viewContext, String partialViewName, ViewEngineCollection viewEngineCollection)
at System.Web.Mvc.HtmlHelper.RenderPartialInternal(String partialViewName, ViewDataDictionary viewData, Object model, TextWriter writer, ViewEngineCollection viewEngineCollection)
at System.Web.Mvc.Html.PartialExtensions.Partial(HtmlHelper htmlHelper, String partialViewName, Object model, ViewDataDictionary viewData)
at ASP._Page_Views_Partials_grid_editors_base_cshtml.Execute() in d:\Apps\UmbracoCmsGreen\Website\CMS\Views\Partials\Grid\Editors\Base.cshtml:line 20
Hi,
In GetLeBlenderControllers (in Lecoati.LeBlender.Extension.Helper) you scan ALL assemblies for the type LeBlenderController. This crashes however on certain dll's like Microsoft.SingnalR.Core. Because of this a null result is cached and the scanning will be done again on the next request and so on.
[trunk\src\Limetta.Umbraco.Web\Limetta.Umbraco.Web.csproj.teamcity] AutoParameterizationWebConfigConnectionStringsCore [14:04:04][AutoParameterizationWebConfigConnectionStringsCore] ParameterizeTransformXml [14:04:04][AutoParameterizationWebConfigConnectionStringsCore] ParameterizeTransformXml [14:04:04][ParameterizeTransformXml] Transforming Source File: C:\TeamCity\buildAgent\work\be672c2b98195605\trunk\src\Limetta.Umbraco.Web\App_Plugins\LeBlender\Web.config;.\App_Plugins\LeBlender\Web.config [14:04:04][ParameterizeTransformXml] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(2352, 5): Could not open Source file: Could not find a part of the path 'C:\TeamCity\buildAgent\work\be672c2b98195605\trunk\src\Limetta.Umbraco.Web\App_Plugins\LeBlender\Web.config;\App_Plugins\LeBlender\Web.config'. [14:04:04][ParameterizeTransformXml] Transformation failed
The key part being:
[ParameterizeTransformXml] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(2352, 5): Could not open Source file: Could not find a part of the path 'C:\TeamCity\buildAgent\work\be672c2b98195605\trunk\src\Limetta.Umbraco.Web\App_Plugins\LeBlender\Web.config;\App_Plugins\LeBlender\Web.config'.
So somewhere there seems to be an extra ";". Saw a similar issue on umbraco package at http://issues.umbraco.org/issue/U4-4510.
I installed 1.0.8.2 and 1.0.8.3 and I get the same issue on these. (With Umbraco 7.3.1).
After sorting grid editor tree nodes, it seems to be out of sync, because when clicking a grid editor node after sorting, it redirects to content section.
I have to refresh the browser window before the tree nodes work again.
I think it need to use navigationService.syncTree
after the sorting has been done.
Furthermore sometimes you can't drag the grid editor at bottom, because the footer overlaps these items.
If you open browser console window, you will see the footer overlaps the items.
It is using umb-panel-footer
and I think it should have umb-panel-body
as well.
In my own package Color Palettes I have the following for a panel/dialog (position: right):
https://github.com/bjarnef/color-palettes/blob/master/ColorPalettes/ColorPalettes/ColorPalettes/views/PaletteEditDialog.html#L3-L4
Has any work been done to create a courier data resolver for LeBlender?
We have been working on moving a site that uses leblender from a single instance setup to a load balanced master/frontend setup (as seen in the flexible load balancing tutorial on umbraco's wiki). In this set up the master server handles the backoffice activities and is strictly not allowed to scale whereas the frontend server/s are not used for backoffice tasks and are allowed to scale. Our current implementation of this setup uses two different URLs for the master and frontend servers (this could potentially be changed with some url routing perhaps).
While testing this setup I noticed that changes made on the master's backoffice would not be seen on the frontend server's urls until the cache for that grid editor expired. This contrasts with the built in grid editors (RTE, headline, etc.) which would have the changes made in the master backoffice.
To further understand the conditions of this I tested some different scenarios. I used the master server's domain to view the page before/after an update. In this case, the update was visible immediately. The same change would not be visible on the frontend domain for another hour (also experimenting with cache lengths!).
Another scenario I tried was updating the grid element using the back office on the frontend server's backoffice which should not be an issue with low loads as the instance count was 1. I viewed the page before/after the change. This case behaved the same as the master backoffice/master domain scenario.
My first theory was that leblender may not have been following the caching best practices (using ApplicationContext.ApplicationCache.RuntimeCache versus HttpRuntime.Cache) so I began to look into the leblender source. Leblender appears to be using the correct method of caching, which should allow the load balanced setups to effectively poison the cache when changes are made.
Looking further into how the cache was being used, I noticed that the cache key string was built using HttpContext.Current.Request.Url, which when coerced to a string resolves to the full url (example: https://mysite.com/somepage?thing=2). In the context of a single server/domain environment, this works fine as when the backoffice publishes a change, the cache for that element is updated accordingly. However in a multi domain environment I suspect there is multiple cache entries for each grid element and only the master domain's is updated when the page is published, leading to the delay in the frontend page showing the change.
My proposed change is to change the use of HttpContext.Current.Request.Url to HttpContext.Current.Request.Url.PathAndQuery.
This should retain the ability to cache by specific page and query values, but allow for multi domain setups to update the cache accurately.
I plan to make a pull request with this change, but please let me know if there is something I have overlooked with this change.
When allowing multiple items it would be great to have an option to disable an item, e.g. like in Archetype.
Sometimes you might have content you just want to disable temporary.
For now I can add a checkbox property to hide/disable an item.
When I create a new LeBlender editor I go to press 'Add Property' it just saves the datatype and I get this error in the console:
angular.min.js?cdv=665052652:63 TypeError: Cannot read property 'config' of undefined
at new (leblenderproperties.controller.js?cdv=665052652:8)
at d (angular.min.js?cdv=665052652:28)
at Object.instantiate (angular.min.js?cdv=665052652:28)
at angular.min.js?cdv=665052652:53
at angular.min.js?cdv=665052652:44
at n (angular.min.js?cdv=665052652:7)
at k (angular.min.js?cdv=665052652:44)
at e (angular.min.js?cdv=665052652:40)
at angular.min.js?cdv=665052652:39
at angular.min.js?cdv=665052652:158
Tried hard cache clear and refresh, and the issue persists when closing and re-opening a saved datatype.
Tried 1.0.8.4 had the issue, then tried 1.0.7 - same problem. Running against: 7.4.3
Is there a way to check if a property value is "never" set?
The IPublishedContent has a method "HasValue" for this.
I think the IsEmptyProperty from the LeBlenderValue do that, but it's private.
Sometimes the overlay opens right away when loading a page in backoffice and when using LeBlender in grid editor.
I restored a page locally from UaaS, where a "Testimonials" grid editor has a MTNP property. Model.Items
/ Lecoati.LeBlender.Extension.Models.LeBlenderValue
was null ... if I then in grid editor select a node in MNTP and publish page again the overlay doesn't open, when page load... and when removing selected nodes in MNTP + publish, the overlay also stay closed.
It would be nice to show the property alias in the label title attribute in debug mode like in Umbraco core.
I think it should be added somewhere here: https://github.com/Lecoati/LeBlender/blob/master/Src/Lecoati.LeBlender.Ui/App_Plugins/LeBlender/editors/leblendereditor/dialogs/parameterconfig.html#L19-L23
In Umbraco core:
https://github.com/umbraco/Umbraco-CMS/blob/dev-v7/src/Umbraco.Web.UI.Client/src/views/components/property/umb-property.html#L9
When installing LeBlender to use with Umbraco 7.4 - the installation puts the GridEditorManager folder inside the [Website]/Views folder but it should go into Umbraco/Views.
If you try to use Grid Editor in Umbraco - you will get a 404 but moving the location of the GridEditorManager folder will fix this issue.
This needs fixing for future versions of LeBlender.
We have used an archetype in the leblender properties...
Model.Items.First().GetValue<ArchetypeModel>("list");
returns null...
its not only archetype also multiurlpicker.
It seems LeBlender overwrite text-decoration to none, which affect property editors like content picker, link picker, etc. where it is useful to have text-decoration on hover.
Generally LeBlender should overwrite styles of property editors used in the overlay/dialog.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.