I'm working with Umbraco 5.1 to implement this blogpost which describes how to create a custom hive provider with a custom tree provider to show data in the content tree. It all works nice, however the nodes show up as follows:
Content
Music Catalog (the custom one)
Content (default Content node)
So just out of nothing a new level of Content appears.
Why is this? Is there any way to get the Music Catalog node as a sibling of Custom test block?
It's possible this, thread will help you
Related
I have a project which is using Umbraco v7.7.9 installed with nuget.
I was wondering if it is possible to change the buttons displayed in the sidebar section when a user selects to preview a content node. Particularly I want to remove the option that allows the user to close the preview.
The reason I want to hide this option is because some of the content the backoffice users will be previewing will not actually be published yet so clicking the close preview button causes an error.
I first asked this question on the Umbraco forums but haven't received a response yet, here is the link to the question: https://our.umbraco.org/forum/extending-umbraco-and-using-the-api/90878-editing-preview-window-sidebar-options
Thank you in advance.
Currently no - it would not be possible without doing hacks in the Core that would be overwritten when you upgrade your site (unless you manually merge your changes in when updating).
If you however don't mind doing that - the file used for the preview function is /umbraco/preview/index.html. You should look for the element with an exitPreview() click handler attached to it.
In later versions (7.10+) this modification will have to be done in /umbraco/Views/Preview/Index.cshtml instead, as these static files will be changed to MVC actions.
I have a weird issue here. I noticed I accidentally put some of my document types as children of others, so I removed those and I created brand new document types. These new ones do not inherit from my Master document type, but all of the other ones does. I would love to move away from inheritance and use composition instead, but I think there's a bug going on here.
Document Types
-Master (SEO & Navigation tabs)
-News
-About us (Content tab)
-Members (Content tab)
This is the current layout of my document types. News and About us both have the SEO and Navigation tabs, but the newly created Members does not. How weird is that? I was under the impression that inheritance only worked like this:
Document Types
-Master (SEO & Navigation tabs)
-News
-About us (Content tab)
-Members (Content tab)
and then Members is free and does not inherit from the Master. I have a feeling that the last one is how my inheritance actually looks, but that there's a bug in the UI. Has anyone experienced this before or know how to solve it? I want to remove the inheritance.
Either this is a bug, or a new update (from 7.6.6 to 7.6.9) changed around all my Document Types, so they're now compositions instead.
I wish to develop a unit test runner extension for VSCode. The extension should display discovered tests grouped into expandable hierarchy, annotate run status, display output and errors for each test, provide run/debug commands on different levels, and of course the red/green bar.
Roughly spearating this into "model" and "view", I plan to implement the model in the extension process, and I plan to implement the view as HTML preview based on a TextDocumentContentProvider. (Is there a better approach?)
Now, the model and the view should communicate with each other. I want to implement the view as a single-page application. The view will send commands to the model, and the model will send events to the view (or the view will poll the model for events). The view will update itself according to received events.
My question is, what communication technique should I use? Can HTML page inside the HTML preview access VSCode/Atom/Electron/Node APIs? Can I share object instances, or do some lightweight IPC? By far I didn't figure out.
I've found that I can invoke VSCode commands or refresh the entire page, when the user clicks a link with href set to specific scheme (command:// or the one I registered for my TextDocumentContentProvider).
I do succeed to open an HTTP listener (http.createServer) in the extension process, and communicate through XMLHttpRequest on the HTML preview side. But it looks to me like a heavy overkill.
I wonder if there are more appropriate ways to do this?
Almenon is referring to the currently proposed Webview API that was released in version 1.21 (Feb 2018). For the time being, this appears to be a much better approach for HTML previews. But in order to use the API, there are special instructions. From the release notes:
These APIs are still proposed, so in order to use it, you must opt into it by adding a "enableProposedApi": true to package.json and you'll have to copy the vscode.proposed.d.ts into your extension project.
What isn't clarified (and probably should be) is how to add the downloaded declaration file to a project. One way to do it is place the file in $/node_modules/vscode, next to vscode.d.ts, which is generated during postinstall. Then add the following line to the top of vscode.d.ts:
/// <reference path="vscode.proposed.d.ts" />
That will link the type declaration files. To make this part of the installation process, write a build task to do it and then call it in the vscode:postinstall script in package.json.
VSCode has a new API that makes this easier.
https://github.com/Microsoft/vscode/issues/43713
You can find the new API here
To try the new API:
Add "enableProposedApi": true to your package.json
Manually download vscode.proposed.d.ts and add it to your project: https://raw.githubusercontent.com/Microsoft/vscode/master/src/vs/vscode.proposed.d.ts
Run your extension with the latest VS Code insiders build
We have a scenario where we'd like to display a custom URL in an Excel JS Task Pane via an add-in. Specifically, we want to look at a configurable path setting that we'll allow the user to configure and then browse to the appropriate server's page.
From what I've seen, Office locks down the Task Panes pretty decently, I'm not even able to navigate to another page within a task pane and have it re-use the task pane even if I use an anchor tag with a target="_top" or target="_self" attribute.
I'm looking for a way to use JavaScript to perform a ShowTaskPane action or have a variable URL defined in the manifest so depending on some value of a property the user has configured I can route to a dynamically generated URL in the task pane that will then give me user / organizational specific data to insert into the document.
Any ideas?
If you'd like to navigate to a URL in the task pane, define an <AppDomain> element for the URL in the manifest. That should work. https://dev.office.com/docs/add-ins/overview/add-in-manifests#specify-domains-you-want-to-open-in-the-add-in-window
If you cannot define the domain in the <AppDomain> of the app manifest, you can IFrame in the content you want. As long as it supports IFrame-ing
Upadte: After reading the comments on the question I see that you are trying to provide authentication. If the authentication comes from a single set of domains just add them to your manifest and all will be sweet. If the domain changes per auth request you are pretty much out of luck until wildcarded domains are added.
I have created a dashboard for an Umbraco site and I want to link from it to various node in the tree.
From what I can tell Umbraco uses editcontent.aspx?id={thenodeid} and javascript:opencontent({nodeid}).
Whenever I try to use these they always fail.
Does anyone know how to open a display a node in the Umbraco back end?
Like Tim Saunders said you really just need to target the correct iframe. The openContent function looks like this:
function openContent(id) {
parent.right.document.location.href = 'editContent.aspx?id=' + id;
}
So you need to target the 'right' iframe.
I've tested editContent.aspx?id=1234 on my Umbraco installation and it seems to work correctly.
I'm assuming you are replacing {thenodeid} with the actual node id you want?
Umbraco uses iFrames in the backend for the content tree and the content areas etc. This means that you do not always have full access to the Javascript libraries from the frame that you are in.
Therefore you may need to either include the library in the page you are working with or try and reference the method calls by walking up the dom.
I can't find any documentation for this so it may be a case of looking at the HTML source and working out what is going on.