Can save and load jobs now. Needs a lot of testing...
This commit is contained in:
parent
9e54aa619c
commit
858737c1ad
5 changed files with 222 additions and 115 deletions
|
@ -94,10 +94,10 @@ Rectangle{
|
|||
onClicked: {
|
||||
if (mouse.button == Qt.RightButton){
|
||||
pointRect.toggleType()
|
||||
dialog.show(pointRect)
|
||||
//dialog.show(pointRect)
|
||||
}
|
||||
else{
|
||||
dialog.show(pointRect)
|
||||
//dialog.show(pointRect)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -288,11 +288,9 @@ Rectangle{
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(index == activeStates.length){
|
||||
index = 0; //return to beginning again
|
||||
}
|
||||
|
||||
pointRect.state = activeStates[index];
|
||||
}
|
||||
|
||||
|
@ -317,6 +315,9 @@ Rectangle{
|
|||
}
|
||||
|
||||
function updateChanges(){
|
||||
if(pointRect.deviceRow == null || (pointRect.deviceRow.isLoading != undefined && pointRect.deviceRow.isLoading())){
|
||||
return; //loading values from storage, wait until everything is in place
|
||||
}
|
||||
Scripts.updateParentWithCurrentValues();
|
||||
Scripts.updateChildPoints();
|
||||
if(pointRect.triggerstate == "absolute"){
|
||||
|
@ -373,9 +374,9 @@ Rectangle{
|
|||
return [hours, partOfHour];
|
||||
}
|
||||
|
||||
function addState(state){
|
||||
function addActiveState(state){
|
||||
//print("Adding state: " + state);
|
||||
Scripts.addState(state);
|
||||
Scripts.addActiveState(state);
|
||||
}
|
||||
|
||||
function setActiveStates(activeStates){
|
||||
|
|
|
@ -435,7 +435,6 @@
|
|||
|
||||
Rectangle{
|
||||
id: inputAbsoluteMinute
|
||||
property alias absoluteMinute: inputAbsoluteMinuteText.text
|
||||
width: 35
|
||||
height: inputAbsoluteMinuteText.height
|
||||
border.width: 1
|
||||
|
|
|
@ -15,10 +15,12 @@ com.telldus.schedulersimplegui = function() {
|
|||
addJobsToSchedule: addJobsToSchedule,
|
||||
getJob: getJob,
|
||||
getMethodFromState: getMethodFromState,
|
||||
getStateFromMethod: getStateFromMethod,
|
||||
getSunRiseTime: getSunRiseTime,
|
||||
getSunSetTime: getSunSetTime,
|
||||
getSunData: getSunData,
|
||||
getTypeFromTriggerstate: getTypeFromTriggerstate
|
||||
getTypeFromTriggerstate: getTypeFromTriggerstate,
|
||||
getTriggerstateFromType: getTriggerstateFromType
|
||||
});
|
||||
|
||||
//devices:
|
||||
|
@ -34,49 +36,8 @@ com.telldus.schedulersimplegui = function() {
|
|||
//Listen for device-change
|
||||
com.telldus.core.deviceChange.connect(deviceChange);
|
||||
|
||||
//points:
|
||||
//from storage...
|
||||
var weekPointList = new com.telldus.qml.array();
|
||||
var dummypoint = {};
|
||||
dummypoint["day"] = 0;
|
||||
dummypoint["deviceId"] = 1;
|
||||
weekPointList.push(dummypoint);
|
||||
dummypoint = {};
|
||||
dummypoint["day"] = 1;
|
||||
dummypoint["deviceId"] = 2;
|
||||
weekPointList.push(dummypoint);
|
||||
|
||||
var now = new Date();
|
||||
var time1 = now.getHours() * 3600 + now.getMinutes() * 60 + now.getSeconds();
|
||||
print(time1); // 48880
|
||||
time2 = time1 + 30;
|
||||
time3 = time1 - 60;
|
||||
time1 = time1 + 50;
|
||||
|
||||
var startdate = now; //new Date(2011,0,5).getTime();
|
||||
//var startdate2 = new Date(2011,0,5).getTime();
|
||||
|
||||
//ID = ID for storage
|
||||
//Key is position in list, returned from "addJob"
|
||||
//var execFunc = function(job){ print("Custom execute function running"); print("Job: " + job.v.name); return 42; };
|
||||
var job = new com.telldus.scheduler.JobRecurringWeek({id: 4, executeFunc: null, name: "testnamn14", type: com.telldus.scheduler.JOBTYPE_RECURRING_WEEK, startdate: startdate, lastRun: 0, device: 1, method: 1, value: ""});
|
||||
var event = {};
|
||||
event.d = {id: 0, value: 3, fuzzinessBefore: 0, fuzzinessAfter: 0, type: com.telldus.scheduler.EVENTTYPE_ABSOLUTE, offset: 0, time: 300}; //(new Date().getTime())/1000 + 20
|
||||
job.addEvent(event);
|
||||
//job.addEvent(new Event({id: 0, value: "", fuzzinessBefore: 0, fuzzinessAfter: 0, type: com.telldus.scheduler.EVENTTYPE_ABSOLUTE, offset: 10, time: (new Date().getTime())/1000 + 20}));
|
||||
|
||||
var jobs = new Array();
|
||||
jobs.push(job);
|
||||
|
||||
job = new com.telldus.scheduler.JobRecurringWeek({id: 4, executeFunc: null, name: "testnamn15", type: com.telldus.scheduler.JOBTYPE_RECURRING_WEEK, startdate: startdate, lastRun: 0, device: 1, method: 1, value: ""});
|
||||
var event = {};
|
||||
event.d = {id: 0, value: 3, fuzzinessBefore: 0, fuzzinessAfter: 0, type: com.telldus.scheduler.EVENTTYPE_ABSOLUTE, offset: 0, time: 100}; //(new Date().getTime())/1000 + 20
|
||||
job.addEvent(event);
|
||||
jobs.push(job);
|
||||
|
||||
//END FROM STORAGE
|
||||
|
||||
view.setProperty('weekPointList', weekPointList);
|
||||
var storedPoints = loadJobs();
|
||||
view.setProperty('storedPoints', storedPoints);
|
||||
|
||||
//set images:
|
||||
view.setProperty("imageTriggerSunrise", "sunrise.png");
|
||||
|
@ -110,9 +71,8 @@ com.telldus.schedulersimplegui = function() {
|
|||
deviceList.push(item);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function addJobsToSchedule(points, deviceTimerKeys){
|
||||
function addJobsToSchedule(deviceId, points, deviceTimerKeys){
|
||||
//delete all current schedules for this device:
|
||||
if(deviceTimerKeys != undefined){
|
||||
for(var i=0;i<deviceTimerKeys.length;i++){
|
||||
|
@ -128,14 +88,45 @@ com.telldus.schedulersimplegui = function() {
|
|||
jobs.push(jobtemp);
|
||||
}
|
||||
print("Adding some jobs " + jobs.length);
|
||||
saveJobs(deviceId, jobs);
|
||||
//return [];
|
||||
return com.telldus.scheduler.addJobs(jobs);
|
||||
}
|
||||
|
||||
function saveJobs(deviceId, devicejobs){
|
||||
var settings = new com.telldus.settings();
|
||||
var jobs = settings.value("jobs", "");
|
||||
|
||||
if(!jobs || jobs == undefined){
|
||||
jobs = {}; //initialize new setting
|
||||
}
|
||||
jobs[deviceId] = devicejobs;
|
||||
settings.setValue("jobs", jobs);
|
||||
}
|
||||
|
||||
function loadJobs(){
|
||||
var settings = new com.telldus.settings();
|
||||
var temp = settings.value("jobs", "");
|
||||
return settings.value("jobs", "");
|
||||
|
||||
/*
|
||||
//from storage...
|
||||
var weekPointList = new com.telldus.qml.array();
|
||||
var dummypoint = {};
|
||||
dummypoint["day"] = 0;
|
||||
dummypoint["deviceId"] = 1;
|
||||
weekPointList.push(dummypoint);
|
||||
dummypoint = {};
|
||||
dummypoint["day"] = 1;
|
||||
dummypoint["deviceId"] = 2;
|
||||
weekPointList.push(dummypoint);
|
||||
*/
|
||||
}
|
||||
|
||||
function getJob(pointArray){ //deviceId, pointName, startdate, lastrun, pointMethod, pointDimValue, pointTime, pointType, pointFuzzinessBefore, pointFuzzinessAfter, pointOffset, pointDays
|
||||
//var execFunc = function(job){ print("Custom execute function running"); print("Job: " + job.v.name); return 42; }; //TODO default later
|
||||
//TODO dimValue 0-100 ok? Or other number expected?
|
||||
var job = new com.telldus.scheduler.JobRecurringWeek({id: pointArray[0], executeFunc: null, name: pointArray[1], type: com.telldus.scheduler.JOBTYPE_RECURRING_WEEK, startdate: pointArray[2], lastRun: pointArray[3], device: pointArray[0], method: pointArray[4], value: pointArray[5]});
|
||||
var job = new com.telldus.scheduler.JobRecurringWeek({id: pointArray[0], executeFunc: null, name: pointArray[1], type: com.telldus.scheduler.JOBTYPE_RECURRING_WEEK, startdate: pointArray[2], lastRun: pointArray[3], device: pointArray[0], method: pointArray[4], value: pointArray[5], absoluteTime: pointArray[12]});
|
||||
var event = {};
|
||||
var pointFuzzinessBefore = (pointArray[8]*60);
|
||||
var pointFuzzinessAfter = (pointArray[9]*60);
|
||||
|
@ -170,6 +161,23 @@ com.telldus.schedulersimplegui = function() {
|
|||
return pointMethod;
|
||||
}
|
||||
|
||||
function getStateFromMethod(pointMethod){
|
||||
var state = "";
|
||||
if(pointMethod == com.telldus.core.TELLSTICK_TURNON){
|
||||
state = "on";
|
||||
}
|
||||
else if(pointMethod == com.telldus.core.TELLSTICK_TURNOFF){
|
||||
state = "off";
|
||||
}
|
||||
else if(pointMethod == com.telldus.core.TELLSTICK_DIM){
|
||||
state = "dim";
|
||||
}
|
||||
else if(pointMethod == com.telldus.core.TELLSTICK_BELL){
|
||||
state = "bell";
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
function getSun(riseset, rowWidth, pointWidth){
|
||||
var date = new Date();
|
||||
var timevalues = com.telldus.suncalculator.riseset(date);
|
||||
|
@ -212,6 +220,20 @@ com.telldus.schedulersimplegui = function() {
|
|||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
function getTriggerstateFromType(type){
|
||||
var triggerstate = "";
|
||||
if(type == com.telldus.scheduler.EVENTTYPE_SUNRISE){
|
||||
triggerstate = "sunrise";
|
||||
}
|
||||
else if(type == com.telldus.scheduler.EVENTTYPE_SUNSET){
|
||||
triggerstate = "sunset";
|
||||
}
|
||||
else{
|
||||
triggerstate = "absolute";
|
||||
}
|
||||
return triggerstate;
|
||||
}
|
||||
|
||||
return { //Public functions
|
||||
init:init
|
||||
|
|
|
@ -27,7 +27,9 @@ import "schedulerscripts.js" as Scripts
|
|||
dynamicDay.state = "visible" //set last one as visible
|
||||
weekDayText.text = Scripts.getCurrentDayName()
|
||||
//Scripts.updateDeviceIndex();
|
||||
Scripts.initiatePointsInGUI();
|
||||
Scripts.setLoading();
|
||||
Scripts.initiateStoredPointsInGUI();
|
||||
Scripts.endLoading();
|
||||
Scripts.updateEndsWith();
|
||||
}
|
||||
|
||||
|
@ -296,10 +298,10 @@ import "schedulerscripts.js" as Scripts
|
|||
dynamicPoint.border.color = "blue"
|
||||
|
||||
//TODO different states depending on the device
|
||||
dynamicPoint.addState("on");
|
||||
dynamicPoint.addState("off");
|
||||
dynamicPoint.addState("dim");
|
||||
dynamicPoint.addState("bell");
|
||||
dynamicPoint.addActiveState("on");
|
||||
dynamicPoint.addActiveState("off");
|
||||
dynamicPoint.addActiveState("dim");
|
||||
dynamicPoint.addActiveState("bell");
|
||||
//dynamicPoint.setFirstState("dim"); //when type is a stored value
|
||||
dynamicPoint.setFirstState();
|
||||
|
||||
|
@ -314,10 +316,10 @@ import "schedulerscripts.js" as Scripts
|
|||
dynamicPoint2.parentPoint = dynamicPoint
|
||||
dynamicPoint2.x = dynamicPoint2.getAbsoluteXValue();
|
||||
dynamicPoint2.border.color = "blue"
|
||||
dynamicPoint2.addState("on");
|
||||
dynamicPoint2.addState("off");
|
||||
dynamicPoint2.addState("dim");
|
||||
dynamicPoint2.addState("bell");
|
||||
dynamicPoint2.addActiveState("on");
|
||||
dynamicPoint2.addActiveState("off");
|
||||
dynamicPoint2.addActiveState("dim");
|
||||
dynamicPoint2.addActiveState("bell");
|
||||
dynamicPoint2.setFirstState();
|
||||
*/
|
||||
//SLUT TEST
|
||||
|
@ -361,6 +363,10 @@ import "schedulerscripts.js" as Scripts
|
|||
function setChanged(){
|
||||
Scripts.setChanged(deviceId, true);
|
||||
}
|
||||
|
||||
function isLoading(){
|
||||
return Scripts.isLoading();
|
||||
}
|
||||
}
|
||||
//}
|
||||
}
|
||||
|
@ -421,8 +427,8 @@ import "schedulerscripts.js" as Scripts
|
|||
text: "Save changes"
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.horizontalCenterOffset: -30
|
||||
anchors.top: mainContent.bottom
|
||||
anchors.topMargin: 30
|
||||
anchors.top: mainRow.bottom
|
||||
anchors.topMargin: -100
|
||||
onClicked: {
|
||||
saveAll();
|
||||
}
|
||||
|
@ -537,12 +543,13 @@ import "schedulerscripts.js" as Scripts
|
|||
function saveAll(){
|
||||
print("Save all and reset jobs");
|
||||
//var jobs = new Array();
|
||||
var points = new Array();
|
||||
//var points = new Array();
|
||||
var days = Scripts.getDays();
|
||||
if(dialog.dialogOpacity == 1){
|
||||
Scripts.setChanged(dialog.actionPoint.deviceRow.deviceId, true); //set the devicerow that the currently visible dialog is connected to as dirty
|
||||
}
|
||||
for(var i=0;i<deviceModel.length;i++){
|
||||
var points = new Array();
|
||||
var deviceId = deviceModel.get(i).id;
|
||||
if(!Scripts.hasChanged(deviceId)){
|
||||
//no point has been updated, removed or added, ignore this device
|
||||
|
@ -566,7 +573,7 @@ import "schedulerscripts.js" as Scripts
|
|||
}
|
||||
|
||||
var deviceTimerKeys = Scripts.getDeviceTimerKeys(deviceId); //get timer keys for this device, for removal
|
||||
deviceTimerKeys = addJobsToSchedule.callWith(points, deviceTimerKeys); //remove all schedules for this device, and add them again
|
||||
deviceTimerKeys = addJobsToSchedule.callWith(deviceId, points, deviceTimerKeys); //remove all schedules for this device, and add them again
|
||||
Scripts.setDeviceTimerKeys(deviceId, deviceTimerKeys); //save the new timer keys
|
||||
}
|
||||
}
|
||||
|
@ -580,6 +587,7 @@ import "schedulerscripts.js" as Scripts
|
|||
var pointMethod = getMethodFromState.callWith(point.state);
|
||||
|
||||
var pointTime = point.absoluteHour * 3600 + point.absoluteMinute * 60;
|
||||
var absolutePointTime = pointTime;
|
||||
var pointType = getTypeFromTriggerstate.callWith(point.triggerstate);
|
||||
if(point.triggerstate == "sunrise"){
|
||||
var suntime = main.sunData[0].split(':');
|
||||
|
@ -598,7 +606,8 @@ import "schedulerscripts.js" as Scripts
|
|||
var childPoints = point.getChildPoints();
|
||||
for(var child in childPoints){
|
||||
pointDays.push(childPoints[child].deviceRow.parent.parent.daydate.getDay()); //different per event
|
||||
print("GOT DAY " + childPoints[child].deviceRow.parent.parent.daydate.getDay());
|
||||
}
|
||||
return new Array(deviceId, pointName, startdate, lastrun, pointMethod, pointDimValue, pointTime, pointType, pointFuzzinessBefore, pointFuzzinessAfter, pointOffset, pointDays);
|
||||
return new Array(deviceId, pointName, startdate, lastrun, pointMethod, pointDimValue, pointTime, pointType, pointFuzzinessBefore, pointFuzzinessAfter, pointOffset, pointDays, absolutePointTime);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ var deviceIndex = [];
|
|||
//TODO active states - move to actionPoint-only-js file
|
||||
var activeStates = new Array();
|
||||
|
||||
function addState(state){
|
||||
function addActiveState(state){
|
||||
activeStates.push(state);
|
||||
}
|
||||
|
||||
|
@ -310,17 +310,82 @@ function assignContinuingBarProperties(deviceRow, previousEndPoint, dayIndex, fi
|
|||
return previousEndPoint;
|
||||
}
|
||||
|
||||
//Upstart:
|
||||
function initiatePointsInGUI(){ //weekPointList){
|
||||
//för varje point, addPointToGUI, men ju även lägga till schemajobb... alltså i __init__.js... men därifrån kan inte denna anropas...
|
||||
//så det får väl bli varsin iteration då...
|
||||
//weekPointList -> från __init__.js
|
||||
//for(var i in weekPointList){
|
||||
for(var i=0;i<weekPointList.length;i++){
|
||||
addWeekPointToGUI(weekPointList.get(i));
|
||||
//Init:
|
||||
function initiateStoredPointsInGUI(){
|
||||
var k = 0;
|
||||
for(var devicekey in storedPoints){
|
||||
for(var i=0;i<storedPoints[devicekey].length;i++){
|
||||
k++;
|
||||
print("ADDED POINTS: " + k);
|
||||
addPointToGUI(devicekey, storedPoints[devicekey][i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function addPointToGUI(key, job){
|
||||
if(job == undefined){
|
||||
return;
|
||||
}
|
||||
var deviceId = key;
|
||||
var jobdata = job.v;
|
||||
var state = getStateFromMethod.callWith(jobdata.method);
|
||||
var activeStates = new Array("on", "off", "dim", "bell"); //TODO get dynamically, depending on device...
|
||||
var dimvalue = jobdata.value;
|
||||
var absoluteTime = jobdata.absoluteTime;
|
||||
var events = jobdata.events;
|
||||
var parentPoint;
|
||||
|
||||
for(var key in events){
|
||||
var eventdata = events[key].d;
|
||||
var dayIndex = eventdata.value;
|
||||
var dayOfWeek = getDayIndexForDayOfWeek(dayIndex); //set dayOfWeek to correct index in the days-table
|
||||
|
||||
print("Inserting point at: " + weekday_name_array[days[dayOfWeek].daydate.getDay()] + " (" + dayOfWeek + ")" + ", id: " + deviceId);
|
||||
|
||||
var pointParentDevice = getDeviceRow(dayOfWeek, deviceId);
|
||||
|
||||
var component = Qt.createComponent("ActionPoint.qml");
|
||||
var dynamicPoint = component.createObject(pointParentDevice);
|
||||
|
||||
if(parentPoint == undefined){
|
||||
//set common values
|
||||
var time = getTimeFromSeconds(absoluteTime); //eventdata.time);
|
||||
dynamicPoint.absoluteHour = time[0]; //same time for all
|
||||
dynamicPoint.absoluteMinute = time[1]; //same time for all
|
||||
dynamicPoint.triggerstate = getTriggerstateFromType.callWith(eventdata.type);
|
||||
dynamicPoint.fuzzyBefore = eventdata.fuzzinessBefore/60;
|
||||
dynamicPoint.fuzzyAfter = eventdata.fuzzinessAfter/60;
|
||||
dynamicPoint.offset = eventdata.offset;
|
||||
if(dynamicPoint.triggerstate == "absolute"){
|
||||
dynamicPoint.x = dynamicPoint.getAbsoluteXValue();
|
||||
}
|
||||
dynamicPoint.setActiveStates(activeStates); //TODO: active states depending on the device (get this from __init__ etc)
|
||||
dynamicPoint.setFirstState(state);
|
||||
dynamicPoint.dimvalue = dimvalue;
|
||||
|
||||
parentPoint = dynamicPoint;
|
||||
}
|
||||
else{
|
||||
dynamicPoint.parentPoint = parentPoint;
|
||||
dynamicPoint.setActiveStates(parentPoint.getActiveStates());
|
||||
parentPoint.addChildPoint(dayIndex, dynamicPoint);
|
||||
}
|
||||
|
||||
dynamicPoint.border.color = "blue"; //default blue at the moment
|
||||
|
||||
}
|
||||
|
||||
updateChildPoints(parentPoint); //if any child points exists, update them with parent values
|
||||
}
|
||||
|
||||
function getTimeFromSeconds(seconds){
|
||||
var totalMinutes = seconds/60;
|
||||
var minutes = totalMinutes%60;
|
||||
var hours = Math.floor(totalMinutes/60);
|
||||
return [hours, minutes];
|
||||
}
|
||||
//End init
|
||||
|
||||
function getDeviceRow(dayOfWeek, deviceId){
|
||||
var dayListViewComp = days[dayOfWeek];
|
||||
if(dayListViewComp == undefined){
|
||||
|
@ -336,31 +401,8 @@ function getDeviceRow(dayOfWeek, deviceId){
|
|||
return pointParent;
|
||||
}
|
||||
|
||||
function addWeekPointToGUI(point){
|
||||
var deviceId = point.deviceId;
|
||||
var dayOfWeek = point.day;
|
||||
//set dayOfWeek to correct index in the days-table
|
||||
print("DayOfWeek again: " + dayOfWeek);
|
||||
dayOfWeek = getDayIndexForDayOfWeek(dayOfWeek);
|
||||
print("Inserting point at: " + weekday_name_array[days[dayOfWeek].daydate.getDay()] + " (" + dayOfWeek + ")" + ", id: " + deviceId);
|
||||
var pointParent = getDeviceRow(dayOfWeek, deviceId);
|
||||
|
||||
var component = Qt.createComponent("ActionPoint.qml")
|
||||
var dynamicPoint = component.createObject(pointParent)
|
||||
dynamicPoint.absoluteHour = 12
|
||||
dynamicPoint.absoluteMinute = 30
|
||||
dynamicPoint.x = dynamicPoint.getAbsoluteXValue();
|
||||
dynamicPoint.border.color = "blue"
|
||||
dynamicPoint.addState("on");
|
||||
dynamicPoint.addState("off");
|
||||
dynamicPoint.addState("dim");
|
||||
dynamicPoint.addState("bell");
|
||||
dynamicPoint.setFirstState("dim");
|
||||
//also: states, fuzzy * 2, trigger, offset, dimvalue
|
||||
}
|
||||
|
||||
//per point
|
||||
var childPoints = [];
|
||||
var childPoints = {};
|
||||
|
||||
function getChildPoint(index){
|
||||
//print("INDEX");
|
||||
|
@ -373,6 +415,7 @@ function getChildPoints(){
|
|||
}
|
||||
|
||||
function addChildPoint(index, point){
|
||||
print("Adding child point " + point + " at " + index);
|
||||
childPoints[index] = point;
|
||||
}
|
||||
|
||||
|
@ -405,15 +448,34 @@ function updateParentsInChildList(newParentPoint){
|
|||
}
|
||||
|
||||
function updateChildPoints(parentPoint){
|
||||
for(var point in childPoints){
|
||||
childPoints[point].absoluteHour = pointRect.absoluteHour;
|
||||
childPoints[point].absoluteMinute = pointRect.absoluteMinute;
|
||||
childPoints[point].fuzzyBefore = pointRect.fuzzyBefore;
|
||||
childPoints[point].fuzzyAfter = pointRect.fuzzyAfter;
|
||||
childPoints[point].offset = pointRect.offset;
|
||||
childPoints[point].triggerstate = pointRect.triggerstate;
|
||||
childPoints[point].dimvalue = pointRect.dimvalue;
|
||||
childPoints[point].state = pointRect.state;
|
||||
|
||||
var children;
|
||||
if(parentPoint != undefined){
|
||||
children = parentPoint.getChildPoints();
|
||||
}
|
||||
else{
|
||||
if(pointRect.parentPoint != undefined){
|
||||
children = pointRect.parentPoint.getChildPoints();
|
||||
parentPoint = pointRect.parentPoint;
|
||||
}
|
||||
else{
|
||||
children = getChildPoints();
|
||||
parentPoint = pointRect;
|
||||
}
|
||||
}
|
||||
|
||||
for(var point in children){
|
||||
children[point].absoluteHour = parentPoint.absoluteHour;
|
||||
children[point].absoluteMinute = parentPoint.absoluteMinute;
|
||||
children[point].fuzzyBefore = parentPoint.fuzzyBefore;
|
||||
children[point].fuzzyAfter = parentPoint.fuzzyAfter;
|
||||
children[point].offset = parentPoint.offset;
|
||||
children[point].triggerstate = parentPoint.triggerstate;
|
||||
children[point].dimvalue = parentPoint.dimvalue;
|
||||
children[point].state = parentPoint.state;
|
||||
if(children[point].triggerstate == "absolute"){
|
||||
children[point].x = children[point].getAbsoluteXValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -433,9 +495,22 @@ function updateParentWithCurrentValues(){
|
|||
//end per point
|
||||
|
||||
//must be run in "main"
|
||||
var loading = false;
|
||||
function setLoading(){
|
||||
loading = true;
|
||||
}
|
||||
|
||||
function endLoading(){
|
||||
loading = false;
|
||||
}
|
||||
|
||||
function isLoading(){
|
||||
return loading;
|
||||
}
|
||||
|
||||
function getDayIndexForDayOfWeek(dayOfWeek){
|
||||
var offset = days[0].daydate.getDay();
|
||||
dayOfWeek = days.length - offset + dayOfWeek;
|
||||
dayOfWeek = days.length - offset + parseInt(dayOfWeek);
|
||||
if(dayOfWeek == -1){
|
||||
dayOfWeek = days.length - 1;
|
||||
}
|
||||
|
@ -452,6 +527,7 @@ function getOffsetWeekdayName(index){
|
|||
|
||||
function getOffsetWeekday(index){
|
||||
//TODO this can be modified based on locale, not adding 1 of week should start with sunday
|
||||
index = parseInt(index);
|
||||
index = index + 1;
|
||||
if(index == weekday_name_array.length){
|
||||
index = 0;
|
||||
|
@ -507,10 +583,10 @@ function createChildPoint(index, pointRect, deviceId){
|
|||
dynamicPoint.setActiveStates(pointRect.getActiveStates());
|
||||
|
||||
/*
|
||||
dynamicPoint.addState("on"); //TODO, add same states as in pointRect
|
||||
dynamicPoint.addState("off");
|
||||
dynamicPoint.addState("dim");
|
||||
dynamicPoint.addState("bell");
|
||||
dynamicPoint.addActiveState("on"); //TODO, add same states as in pointRect
|
||||
dynamicPoint.addActiveState("off");
|
||||
dynamicPoint.addActiveState("dim");
|
||||
dynamicPoint.addActiveState("bell");
|
||||
*/
|
||||
dynamicPoint.setFirstState(pointRect.state);
|
||||
//print("RETURNING " + dynamicPoint);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue