Browse Source

move pattern definition back into (#65)

* .gitignore

* move pattern definition back into js (#64)

Co-authored-by: finnboeger <finnboeger@users.noreply.github.com>
dev_h
Ophir LOJKINE 4 years ago
parent
commit
46c2737c00
No account linked to committer's email address
4 changed files with 67 additions and 26 deletions
  1. 1
    3
      .gitignore
  2. 7
    2
      client-data/js/board.js
  3. 59
    7
      client-data/tools/grid/grid.js
  4. 0
    14
      client-data/tools/grid/patterns.svg

+ 1
- 3
.gitignore View File

@@ -17,9 +17,7 @@ npm-debug.log
17 17
 
18 18
 .DS_Store
19 19
 
20
-# Openode
21
-.openode
22
-wbo-backup.zip
20
+wbo-backup*
23 21
 
24 22
 # Jetbrains
25 23
 .idea/

+ 7
- 2
client-data/js/board.js View File

@@ -498,8 +498,13 @@ Tools.generateUID = function (prefix, suffix) {
498 498
 	return uid;
499 499
 };
500 500
 
501
-Tools.createSVGElement = function (name) {
502
-	return document.createElementNS(Tools.svg.namespaceURI, name);
501
+Tools.createSVGElement = function createSVGElement(name, attrs) {
502
+	var elem = document.createElementNS(Tools.svg.namespaceURI, name);
503
+	if (typeof(attrs) !== "object") return elem;
504
+	Object.keys(attrs).forEach(function (key, i) {
505
+		elem.setAttributeNS(null, key, attrs[key]);
506
+	});
507
+	return elem;
503 508
 };
504 509
 
505 510
 Tools.positionElement = function (elem, x, y) {

+ 59
- 7
client-data/tools/grid/grid.js View File

@@ -27,24 +27,76 @@
27 27
 (function grid() { //Code isolation
28 28
 
29 29
     var index = 0; //grid off by default
30
-    var states = ["none", "url(../tools/grid/patterns.svg#grid)", "url(../tools/grid/patterns.svg#dots)"];
30
+    var states = ["none", "url(#grid)", "url(#dots)"];
31 31
 
32 32
     function toggleGrid(evt) {
33 33
         index = (index + 1) % states.length;
34 34
         gridContainer.setAttributeNS(null, "fill", states[index]);
35 35
     }
36 36
 
37
-    function createSVGElement(name, attrs) {
38
-        var elem = document.createElementNS("http://www.w3.org/2000/svg", name);
39
-        Object.keys(attrs).forEach(function (key, i) {
40
-            elem.setAttributeNS(null, key, attrs[key]);
37
+    function createPatterns() {
38
+        // create patterns
39
+        // small (inner) grid
40
+        var smallGrid = Tools.createSVGElement("pattern", {
41
+            id: "smallGrid",
42
+            width: "30",
43
+            height: "30",
44
+            patternUnits: "userSpaceOnUse"
41 45
         });
42
-        return elem;
46
+        smallGrid.appendChild(
47
+            Tools.createSVGElement("path", {
48
+                d: "M 30 0 L 0 0 0 30",
49
+                fill: "none",
50
+                stroke: "gray",
51
+                'stroke-width': "0.5"
52
+            })
53
+        );
54
+        // (outer) grid
55
+        var grid = Tools.createSVGElement("pattern", {
56
+            id: "grid",
57
+            width: "300",
58
+            height: "300",
59
+            patternUnits: "userSpaceOnUse"
60
+        });
61
+        grid.appendChild(Tools.createSVGElement("rect", {
62
+            width: "300",
63
+            height: "300",
64
+            fill: "url(#smallGrid)"
65
+        }));
66
+        grid.appendChild(
67
+            Tools.createSVGElement("path", {
68
+                d: "M 300 0 L 0 0 0 300",
69
+                fill: "none",
70
+                stroke: "gray", 'stroke-width': "1"
71
+            })
72
+        );
73
+        // dots
74
+        var dots = Tools.createSVGElement("pattern", {
75
+            id: "dots",
76
+            width: "30",
77
+            height: "30",
78
+            x: "-10",
79
+            y: "-10",
80
+            patternUnits: "userSpaceOnUse"
81
+        });
82
+        dots.appendChild(Tools.createSVGElement("circle", {
83
+            fill: "gray",
84
+            cx: "10",
85
+            cy: "10",
86
+            r: "2"
87
+        }));
88
+
89
+        var defs = Tools.svg.getElementById("defs");
90
+        defs.appendChild(smallGrid);
91
+        defs.appendChild(grid);
92
+        defs.appendChild(dots);
43 93
     }
44 94
 
45 95
     var gridContainer = (function init() {
96
+        // initialize patterns
97
+        createPatterns();
46 98
         // create grid container
47
-        var gridContainer = createSVGElement("rect", {
99
+        var gridContainer = Tools.createSVGElement("rect", {
48 100
             id: "gridContainer",
49 101
             width: "100%", height: "100%",
50 102
             fill: states[index]

+ 0
- 14
client-data/tools/grid/patterns.svg View File

@@ -1,14 +0,0 @@
1
-<svg xmlns="http://www.w3.org/2000/svg">
2
-    <defs id="defs">
3
-        <pattern id="smallGrid" width="30" height="30" patternUnits="userSpaceOnUse">
4
-            <path d="M 30 0 L 0 0 0 30" fill="none" stroke="gray" stroke-width="0.5"/>
5
-        </pattern>
6
-        <pattern id="grid" width="300" height="300" patternUnits="userSpaceOnUse">
7
-            <rect width="300" height="300" fill="url(#smallGrid)"/>
8
-            <path d="M 300 0 L 0 0 0 300" fill="none" stroke="gray" stroke-width="1"/>
9
-        </pattern>
10
-        <pattern id="dots" width="30" height="30" x="-10" y="-10" patternUnits="userSpaceOnUse">
11
-            <circle fill="gray" cx="10" cy="10" r="2"/>
12
-        </pattern>
13
-    </defs>
14
-</svg>

Loading…
Cancel
Save