diff --git a/onprc_ehr/resources/queries/ehr_lookups/connectedCages.sql b/onprc_ehr/resources/queries/ehr_lookups/connectedCages.sql index 11b12359e..b80930159 100644 --- a/onprc_ehr/resources/queries/ehr_lookups/connectedCages.sql +++ b/onprc_ehr/resources/queries/ehr_lookups/connectedCages.sql @@ -54,11 +54,11 @@ FROM ehr_lookups.cage c --for the next 2 horizontal joins, use the highest effective row, determined above --find the highest cage with a non-separating divider -LEFT JOIN ehr_lookups.cage joined ON (joined.cage_type != 'No Cage' and c.status.value != 'Unavailable' and c.room = joined.room and c.cagePosition.row = joined.cagePosition.row and joined.divider.countAsSeparate = false and c.cagePosition.columnIdx > joined.cagePosition.columnIdx) +LEFT JOIN ehr_lookups.cage joined ON ((joined.cage_type != 'No Cage' or joined.cage_type != 'Unavailable Location') and c.status.value != 'Unavailable' and c.room = joined.room and c.cagePosition.row = joined.cagePosition.row and joined.divider.countAsSeparate = false and c.cagePosition.columnIdx > joined.cagePosition.columnIdx) --find the highest cage with a separating divider -LEFT JOIN ehr_lookups.cage sep ON (sep.cage_type != 'No Cage' and c.room = sep.room and c.cagePosition.row = sep.cagePosition.row and sep.divider.countAsSeparate = true and c.cagePosition.columnIdx > sep.cagePosition.columnIdx) +LEFT JOIN ehr_lookups.cage sep ON ((sep.cage_type != 'No Cage' or sep.cage_type != 'Unavailable Location') and c.room = sep.room and c.cagePosition.row = sep.cagePosition.row and sep.divider.countAsSeparate = true and c.cagePosition.columnIdx > sep.cagePosition.columnIdx) -WHERE c.cage_type != 'No Cage' +WHERE (c.cage_type != 'No Cage' or c.cage_type != 'Unavailable Location') GROUP BY c.room, c.cagePosition.row, c.cage, c.cagePosition.columnIdx, c.divider, c.divider.countAsSeparate, c.cage_type \ No newline at end of file diff --git a/onprc_ehr/resources/web/onprc_ehr/panel/RoomLayoutPanel.js b/onprc_ehr/resources/web/onprc_ehr/panel/RoomLayoutPanel.js index b331c6582..e8cf1f826 100644 --- a/onprc_ehr/resources/web/onprc_ehr/panel/RoomLayoutPanel.js +++ b/onprc_ehr/resources/web/onprc_ehr/panel/RoomLayoutPanel.js @@ -184,8 +184,8 @@ Ext4.define('ONPRC.panel.RoomLayoutPanel', { var rooms = Ext4.Object.getKeys(roomMap).sort(); var dividerWidth = 3; - var height = 75; - var cageWidth = 60; + var height = 115; + var cageWidth = 78; //Modified: 5-27-2026 var hasCages = false; Ext4.each(rooms, function(room, roomIdx){ @@ -285,7 +285,7 @@ Ext4.define('ONPRC.panel.RoomLayoutPanel', { } var animalItems = []; - if (animals.length > 8){ //Modified: 7-5-2018 R.Blasa + if (animals.length > 8) { //Modified: 7-5-2018 R.Blasa animalItems.push({ html: '' + animals.length + ' animals', border: false, @@ -297,7 +297,7 @@ Ext4.define('ONPRC.panel.RoomLayoutPanel', { else if (animals.length){ Ext4.each(animals, function(animal){ animalItems.push({ - html: '' + animal + '' + (config.animalMap[animal] ? ': ' + Ext4.util.Format.round(config.animalMap[animal].getValue('Id/mostRecentWeight/mostRecentWeight'), 1) : '') + '', + html: '' + animal + '' + (config.animalMap[animal] ? ': ' + Ext4.util.Format.round(config.animalMap[animal].getValue('Id/mostRecentWeight/mostRecentWeight'), 1) : '') + '', animal: animal, border: false, bodyStyle: { @@ -342,30 +342,32 @@ Ext4.define('ONPRC.panel.RoomLayoutPanel', { var prevIsSeparate = prevDividerInfo.countAsSeparate; var prevAnimals = prevCage.get('totalAnimals/animals'); - if (!prevIsSeparate && !Ext4.isEmpty(cageAnimals)) + if (!prevIsSeparate && !Ext4.isEmpty(cageAnimals) && cageType != 'Unavailable Location') bgColor = 'red'; - if (prevIsSeparate && Ext4.isEmpty(cageAnimals)) + if (prevIsSeparate && Ext4.isEmpty(cageAnimals) && cageType != 'Unavailable Location') bgColor = emptyCageColor; - if (!prevIsSeparate && Ext4.isEmpty(cageAnimals) && Ext4.isEmpty(prevAnimals)) + if (!prevIsSeparate && Ext4.isEmpty(cageAnimals) && Ext4.isEmpty(prevAnimals) && cageType != 'Unavailable Location') bgColor = emptyCageColor; if (cageType == 'No Cage'){ - if (!Ext4.isEmpty(cageAnimals)) + if (!Ext4.isEmpty(cageAnimals) && cageType != 'Unavailable Location') bgColor = 'red'; else { //NOTE: this used to use no color. i'm not sure why bgColor = 'grey'; } } - else if (status == 'Unavailable') - { + else if (cageType == 'Unavailable Location') { + bgColor = 'white'; + } + else if (status == 'Unavailable') { bgColor = 'yellow'; } else if (colorcage == 'Transfer Pending') { - if (!Ext4.isEmpty(cageAnimals)) + if (!Ext4.isEmpty(cageAnimals) && cageType != 'Unavailable Location') bgColor = ''; else bgColor = 'orange'; @@ -373,7 +375,7 @@ Ext4.define('ONPRC.panel.RoomLayoutPanel', { } else if (colorcage == 'Held for Colony') { - if (!Ext4.isEmpty(cageAnimals)) + if (!Ext4.isEmpty(cageAnimals) && cageType != 'Unavailable Location') bgColor = ''; else bgColor = '#54daff'; @@ -381,25 +383,32 @@ Ext4.define('ONPRC.panel.RoomLayoutPanel', { } else if (colorcage == 'Empty') { - if (Ext4.isEmpty(cageAnimals)) + if (Ext4.isEmpty(cageAnimals) && cageType != 'Unavailable Location') bgColor = emptyCageColor; } } else { //flag cage if empty - if (Ext4.isEmpty(row.get('totalAnimals/animals'))){ + if (Ext4.isEmpty(row.get('totalAnimals/animals')) && cageType != 'Unavailable Location'){ bgColor = emptyCageColor; } //also if no cage present if (cageType == 'No Cage'){ - if (!Ext4.isEmpty(cageAnimals)) + if (!Ext4.isEmpty(cageAnimals) && cageType != 'Unavailable Location') bgColor = 'red'; else bgColor = 'grey'; } else if (status == 'Unavailable') + { + if (bgColor = emptyCageColor) { + + bgColor = 'white'; + } + } + else if (status == 'Unavailable' && cageType != 'Unavailable Location') { bgColor = 'yellow'; } @@ -421,7 +430,7 @@ Ext4.define('ONPRC.panel.RoomLayoutPanel', { } else if (colorcage == 'Empty') { - if (Ext4.isEmpty(cageAnimals)) + if (Ext4.isEmpty(cageAnimals) && cageType != 'Unavailable Location') bgColor = emptyCageColor; } @@ -430,6 +439,13 @@ Ext4.define('ONPRC.panel.RoomLayoutPanel', { var type = row.get('cage_type'); var cageType = config.cageTypeMap[row.get('cage_type')] || {}; var suffix = cageType.abbreviation || ''; + var html_string = ''; + if (type == 'No Cage') + html_string = 'No Cage'; + + if (type == 'Unavailable Location') + html_string = 'Unavailable Location'; + rowItems.push({ border: false, style: { @@ -453,7 +469,7 @@ Ext4.define('ONPRC.panel.RoomLayoutPanel', { //Modified: 4-8-2020 R.Blasa Contains symbol representing divider types items: [{ - html: row.get('cage_type') == 'No Cage' ? 'No Cage' : ('' + ri + colIdx + '' + (cageType.sqft ? ' (' + (cageType.sqft / cageType.cageslots)+ suffix + ')' : '') + (dividerInfo.displaychar ? ' [' + (dividerInfo.displaychar) + ']' : '') + ''), + html: type == html_string ? html_string : ('' + ri + colIdx + '' + (cageType.sqft ? ' (' + (cageType.sqft / cageType.cageslots)+ suffix + ')' : '') + (dividerInfo.displaychar ? ' [' + (dividerInfo.displaychar) + ']' : '') + ''), bodyStyle: { 'background-color': 'transparent' }, @@ -634,6 +650,7 @@ Ext4.define('ONPRC.panel.RoomLayoutPanel', { Ext4.apply(this, { border: false, itemId: 'roomLayoutPanel', + width: 1450, defaults: { border: false },