[FIX] Redirect on app manual install (#15306)

pull/15334/head
Douglas Gubert 6 years ago committed by Diego Sampaio
parent 45cc1aec44
commit e2c0723076
  1. 46
      app/apps/client/admin/appInstall.js
  2. 7
      app/apps/client/admin/appManage.js
  3. 4
      app/apps/server/communication/rest.js
  4. 2
      app/apps/server/cron.js
  5. 4
      app/utils/client/lib/RestApiClient.js

@ -11,10 +11,38 @@ import { ReactiveVar } from 'meteor/reactive-var';
import { FlowRouter } from 'meteor/kadira:flow-router';
import { Template } from 'meteor/templating';
import { Tracker } from 'meteor/tracker';
import toastr from 'toastr';
import { APIClient } from '../../../utils';
import { SideNav } from '../../../ui-utils/client';
function handleInstallError(apiError) {
if (!apiError.xhr || !apiError.xhr.responseJSON) { return; }
const { status, messages, error } = apiError.xhr.responseJSON;
let message;
switch (status) {
case 'storage_error':
message = messages.join('');
break;
case 'compiler_error':
message = 'There has been compiler errors. App cannot be installed';
break;
default:
if (error) {
message = error;
} else {
message = 'There has been an error installing the app';
}
}
toastr.error(message);
}
Template.appInstall.helpers({
appFile() {
return Template.instance().file.get();
@ -81,13 +109,9 @@ Template.appInstall.events({
result = await APIClient.post('apps', { url });
}
if (result.compilerErrors.length !== 0 || result.app.status === 'compiler_error') {
console.warn(`The App contains errors and could not be ${ isUpdating ? 'updated' : 'installed' }.`);
} else {
FlowRouter.go(`/admin/apps/${ result.app.id }`);
}
FlowRouter.go(`/admin/apps/${ result.app.id }`);
} catch (err) {
console.warn('err', err);
handleInstallError(err);
}
t.isInstalling.set(false);
@ -124,15 +148,9 @@ Template.appInstall.events({
result = await APIClient.upload('apps', data);
}
console.log('install result', result);
if (result.compilerErrors.length !== 0 || result.app.status === 'compiler_error') {
console.warn(`The App contains errors and could not be ${ isUpdating ? 'updated' : 'installed' }.`);
} else {
FlowRouter.go(`/admin/apps/${ result.app.id }`);
}
FlowRouter.go(`/admin/apps/${ result.app.id }?version=${ result.app.version }`);
} catch (err) {
console.warn('err', err);
handleInstallError(err);
}
t.isInstalling.set(false);

@ -26,7 +26,6 @@ import {
import './appManage.html';
import './appManage.css';
const attachAPIs = async (appId, state) => {
try {
const apis = await Apps.getAppApis(appId);
@ -194,9 +193,11 @@ Template.appManage.onCreated(function() {
loadApp(this);
});
this.handleRemoved = withAppIdFilter(() => FlowRouter.go('/admin/apps'));
Apps.getWsListener().registerListener(AppEvents.APP_ADDED, this.handleChange);
Apps.getWsListener().registerListener(AppEvents.APP_UPDATED, this.handleChange);
Apps.getWsListener().registerListener(AppEvents.APP_REMOVED, this.handleChange);
Apps.getWsListener().registerListener(AppEvents.APP_REMOVED, this.handleRemoved);
Apps.getWsListener().registerListener(AppEvents.APP_STATUS_CHANGE, this.handleChange);
Apps.getWsListener().registerListener(AppEvents.APP_SETTING_UPDATED, this.handleSettingUpdated);
});
@ -204,7 +205,7 @@ Template.appManage.onCreated(function() {
Template.apps.onDestroyed(function() {
Apps.getWsListener().unregisterListener(AppEvents.APP_ADDED, this.handleChange);
Apps.getWsListener().unregisterListener(AppEvents.APP_UPDATED, this.handleChange);
Apps.getWsListener().unregisterListener(AppEvents.APP_REMOVED, this.handleChange);
Apps.getWsListener().unregisterListener(AppEvents.APP_REMOVED, this.handleRemoved);
Apps.getWsListener().unregisterListener(AppEvents.APP_STATUS_CHANGE, this.handleChange);
Apps.getWsListener().unregisterListener(AppEvents.APP_SETTING_UPDATED, this.handleSettingUpdated);
});

@ -238,10 +238,6 @@ export class AppsRestApi {
return API.v1.failure({ status: 'compiler_error', messages: aff.getCompilerErrors() });
}
if (aff.getLicenseValidationResult().hasErrors) {
return API.v1.failure({ status: 'license_error', messages: aff.getLicenseValidationResult().getErrors() });
}
info.status = aff.getApp().getStatus();
return API.v1.success({

@ -115,7 +115,7 @@ export const appsUpdateMarketplaceInfo = Meteor.bindEnvironment(function _appsUp
SyncedCron.add({
name: 'Apps-Engine:check',
schedule: (parser) => parser.text('at 4:00 pm'),
schedule: (parser) => parser.text('at 4:00 am'),
job() {
appsUpdateMarketplaceInfo();
},

@ -90,7 +90,9 @@ export const APIClient = {
resolve(result);
},
error: function _jqueryFormDataError(xhr, status, errorThrown) {
reject(new Error(errorThrown));
const error = new Error(errorThrown);
error.xhr = xhr;
reject(error);
},
});
});

Loading…
Cancel
Save