bfadmin-master commited on 2016-04-26 22:55:13
Zeige 8 geänderte Dateien mit 130 Einfügungen und 132 Löschungen.
| ... | ... |
@@ -72,16 +72,6 @@ def main(): |
| 72 | 72 |
"build": "build", |
| 73 | 73 |
} |
| 74 | 74 |
|
| 75 |
- parts_data = [ |
|
| 76 |
- os.path.join(dirs["source"],"data","phonology_and_orthography.json"), |
|
| 77 |
- os.path.join(dirs["source"],"data","personal_pronouns.json"), |
|
| 78 |
- os.path.join(dirs["source"],"data","word_functions.json"), |
|
| 79 |
- os.path.join(dirs["source"],"data","timeforms.json"), |
|
| 80 |
- os.path.join(dirs["source"],"data","adpositions.json"), |
|
| 81 |
- os.path.join(dirs["source"],"data","correlatives.json"), |
|
| 82 |
- os.path.join(dirs["source"],"data","x.json"), |
|
| 83 |
- ] |
|
| 84 |
- |
|
| 85 | 75 |
parts_logic_server = [ |
| 86 | 76 |
os.path.join(dirs["source"],"logic","server","misc.php"), |
| 87 | 77 |
os.path.join(dirs["source"],"logic","server","data.php"), |
| ... | ... |
@@ -90,13 +80,6 @@ def main(): |
| 90 | 80 |
os.path.join(dirs["source"],"logic","server","sql.php"), |
| 91 | 81 |
] |
| 92 | 82 |
|
| 93 |
- parts_logic_client = [ |
|
| 94 |
- os.path.join(dirs["source"],"logic","client","tools.js"), |
|
| 95 |
- os.path.join(dirs["source"],"logic","client","table.js"), |
|
| 96 |
- os.path.join(dirs["source"],"logic","client","toc.js"), |
|
| 97 |
- os.path.join(dirs["source"],"logic","client","main.js"), |
|
| 98 |
- ] |
|
| 99 |
- |
|
| 100 | 83 |
parts_structure = [ |
| 101 | 84 |
os.path.join(dirs["source"],"structure","draft.html.php"), |
| 102 | 85 |
os.path.join(dirs["source"],"structure","meta.html.php"), |
| ... | ... |
@@ -123,7 +106,25 @@ def main(): |
| 123 | 106 |
os.path.join(dirs["source"],"structure","dictionary.html.php"), |
| 124 | 107 |
] |
| 125 | 108 |
|
| 109 |
+ parts_data = [ |
|
| 110 |
+ os.path.join(dirs["source"],"data","phonology_and_orthography.json"), |
|
| 111 |
+ os.path.join(dirs["source"],"data","personal_pronouns.json"), |
|
| 112 |
+ os.path.join(dirs["source"],"data","word_functions.json"), |
|
| 113 |
+ os.path.join(dirs["source"],"data","timeforms.json"), |
|
| 114 |
+ os.path.join(dirs["source"],"data","adpositions.json"), |
|
| 115 |
+ os.path.join(dirs["source"],"data","correlatives.json"), |
|
| 116 |
+ os.path.join(dirs["source"],"data","x.json"), |
|
| 117 |
+ ] |
|
| 118 |
+ |
|
| 119 |
+ parts_logic_client = [ |
|
| 120 |
+ os.path.join(dirs["source"],"logic","client","tools.js"), |
|
| 121 |
+ os.path.join(dirs["source"],"logic","client","table.js"), |
|
| 122 |
+ os.path.join(dirs["source"],"logic","client","toc.js"), |
|
| 123 |
+ os.path.join(dirs["source"],"logic","client","main.js"), |
|
| 124 |
+ ] |
|
| 125 |
+ |
|
| 126 | 126 |
parts_style = [ |
| 127 |
+ os.path.join(dirs["source"],"style","functions.less"), |
|
| 127 | 128 |
os.path.join(dirs["source"],"style","theme.less"), |
| 128 | 129 |
os.path.join(dirs["source"],"style","common.less"), |
| 129 | 130 |
os.path.join(dirs["source"],"style","concrete.less"), |
| ... | ... |
@@ -29,10 +29,10 @@ build/favicon.png: source/media/folksprak_16x16.png |
| 29 | 29 |
@ mkdir --parents build |
| 30 | 30 |
@ cp --recursive source/media/folksprak_16x16.png build/favicon.png |
| 31 | 31 |
|
| 32 |
-build/draft.css: source/style/theme.less source/style/common.less source/style/concrete.less |
|
| 32 |
+build/draft.css: source/style/functions.less source/style/theme.less source/style/common.less source/style/concrete.less |
|
| 33 | 33 |
@ echo -e '-- compiling style ...' |
| 34 | 34 |
@ mkdir --parents temp |
| 35 |
- @ cat source/style/theme.less source/style/common.less source/style/concrete.less > temp/draft.less |
|
| 35 |
+ @ cat source/style/functions.less source/style/theme.less source/style/common.less source/style/concrete.less > temp/draft.less |
|
| 36 | 36 |
@ mkdir --parents build |
| 37 | 37 |
@ lessc temp/draft.less > build/draft.css |
| 38 | 38 |
|
| ... | ... |
@@ -236,7 +236,8 @@ |
| 236 | 236 |
"type_id":"demonstrative_far", |
| 237 | 237 |
"language":"en", |
| 238 | 238 |
"words":[ |
| 239 |
- |
|
| 239 |
+ "that person", |
|
| 240 |
+ "that one" |
|
| 240 | 241 |
] |
| 241 | 242 |
}, |
| 242 | 243 |
{
|
| ... | ... |
@@ -252,7 +253,8 @@ |
| 252 | 253 |
"type_id":"demonstrative_near", |
| 253 | 254 |
"language":"en", |
| 254 | 255 |
"words":[ |
| 255 |
- |
|
| 256 |
+ "this person", |
|
| 257 |
+ "this one" |
|
| 256 | 258 |
] |
| 257 | 259 |
}, |
| 258 | 260 |
{
|
| ... | ... |
@@ -269,7 +271,8 @@ |
| 269 | 271 |
"type_id":"universal", |
| 270 | 272 |
"language":"en", |
| 271 | 273 |
"words":[ |
| 272 |
- "everyone" |
|
| 274 |
+ "everyone", |
|
| 275 |
+ "everybody" |
|
| 273 | 276 |
] |
| 274 | 277 |
}, |
| 275 | 278 |
{
|
| ... | ... |
@@ -286,7 +289,8 @@ |
| 286 | 289 |
"type_id":"undefined", |
| 287 | 290 |
"language":"en", |
| 288 | 291 |
"words":[ |
| 289 |
- "someone" |
|
| 292 |
+ "someone", |
|
| 293 |
+ "somebody" |
|
| 290 | 294 |
] |
| 291 | 295 |
}, |
| 292 | 296 |
{
|
| ... | ... |
@@ -303,7 +307,8 @@ |
| 303 | 307 |
"type_id":"negative", |
| 304 | 308 |
"language":"en", |
| 305 | 309 |
"words":[ |
| 306 |
- "no one" |
|
| 310 |
+ "no one", |
|
| 311 |
+ "nobody" |
|
| 307 | 312 |
] |
| 308 | 313 |
}, |
| 309 | 314 |
{
|
| ... | ... |
@@ -404,7 +409,8 @@ |
| 404 | 409 |
"type_id":"undefined", |
| 405 | 410 |
"language":"en", |
| 406 | 411 |
"words":[ |
| 407 |
- "something" |
|
| 412 |
+ "something", |
|
| 413 |
+ "anything" |
|
| 408 | 414 |
] |
| 409 | 415 |
}, |
| 410 | 416 |
{
|
| ... | ... |
@@ -438,7 +444,7 @@ |
| 438 | 444 |
"type_id":"interrogative", |
| 439 | 445 |
"language":"en", |
| 440 | 446 |
"words":[ |
| 441 |
- |
|
| 447 |
+ "whose" |
|
| 442 | 448 |
] |
| 443 | 449 |
}, |
| 444 | 450 |
{
|
| ... | ... |
@@ -455,7 +461,7 @@ |
| 455 | 461 |
"type_id":"relative", |
| 456 | 462 |
"language":"en", |
| 457 | 463 |
"words":[ |
| 458 |
- |
|
| 464 |
+ "whose" |
|
| 459 | 465 |
] |
| 460 | 466 |
}, |
| 461 | 467 |
{
|
| ... | ... |
@@ -471,7 +477,7 @@ |
| 471 | 477 |
"type_id":"demonstrative_far", |
| 472 | 478 |
"language":"en", |
| 473 | 479 |
"words":[ |
| 474 |
- |
|
| 480 |
+ "that one's" |
|
| 475 | 481 |
] |
| 476 | 482 |
}, |
| 477 | 483 |
{
|
| ... | ... |
@@ -487,7 +493,7 @@ |
| 487 | 493 |
"type_id":"demonstrative_near", |
| 488 | 494 |
"language":"en", |
| 489 | 495 |
"words":[ |
| 490 |
- |
|
| 496 |
+ "this one's" |
|
| 491 | 497 |
] |
| 492 | 498 |
}, |
| 493 | 499 |
{
|
| ... | ... |
@@ -504,7 +510,7 @@ |
| 504 | 510 |
"type_id":"universal", |
| 505 | 511 |
"language":"en", |
| 506 | 512 |
"words":[ |
| 507 |
- |
|
| 513 |
+ "everyone's" |
|
| 508 | 514 |
] |
| 509 | 515 |
}, |
| 510 | 516 |
{
|
| ... | ... |
@@ -521,7 +527,7 @@ |
| 521 | 527 |
"type_id":"undefined", |
| 522 | 528 |
"language":"en", |
| 523 | 529 |
"words":[ |
| 524 |
- |
|
| 530 |
+ "someone's" |
|
| 525 | 531 |
] |
| 526 | 532 |
}, |
| 527 | 533 |
{
|
| ... | ... |
@@ -538,7 +544,7 @@ |
| 538 | 544 |
"type_id":"negative", |
| 539 | 545 |
"language":"en", |
| 540 | 546 |
"words":[ |
| 541 |
- |
|
| 547 |
+ "no one's" |
|
| 542 | 548 |
] |
| 543 | 549 |
}, |
| 544 | 550 |
{
|
| ... | ... |
@@ -640,7 +646,9 @@ |
| 640 | 646 |
"type_id":"undefined", |
| 641 | 647 |
"language":"en", |
| 642 | 648 |
"words":[ |
| 643 |
- "sometimes" |
|
| 649 |
+ "sometimes", |
|
| 650 |
+ "anytime", |
|
| 651 |
+ "ever" |
|
| 644 | 652 |
] |
| 645 | 653 |
}, |
| 646 | 654 |
{
|
| ... | ... |
@@ -36,17 +36,20 @@ |
| 36 | 36 |
} |
| 37 | 37 |
} |
| 38 | 38 |
|
| 39 |
- function sql_rename($table_source, $column_from, $column_to) |
|
| 39 |
+ function sql_project($table_source, $columns) |
|
| 40 | 40 |
{
|
| 41 | 41 |
return ( |
| 42 | 42 |
array_map |
| 43 | 43 |
( |
| 44 |
- function ($row_in) use (&$column_from,&$column_to) |
|
| 44 |
+ function ($row_in) use (&$columns) |
|
| 45 | 45 |
{
|
| 46 | 46 |
$row_out = []; |
| 47 |
- foreach ($row_in as $column => $value) |
|
| 47 |
+ foreach ($row_in as $key_in => $value_in) |
|
| 48 | 48 |
{
|
| 49 |
- $row_out[($column == $column_from) ? $column_to : $column] = $row_in[$column]; |
|
| 49 |
+ if (array_search($key_in, $columns) !== false) |
|
| 50 |
+ {
|
|
| 51 |
+ $row_out[$key_in] = $value_in; |
|
| 52 |
+ } |
|
| 50 | 53 |
} |
| 51 | 54 |
return $row_out; |
| 52 | 55 |
}, |
| ... | ... |
@@ -55,7 +58,7 @@ |
| 55 | 58 |
); |
| 56 | 59 |
} |
| 57 | 60 |
|
| 58 |
- function sql_project($table_source, $columns) |
|
| 61 |
+ function sql_delete($table_source, $columns) |
|
| 59 | 62 |
{
|
| 60 | 63 |
return ( |
| 61 | 64 |
array_map |
| ... | ... |
@@ -63,14 +66,32 @@ |
| 63 | 66 |
function ($row_in) use (&$columns) |
| 64 | 67 |
{
|
| 65 | 68 |
$row_out = []; |
| 66 |
- array_map |
|
| 67 |
- ( |
|
| 68 |
- function ($column) use (&$columns,&$row_in,&$row_out) |
|
| 69 |
+ foreach ($row_in as $key_in => $value_in) |
|
| 70 |
+ {
|
|
| 71 |
+ if (array_search($key_in, $columns) === false) |
|
| 69 | 72 |
{
|
| 70 |
- $row_out[$column] = $row_in[$column]; |
|
| 73 |
+ $row_out[$key_in] = $value_in; |
|
| 74 |
+ } |
|
| 75 |
+ } |
|
| 76 |
+ return $row_out; |
|
| 71 | 77 |
}, |
| 72 |
- $columns |
|
| 78 |
+ $table_source |
|
| 79 |
+ ) |
|
| 73 | 80 |
); |
| 81 |
+ } |
|
| 82 |
+ |
|
| 83 |
+ function sql_add($table_source, $columns, $assigners = []) |
|
| 84 |
+ {
|
|
| 85 |
+ return ( |
|
| 86 |
+ array_map |
|
| 87 |
+ ( |
|
| 88 |
+ function ($row_in) use (&$columns, &$assigners) |
|
| 89 |
+ {
|
|
| 90 |
+ $row_out = $row_in; |
|
| 91 |
+ foreach ($columns as $column) |
|
| 92 |
+ {
|
|
| 93 |
+ $row_out[$column] = (array_key_exists($column, $assigners) ? $assigners[$column]($row_in) : null); |
|
| 94 |
+ } |
|
| 74 | 95 |
return $row_out; |
| 75 | 96 |
}, |
| 76 | 97 |
$table_source |
| ... | ... |
@@ -78,15 +99,18 @@ |
| 78 | 99 |
); |
| 79 | 100 |
} |
| 80 | 101 |
|
| 81 |
- function sql_add($table_source, $column, $assigner) |
|
| 102 |
+ function sql_rename($table_source, $column_from, $column_to) |
|
| 82 | 103 |
{
|
| 83 | 104 |
return ( |
| 84 | 105 |
array_map |
| 85 | 106 |
( |
| 86 |
- function ($row_in) use (&$column,&$assigner) |
|
| 107 |
+ function ($row_in) use (&$column_from,&$column_to) |
|
| 87 | 108 |
{
|
| 88 |
- $row_out = $row_in; |
|
| 89 |
- $row_out[$column] = $assigner($row_in); |
|
| 109 |
+ $row_out = []; |
|
| 110 |
+ foreach ($row_in as $column => $value) |
|
| 111 |
+ {
|
|
| 112 |
+ $row_out[($column == $column_from) ? $column_to : $column] = $row_in[$column]; |
|
| 113 |
+ } |
|
| 90 | 114 |
return $row_out; |
| 91 | 115 |
}, |
| 92 | 116 |
$table_source |
| ... | ... |
@@ -100,79 +100,30 @@ |
| 100 | 100 |
global $configuration; |
| 101 | 101 |
$database = read_json("source/data/x.json");
|
| 102 | 102 |
$data = $database["words"]; |
| 103 |
- $data = ( |
|
| 104 |
- /* |
|
| 105 |
- sql_project |
|
| 106 |
- ( |
|
| 107 |
- */ |
|
| 108 |
- sql_select |
|
| 109 |
- ( |
|
| 110 |
- sql_rename |
|
| 111 |
- ( |
|
| 112 |
- sql_cross |
|
| 113 |
- ( |
|
| 114 |
- $data, |
|
| 115 |
- $database["domains"] |
|
| 116 |
- ), |
|
| 117 |
- "name", |
|
| 118 |
- "domain_name" |
|
| 119 |
- ), |
|
| 120 |
- function ($row) {return ($row["id"] == $row["domain_id"]);}
|
|
| 121 |
- )/*, |
|
| 122 |
- ["domain_id", "name", "type_id", "language", "words"] |
|
| 123 |
- ) |
|
| 124 |
- */ |
|
| 125 |
- ); |
|
| 126 |
- $data = ( |
|
| 127 |
- /* |
|
| 128 |
- sql_project |
|
| 129 |
- ( |
|
| 130 |
- */ |
|
| 131 |
- sql_select |
|
| 132 |
- ( |
|
| 133 |
- sql_rename |
|
| 134 |
- ( |
|
| 135 |
- sql_cross |
|
| 136 |
- ( |
|
| 137 |
- $data, |
|
| 138 |
- $database["types"] |
|
| 139 |
- ), |
|
| 140 |
- "name", |
|
| 141 |
- "type_name" |
|
| 142 |
- ), |
|
| 143 |
- function ($row) {return ($row["id"] == $row["type_id"]);}
|
|
| 144 |
- )/*, |
|
| 145 |
- ["domain_name", "name", "language", "words"] |
|
| 146 |
- ) |
|
| 147 |
- */ |
|
| 148 |
- ); |
|
| 149 |
- $data = ( |
|
| 150 |
- sql_select |
|
| 151 |
- ( |
|
| 152 |
- $data, |
|
| 153 |
- function ($row) {return ($row["language"] == "fs");}
|
|
| 154 |
- ) |
|
| 155 |
- ); |
|
| 156 |
- $data = ( |
|
| 157 |
- sql_add |
|
| 158 |
- ( |
|
| 159 |
- $data, |
|
| 160 |
- "type_name/words", |
|
| 161 |
- function ($row) |
|
| 103 |
+ |
|
| 104 |
+ // get domain names |
|
| 162 | 105 |
{
|
| 163 |
- return ["key" => $row["type_id"], "value" => $row["words"]]; |
|
| 106 |
+ $data = sql_cross($data, $database["domains"]); |
|
| 107 |
+ $data = sql_rename($data, "name", "domain_name"); |
|
| 108 |
+ $data = sql_select($data, function ($row) {return ($row["id"] == $row["domain_id"]);});
|
|
| 109 |
+ $data = sql_delete($data, ["id"]); |
|
| 164 | 110 |
} |
| 165 |
- ) |
|
| 166 |
- ); |
|
| 167 |
- $data = ( |
|
| 168 |
- sql_project |
|
| 169 |
- ( |
|
| 170 |
- $data, |
|
| 171 |
- ["domain_name", "type_name/words"] |
|
| 172 |
- ) |
|
| 173 |
- ); |
|
| 174 |
- $data = ( |
|
| 175 |
- sql_group |
|
| 111 |
+ |
|
| 112 |
+ // get type names |
|
| 113 |
+ {
|
|
| 114 |
+ $data = sql_cross($data, $database["types"]); |
|
| 115 |
+ $data = sql_rename($data, "name", "type_name"); |
|
| 116 |
+ $data = sql_select($data, function ($row) {return ($row["id"] == $row["type_id"]);});
|
|
| 117 |
+ $data = sql_delete($data, ["id"]); |
|
| 118 |
+ } |
|
| 119 |
+ |
|
| 120 |
+ // transform |
|
| 121 |
+ {
|
|
| 122 |
+ $data = sql_select($data, function ($row) {global $configuration; return (($row["language"] == "fs") or ($row["language"] == $configuration["target"]));});
|
|
| 123 |
+ // $data = sql_group($data, "language"); |
|
| 124 |
+ $data = sql_add($data, ["type_name/words"], ["type_name/words" => function ($row) {return ["key" => $row["type_id"], "value" => [$row["language"] => $row["words"]]];}]);
|
|
| 125 |
+ $data = sql_project($data, ["domain_name", "type_name/words"]); |
|
| 126 |
+ $data = sql_group |
|
| 176 | 127 |
( |
| 177 | 128 |
$data, |
| 178 | 129 |
"domain_name", |
| ... | ... |
@@ -180,25 +131,27 @@ |
| 180 | 131 |
"type_name/words" => function ($args) |
| 181 | 132 |
{
|
| 182 | 133 |
$output = []; |
| 183 |
- array_map |
|
| 184 |
- ( |
|
| 185 |
- function ($arg) use (&$output) |
|
| 134 |
+ foreach ($args as $arg) |
|
| 186 | 135 |
{
|
| 187 |
- $output[$arg["key"]] = $arg["value"]; |
|
| 188 |
- }, |
|
| 189 |
- $args |
|
| 190 |
- ); |
|
| 136 |
+ if (! array_key_exists($arg["key"], $output)) $output[$arg["key"]] = []; |
|
| 137 |
+ foreach ($arg["value"] as $key => $value) |
|
| 138 |
+ {
|
|
| 139 |
+ $output[$arg["key"]][$key] = $value; |
|
| 140 |
+ } |
|
| 141 |
+ } |
|
| 191 | 142 |
return $output; |
| 192 | 143 |
}, |
| 193 | 144 |
] |
| 194 |
- ) |
|
| 195 | 145 |
); |
| 146 |
+ } |
|
| 147 |
+ |
|
| 196 | 148 |
$table = new class_table |
| 197 | 149 |
( |
| 198 | 150 |
array_merge |
| 199 | 151 |
( |
| 200 | 152 |
[ |
| 201 | 153 |
new class_column("Domain", function ($row) {return $row["domain_name"];}),
|
| 154 |
+ // new class_column("type_name/words", function ($row) {return $row["type_name/words"];}, function ($value) {print_r($value);}),
|
|
| 202 | 155 |
], |
| 203 | 156 |
array_map |
| 204 | 157 |
( |
| ... | ... |
@@ -208,12 +161,16 @@ |
| 208 | 161 |
new class_column |
| 209 | 162 |
( |
| 210 | 163 |
("Type: " . $type["name"]),
|
| 211 |
- function ($row) use (&$type) {return $row["type_name/words"][$type["id"]];},
|
|
| 212 |
- function ($value) {return _baz($value, "word", "fs");}
|
|
| 164 |
+ function ($row) use (&$type) |
|
| 165 |
+ {
|
|
| 166 |
+ global $configuration; |
|
| 167 |
+ return ["original" => $row["type_name/words"][$type["id"]]["fs"], "translated" => $row["type_name/words"][$type["id"]][$configuration["target"]]]; |
|
| 168 |
+ }, |
|
| 169 |
+ _bar("word")
|
|
| 213 | 170 |
) |
| 214 | 171 |
); |
| 215 | 172 |
}, |
| 216 |
- $database["types"] |
|
| 173 |
+ array_filter($database["types"], function ($type) {return ($type["id"] != "relative");})
|
|
| 217 | 174 |
) |
| 218 | 175 |
), |
| 219 | 176 |
$data |
| ... | ... |
@@ -1,14 +1,17 @@ |
| 1 | 1 |
table.datatable |
| 2 | 2 |
{
|
| 3 | 3 |
border-collapse: collapse; |
| 4 |
+ /* |
|
| 4 | 5 |
box-shadow: 4px 4px 4px black; |
| 6 |
+ */ |
|
| 5 | 7 |
|
| 6 | 8 |
& tr |
| 7 | 9 |
{
|
| 8 | 10 |
& > th, |
| 9 | 11 |
& > td |
| 10 | 12 |
{
|
| 11 |
- border: 1px solid hsv(hsvhue(@color-fg), hsvsaturation(@color-fg), (0.5 * hsvvalue(@color-fg)) + (0.5 * hsvvalue(@color-bg))); |
|
| 13 |
+ .interpolate(hsvvalue(@color-fg), hsvvalue(@color-bg), 0.5); |
|
| 14 |
+ border: 1px solid hsv(hsvhue(@color-fg), hsvsaturation(@color-fg), @result_interpolate); |
|
| 12 | 15 |
/* |
| 13 | 16 |
border: 1px solid @color-bg; |
| 14 | 17 |
*/ |