Bläddra i källkod

fix a bug, table not change

ioobot 7 år sedan
förälder
incheckning
2b256e01fc
3 ändrade filer med 116 tillägg och 100 borttagningar
  1. 51 61
      .idea/workspace.xml
  2. 0 4
      src/config/index.js
  3. 65 35
      src/schema/index.js

+ 51 - 61
.idea/workspace.xml

@@ -2,10 +2,8 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="93d86d6a-0860-401c-996e-30fc26553ffc" name="Default Changelist" comment="">
-      <change beforePath="$PROJECT_DIR$/src/app/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/app/index.js" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/config/diff/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/config/diff/index.js" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/config/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/config/index.js" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/schema/change/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/schema/change/index.js" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/schema/index.js" beforeDir="false" afterPath="$PROJECT_DIR$/src/schema/index.js" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/.tmp/" />
@@ -61,7 +59,7 @@
         <counts>
           <entry key="css" value="766" />
           <entry key="html" value="24" />
-          <entry key="js" value="19595" />
+          <entry key="js" value="20061" />
           <entry key="ts" value="14" />
         </counts>
       </usages-collector>
@@ -69,7 +67,7 @@
         <counts>
           <entry key="CSS" value="766" />
           <entry key="HTML" value="24" />
-          <entry key="JavaScript" value="19595" />
+          <entry key="JavaScript" value="20061" />
           <entry key="TypeScript" value="14" />
         </counts>
       </usages-collector>
@@ -80,8 +78,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/app/index.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="858">
-              <caret line="135" lean-forward="true" selection-start-line="135" selection-end-line="135" />
+            <state relative-caret-position="-1318">
+              <caret line="51" column="13" lean-forward="true" selection-start-line="51" selection-start-column="13" selection-end-line="51" selection-end-column="13" />
               <folding>
                 <element signature="e#0#39#0" expanded="true" />
               </folding>
@@ -137,26 +135,26 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/schema/change/index.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="798">
-              <caret line="63" column="5" lean-forward="true" selection-start-line="63" selection-start-column="5" selection-end-line="63" selection-end-column="5" />
+            <state relative-caret-position="-181">
+              <caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" />
               <folding>
                 <element signature="e#0#39#0" expanded="true" />
                 <element signature="e#433#596#0" />
                 <element signature="e#624#717#0" />
                 <element signature="e#752#910#0" />
+                <element signature="e#942#1349#0" />
                 <element signature="e#1384#1543#0" />
                 <element signature="e#1577#1727#0" />
-                <element signature="n#!!block;n#componentWillReceiveProps#0;n#Change#0" />
               </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/src/config/index.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="493">
-              <caret line="106" column="20" selection-start-line="106" selection-start-column="20" selection-end-line="106" selection-end-column="20" />
+            <state relative-caret-position="623">
+              <caret line="110" column="38" lean-forward="true" selection-start-line="110" selection-start-column="38" selection-end-line="110" selection-end-column="38" />
               <folding>
                 <element signature="e#0#39#0" expanded="true" />
                 <element signature="e#353#442#0" />
@@ -171,11 +169,11 @@
           <provider selected="true" editor-type-id="images" />
         </entry>
       </file>
-      <file pinned="false" current-in-tab="false">
+      <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/src/schema/index.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="149">
-              <caret line="20" column="16" lean-forward="true" selection-start-line="20" selection-start-column="16" selection-end-line="20" selection-end-column="16" />
+            <state relative-caret-position="808">
+              <caret line="401" column="28" lean-forward="true" selection-start-line="401" selection-start-column="28" selection-end-line="401" selection-end-column="28" />
               <folding>
                 <element signature="e#0#39#0" expanded="true" />
                 <element signature="e#496#1501#0" />
@@ -188,10 +186,6 @@
                 <element signature="e#1367#1485#0" />
                 <element signature="e#3847#4233#0" />
                 <element signature="e#4279#4630#0" />
-                <element signature="e#4863#4952#0" />
-                <element signature="e#5168#5285#0" />
-                <element signature="e#5925#6220#0" />
-                <element signature="e#6541#6632#0" />
                 <element signature="e#6657#7170#0" />
                 <element signature="e#6579#7092#0" />
               </folding>
@@ -284,8 +278,8 @@
         <option value="$PROJECT_DIR$/src/config/diff/index.js" />
         <option value="$PROJECT_DIR$/src/schema/change/index.js" />
         <option value="$PROJECT_DIR$/src/app/index.js" />
-        <option value="$PROJECT_DIR$/src/schema/index.js" />
         <option value="$PROJECT_DIR$/src/config/index.js" />
+        <option value="$PROJECT_DIR$/src/schema/index.js" />
       </list>
     </option>
   </component>
@@ -422,12 +416,12 @@
       <updated>1540954591627</updated>
       <workItem from="1540954593719" duration="75927000" />
       <workItem from="1541378899580" duration="1667000" />
-      <workItem from="1541395110197" duration="45502000" />
+      <workItem from="1541395110197" duration="50646000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="123096000" />
+    <option name="totallyTimeSpent" value="128240000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="333" y="54" width="2063" height="1311" extended-state="0" />
@@ -562,13 +556,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/config/index.css">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="684">
-          <caret line="36" column="12" selection-start-line="36" selection-start-column="12" selection-end-line="36" selection-end-column="12" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/graphiql/index.js">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="665">
@@ -582,16 +569,6 @@
     <entry file="file://$PROJECT_DIR$/src/app/logo.png">
       <provider selected="true" editor-type-id="images" />
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/app/index.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="858">
-          <caret line="135" lean-forward="true" selection-start-line="135" selection-end-line="135" />
-          <folding>
-            <element signature="e#0#39#0" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/schema/index.css">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="190">
@@ -612,26 +589,55 @@
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/app/index.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="-1318">
+          <caret line="51" column="13" lean-forward="true" selection-start-line="51" selection-start-column="13" selection-end-line="51" selection-end-column="13" />
+          <folding>
+            <element signature="e#0#39#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/config/index.css">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="684">
+          <caret line="36" column="12" selection-start-line="36" selection-start-column="12" selection-end-line="36" selection-end-column="12" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/config/index.js">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="623">
+          <caret line="110" column="38" lean-forward="true" selection-start-line="110" selection-start-column="38" selection-end-line="110" selection-end-column="38" />
+          <folding>
+            <element signature="e#0#39#0" expanded="true" />
+            <element signature="e#353#442#0" />
+            <element signature="e#480#911#0" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/src/schema/change/index.js">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="798">
-          <caret line="63" column="5" lean-forward="true" selection-start-line="63" selection-start-column="5" selection-end-line="63" selection-end-column="5" />
+        <state relative-caret-position="-181">
+          <caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" />
           <folding>
             <element signature="e#0#39#0" expanded="true" />
             <element signature="e#433#596#0" />
             <element signature="e#624#717#0" />
             <element signature="e#752#910#0" />
+            <element signature="e#942#1349#0" />
             <element signature="e#1384#1543#0" />
             <element signature="e#1577#1727#0" />
-            <element signature="n#!!block;n#componentWillReceiveProps#0;n#Change#0" />
           </folding>
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/schema/index.js">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="149">
-          <caret line="20" column="16" lean-forward="true" selection-start-line="20" selection-start-column="16" selection-end-line="20" selection-end-column="16" />
+        <state relative-caret-position="808">
+          <caret line="401" column="28" lean-forward="true" selection-start-line="401" selection-start-column="28" selection-end-line="401" selection-end-column="28" />
           <folding>
             <element signature="e#0#39#0" expanded="true" />
             <element signature="e#496#1501#0" />
@@ -644,27 +650,11 @@
             <element signature="e#1367#1485#0" />
             <element signature="e#3847#4233#0" />
             <element signature="e#4279#4630#0" />
-            <element signature="e#4863#4952#0" />
-            <element signature="e#5168#5285#0" />
-            <element signature="e#5925#6220#0" />
-            <element signature="e#6541#6632#0" />
             <element signature="e#6657#7170#0" />
             <element signature="e#6579#7092#0" />
           </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/config/index.js">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="493">
-          <caret line="106" column="20" selection-start-line="106" selection-start-column="20" selection-end-line="106" selection-end-column="20" />
-          <folding>
-            <element signature="e#0#39#0" expanded="true" />
-            <element signature="e#353#442#0" />
-            <element signature="e#480#911#0" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
   </component>
 </project>

+ 0 - 4
src/config/index.js

@@ -96,8 +96,6 @@ class Config extends Component {
             <div className='warpper'>
               <div className='current'>{this.state.currentConfig}</div>
               {
-
-
                 <Search
                   className='add-input'
                   placeholder="input config_name"
@@ -108,7 +106,6 @@ class Config extends Component {
                 />
               }
             </div>
-
             {
               this.state.configs.map((config) => {
                 return <div key={config.name} onClick={this.switchConfig(config.name)} className='title'>
@@ -118,7 +115,6 @@ class Config extends Component {
                 </div>
               })
             }
-
           </Col>
           <Col span={18}>
             <Diff addConfig={this.addConfig} deleteConfig={this.deleteConfig} currentConfig={this.state.currentConfig}

+ 65 - 35
src/schema/index.js

@@ -1,6 +1,6 @@
 import React, {Component} from 'react';
 
-import {Row, Col, Input, Icon, Button} from 'antd';
+import {Row, Col, Input, Icon, Button, Spin} from 'antd';
 import './index.css';
 import Change from './change';
 import gql from "graphql-tag";
@@ -184,10 +184,11 @@ class Schema extends Component {
 
   switchTable = (table) => {
     return () => {
+      console.log(table, 'clicked');
       this.setState({
         currentTable: table
       })
-    }
+    };
   };
 
   addSchema = (name) => {
@@ -199,29 +200,28 @@ class Schema extends Component {
     });
   };
 
-  deleteSchema = (schemaName) => {
-    return (e) => {
-      e.stopPropagation();
-      let schemas = this.state.schemas;
-      let targetSchemaIndex = schemas.findIndex(obj => obj.name === schemaName);
-      if (targetSchemaIndex !== -1) {
-        schemas.splice(targetSchemaIndex, 1);
-        this.setState({
-          schemas
-        })
-      }
-      if (this.state.schemas.length !== 0) {
-        this.setState({
-          currentSchema: this.state.schemas[0].name,
-          currentTable: this.state.schemas[0].tables[0] ? this.state.schemas[0].tables[0].name : ''
-        })
-      } else {
-        this.setState({
-          currentSchema: '',
-          currentTable: ''
-        })
-      }
+  deleteSchema = (e, schemaName) => {
+    e.stopPropagation();
+    let schemas = this.state.schemas;
+    let targetSchemaIndex = schemas.findIndex(obj => obj.name === schemaName);
+    if (targetSchemaIndex !== -1) {
+      schemas.splice(targetSchemaIndex, 1);
+      this.setState({
+        schemas
+      })
+    }
+    if (this.state.schemas.length !== 0) {
+      this.setState({
+        currentSchema: this.state.schemas[0].name,
+        currentTable: this.state.schemas[0].tables[0] ? this.state.schemas[0].tables[0].name : ''
+      })
+    } else {
+      this.setState({
+        currentSchema: '',
+        currentTable: ''
+      })
     }
+
   };
 
   switchSchema = (schema) => {
@@ -229,12 +229,8 @@ class Schema extends Component {
       this.setState({
         currentSchema: schema
       });
-      let tables = this.state.schemas.find(obj => obj.name === schema).tables;
-      if (tables.length !== 0) {
-        this.setState({
-          currentTable: tables[0].name
-        })
-      } else {
+      // when this schema has no table, show new
+      if (this.state.schemas.find(obj => obj.name === schema).tables.length === 0) {
         this.setState({
           currentTable: ''
         })
@@ -272,7 +268,7 @@ class Schema extends Component {
           <Col span={6}>
             <div className='wrapper'>
               <div className='current'>{this.state.currentSchema}</div>
-              <AddSchema userID={this.props.userID} addSchema={this.addSchema}/>
+              <AddSchemaInput userID={this.props.userID} addSchema={this.addSchema}/>
             </div>
 
             {
@@ -283,8 +279,7 @@ class Schema extends Component {
                     <Col span={4}>
                       <Button onClick={() => this.setState({currentTable: 'add'})} type="primary"
                               shape="circle" icon="plus" size='small'/>
-                      <Button onClick={this.deleteSchema(schema.name)} type="danger"
-                              shape="circle" icon="delete" size='small' style={{marginLeft: 3}}/>
+                      <DeleteSchemaButton shcemaName={schema.name} deleteSchema={this.deleteSchema}/>
                     </Col>
                   </Row>
 
@@ -321,7 +316,7 @@ class Schema extends Component {
 
 export default Schema;
 
-class AddSchema extends Component {
+class AddSchemaInput extends Component {
   render() {
     let varobj = {
       id: idGen('schema'),
@@ -382,8 +377,43 @@ class AddSchema extends Component {
         }}
       </Mutation>
     )
-
   }
 }
 
+class DeleteSchemaButton extends Component {
+  render() {
+    const DELETE_SCHEMA = gql`
+      mutation SCHEMA($schemaName: String) {
+        delete_schema(schemaName: $schemaName) 
+        {
+            id,
+            schemaName
+        }
+      }
+    `;
+    return (
+      <Mutation mutation={DELETE_SCHEMA}>
+        {(delete_schema, {data}) => {
+          return (
+            <Button onClick={(e) => {
+              this.props.deleteSchema(e, this.props.schemaName);
+              delete_schema({schemaName: this.props.schemaName})
+              console.log(data);
+            }} type="danger" shape="circle" icon="delete" size='small' style={{marginLeft: 3}}/>
+          )
+        }}
+      </Mutation>
+
+      //     delete_schema(
+      //       createdAt: String
+      //        id: ID
+      //        schemaData: String
+      //        schemaName: String
+      //        schemaState: String
+      //        updatedAt: String
+      //        user_id: String
+      //      ): String
+    )
+  }
+}