6 changed files with 205 additions and 59 deletions
			
			
		| @ -0,0 +1,96 @@ | |||||
|  | <template> | ||||
|  |     <!-- Group List --> | ||||
|  |     <Draggable | ||||
|  |         v-model="$root.publicGroupList" | ||||
|  |         :disabled="!editMode" | ||||
|  |         item-key="id" | ||||
|  |         :animation="100" | ||||
|  |     > | ||||
|  |         <template #item="{ element }"> | ||||
|  |             <div> | ||||
|  |                 <h2 class="mt-5">{{ element.name }}</h2> | ||||
|  | 
 | ||||
|  |                 <div class="shadow-box monitor-list mt-4 position-relative"> | ||||
|  |                     <div v-if="element.monitorList.length === 0" class="text-center no-monitor-msg"> | ||||
|  |                         {{ $t("No Monitors") }} | ||||
|  |                     </div> | ||||
|  | 
 | ||||
|  |                     <!-- Monitor List --> | ||||
|  |                     <Draggable | ||||
|  |                         v-model="element.monitorList" | ||||
|  |                         class="monitor-list" | ||||
|  |                         group="same-group" | ||||
|  |                         :disabled="!editMode" | ||||
|  |                         :animation="100" | ||||
|  |                     > | ||||
|  |                         <template #item="{ element }"> | ||||
|  |                             <div class="item"> | ||||
|  |                                 <div class="row"> | ||||
|  |                                     <div class="col-6 col-md-8 small-padding"> | ||||
|  |                                         <div class="info"> | ||||
|  |                                             <Uptime :monitor="element" type="24" :pill="true" /> | ||||
|  |                                             {{ element.name }} | ||||
|  |                                         </div> | ||||
|  |                                     </div> | ||||
|  |                                     <div :key="$root.userHeartbeatBar" class="col-6 col-md-4"> | ||||
|  |                                         <HeartbeatBar size="small" :monitor-id="element.id" /> | ||||
|  |                                     </div> | ||||
|  |                                 </div> | ||||
|  |                             </div> | ||||
|  |                         </template> | ||||
|  |                     </Draggable> | ||||
|  |                 </div> | ||||
|  |             </div> | ||||
|  |         </template> | ||||
|  |     </Draggable> | ||||
|  | </template> | ||||
|  | 
 | ||||
|  | <script> | ||||
|  | import Draggable from "vuedraggable"; | ||||
|  | import HeartbeatBar from "./HeartbeatBar.vue"; | ||||
|  | import Uptime from "./Uptime.vue"; | ||||
|  | 
 | ||||
|  | export default { | ||||
|  |     name: "GroupList", | ||||
|  |     components: { | ||||
|  |         Draggable, | ||||
|  |         HeartbeatBar, | ||||
|  |         Uptime, | ||||
|  |     }, | ||||
|  |     props: { | ||||
|  |         editMode: { | ||||
|  |             type: Boolean, | ||||
|  |             required: true, | ||||
|  |         }, | ||||
|  |     }, | ||||
|  |     data() { | ||||
|  |         return { | ||||
|  | 
 | ||||
|  |         } | ||||
|  |     }, | ||||
|  |     created() { | ||||
|  | 
 | ||||
|  |     } | ||||
|  | } | ||||
|  | </script> | ||||
|  | 
 | ||||
|  | <style lang="scss" scoped> | ||||
|  |     .no-monitor-msg { | ||||
|  |         position: absolute; | ||||
|  |         width: 100%; | ||||
|  |         top: 20px; | ||||
|  |         left: 0; | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     .monitor-list { | ||||
|  |         min-height: 46px; | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     .flip-list-move { | ||||
|  |         transition: transform 0.5s; | ||||
|  |     } | ||||
|  | 
 | ||||
|  |     .no-move { | ||||
|  |         transition: transform 0s; | ||||
|  |     } | ||||
|  | </style> | ||||
| @ -1,10 +1,10 @@ | |||||
| import { library } from "@fortawesome/fontawesome-svg-core" | import { library } from "@fortawesome/fontawesome-svg-core" | ||||
| import { faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp, faEye, faEyeSlash, faCheckCircle, faStream } from "@fortawesome/free-solid-svg-icons" | import { faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp, faEye, faEyeSlash, faCheckCircle, faStream, faSave } from "@fortawesome/free-solid-svg-icons" | ||||
| //import { fa } from '@fortawesome/free-regular-svg-icons'
 | //import { fa } from '@fortawesome/free-regular-svg-icons'
 | ||||
| import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome" | import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome" | ||||
| 
 | 
 | ||||
| // Add Free Font Awesome Icons here
 | // Add Free Font Awesome Icons here
 | ||||
| // https://fontawesome.com/v5.15/icons?d=gallery&p=2&s=solid&m=free
 | // https://fontawesome.com/v5.15/icons?d=gallery&p=2&s=solid&m=free
 | ||||
| library.add(faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp, faEye, faEyeSlash, faCheckCircle, faStream); | library.add(faCog, faEdit, faPlus, faPause, faPlay, faTachometerAlt, faTrash, faList, faArrowAltCircleUp, faEye, faEyeSlash, faCheckCircle, faStream, faSave); | ||||
| 
 | 
 | ||||
| export { FontAwesomeIcon } | export { FontAwesomeIcon } | ||||
|  | |||||
| @ -0,0 +1,7 @@ | |||||
|  | export default { | ||||
|  |     data() { | ||||
|  |         return { | ||||
|  |             publicGroupList: [], | ||||
|  |         } | ||||
|  |     } | ||||
|  | } | ||||
					Loading…
					
					
				
		Reference in new issue