mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-24 09:28:31 +00:00
updates (#7931)
This commit is contained in:
parent
82a8b096fa
commit
3fb4cca2ea
3 changed files with 48 additions and 33 deletions
|
|
@ -16,6 +16,7 @@ export const BlankPage = function BlankPage({
|
||||||
showTemplateLibraryModal,
|
showTemplateLibraryModal,
|
||||||
hideTemplateLibraryModal,
|
hideTemplateLibraryModal,
|
||||||
viewTemplateLibraryModal,
|
viewTemplateLibraryModal,
|
||||||
|
canCreateApp,
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const [deploying, setDeploying] = useState(false);
|
const [deploying, setDeploying] = useState(false);
|
||||||
|
|
@ -27,6 +28,8 @@ export const BlankPage = function BlankPage({
|
||||||
{ id: 'whatsapp-and-sms-crm', name: 'Whatsapp and sms crm' },
|
{ id: 'whatsapp-and-sms-crm', name: 'Whatsapp and sms crm' },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const appCreationDisabled = !canCreateApp();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div className="page-wrapper blank-page-wrapper">
|
<div className="page-wrapper blank-page-wrapper">
|
||||||
|
|
@ -53,6 +56,7 @@ export const BlankPage = function BlankPage({
|
||||||
data-cy="button-new-app-from-scratch"
|
data-cy="button-new-app-from-scratch"
|
||||||
className="col"
|
className="col"
|
||||||
fill={'#FDFDFE'}
|
fill={'#FDFDFE'}
|
||||||
|
disabled={appCreationDisabled}
|
||||||
>
|
>
|
||||||
Create new application
|
Create new application
|
||||||
</ButtonSolid>
|
</ButtonSolid>
|
||||||
|
|
@ -63,12 +67,14 @@ export const BlankPage = function BlankPage({
|
||||||
isLoading={isImportingApp}
|
isLoading={isImportingApp}
|
||||||
data-cy="button-import-an-app"
|
data-cy="button-import-an-app"
|
||||||
className="col"
|
className="col"
|
||||||
variant="tertiary"
|
disabled={appCreationDisabled}
|
||||||
|
variant={!appCreationDisabled ? 'tertiary' : 'primary'}
|
||||||
>
|
>
|
||||||
<label
|
<label
|
||||||
className="cursor-pointer"
|
className="cursor-pointer"
|
||||||
style={{ visibility: isImportingApp ? 'hidden' : 'visible' }}
|
style={{ visibility: isImportingApp ? 'hidden' : 'visible' }}
|
||||||
data-cy="import-an-application"
|
data-cy="import-an-application"
|
||||||
|
disabled={appCreationDisabled}
|
||||||
>
|
>
|
||||||
{t('blankPage.importApplication', 'Import an app')}
|
{t('blankPage.importApplication', 'Import an app')}
|
||||||
<input
|
<input
|
||||||
|
|
@ -76,6 +82,7 @@ export const BlankPage = function BlankPage({
|
||||||
ref={fileInput}
|
ref={fileInput}
|
||||||
style={{ display: 'none' }}
|
style={{ display: 'none' }}
|
||||||
data-cy="import-option-input"
|
data-cy="import-option-input"
|
||||||
|
disabled={appCreationDisabled}
|
||||||
/>
|
/>
|
||||||
</label>
|
</label>
|
||||||
</ButtonSolid>
|
</ButtonSolid>
|
||||||
|
|
@ -86,41 +93,45 @@ export const BlankPage = function BlankPage({
|
||||||
<EmptyIllustration />
|
<EmptyIllustration />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="hr-text" data-cy="action-option">
|
{!appCreationDisabled && (
|
||||||
Or choose from templates
|
<div>
|
||||||
</div>
|
<div className="hr-text" data-cy="action-option">
|
||||||
<div className="row" data-cy="app-template-row">
|
Or choose from templates
|
||||||
{staticTemplates.map(({ id, name }) => {
|
</div>
|
||||||
return (
|
<div className="row" data-cy="app-template-row">
|
||||||
<div
|
{staticTemplates.map(({ id, name }) => {
|
||||||
key={id}
|
return (
|
||||||
className="col-4 app-template-card-wrapper"
|
|
||||||
onClick={() => {
|
|
||||||
openCreateAppFromTemplateModal({ id, name });
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="template-card cursor-pointer"
|
|
||||||
data-cy={`${name.toLowerCase().replace(/\s+/g, '-')}-app-template-card`}
|
|
||||||
>
|
|
||||||
<div
|
<div
|
||||||
className="img-responsive img-responsive-21x9 card-img-top template-card-img"
|
key={id}
|
||||||
style={{ backgroundImage: `url(assets/images/templates/${id}.png)` }}
|
className="col-4 app-template-card-wrapper"
|
||||||
data-cy={`${name.toLowerCase().replace(/\s+/g, '-')}-app-template-image`}
|
onClick={() => {
|
||||||
/>
|
openCreateAppFromTemplateModal({ id, name });
|
||||||
<div className="card-body">
|
}}
|
||||||
<h3
|
>
|
||||||
className="tj-text-md font-weight-500"
|
<div
|
||||||
data-cy={`${name.toLowerCase().replace(/\s+/g, '-')}-app-template-title`}
|
className="template-card cursor-pointer"
|
||||||
|
data-cy={`${name.toLowerCase().replace(/\s+/g, '-')}-app-template-card`}
|
||||||
>
|
>
|
||||||
{name}
|
<div
|
||||||
</h3>
|
className="img-responsive img-responsive-21x9 card-img-top template-card-img"
|
||||||
|
style={{ backgroundImage: `url(assets/images/templates/${id}.png)` }}
|
||||||
|
data-cy={`${name.toLowerCase().replace(/\s+/g, '-')}-app-template-image`}
|
||||||
|
/>
|
||||||
|
<div className="card-body">
|
||||||
|
<h3
|
||||||
|
className="tj-text-md font-weight-500"
|
||||||
|
data-cy={`${name.toLowerCase().replace(/\s+/g, '-')}-app-template-title`}
|
||||||
|
>
|
||||||
|
{name}
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
);
|
||||||
</div>
|
})}
|
||||||
);
|
</div>
|
||||||
})}
|
</div>
|
||||||
</div>
|
)}
|
||||||
<div className="m-auto text-center mt-4">
|
<div className="m-auto text-center mt-4">
|
||||||
<button
|
<button
|
||||||
className="see-all-temlplates-link tj-text-sm font-weight-600 bg-transparent border-0"
|
className="see-all-temlplates-link tj-text-sm font-weight-600 bg-transparent border-0"
|
||||||
|
|
@ -139,6 +150,7 @@ export const BlankPage = function BlankPage({
|
||||||
onHide={hideTemplateLibraryModal}
|
onHide={hideTemplateLibraryModal}
|
||||||
onCloseButtonClick={hideTemplateLibraryModal}
|
onCloseButtonClick={hideTemplateLibraryModal}
|
||||||
darkMode={darkMode}
|
darkMode={darkMode}
|
||||||
|
appCreationDisabled={appCreationDisabled}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -823,6 +823,7 @@ class HomePageComponent extends React.Component {
|
||||||
showTemplateLibraryModal={this.state.showTemplateLibraryModal}
|
showTemplateLibraryModal={this.state.showTemplateLibraryModal}
|
||||||
viewTemplateLibraryModal={this.showTemplateLibraryModal}
|
viewTemplateLibraryModal={this.showTemplateLibraryModal}
|
||||||
hideTemplateLibraryModal={this.hideTemplateLibraryModal}
|
hideTemplateLibraryModal={this.hideTemplateLibraryModal}
|
||||||
|
canCreateApp={this.canCreateApp}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{!isLoading && meta.total_count === 0 && appSearchKey && (
|
{!isLoading && meta.total_count === 0 && appSearchKey && (
|
||||||
|
|
@ -868,6 +869,7 @@ class HomePageComponent extends React.Component {
|
||||||
onCloseButtonClick={() => this.setState({ showTemplateLibraryModal: false })}
|
onCloseButtonClick={() => this.setState({ showTemplateLibraryModal: false })}
|
||||||
darkMode={this.props.darkMode}
|
darkMode={this.props.darkMode}
|
||||||
openCreateAppFromTemplateModal={this.openCreateAppFromTemplateModal}
|
openCreateAppFromTemplateModal={this.openCreateAppFromTemplateModal}
|
||||||
|
appCreationDisabled={!this.canCreateApp()}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -101,6 +101,7 @@ export default function TemplateLibraryModal(props) {
|
||||||
}}
|
}}
|
||||||
isLoading={deploying}
|
isLoading={deploying}
|
||||||
className="ms-2"
|
className="ms-2"
|
||||||
|
disabled={props.appCreationDisabled}
|
||||||
>
|
>
|
||||||
{t('homePage.templateLibraryModal.createAppfromTemplate', 'Create application from template')}
|
{t('homePage.templateLibraryModal.createAppfromTemplate', 'Create application from template')}
|
||||||
</ButtonSolid>
|
</ButtonSolid>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue