Parcourir la source

cdb diff fixes, close #39 #40 41

Nicolas Cannasse il y a 5 ans
Parent
commit
84172ef9c2
3 fichiers modifiés avec 13 ajouts et 2 suppressions
  1. 1 1
      hide/Ide.hx
  2. 2 0
      hide/comp/cdb/Cell.hx
  3. 10 1
      hide/comp/cdb/Table.hx

+ 1 - 1
hide/Ide.hx

@@ -940,7 +940,7 @@ class Ide {
 		});
 		db.find(".dbCloseDiff").click(function(_) {
 			setDiff(null);
-		}).attr("disabled", databaseDiff != null ? "" : "disabled");
+		}).attr("disabled", databaseDiff == null ? "disabled" : null);
 
 		// layout
 		var layouts = menu.find(".layout .content");

+ 2 - 0
hide/comp/cdb/Cell.hx

@@ -114,6 +114,7 @@ class Cell extends Component {
 					case TList, TProperties:
 						continue;
 					default:
+						if( !table.canViewSubColumn(column.name, c.name) ) continue;
 						vals.push(valueHtml(c, Reflect.field(v, c.name), ps, v));
 					}
 				var v = vals.length == 1 ? vals[0] : ""+vals;
@@ -140,6 +141,7 @@ class Cell extends Component {
 			for( c in ps.columns ) {
 				var pval = Reflect.field(v, c.name);
 				if( pval == null && c.opt ) continue;
+				if( !table.canViewSubColumn(column.name, c.name) ) continue;
 				out.push(c.name+" : "+valueHtml(c, pval, ps, v));
 			}
 			return out.join("<br/>");

+ 10 - 1
hide/comp/cdb/Table.hx

@@ -49,6 +49,15 @@ class Table extends Component {
 		return view == null || (view.edit != null && view.edit.indexOf(name) >= 0);
 	}
 
+	public function canViewSubColumn( name : String, column : String ) {
+		if( view == null )
+			return true;
+		var sub = view.sub == null ? null : view.sub.get(name);
+		if( sub == null )
+			return true;
+		return sub.show == null || sub.show.indexOf(column) >= 0;
+	}
+
 	public function close() {
 		element.remove();
 		dispose();
@@ -172,7 +181,7 @@ class Table extends Component {
 				editor.newColumn(sheet);
 			});
 			element.append(l);
-		} else if( sheet.lines.length == 0 ) {
+		} else if( sheet.lines.length == 0 && canInsert() ) {
 			var l = J('<tr><td colspan="${columns.length + 1}"><input type="button" value="Insert Line"/></td></tr>');
 			l.find("input").click(function(_) {
 				editor.insertLine(this);