aboutsummaryrefslogtreecommitdiff
path: root/js/panels
diff options
context:
space:
mode:
Diffstat (limited to 'js/panels')
-rwxr-xr-xjs/panels/Materials/materials-popup.reel/materials-popup.html2
-rwxr-xr-xjs/panels/Materials/materials-popup.reel/materials-popup.js7
-rwxr-xr-xjs/panels/properties.reel/properties.css31
-rwxr-xr-xjs/panels/properties.reel/properties.js25
-rwxr-xr-xjs/panels/properties.reel/sections/custom-rows/dual-row.reel/dual-row.html10
-rwxr-xr-xjs/panels/properties.reel/sections/custom-rows/dual-row.reel/dual-row.js3
6 files changed, 62 insertions, 16 deletions
diff --git a/js/panels/Materials/materials-popup.reel/materials-popup.html b/js/panels/Materials/materials-popup.reel/materials-popup.html
index d18599d6..bac722cd 100755
--- a/js/panels/Materials/materials-popup.reel/materials-popup.html
+++ b/js/panels/Materials/materials-popup.reel/materials-popup.html
@@ -43,7 +43,7 @@
43 "data": { 43 "data": {
44 "boundObject": {"@": "materialsProperties"}, 44 "boundObject": {"@": "materialsProperties"},
45 "boundObjectPropertyPath": "objectAtCurrentIteration", 45 "boundObjectPropertyPath": "objectAtCurrentIteration",
46 "oneway": false 46 "oneway": true
47 } 47 }
48 }, 48 },
49 "listeners": [ 49 "listeners": [
diff --git a/js/panels/Materials/materials-popup.reel/materials-popup.js b/js/panels/Materials/materials-popup.reel/materials-popup.js
index bd10f7a5..a4f758cf 100755
--- a/js/panels/Materials/materials-popup.reel/materials-popup.js
+++ b/js/panels/Materials/materials-popup.reel/materials-popup.js
@@ -625,6 +625,11 @@ exports.MaterialsPopup = Montage.create(Component, {
625 } 625 }
626 ] 626 ]
627 }, 627 },
628
629 materialsProperties: {
630 serializable: true,
631 value: null
632 },
628 633
629 _materialsData: { 634 _materialsData: {
630 enumerable: true, 635 enumerable: true,
@@ -641,7 +646,7 @@ exports.MaterialsPopup = Montage.create(Component, {
641 }, 646 },
642 set: function(data) { 647 set: function(data) {
643 this._materialsData = data; 648 this._materialsData = data;
644 if(this.materialsProperties) 649 if(this.materialsProperties && data.length)
645 { 650 {
646 this.materialsProperties.needsDraw = true; 651 this.materialsProperties.needsDraw = true;
647 } 652 }
diff --git a/js/panels/properties.reel/properties.css b/js/panels/properties.reel/properties.css
index 5306eb5b..84f52ed4 100755
--- a/js/panels/properties.reel/properties.css
+++ b/js/panels/properties.reel/properties.css
@@ -285,6 +285,7 @@ padding-right:6px;
285.propertiesPanel input[type='radio'].nj-skinned { 285.propertiesPanel input[type='radio'].nj-skinned {
286 text-indent: 0px; 286 text-indent: 0px;
287 line-height: 5px; 287 line-height: 5px;
288 margin: -4px 0 0 0;
288} 289}
289 290
290.propertiesPanel input[type='radio'].nj-skinned label { 291.propertiesPanel input[type='radio'].nj-skinned label {
@@ -303,4 +304,34 @@ input label {
303.propertiesPanel .rotation .fieldRow { 304.propertiesPanel .rotation .fieldRow {
304 -webkit-box-flex:0; 305 -webkit-box-flex:0;
305 width:45px; 306 width:45px;
307}
308
309.propertiesPanel div.montage-button:disabled {
310 opacity: 0.4;
311}
312
313.propertiesPanel div.montage-button {
314 font-size: 9px;
315 cursor: pointer;
316 display: block;
317 margin: -3px 0 0 -12px;
318 padding: 4px;
319 border: 1px #313131 solid;
320 background-color: #474747;
321 background-image: -webkit-linear-gradient(top, #505050 0%, #3c3c3c 100%);
322 border-radius: 4px;
323 color: white;
324 text-transform: uppercase;
325 cursor: pointer;
326 text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5);
327 width: 18px;
328 height: 14px;
329}
330
331.propertiesPanel div.montage-button:active {
332 background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #505050 100%);
333}
334
335.propertiesPanel div.montage-button:hover {
336 -webkit-box-shadow: 0px 0px 3px #b4b4b4;
306} \ No newline at end of file 337} \ No newline at end of file
diff --git a/js/panels/properties.reel/properties.js b/js/panels/properties.reel/properties.js
index 4d048472..eb362796 100755
--- a/js/panels/properties.reel/properties.js
+++ b/js/panels/properties.reel/properties.js
@@ -46,7 +46,7 @@ exports.Properties = Montage.create(Component, {
46 46
47 prepareForDraw: { 47 prepareForDraw: {
48 value : function() { 48 value : function() {
49 49 this.eventManager.addEventListener("openDocument", this, false);
50 this.eventManager.addEventListener("selectionChange", this, false); 50 this.eventManager.addEventListener("selectionChange", this, false);
51 51
52 // This will be a toggle option 52 // This will be a toggle option
@@ -54,8 +54,6 @@ exports.Properties = Montage.create(Component, {
54 this.eventManager.addEventListener( "elementChanging", this, false); 54 this.eventManager.addEventListener( "elementChanging", this, false);
55 } 55 }
56 56
57 this.eventManager.addEventListener("openDocument", this, false);
58
59 this.elementId.element.addEventListener("blur", this, false); 57 this.elementId.element.addEventListener("blur", this, false);
60 this.elementId.element.addEventListener("focus", this, false); 58 this.elementId.element.addEventListener("focus", this, false);
61 this.elementId.element.addEventListener("keyup", this, false); 59 this.elementId.element.addEventListener("keyup", this, false);
@@ -70,6 +68,9 @@ exports.Properties = Montage.create(Component, {
70 value: function() { 68 value: function() {
71 this.eventManager.addEventListener( "elementChange", this, false); 69 this.eventManager.addEventListener( "elementChange", this, false);
72 70
71 // Save a reference of the pi inside the document view to be able to clear
72 this.application.ninja.currentDocument.model.views.design.propertiesPanel = this;
73
73 // Display the default document root PI 74 // Display the default document root PI
74 this.displayElementProperties(this.application.ninja.currentDocument.documentRoot); 75 this.displayElementProperties(this.application.ninja.currentDocument.documentRoot);
75 } 76 }
@@ -165,6 +166,15 @@ exports.Properties = Montage.create(Component, {
165 } 166 }
166 }, 167 },
167 168
169 clear: {
170 value: function() {
171 this.elementName.value = "";
172 this.elementId.value = "";
173 this.elementClass.value = "";
174 this.customPi = null;
175 }
176 },
177
168 displayElementProperties: { 178 displayElementProperties: {
169 value: function (el) { 179 value: function (el) {
170 var customPI, currentValue, isRoot = this.application.ninja.selectionController.isDocument; 180 var customPI, currentValue, isRoot = this.application.ninja.selectionController.isDocument;
@@ -210,9 +220,16 @@ exports.Properties = Montage.create(Component, {
210 this.displayCustomProperties(el, el.elementModel.pi); 220 this.displayCustomProperties(el, el.elementModel.pi);
211 } 221 }
212 222
223 // Root element color chip
213 if(isRoot) { 224 if(isRoot) {
214 var backgroundChip = this.customSections[0].content.controls["background"]; 225 var backgroundChip = this.customSections[0].content.controls["background"];
215 if(backgroundChip) backgroundChip.color = ElementsMediator.getProperty(el, "background"); 226 var rootBackgroundColor = ElementsMediator.getProperty(el, "background");
227
228 if(rootBackgroundColor) {
229 backgroundChip.color = rootBackgroundColor;
230 } else {
231 backgroundChip.color = null;
232 }
216 } 233 }
217 234
218 var previousInput = this.application.ninja.colorController.colorModel.input; 235 var previousInput = this.application.ninja.colorController.colorModel.input;
diff --git a/js/panels/properties.reel/sections/custom-rows/dual-row.reel/dual-row.html b/js/panels/properties.reel/sections/custom-rows/dual-row.reel/dual-row.html
index bdcbff7f..c3af0668 100755
--- a/js/panels/properties.reel/sections/custom-rows/dual-row.reel/dual-row.html
+++ b/js/panels/properties.reel/sections/custom-rows/dual-row.reel/dual-row.html
@@ -22,10 +22,7 @@
22 "element": { "#": "slotElement" } 22 "element": { "#": "slotElement" }
23 }, 23 },
24 "bindings": { 24 "bindings": {
25 "content" : { 25 "content": {"<-": "@owner.content"}
26 "boundObject": {"@": "owner"},
27 "boundObjectPropertyPath": "content"
28 }
29 } 26 }
30 }, 27 },
31 "slot2": { 28 "slot2": {
@@ -34,10 +31,7 @@
34 "element": { "#": "slotElement2" } 31 "element": { "#": "slotElement2" }
35 }, 32 },
36 "bindings": { 33 "bindings": {
37 "content" : { 34 "content": {"<-": "@owner.content2"}
38 "boundObject": {"@": "owner"},
39 "boundObjectPropertyPath": "content2"
40 }
41 } 35 }
42 } 36 }
43 } 37 }
diff --git a/js/panels/properties.reel/sections/custom-rows/dual-row.reel/dual-row.js b/js/panels/properties.reel/sections/custom-rows/dual-row.reel/dual-row.js
index 4c5c80d7..2f81aa2e 100755
--- a/js/panels/properties.reel/sections/custom-rows/dual-row.reel/dual-row.js
+++ b/js/panels/properties.reel/sections/custom-rows/dual-row.reel/dual-row.js
@@ -44,8 +44,7 @@ exports.DualRow = Montage.create(Component, {
44 } 44 }
45 if(this.label2 !== null) { 45 if(this.label2 !== null) {
46 if(this.content2.type === "button") { 46 if(this.content2.type === "button") {
47 this.content2.element = document.createElement("button"); 47 this.content2.label = this.label2;
48 this.content2.element.classList.add("nj-skinned");
49 this.element.getElementsByClassName("lbl")[1].style.display = "none"; 48 this.element.getEle