diff --git a/src/module/enhancesite.jsx b/src/module/enhancesite.jsx
index 4a66df1e..73c6a790 100644
--- a/src/module/enhancesite.jsx
+++ b/src/module/enhancesite.jsx
@@ -68,6 +68,20 @@ function getSites( sites ) {
return items;
}
+/**
+ * Editor Plugin Empty Render
+ */
+function editorEmptyRender() {
+ $( ".preview" ).html( `
当前未选择任何适配站点
` );
+}
+
+/**
+ * Site info Empty Render
+ */
+function siteinfoEmptyRender() {
+ $( ".siteinfo" ).addClass( 'hide' );
+}
+
/**
* Site info Render
*/
@@ -81,8 +95,12 @@ function siteinfoRender() {
*/
function sitesRender() {
$( ".property .sites" ).empty();
- $( ".property .sites" ).parent().removeAttr("style");
- ReactDOM.render( , $( ".property .sites" )[0] );
+ if ( $.isEmptyObject( user_sites ) ) {
+ $( ".property .sites" ).parent().hide();
+ } else {
+ $( ".property .sites" ).parent().removeAttr("style");
+ ReactDOM.render( , $( ".property .sites" )[0] );
+ }
}
class Sites extends React.Component {
@@ -214,7 +232,9 @@ export default class Import extends React.Component {
}).done( ( result, textStatus, jqXHR ) => {
loadingState( "success", "获取当前用户全部站点" );
if ( result.code == 200 ) {
- user_sites = result.data;
+ result.data.forEach( item => {
+ user_sites[item.id] = item;
+ });
sitesRender();
} else if ( result.code == 404 ) {
loadingState( "faile", "当前用户没有任何站点,可以先新建 或 上传一个站点。" );
@@ -237,11 +257,32 @@ export default class Import extends React.Component {
delete storage.site.info.global;
delete storage.site.info.release;
siteinfoRender();
- this.props.onUpdate && this.props.onUpdate();
+ this.props.onUpdate && this.props.onUpdate( "update" );
} else loadingState( "faile", "提交失败,请稍后再试!" );
}).fail( fail );
}
+ delete( id ) {
+ loadingState( "init" );
+ $.ajax({
+ url : getService( "/sites/service/delete/" + id ),
+ type : "POST",
+ data : { uid: cur_user.uid },
+ }).done( ( result, textStatus, jqXHR ) => {
+ if ( result.code == 204 ) {
+ loadingState( "success", "已删除" );
+ delete user_sites[site_info.id];
+ sitesRender();
+ editorEmptyRender();
+ siteinfoEmptyRender();
+ this.props.onUpdate && this.props.onUpdate( "safe" );
+ new Notify().Render({ mode: "snackbar", content: "是否也删除本地站?", action: "确认", cancel: "取消", callback: type => {
+ type != "cancel" && this.props.onUpdate && this.props.onUpdate( "delete" );
+ }});
+ } else loadingState( "faile", "删除失败,请稍后再试!" );
+ }).fail( fail );
+ }
+
update() {
$.isEmptyObject( cur_user ) && new Notify().Render({ mode: "snackbar", content: "需要先登录到服务器后才能提交!", action: "登录", cancel: "取消", callback: type => {
type == "action" && this.login();
@@ -271,6 +312,21 @@ export default class Import extends React.Component {
console.log( "current site is ", storage.site.info )
}
+ remove() {
+ if ( !storage.site || $.isEmptyObject( site_info )) {
+ new Notify().Render( "当前没有选择站点,请通过 新建 或选择一个本地站点。" );
+ return;
+ }
+ if ( site_info.release == true || site_info.global == true ) {
+ new Notify().Render( "当前站点已审核通过,无法删除,请联络管理员。" );
+ return;
+ }
+ new Notify().Render({ mode: "snackbar", content: "确定(从服务器上)删除当前站点?", action: "确认", cancel: "取消", callback: type => {
+ if ( type == "cancel" ) return;
+ this.delete( site_info.id );
+ }});
+ }
+
logout() {
location.reload();
}
@@ -300,6 +356,12 @@ export default class Import extends React.Component {
color="#fff" backgroundColor="#4CAF50"
waves="md-waves-effect md-waves-button"
onClick={ ()=>this.update() } />
+ { this.state.login &&
+