dnnsoftware / dnn.adminexperience.extensions Goto Github PK
View Code? Open in Web Editor NEWAdmin Experience in DNN Platform
Home Page: http://www.dnnsoftware.com
License: MIT License
Admin Experience in DNN Platform
Home Page: http://www.dnnsoftware.com
License: MIT License
Analytics section should be displayed.
On click of Ellipsis, no action is performed
Browser console shows error when click on Analytics:
export-bundle.js?cdv=126:15 Uncaught TypeError: this.props.CallCustomAction is not a function
at t.value (<anonymous>:21:23687)
at Object.r (export-bundle.js?cdv=126:15)
at a (export-bundle.js?cdv=126:15)
at Object.s [as executeDispatchesInOrder] (export-bundle.js?cdv=126:15)
at d (export-bundle.js?cdv=126:14)
at f (export-bundle.js?cdv=126:14)
at Array.forEach (<anonymous>)
at n (export-bundle.js?cdv=126:61)
at Object.processEventQueue (export-bundle.js?cdv=126:14)
at r (export-bundle.js?cdv=126:173)
value @ VM316:21
r @ export-bundle.js?cdv=126:15
a @ export-bundle.js?cdv=126:15
s @ export-bundle.js?cdv=126:15
d @ export-bundle.js?cdv=126:14
f @ export-bundle.js?cdv=126:14
n @ export-bundle.js?cdv=126:61
processEventQueue @ export-bundle.js?cdv=126:14
r @ export-bundle.js?cdv=126:173
handleTopLevel @ export-bundle.js?cdv=126:173
i @ export-bundle.js?cdv=126:173
perform @ export-bundle.js?cdv=126:14
batchedUpdates @ export-bundle.js?cdv=126:173
i @ export-bundle.js?cdv=126:13
dispatchEvent @ export-bundle.js?cdv=126:173
content->user->add user
.Password strenght check meter does not appear
Password strenght check should appear.
Note: When user registering via home page -> register password strength check appears.
Page successfully deleted
Should show error message like page not found
We should implement GitHub issue templates for this repo.
This issue was moved here because it is only a UI issue, it was originally at dnnsoftware/Dnn.Platform#2050
In previous versions of Dnn, there was a setting in Host Settings to set the host email. This email was used when testing the SMTP server settings. So when testing the emails, users do not receive the email since they don't have access to [email protected] (the default on new installations)
Also, some modules may use that email address to notify the host, so people changing their email and not having control over this, stop receiving those notifications.
I think this could be added in Settings -> Server Settings -> SMTP Server
In the database, this is stored in HostSettings Table with a SettingName of HostEmail
get-page
, get-task
, get-host
, get-portal
, list-sites
, list-portals
, get-task
, get-role
, get-module
These commands API doesn't return OK message to be displayed. (Note OK message some times display the paging hints)
These commands should return OK message and display it in the response (In case of success) to be consistent with the rest of commands that were addressed in #414/#415
PersonaBar's module "SiteSettings" is based on React/Redux.
There are several setState
calls wrapped by setTimeouts
.
It could create unpredictable behaviors and UI refresh overhead.
setTimeout
in main.jsx
setState
calls wrapped by setTimeout
setStat
e calls shouldn't be wrapped by setTimeout
calls. It causes unpredictable behavior and concurrency issues, since React cannot manage DOM in an optimized way.redux-immutable-state-variant
should be use only in a development environment.
Using in a production environment it could seriously impact performances because of many deep object copies performed in the code.
There is also a TODO comment in the current source code: https://github.com/dnnsoftware/Dnn.AdminExperience.Extensions/blob/f5a1b3c7964d432c49611d7a4d136f7edafa5bbf/src/Modules/Settings/Dnn.PersonaBar.SiteSettings/SiteSettings.Web/src/store/configureStore.js
redux-immutable-state-variant
npm module is used both in development and production code
redux-immutable-state-variant
should be used conditionally only in DEV environment
When copying (Duplicate) a page, the parent page is highlighted instead of the current page.
The parent page is selected in the pages list, instead of the new one.
The new page should be selected
https://www.screencast.com/t/LpLz1YFlB
Set-page is not working as expected behavior when passed with portalid.
{"cmdLine=set-page 52 --title setpagedemo "}
Success message
Should show error message
When clicking on logout (personabar), nothing happens (there is a web api request made).
I think its better to refresh the page after logout (response of 200).
help set-user
list-users
and capture valid userIdset-user --id capturedIdFromStep5 NewValidName
User updated successfully
No errors shall appear to the user
Mandatory validation messsage appears to the user indicating first name/last name are required
[email protected]
PB > Prompt
list-users --email *
list-users --email *@test.com
This should display user with email [email protected]
It does not display the expected user. Please refer attached screenshot
9.2
Page restore successfully regardless the poratalid parameter passed
Page should not be restore as corresponding poratalid does'nt have the page
Page with id "52" purged successfully.
Page not found
Successfully saved user.
User not found or similar message
In case of multiple portals, a combo should appear to allow user to manage settings across portals.
Issue appeared after installation of Evoq Engage 9.2.1 - 187.
Previous version works fine (screenshot took from 9.2.1 - 129 ).
The combo containing the list of existing portals is not visible any more
A combo containing the list of existing portal should appear at top - left of PB view area (see the screenshot)
When we create/modify page settings, nothing changes in the UI, unless we manually refresh the browser.
Pages is a React/Redux project under AdminExperience.Extensions repository. When a page is updated, changes should be dispatched and propagated to all bound properties in the UI.
As noted in #557, there a bunch of TODO items in code where a development-only component is loaded in production, which can cause performance degradation of our React components.
We should modify code so that redux-immutable-state-invariant
is only ever loaded during development.
The problem is that date picker reserve some space before it even appears. Moving the date picker to show on top and this should be resolved.
page container is not deformed
extra white space appears https://www.screencast.com/t/BpVHxIS7
When creating a new custom url by calling API PageUrlsController.CreateCustomUrl, we need a validation method to verify the specified PortalAlias belongs to the current Portal.
When going to Settings > Site Settings
on the Persona bar the user has the option on the top left to switch sites and visit the setting for another Portal. This works for most of the tabs since it makes the right request by passing the PortalID
; nevertheless, in the case of the Search Tab the request is not passing any params and it simply loads the settings for the current Portal.
Search tab shows the settings for portal 1.
It shows the portal for the current one (0
)
https://www.screencast.com/t/ERUt2phPp
You'll find the page created twice in the pages list and if you tried to click on the first one you'll get that you have no permission.
This should be fixed.
Can you please give us a list of developed modules (Finished, production-ready, modules -> 100 percent OR partially developed (say for 40% etc...)), but also modules that will be developed in a vNext (next version). We, DNN partners and lovers, need more information to make (strong) business decisions and possibly help developing (submitting (new) pull requests). And what about a release date (BETA, RC) ???
The text [email protected] and www.dotnernuke.com should reference dnnsoftware.com i.s.o. dotnetnuke.com
Nothing special, just search for the references dotnetnuke.com
Multiple locations in multiple files
None
The method call 'gettable' (GET /API/personaBar/localization/gettable?culture=en-US HTTP/1.1) needs to be cached. Lazy loading would be even better. I personally use 'Strathweb.CacheOutput' and it works fine. So cache the web api methods with Strathweb.CacheOutput, e.g., [CacheOutput(ClientTimeSpan = 3600, ServerTimeSpan = 3600)].
GitHub raises a possible vulnerability in moment.js we use in DayPicker
Please refer to this report: https://nvd.nist.gov/vuln/detail/CVE-2017-18214
Suggested fix is to update package.json with moment ~> 2.19.3
Cross-scripting only should work for user if cross-portalId either belongs to user or portalId is one of SiteGroup.
Successfully restore user
User not found
with "Concatenate Page URLs" on Off into SEO settings, when i try to "edit" a module into "Page Setting >Module", the "Module Setting" iframe has an url like (note the double ?
):
/my-page?moduleid=11585?popup=true&ctl=module&hidecancel=true&hidedelete=true&noredirectonupdate=true
________^______________^
the double ?
cause an exception:
Error: is currently unavailable. DotNetNuke.Services.Exceptions.ModuleLoadException: Formato della stringa di input non corretto. ---> System.FormatException: Formato della stringa di input non corretto. in System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) in System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) in DotNetNuke.Modules.Admin.Modules.ModuleSettingsPage.OnInit(EventArgs e)
The problem is in ModuleEdit.js (https://github.com/dnnsoftware/Dnn.AdminExperience.Extensions/blob/2e77c2e19658c90d7cc52c4421a22b26b6c97cf5/src/Modules/Content/Dnn.PersonaBar.Pages/Pages.Web/src/components/Modules/ModuleEdit/ModuleEdit.jsx). This module, into the render()
method, always concatenate the this.props.module.editSettingUrl
with queryString
, without check if this.props.module.editSettingUrl
has already a ?
, but queryString
already has a ?
:
const queryString = "?popUp=true&HideCancel=true&HideDelete=true&NoRedirectOnUpdate=true";
My fix is remove ?
from queryString
and add it if necessary into the render()
method:
const queryString = "popUp=true&HideCancel=true&HideDelete=true&NoRedirectOnUpdate=true";
// ...
render() {
const {state, props} = this;
let moduleSettingControlPath = this.props.module.editSettingUrl;
if( moduleSettingControlPath.indexOf('?') === -1 ){
moduleSettingControlPath += '?';
} else {
moduleSettingControlPath += '&';
}
moduleSettingControlPath += queryString;
return (state.userMode === "edit" &&
<iframe ref="iframe" src={moduleSettingControlPath} style={iFrameStyle} frameBorder={0}></iframe>
);
}
Should have
Now go to main site window
PersonaBar > Settings > Prompt
Type get-user 5
Now go to child1 site window
PersonaBar > Settings > Prompt
Type get-user 4
Error message for user not found
Host user should get detail view of any user of any site when using PROMPT
List is displayed for all *.dnn and *.dnnVERSION_NUMBER files in the module folder.
Resource dropdown is not populated, no matter what combination of Owner Folder & Module folder are selected. Therefore cannot create Manifest as Resource is required field
Dnn9 without updating the login and profile page is NOT complete, especially from a marketing perspective. The whole community would like to see these changes (actually now for years).Please update those pages.
When a task is disabled, it will continue to run as scheduled until the application is restarted.
The expected behavior is that the scheduler should stop any further execution of this task.
Task should have stopped running after disabling it.
Task will keep running until the application is restarted.
Note: stopping/starting the scheduler does not stop it from continuously running.
.DnnModule + .DnnModule { margin-top: 1rem; }
.DnnModule .DnnModule { margin-top: 1rem; }
Note the +
character (adjacent sibling combinator) has been replaced with a blank space character
.
The +
character should not be stripped out of the Custom CSS.
I'm using DNN Evoq Engage 9.2.0.
Tested in the latest versions of Firefox and Chrome on Windows Server 2016.
As I witnessed while working on #539, there is some debt in how branches are organised in this repository.
Here's what I think we should do:
master
development -> master
and make that the default brachmaster
master
(next is 1.6.0
)set-page 90 --title child1page1
and enterCommand hangs and then prompt start blinking, no success message. If check browser debugger > network tab select the last POST command and check its response tab
{
"output": "",
"isError": true,
"isHtml": false,
"mustReload": false,
"data": null,
"fieldOrder": null,
"pagingInfo": null,
"nextPageCommand": null,
"records": 0
}
It should show successful message that title has been set and detail view should show the newly set title.
If you pass portal id in rest request to delete user and if user does not belong to that portal, even then it is getting delete by the system
GetModuleFiles function doesn't retrieve manifest files
Wrong Get: /API/PersonaBar/Extensions/GetModuleFiles?ownerFolder=MyFolder&moduleFolder=SubFolder&type=3
Correct Get: /API/PersonaBar/Extensions/GetModuleFiles?ownerFolder=MyFolder&moduleFolder=SubFolder&type=2
change js function in Admin\Dnn.PersonaBar\Modules\Dnn.Extensions\scripts\bundles\extensions-bundle.js
'onFolderSelect' .... type: 3 to type: 2
When the user try to move a page to be child of another page, ether by drag and drop or by selecting page parent on page detail, it presents an error.
Show an error on retrieving content
Should be able to assign the dragged page as child of Home page.
This is a defect included when trying to fix #560, some mistake was made because the activePage on tree view is diferent from the activePage on the main detail page. The pull request #580 has altered the name of this variable to avoid confusion in future mantainence.
{"cmdLine=get-page 52 "}
Show page details
Should show error message, page not found
If user has a lame skin (or misbehaving modules) it can be hard/impossible to get to a module's edit menu.
Previously (pre-DNN 9) we could go to LAYOUT view and access both a module's Edit and Settings menus.
With DNN 9, one can go to Personna bar's Content | Pages | Advanced | Modules screen to see a list of modules. Once there though, the edit icon (a pencil - which really should be the settings icon!) goes to the modules SETTINGS menu, but there is no way to get to the EDIT menu for the module.
Accessing the Edit menu may be required to solve the issue or start over.
One can also change to a good skin as a partial worksround, but this is more of a hassle and may not always work.
Currently version number have to be managed multiple times across every repository. For this repository alone it's 22 manifest files which have to be changed every time we bump the version (no wonder we bump it ver rarely ๐). The numbers in the .dnn
manifests are then taken as the zip installer version. Hence these artifacts, as seen in builds from #539 are still 1.6.0, even though GitVersion wrongly calculated 1.5.1. Just imagine how many there are across all Plaftorm/Evoq codebase.
So, with GitVersion we would not have the version number at all. Anywhere! Not in .dnn
, not in AssemblyInfo.cs
. Anywhere. That version would only ever be calculated from the git branching. The tool has a lot to offer in terms of configuration. It is being affected mainly by tags and merges with release branches.
If you pass portal id in rest request to delete user and if user does not belong to that portal, even then it is getting delete by the system
{"cmdLine=add-roles 5 --roles editor "}
Successfully role added to the user
User not found
With recent builds of 9.2.1 some Persona Bar menus were not working. Turns out that the CI did not capture yarn install
failure and we were using broken React bundles:
export-bundle.js?cdv=65:2 Uncaught Error: Minified React error #130; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=130&args[]=undefined&args[]=%20Check%20the%20render%20method%20of%20%60t%60. for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
at n (export-bundle.js?cdv=65:2)
at i (export-bundle.js?cdv=65:61)
at r (export-bundle.js?cdv=65:172)
at o (export-bundle.js?cdv=65:29)
at o (export-bundle.js?cdv=65:29)
at i (export-bundle.js?cdv=65:29)
at Object.instantiateChildren (export-bundle.js?cdv=65:172)
at h._reconcilerInstantiateChildren (export-bundle.js?cdv=65:173)
at h.mountChildren (export-bundle.js?cdv=65:173)
at h._createInitialChildren (export-bundle.js?cdv=65:173)
The root cause was yarn.lock
referring the private MyGet repository.
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.