Override `content-for` hook for installed ember-cli addon - ember-cli

I've installed the ember-marked addon. It adds content to my application via the content-for hook. Specifically in the header, but I don't think that matters.
I do not want the scripts or css it is injecting.
How can I override the content-for for an addon?

Related

Custom implicit module dependency in WildFly

There's the 3rd-party application bpm.ear that contains the ancient commons-net.jar in its /bpm.war/WEB-INF/lib/.
I need to globally override it with my own version of the jar without patching the files inside the deployment. That is, make this change survive undeployment of the app.
Formerly, when we were using JBoss 4x this was solved by setting the $CLASSPATH env. var before starting the server. Of course, this doesn't work in Wildfly 11.
I want to create a custom module inside ${JBOSS_HOME}/modules (already done) and to create a simple rule to implicitly add this module to all apps deployed on this server.
You can use https://wildscribe.github.io/WildFly/16.0/subsystem/ee/#attr-global-modules to define a list of modules that should be made available to all deployments.

How do I load plugins in tinymce-react?

So I recently purchased the self-hosted version of the PowerPaste plugin. I downloaded it, unzipped it and copied it into the node-modules/#tinymce folder. But when I tried to load it it's still trying to fetch the powerpaste plugin from the cloud, instead of reading it locally.
From what I've read online tinymce-react only seems to support the cloud version of TinyMCE, not the self-hosted version. So what are my options for loading this plugin?
You could try something like this:
import tinymce from 'tinymce/tinymce'
import 'tinymce/plugins/powerpaste' // or wherever your purchased plugin is
import { Editor } from '#tinymce/tinymce-react'
<Editor
init={{
plugins: 'powerpaste'
}}
/>
It's worth noting though that you would no longer be getting Tinymce from the cloud with this approach and would need to add it to your package.json. As mentioned above, the tinymce-react component will check the cloud first, but including it globally this way should work. You may have to add your other plugins this way as well since it won't be coming from the cloud anymore. ex:
import 'tinymce/plugins/image'
import 'tinymce/plugins/imagetools'
import 'tinymce/plugins/table'
import 'tinymce/plugins/hr'
import 'tinymce/plugins/link'
tinymce-react will load from the Cloud if it does not find a local installation of Tiny.
From the official documentation on GitHub (emphasis mine):
The Editor component needs TinyMCE to be globally available to work,
but to make it as easy as possible it will automatically load TinyMCE
Cloud if it can't find TinyMCE available when the component is
mounting.
If you don't want TinyMCE loading from the cloud, you have to make TinyMCE globally available yourself. This can be done either by hosting Tiny on your own webserver and adding a script tag to you HTML or, if you are using a module loader, installing TinyMCE with npm. For info on how to get TinyMCE working with module loaders check out this page in the documentation.
Also if you have purchased PowerPaste, then you likely have access to Tiny's Official Support channel. If you continue to need assistance, you can submit a ticket here.

TYPO3 admin backend modules are missing

I worked all day to get Xampp running and install TYPO3 on it. Now I'm logged in the backend, but many admin modules are not displayed, such as Templates, Access etc. - There must be something I've done wrong, but I've got no idea. these are the modules shown Missing: View, Info, Functions, Template, Access, Backend Users, Log, DB Check, Configuration, Reports.
Most backend modules are shipped as extensions, which can be installed, uninstalled, activated and deactivated.
If you installed TYPO3 by using the traditional installation method (extracting the TYPO3 source package), go to ADMIN TOOLS → Extensions and make sure, the missing modules are activated. For example, "Log" is provided by the system extension belog and "Templates" by tstemplate. You can activate/deactivate extensions by clicking on the icon left-hand-side of their title.
If you installed TYPO3 by using PHP Composer (see documentation), make sure all packages are included in your composer.json file. For example typo3/cms-belog, typo3/cms-tstemplate, etc. You can add/remove packages with the following composer commands on the command line (for example typo3/cms-belog):
composer require typo3/cms-belog
composer remove typo3/cms-belog
In the unlikely event that this does not solve your issue, review file typo3conf/PackageStates.php. This file contains a list of all extensions (system extensions, as well as community extensions), currently available in your TYPO3 system.
It could also be that your admin user, who may have been migrated from an older version, is not a newly introduced system maintainer.
https://docs.typo3.org/c/typo3/cms-core/master/en-us/Changelog/9.0/Feature-82266-BackendUsersSystemMaintainers.html
If that is the case, you can easily create an new "system maintainer user" from the install environment. Maintenance > Create Administrative User
I had the same problem. The required extension were also present in PackageStates.php but still the backend menu options like Admins Tools, Extensions, Maintenance were not visible.
The reason was that that admin user was not listed as a System Maintainer
To make a backend user a System Maintainer do the following
Login with admin password to /typo3/install.php
Setting > Manage System Maintainers
select and save backend users you want as System Maintainers
Now go to backend at /typo3/ and you should see the "Admins Tools" menu options
You can use https://get.typo3.org/misc/composer/helper to figure out the missing extensions. If you simply want to install all extensions, klick on TYPO3/FULL and copy and paste the code to your console.
composer require "typo3/cms-about:^9.5" "typo3/cms-adminpanel:^9.5" "typo3/cms-backend:^9.5" "typo3/cms-belog:^9.5" "typo3/cms-beuser:^9.5" "typo3/cms-core:^9.5" "typo3/cms-extbase:^9.5" "typo3/cms-extensionmanager:^9.5" "typo3/cms-feedit:^9.5" "typo3/cms-felogin:^9.5" "typo3/cms-filelist:^9.5" "typo3/cms-filemetadata:^9.5" "typo3/cms-fluid:^9.5" "typo3/cms-fluid-styled-content:^9.5" "typo3/cms-form:^9.5" "typo3/cms-frontend:^9.5" "typo3/cms-impexp:^9.5" "typo3/cms-indexed-search:^9.5" "typo3/cms-info:^9.5" "typo3/cms-install:^9.5" "typo3/cms-linkvalidator:^9.5" "typo3/cms-lowlevel:^9.5" "typo3/cms-opendocs:^9.5" "typo3/cms-recordlist:^9.5" "typo3/cms-recycler:^9.5" "typo3/cms-redirects:^9.5" "typo3/cms-reports:^9.5" "typo3/cms-rsaauth:^9.5" "typo3/cms-rte-ckeditor:^9.5" "typo3/cms-scheduler:^9.5" "typo3/cms-seo:^9.5" "typo3/cms-setup:^9.5" "typo3/cms-sys-action:^9.5" "typo3/cms-sys-note:^9.5" "typo3/cms-t3editor:^9.5" "typo3/cms-taskcenter:^9.5" "typo3/cms-tstemplate:^9.5" "typo3/cms-viewpage:^9.5" "typo3/cms-workspaces:^9.5"

XPI of SDK Add-on that has all modules

People post some simple questions in the firefox-addon-sdk. I know nothing about sdk but can still answer it. I just need to be able to test things on the fly.
The way I usually test things is scratchpad. If I need bootstrap scope then I have a dummy on my github, I just edit the bootstrap.js and don't need to commit/save, just type in that text box and hit install with the GitHub Extension Installer addon and then it runs.
Now I want to do the same for addon-sdk addons. I need like a blank sdk addon that has everything in it. Lots of times in main.js I paste some code someone wants me to test and it fails because the xpi doesn't have the right authority.
Is there a link to a master xpi that is a sdk addon with everything in it but blank main.js?

Can not make GWT application work as Chrome packaged app, probably due to CSP

Keep getting CSP errors: "Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self'"
The problem is probably due to HTML files generated by GWT which contain inline JS.
UPD: Changing to manifest version 1 helped, but this is a temporary workaroud, as Chrome 21 complains that it will no longer be supported.
UPD2: <add-linker name="xsiframe" /> does not help either
GWT 2.5.1 has finally fixed this problem. The release notes documenting this are here:
https://developers.google.com/web-toolkit/release-notes#Release_Notes_2_5_1
and they state that:
"Apps built with DirectInstallLinker should work in a page where inline scripts are forbidden (e.g. a Chrome extension)"
This means that it is now possible to use DirectInstallLinker to link your Chrome packaged app in a manner that satisfies the new security requirements of manifest version 2 regarding inline scripts. That is, by using DirectInstallLinker to link your app with GWT 2.5.1 selected as your GWT version, GWT will not place any script elements inline in its generated Javascript, and thus the new manifest version 2 requirement that there be no inline scripts will not be violated.
I have found that SingleScriptLinker also seems to work for my own app; however, Issue 7685 warns against using the SingleScriptLinker because "This generates a $doc.write line which is forbidden in packaged apps." I am using DirectInstallLinker myself.
Here is the Javadoc for DirectInstallLinker:
http://google-web-toolkit.googlecode.com/svn/javadoc/2.5/com/google/gwt/core/linker/DirectInstallLinker.html
To use this linker, you can include the following in your *.gwt.xml file:
<define-linker name="dil" class="com.google.gwt.core.linker.DirectInstallLinker"/>
<add-linker name="dil" />
(dil can be replaced by anything you choose, so long as there are no dashes or other illegal characters).
You will need to select GWT 2.5.1 as your version of GWT. If you're using an older version of GWT in an out-of-date version of Eclipse such as Ganymede (as I was), you'll have to upgrade to at least Helios and then import your project to your new Eclipse environment. The archive URLs for the Google Plugin for Eclipse that can be used for the latest three Eclipse versions can be found here:
https://developers.google.com/eclipse/docs/download
With the above in place, you should be able to set
"manifest_version": 2
in your manifest.json file and not experience any errors due to GWT-generated inline Javascript. This should allow your Chrome Web app to be acceptable to the Chrome Web Store (which now requires manifest version 2 for any new apps or for updates to present apps), so long as there are no other issues.
EDIT: new GWT bug reported: http://code.google.com/p/google-web-toolkit/issues/detail?id=7685, see also http://gwt-code-reviews.appspot.com/1838803/ which is related to this bug
In other words, it looks like, when fixed, you'll simply have to use the DirectInstallLinker (<add-linker name='direct_install'/>).
In the mean time, IIUC, you'd have to extend DirectInstallLinker and:
override getJsInstallLocation to return a copy a installLocaltionIframe.js without the $wnd part
override getModulePrefix to prepend var $wnd = $wnd || window.parent; to what's generated by super.getModulePrefix
I don't know CSP enough to give a complete answer, but the xsiframe linker is "customizable": create a class that extends com.google.gwt.core.linker.CrossSiteIframeLinker and overrides the appropriate methods, then use with a <define-linker> and <add-linker> in your *.gwt.xml.
For instance, getJsInstallLocation defaults to com/google/gwt/core/ext/linker/impl/installLocationIframe.js but there's a com/google/gwt/core/ext/linker/impl/installLocationMainWindows.js alternate implementation.
Similarly (and probably more importantly), getJsInstallScript defaults to com/google/gwt/core/ext/linker/impl/installScriptEarlyDownload.js but there's also a com/google/gwt/core/ext/linker/impl/installScriptDirect.js alternate implementation.
See http://code.google.com/p/google-web-toolkit/source/browse/trunk/dev/core/src/com/google/gwt/core/linker/CrossSiteIframeLinker.java#204, http://code.google.com/p/google-web-toolkit/source/browse/trunk/dev/core/src/com/google/gwt/core/ext/linker/impl/ and http://code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/core/Core.gwt.xml
Thanks to Thomas Broyer's advice. I created this GWT Linker. Now my GWT application runs perfectly as an Chrome Application (Tested on Chrome 32 and GWT 2.5.1).
public class CSPCompatibleLinker extends DirectInstallLinker {
#Override
protected String getJsInstallLocation(LinkerContext context) {
return "com/google/gwt/core/ext/linker/impl/installLocationMainWindow.js";
}
}
Dont forget to declare the Linker into your*.gwt.xml file:
<define-linker name="csp" class="com.sfeir.linker.CSPCompatibleLinker"/>
<add-linker name="csp" />
Manifest version 2 does not allow inline scripts. You need to make sure all scripts are linked instead and no JavaScript in HTML elements.