{"version":3,"sources":["1Initializers.js","resourcemodels.js","resourceviews.js"],"names":["PJQ","views","resources","constants","allocationManagerGroupBy","PROJECT_MANAGER_PROJECT","PROJECT_MANAGER_RESOURCE","RESOURCE_PROJECT_MANAGER","projectFilter","ALL_PROJECTS","MY_PROJECTS","filterType","PROJECT_FILTER","PROJECT_STATUS_FILTER","scheduleWidthDay","colors","default","warning","other","resourceIdUnassignedProjects","helpers","getResourceScheduleStartEndColumn","project","resource","startDate","eventStartDate","eventEndDate","projectResource","getProjectResource","id","offsetLeft","width","dateHelpers","parseDateString","get","endDate","getTimeStats","totalDays","addDays","app","module","modules","RESOURCES","addOldRoutes","route","name","callback","router","navigate","trigger","replace","routes","session","APP","initNavigator","activeItem","view","renderView","ResourceAllocation","addRoutes","models","ResourceAllocationManagerViewSettings","BaseModel","extend","endpoint","urlHelpers","generateEndpoint","Resource","idAttribute","parse","model","userTypeId","this","userType","userTypes","getDefault","Project","getIsIdAssociated","preferences","hasPref","preferenceTypes","RESOURCE_ALLOCATION_PRIMARY_ONLY","_","size","filter","getIsSimple","find","union","item","getProjectResourceDates","getProjectManagers","result","map","each","bind","indexOf","push","getVisibleSuperintendents","getProjectManagersDisplay","join","getProjectLocation","parts","getCustomFieldValue","customFieldId","customField","value","ResourceScheduleEvent","collections","Resources","BaseCollection","getSuperintendents","Projects","getProjectsAssociatedWithId","includeProjectsWithoutSchedule","arguments","length","undefined","getProjectsWithoutSuperintendents","getProjectManagersWithProjectsAssociatedWithId","allProjects","events","projects","projectDates","filteredProjects","items","getEventsForResource","event","contactName","getSuperintendentsWithProjectsAssociatedWithId","sortBy","ResourceScheduleEvents","BaseView","defaults","template","templating","Template","subTemplates","scheduleLegend","resourceGroups","resourceGroupItem","click .resource-allocation-settings","click .last-4week","click .last-week","click .next-4week","click .next-week","click .resource-project-name","click .btn-edit-project","click .add-event","click .btn-edit-event","click .export","beforeFirstRender","settings","fetch","success","fetchProjectStatuses","isFetched","render","renderData","projectStatuses","afterRender","_defaultFilter$PJQ$co","startDateDefault","Date","getDateString","dateFormats","DATE","startDayDefault","getDay","startDateDatePicker","inputs","Datepicker","el","$","datepickerOptions","defaultDate","format","datePicker","disabledDays","onChange","groupBySelectPicker","Selectpicker","isIntChoices","defaultValue","defaultFilter","apply","_toConsumableArray","filterSelectPicker","isMultiple","isGrouped","mustSelectValuePerOptGroup","exclusiveChoices","getData","forceRefresh","callback2","groups","getValue","upcomingProjects","group","upcomingProjectsResource","set","unassignedProjects","unassignedResource","unassignedSupers","hasScheduleWeekOne","data","idFilter","type","fail","legendElements","defaultColorElements","projectStatusId","projectStatus","label","color","unshift","renderSubTemplate","options","show","hide","projectCustomFieldColorBar","RESOURCE_ALLOCATION_PROJECT_CUSTOM_FIELD_COLOR_BAR","values","getPref","split","groupBy","scheduleWidthDayPixels","self","Draggable","opacity","zIndex","axis","cursor","scroll","revert","valid","offset","snap","snapMode","snapTolerance","stack","grid","start","ui","helper","position","drag","left","parent","top","originalPosition","Droppable","accept","$event","closest","drop","e","days","Math","round","$eventContainer","originalStartDate","originalEndDate","originalResourceId","currentResourceId","EditEventModal","title","onSave","onCancel","handles","Resizable","css","resizable","maxWidth","toElement","hasClass","stop","originalSize","dateRangeButtonClicked","target","currentTarget","dayOffset","setValue","ResourceAllocationSettingsModal","resourceAllocationView","notifications","notify","successNotify","message","viewProject","projectId","addEvent","contacts","SelectContactsModal","isSingleChoice","isUserTypeFilterDisabled","context","contexts","PARTICIPANTS","titleOverride","newContact","editEvent","exportView","loader","Loader","loadingText","reporting","Report","fileName","generate","html","outerHTML","remove","BaseModal","click button.settings-save","beforeModalCreated","_defaultFilter$PJQ$co2","prop","filterValue","save","removeModal","noop","click button.event-save","click button.event-cancel","click .project-name","click .resource-schedule-override","resourceId","scheduleEvent","text","isNew","projectStartDatePicker","projectEndDatePicker","defaultStartDate","resourceStartDatePicker","defaultEndDate","resourceEndDatePicker","val","hasErrors","errors","inputHelpers","setInputError","$el","$description","errorNotify","ajax","Request","projectStartDate","projectEndDate","resourceStartDate","resourceEndDate","post","done","xhr","err","scheduleOverride","button","removeClass","addClass"],"mappings":"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","file":"app.js","sourcesContent":["PJQ.views.resources = {};\n\nPJQ.constants.resources = {\n allocationManagerGroupBy: {\n PROJECT_MANAGER_PROJECT: 1,\n PROJECT_MANAGER_RESOURCE: 2,\n RESOURCE_PROJECT_MANAGER: 3\n },\n projectFilter: {\n ALL_PROJECTS: -1,\n MY_PROJECTS: -2\n },\n filterType: {\n PROJECT_FILTER: 'projectFilter',\n PROJECT_STATUS_FILTER: 'projectStatusFilter'\n },\n scheduleWidthDay: 1.19047619047619,\n colors: {\n default: '2196F3',\n warning: 'FF0000',\n other: '7a0101'\n },\n resourceIdUnassignedProjects: -2\n};\n\nPJQ.helpers.resources = {\n getResourceScheduleStartEndColumn: function(project, resource, startDate) {\n let result = '', eventStartDate = null, eventEndDate = null, projectResource = ((project && resource) ? project.getProjectResource(resource.id) : resource), offsetLeft = 0, width = 0;\n\n if (projectResource && projectResource.startDate)\n eventStartDate = PJQ.helpers.dateHelpers.parseDateString(projectResource.startDate, false);\n else if (project.get('startDate'))\n eventStartDate = PJQ.helpers.dateHelpers.parseDateString(project.get('startDate'), false);\n\n if (projectResource && projectResource.endDate)\n eventEndDate = PJQ.helpers.dateHelpers.parseDateString(projectResource.endDate, false);\n else if (project.get('endDate'))\n eventEndDate = PJQ.helpers.dateHelpers.parseDateString(project.get('endDate'), false);\n\n if (eventStartDate && eventEndDate) {\n if (eventStartDate <= startDate)\n offsetLeft = 0;\n else\n offsetLeft = PJQ.helpers.dateHelpers.getTimeStats(eventStartDate, startDate).totalDays * PJQ.constants.resources.scheduleWidthDay;\n\n if (eventEndDate > startDate.addDays(7 * 12))\n width = 100 - offsetLeft;\n else\n width = (PJQ.helpers.dateHelpers.getTimeStats(eventEndDate, eventStartDate < startDate ? startDate : eventStartDate).totalDays + 1) * PJQ.constants.resources.scheduleWidthDay;\n }\n\n return { offsetLeft: offsetLeft, width: width };\n }\n};\n\nif (PJQ.app.module === PJQ.constants.modules.RESOURCES) {\n PJQ.app.addOldRoutes([\n {\n route: '',\n name: 'default',\n callback: function () {\n PJQ.app.router.navigate('resources', {\n trigger: true,\n replace: true\n });\n }\n }\n ]);\n}\n\nPJQ.modules.resources = {\n routes: [\n {\n route: 'resources',\n name: 'resources',\n callback: function () {\n PJQ.app.session.project = null;\n if (PJQ.app.module === PJQ.constants.modules.APP) {\n if (PJQ.app.session.get('ownsPortal')) {\n PJQ.app.initNavigator({\n activeItem: \"resources\"\n });\n }\n else {\n PJQ.app.initNavigator();\n }\n }\n else {\n PJQ.app.view.renderView(PJQ.views.resources.ResourceAllocation);\n }\n }\n }\n ]\n};\n\nPJQ.app.addRoutes(PJQ.modules.resources.routes);","//Models\nPJQ.models.resources = {};\n\nPJQ.models.resources.ResourceAllocationManagerViewSettings = PJQ.models.BaseModel.extend({\n\tendpoint: function () {\n\t\treturn PJQ.helpers.urlHelpers.generateEndpoint([\n\t\t\t{\n\t\t\t\tendpoint: 'resources'\n\t\t\t},\n\t\t\t{\n\t\t\t\tendpoint: 'settings'\n\t\t\t}\n\t\t]);\n\t}\n});\n\nPJQ.models.resources.Resource = PJQ.models.BaseModel.extend({\n\tidAttribute: 'id',\n\tparse: function (model) {\n\t\tif (PJQ.app.session != null && model != null) {\n\t\t\tif (model.userTypeId != null) {\n\t\t\t\tthis.userType = PJQ.app.session.userTypes.get(model.userTypeId);\n\t\t\t}\n\n\t\t\tif (this.userType === null) {\n\t\t\t\tthis.userType = PJQ.app.session.userTypes.getDefault(true);\n\t\t\t}\n\t\t}\n\n\t\treturn model;\n\t}\n});\n\nPJQ.models.resources.Project = PJQ.models.BaseModel.extend({\n\tidAttribute: 'projectId',\n\tgetIsIdAssociated: function (id) {\n\t\treturn (!PJQ.app.session.preferences.hasPref(PJQ.constants.preferenceTypes.RESOURCE_ALLOCATION_PRIMARY_ONLY) && ((this.get('userId') === -id) || (this.get('user2Id') === -id))) || (_.size(_.filter(this.get('projectManagers'), function (resource) {\n\t\t\treturn resource.id === id;\n\t\t})) > 0) || (_.size(_.filter(this.get('superintendents'), function (resource) {\n\t\t\treturn resource.id === id;\n\t\t})) > 0);\n\t\t/*return ((_.size(_.filter(this.get('projectManagers'), function(resource) { return resource.id === id; })) > 0) ||\n\t\t\t(_.size(_.filter(this.get('superintendents'), function(resource) { return resource.id === id; })) > 0));*/\n\t},\n\tgetIsSimple: function () {\n\t\treturn ((_.size(_.filter(this.get('projectManagers'), function (resource) {\n\t\t\t\treturn resource.startDate !== null || resource.endDate !== null;\n\t\t\t})) === 0) &&\n\t\t\t(_.size(_.filter(this.get('superintendents'), function (resource) {\n\t\t\t\treturn resource.startDate !== null || resource.endDate !== null;\n\t\t\t})) === 0));\n\t},\n\tgetProjectResource: function (id) {\n\t\treturn _.find(_.union(this.get('projectManagers'), this.get('superintendents')), function (item) {\n\t\t\treturn item.id === id;\n\t\t});\n\t},\n\tgetProjectResourceDates: function (id) {\n\t\tlet projectResource = this.getProjectResource(id);\n\t\treturn {\n\t\t\tstartDate: (projectResource && projectResource.startDate) ? projectResource.startDate : this.get('startDate'),\n\t\t\tendDate: (projectResource && projectResource.endDate) ? projectResource.endDate : this.get('endDate'),\n\t\t}\n\t},\n\tgetProjectManagers: function (resources) {\n\t\tlet result = _.map(this.get('projectManagers'), function (resource) {\n\t\t\treturn resource.id;\n\t\t});\n\n\t\tif (!PJQ.app.session.preferences.hasPref(PJQ.constants.preferenceTypes.RESOURCE_ALLOCATION_PRIMARY_ONLY)) {\n\t\t\t_.each(resources.getProjectManagers(), _.bind(function (resource) {\n\t\t\t\tif (-resource.id === this.get('userId') && result.indexOf(resource.id) === -1)\n\t\t\t\t\tresult.push(resource.id);\n\t\t\t\tif (-resource.id === this.get('user2Id') && result.indexOf(resource.id) === -1)\n\t\t\t\t\tresult.push(resource.id);\n\t\t\t}, this));\n\t\t}\n\n\t\treturn result;\n\t},\n\tgetVisibleSuperintendents: function (startDate) {\n\t\treturn _.filter(this.get('superintendents'), function (resource) {\n\t\t\treturn resource.startDate == null || PJQ.helpers.dateHelpers.parseDateString(resource.endDate, false) >= startDate;\n\t\t});\n\t},\n\tgetProjectManagersDisplay: function (resources) {\n\t\tlet result = [];\n\t\t_.each(this.getProjectManagers(resources), function (id) {\n\t\t\tresult.push(resources.get(id).get('contactName'));\n\t\t});\n\t\treturn result.join(', ');\n\t},\n\tgetProjectLocation() {\n\t\tlet parts = [];\n\t\tparts.push(this.get('city'));\n\t\tparts.push(this.get('state'));\n\t\treturn parts.join(', ');\n\t},\n\tgetCustomFieldValue(customFieldId) {\n\t\tlet result = null;\n\t\t_.each(this.get('customFields'), function(customField) {\n\t\t\tif (customField.id == customFieldId)\n\t\t\t\tresult = customField.value;\n\t\t});\n\n\t\treturn result;\n\t}\n});\n\nPJQ.models.resources.ResourceScheduleEvent = PJQ.models.BaseModel.extend({\n\tidAttribute: 'resourceScheduleId',\n\tendpoint: function () {\n\t\treturn PJQ.helpers.urlHelpers.generateEndpoint([\n\t\t\t{\n\t\t\t\tendpoint: 'resources'\n\t\t\t},\n\t\t\t{\n\t\t\t\tendpoint: 'schedule'\n\t\t\t},\n\t\t\t{\n\t\t\t\tendpoint: 'event',\n\t\t\t\tvalue: this.id\n\t\t\t}\n\t\t]);\n\t}\n});\n\n//Collections\nPJQ.collections.resources = {};\nPJQ.collections.resources.Resources = PJQ.collections.BaseCollection.extend({\n\tmodel: PJQ.models.resources.Resource,\n\tendpoint: function () {\n\t\treturn PJQ.helpers.urlHelpers.generateEndpoint([\n\t\t\t{\n\t\t\t\tendpoint: 'resources'\n\t\t\t}\n\t\t])\n\t},\n\tgetProjectManagers: function () {\n\t\treturn _.filter(this.models, function (model) {\n\t\t\treturn model.get('isProjectManager');\n\t\t});\n\t},\n\tgetSuperintendents: function () {\n\t\treturn _.filter(this.models, function (model) {\n\t\t\treturn model.get('isSuperintendent');\n\t\t});\n\t}\n});\n\nPJQ.collections.resources.Projects = PJQ.collections.BaseCollection.extend({\n\tmodel: PJQ.models.resources.Project,\n\tendpoint: function () {\n\t\treturn PJQ.helpers.urlHelpers.generateEndpoint([\n\t\t\t{\n\t\t\t\tendpoint: 'resources'\n\t\t\t},\n\t\t\t{\n\t\t\t\tendpoint: 'projects'\n\t\t\t}\n\t\t])\n\t},\n\tgetProjectsAssociatedWithId: function (id, includeProjectsWithoutSchedule = true) {\n\t\treturn _.filter(this.models, _.bind(function (project) {\n\t\t\treturn project.getIsIdAssociated(id) && (includeProjectsWithoutSchedule || (project.get('startDate') && project.get('endDate')));\n\t\t}, this));\n\t},\n\tgetProjectsWithoutSuperintendents(startDate) {\n\t\tlet endDate = startDate.addDays(12 * 7);\n\n\t\treturn _.filter(this.models, function (project) {\n\t\t\treturn _.size(project.get('superintendents')) === 0 && (PJQ.helpers.dateHelpers.parseDateString(project.get('startDate'), false) < endDate && PJQ.helpers.dateHelpers.parseDateString(project.get('endDate'), false) > startDate);\n\t\t});\n\t},\n\tgetProjectManagersWithProjectsAssociatedWithId: function (id, resources, allProjects = true, startDate, events) {\n\t\tlet result = [];\n\t\t_.each(resources, _.bind(function (resource) {\n\n\t\t\tlet endDate = startDate.addDays(12 * 7),\n\t\t\t\tprojects = _.filter(this.getProjectsAssociatedWithId(resource.get('id')), function (project) {\n\t\t\t\t\tlet projectDates = project.getProjectResourceDates(id);\n\t\t\t\t\treturn (PJQ.helpers.dateHelpers.parseDateString(projectDates.startDate, false) < endDate && PJQ.helpers.dateHelpers.parseDateString(projectDates.endDate, false) > startDate);\n\t\t\t\t}),\n\t\t\t\tfilteredProjects = _.filter(projects, function (project) {\n\t\t\t\t\treturn project.getIsIdAssociated(id);\n\t\t\t\t});\n\n\n\t\t\tif (_.size(filteredProjects) > 0) {\n\t\t\t\tresult.push({\n\t\t\t\t\tresource: resource,\n\t\t\t\t\titems: allProjects ? projects : filteredProjects\n\t\t\t\t});\n\t\t\t}\n\t\t}, this));\n\n\t\t_.each(events.getEventsForResource(id), _.bind(function (event) {\n\t\t\tresult.push({\n\t\t\t\tresource: {\n\t\t\t\t\tid: -event.get('resourceScheduleId'),\n\t\t\t\t\tcontactName: 'Scheduled Event'\n\t\t\t\t},\n\t\t\t\titems: [event]\n\t\t\t});\n\t\t}, this));\n\n\t\treturn result;\n\t},\n\tgetSuperintendentsWithProjectsAssociatedWithId: function (id, resources, allProjects = true, startDate, events) {\n\t\tlet result = [];\n\t\t_.each(resources, _.bind(function (resource) {\n\n\t\t\tlet endDate = startDate.addDays(12 * 7),\n\t\t\t\tprojects = _.filter(this.getProjectsAssociatedWithId(resource.get('id')), function (project) {\n\t\t\t\t\tlet projectDates = project.getProjectResourceDates(resource.get('id'));\n\t\t\t\t\treturn (PJQ.helpers.dateHelpers.parseDateString(projectDates.startDate, false) < endDate && PJQ.helpers.dateHelpers.parseDateString(projectDates.endDate, false) > startDate);\n\t\t\t\t}),\n\t\t\t\tfilteredProjects = _.filter(projects, function (project) {\n\t\t\t\t\treturn project.getIsIdAssociated(id);\n\t\t\t\t}),\n\t\t\t\titems = _.sortBy(_.union((allProjects ? projects : filteredProjects), events.getEventsForResource(resource.get('id'))), function (item) {\n\t\t\t\t\treturn item.get('startDate');\n\t\t\t\t});\n\n\t\t\tif (_.size(filteredProjects) > 0) {\n\t\t\t\tresult.push({\n\t\t\t\t\tresource: resource,\n\t\t\t\t\tprojects: allProjects ? projects : filteredProjects,\n\t\t\t\t\titems: items\n\t\t\t\t});\n\t\t\t}\n\t\t}, this));\n\n\t\treturn result;\n\t}\n\n});\n\nPJQ.collections.resources.ResourceScheduleEvents = PJQ.collections.BaseCollection.extend({\n\tmodel: PJQ.models.resources.ResourceScheduleEvent,\n\tendpoint: function () {\n\t\treturn PJQ.helpers.urlHelpers.generateEndpoint([\n\t\t\t{\n\t\t\t\tendpoint: 'resources'\n\t\t\t},\n\t\t\t{\n\t\t\t\tendpoint: 'schedule'\n\t\t\t},\n\t\t\t{\n\t\t\t\tendpoint: 'events'\n\t\t\t}\n\t\t])\n\t},\n\tgetEventsForResource: function (id) {\n\t\treturn _.filter(this.models, function (item) {\n\t\t\treturn item.get('resourceId') === id;\n\t\t});\n\t}\n});","PJQ.views.resources.ResourceAllocation = PJQ.views.BaseView.extend({\n\tdefaults: {\n\t\ttemplate: new PJQ.templating.Template(PJQ.constants.modules.RESOURCES, 'resource-allocation'),\n\t\tsubTemplates: {\n\t\t\tscheduleLegend: new PJQ.templating.Template(PJQ.constants.modules.RESOURCES, 'resource-schedule-legend'),\n\t\t\tresourceGroups: new PJQ.templating.Template(PJQ.constants.modules.RESOURCES, 'resource-allocation-groups'),\n\t\t\tresourceGroupItem: new PJQ.templating.Template(PJQ.constants.modules.RESOURCES, 'resource-allocation-group-item')\n\t\t},\n\t},\n\tevents: {\n\t\t'click .resource-allocation-settings': 'settings',\n\t\t'click .last-4week': 'dateRangeButtonClicked',\n\t\t'click .last-week': 'dateRangeButtonClicked',\n\t\t'click .next-4week': 'dateRangeButtonClicked',\n\t\t'click .next-week': 'dateRangeButtonClicked',\n\t\t'click .resource-project-name': 'viewProject',\n\t\t'click .btn-edit-project': 'viewProject',\n\t\t'click .add-event': 'addEvent',\n\t\t'click .btn-edit-event': 'editEvent',\n\t\t'click .export': 'exportView'\n\t},\n\tbeforeFirstRender: function () {\n\t\tthis.projects = null;\n\t\tthis.settings = new PJQ.models.resources.ResourceAllocationManagerViewSettings();\n\t\tthis.settings.fetch({\n\t\t\tsuccess: _.bind(function () {\n\t\t\t\tPJQ.app.session.fetchProjectStatuses(_.bind(function () {\n\t\t\t\t\tthis.resources = new PJQ.collections.resources.Resources();\n\t\t\t\t\tthis.resources.fetch({\n\t\t\t\t\t\tsuccess: _.bind(function () {\n\t\t\t\t\t\t\tthis.isFetched = true;\n\t\t\t\t\t\t\tthis.render();\n\t\t\t\t\t\t}, this)\n\t\t\t\t\t});\n\t\t\t\t}, this));\n\t\t\t}, this)\n\t\t});\n\t},\n\trenderData: function () {\n\t\treturn {\n\t\t\tisFetched: this.isFetched,\n\t\t\tprojectStatuses: PJQ.app.session.projectStatuses ? PJQ.app.session.projectStatuses.models : []\n\t\t};\n\t},\n\tafterRender: function () {\n\t\tif (!this.isFetched)\n\t\t\treturn;\n\n\t\t// find most recent Monday\n\t\tlet startDateDefault = new Date(PJQ.helpers.dateHelpers.getDateString(new Date(), PJQ.helpers.dateHelpers.dateFormats.DATE)),\n\t\t\tstartDayDefault = startDateDefault.getDay();\n\t\tif (startDayDefault !== 1) {\n\t\t\tif (startDayDefault === 0)\n\t\t\t\tstartDateDefault = startDateDefault.addDays(-7);\n\t\t\telse\n\t\t\t\tstartDateDefault = startDateDefault.addDays(-(startDayDefault - 1))\n\t\t}\n\n\t\tthis.startDateDatePicker = new PJQ.inputs.Datepicker({\n\t\t\tel: this.$('.start-date'),\n\t\t\tdatepickerOptions: {\n\t\t\t\tdefaultDate: startDateDefault,\n\t\t\t\tformat: PJQ.helpers.dateHelpers.dateFormats.datePicker.DATE,\n\t\t\t},\n\t\t\tdisabledDays: [0, 2, 3, 4, 5, 6],\n\t\t\tonChange: _.bind(function () {\n\t\t\t\tthis.renderView();\n\t\t\t}, this)\n\t\t});\n\n\t\tthis.groupBySelectPicker = new PJQ.inputs.Selectpicker({\n\t\t\tel: this.$('.group-by'),\n\t\t\tisIntChoices: true,\n\t\t\tdefaultValue: this.settings.get('defaultGroupBy'),\n\t\t\tonChange: _.bind(function () {\n\t\t\t\tthis.renderView();\n\t\t\t}, this)\n\t\t});\n\n\t\tlet defaultFilter = {};\n\t\tdefaultFilter[PJQ.constants.resources.filterType.PROJECT_FILTER] = [this.settings.get('defaultProjectFilter')];\n\t\tdefaultFilter[PJQ.constants.resources.filterType.PROJECT_STATUS_FILTER] = [];\n\n\t\tif (_.size(this.settings.get('defaultProjectStatuses')) > 0)\n\t\t\tdefaultFilter[PJQ.constants.resources.filterType.PROJECT_STATUS_FILTER].push(...this.settings.get('defaultProjectStatuses'));\n\t\telse\n\t\t\tdefaultFilter[PJQ.constants.resources.filterType.PROJECT_STATUS_FILTER].push(PJQ.app.session.projectStatuses.getDefault().get('projectStatusId'));\n\n\t\tthis.filterSelectPicker = new PJQ.inputs.Selectpicker({\n\t\t\tel: this.$('.project-filter'),\n\t\t\tisIntChoices: true,\n\t\t\tisMultiple: true,\n\t\t\tisGrouped: true,\n\t\t\tmustSelectValuePerOptGroup: true,\n\t\t\texclusiveChoices: [PJQ.constants.resources.projectFilter.ALL_PROJECTS, PJQ.constants.resources.projectFilter.MY_PROJECTS],\n\t\t\tdefaultValue: defaultFilter,\n\t\t\tonChange: _.bind(function () {\n\t\t\t\tthis.renderView(true);\n\t\t\t}, this)\n\t\t});\n\n\t\tthis.renderView();\n\t},\n\tgetData: function (forceRefresh, callback) {\n\t\tlet callback2 = _.bind(function () {\n\t\t\tthis.groups = []\n\t\t\tlet startDate = this.startDateDatePicker.getValue(), endDate = startDate.addDays(7 * 12);\n\t\t\tif (this.groupBySelectPicker.getValue() === PJQ.constants.resources.allocationManagerGroupBy.PROJECT_MANAGER_PROJECT) {\n\t\t\t\tlet upcomingProjects = [];\n\t\t\t\t_.each(this.resources.getProjectManagers(), _.bind(function (resource) {\n\t\t\t\t\tlet group = {\n\t\t\t\t\t\tresource: resource,\n\t\t\t\t\t\tprojects: this.projects.getProjectsAssociatedWithId(resource.get('id'), this.settings.get('isShowAllProjectsWithStatus'))\n\t\t\t\t\t};\n\n\t\t\t\t\tif (this.settings.get('isGroupUpcomingProjects')) {\n\t\t\t\t\t\tgroup.projects = _.filter(group.projects, function (project) {\n\t\t\t\t\t\t\tif (PJQ.helpers.dateHelpers.parseDateString(project.get('startDate'), false) < startDate.addDays(7)) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tupcomingProjects.push(project);\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (_.size(group.projects) > 0 || !this.settings.get('isHideEmptyGroups'))\n\t\t\t\t\t\tthis.groups.push(group);\n\n\t\t\t\t}, this));\n\n\t\t\t\tif (_.size(upcomingProjects) > 0) {\n\t\t\t\t\tlet upcomingProjectsResource = new PJQ.models.resources.Resource();\n\t\t\t\t\tupcomingProjectsResource.set('id', -1);\n\t\t\t\t\tupcomingProjectsResource.set('contactName', 'Upcoming Projects');\n\t\t\t\t\tthis.groups.push({\n\t\t\t\t\t\tresource: upcomingProjectsResource,\n\t\t\t\t\t\tprojects: _.sortBy(upcomingProjects, function(project) { return project.get('startDate'); })\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t}\n\t\t\telse if (this.groupBySelectPicker.getValue() === PJQ.constants.resources.allocationManagerGroupBy.PROJECT_MANAGER_RESOURCE) {\n\t\t\t\t_.each(this.resources.getProjectManagers(), _.bind(function (resource) {\n\t\t\t\t\tlet group = {\n\t\t\t\t\t\tresource: resource,\n\t\t\t\t\t\tresources: this.projects.getSuperintendentsWithProjectsAssociatedWithId(resource.get('id'), this.resources.getSuperintendents(), false, this.startDateDatePicker.getValue(), this.events)\n\t\t\t\t\t};\n\n\t\t\t\t\tif (_.size(group.resources) > 0 || !this.settings.get('isHideEmptyGroups'))\n\t\t\t\t\t\tthis.groups.push(group);\n\n\t\t\t\t}, this));\n\n\t\t\t\t// add unassigned projects (no supers assigned)\n\t\t\t\tlet unassignedProjects = this.projects.getProjectsWithoutSuperintendents(this.startDateDatePicker.getValue());\n\t\t\t\tif (_.size(unassignedProjects) > 0) {\n\t\t\t\t\tlet unassignedResource = new PJQ.models.resources.Resource();\n\t\t\t\t\tunassignedResource.set('id', -1);\n\t\t\t\t\tunassignedResource.set('contactName', 'Unassigned Projects');\n\n\t\t\t\t\tlet group = {\n\t\t\t\t\t\tresource: unassignedResource,\n\t\t\t\t\t\tresources: []\n\t\t\t\t\t};\n\n\t\t\t\t\tgroup.resources.push({\n\t\t\t\t\t\tresource: {\n\t\t\t\t\t\t\tid: -2,\n\t\t\t\t\t\t\tcontactName: 'Project List'\n\t\t\t\t\t\t},\n\t\t\t\t\t\titems: unassignedProjects\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.groups.push(group);\n\t\t\t\t}\n\n\t\t\t\tlet unassignedSupers = [];\n\t\t\t\t_.each(this.resources.getSuperintendents(), _.bind(function (resource) {\n\t\t\t\t\tif (!resource.get('isActive')) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet hasScheduleWeekOne = false,\n\t\t\t\t\t\tprojects = _.filter(this.projects.getProjectsAssociatedWithId(resource.id, false), _.bind(function (project) {\n\t\t\t\t\t\t\tlet projectDates = project.getProjectResourceDates(resource.id);\n\n\t\t\t\t\t\t\tif (PJQ.helpers.dateHelpers.parseDateString(projectDates.startDate, false) < startDate.addDays(7) && PJQ.helpers.dateHelpers.parseDateString(projectDates.endDate, false) > startDate)\n\t\t\t\t\t\t\t\thasScheduleWeekOne = true;\n\n\t\t\t\t\t\t\treturn (PJQ.helpers.dateHelpers.parseDateString(projectDates.startDate, false) < endDate && PJQ.helpers.dateHelpers.parseDateString(projectDates.endDate, false) > startDate);\n\t\t\t\t\t\t}, this));\n\n\t\t\t\t\tif (!hasScheduleWeekOne) {\n\t\t\t\t\t\tunassignedSupers.push({\n\t\t\t\t\t\t\tresource: resource,\n\t\t\t\t\t\t\titems: _.sortBy(_.union(projects, this.events.getEventsForResource(resource.id)), function (item) {\n\t\t\t\t\t\t\t\treturn item.get('startDate');\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}, this));\n\n\t\t\t\tif (_.size(unassignedSupers) > 0) {\n\t\t\t\t\tlet unassignedResource = new PJQ.models.resources.Resource();\n\t\t\t\t\tunassignedResource.set('id', -2);\n\t\t\t\t\tunassignedResource.set('contactName', 'Unassigned Resources');\n\t\t\t\t\tthis.groups.push({\n\t\t\t\t\t\tresource: unassignedResource,\n\t\t\t\t\t\tresources: unassignedSupers\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t}\n\t\t\telse if (this.groupBySelectPicker.getValue() === PJQ.constants.resources.allocationManagerGroupBy.RESOURCE_PROJECT_MANAGER) {\n\t\t\t\t_.each(this.resources.getSuperintendents(), _.bind(function (resource) {\n\t\t\t\t\tlet group = {\n\t\t\t\t\t\tresource: resource,\n\t\t\t\t\t\tresources: this.projects.getProjectManagersWithProjectsAssociatedWithId(resource.get('id'), this.resources.getProjectManagers(), false, this.startDateDatePicker.getValue(), this.events)\n\t\t\t\t\t};\n\n\t\t\t\t\tif (_.size(group.resources) > 0 || !this.settings.get('isHideEmptyGroups'))\n\t\t\t\t\t\tthis.groups.push(group);\n\n\t\t\t\t}, this));\n\t\t\t}\n\t\t\tcallback();\n\t\t}, this);\n\n\t\tif (forceRefresh || !this.projects || !this.settings.get('isShowAllProjectsWithStatus')) {\n\t\t\tthis.projects = new PJQ.collections.resources.Projects();\n\t\t\tthis.events = new PJQ.collections.resources.ResourceScheduleEvents();\n\n\t\t\tthis.projects.fetch({\n\t\t\t\tdata: {\n\t\t\t\t\tprojectStatuses: this.filterSelectPicker.getValue()[PJQ.constants.resources.filterType.PROJECT_STATUS_FILTER],\n\t\t\t\t\tstartDate: this.settings.get('isShowAllProjectsWithStatus') ? null : PJQ.helpers.dateHelpers.getDateString(this.startDateDatePicker.getValue(), PJQ.helpers.dateHelpers.dateFormats.DATE),\n\t\t\t\t\tendDate: this.settings.get('isShowAllProjectsWithStatus') ? null : PJQ.helpers.dateHelpers.getDateString(this.startDateDatePicker.getValue().addDays(7 * 12), PJQ.helpers.dateHelpers.dateFormats.DATE),\n\t\t\t\t\tidFilter: this.filterSelectPicker.getValue()[PJQ.constants.resources.filterType.PROJECT_FILTER].indexOf(PJQ.constants.resources.projectFilter.MY_PROJECTS) !== -1 ? (PJQ.app.session.get('user') ? PJQ.app.session.get('user').id : PJQ.app.session.get('contact').id) : null\n\t\t\t\t},\n\t\t\t\ttype: 'POST',\n\t\t\t\tsuccess: _.bind(function () {\n\t\t\t\t\tthis.events.fetch({\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tstartDate: this.settings.get('isShowAllProjectsWithStatus') ? null : PJQ.helpers.dateHelpers.getDateString(this.startDateDatePicker.getValue(), PJQ.helpers.dateHelpers.dateFormats.DATE),\n\t\t\t\t\t\t\tendDate: this.settings.get('isShowAllProjectsWithStatus') ? null : PJQ.helpers.dateHelpers.getDateString(this.startDateDatePicker.getValue().addDays(7 * 12), PJQ.helpers.dateHelpers.dateFormats.DATE),\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttype: 'POST',\n\t\t\t\t\t\tsuccess: _.bind(function () {\n\t\t\t\t\t\t\tcallback2();\n\t\t\t\t\t\t}, this)\n\t\t\t\t\t});\n\t\t\t\t}, this),\n\t\t\t\tfail: _.bind(function () {\n\t\t\t\t}, this)\n\t\t\t});\n\t\t}\n\t\telse\n\t\t\tcallback2();\n\t},\n\trenderView: function (forceRefresh) {\n\n\t\tlet legendElements = [], defaultColorElements = [];\n\t\t_.each(this.filterSelectPicker.getValue()[PJQ.constants.resources.filterType.PROJECT_STATUS_FILTER], function (projectStatusId) {\n\t\t\tif (PJQ.app.session.projectStatuses.get(projectStatusId)) {\n\t\t\t\tlet projectStatus = PJQ.app.session.projectStatuses.get(projectStatusId);\n\t\t\t\tif (projectStatus.get('color') === '000000')\n\t\t\t\t\tdefaultColorElements.push(projectStatus.get('name'));\n\t\t\t\telse\n\t\t\t\t\tlegendElements.push({label: projectStatus.get('name'), color: projectStatus.get('color')});\n\t\t\t}\n\t\t});\n\n\t\tif (_.size(defaultColorElements) > 0) {\n\t\t\tlegendElements.unshift({\n\t\t\t\tlabel: defaultColorElements.join(', '),\n\t\t\t\tcolor: PJQ.constants.resources.colors.default\n\t\t\t});\n\t\t}\n\n\t\tif (this.groupBySelectPicker.getValue() !== PJQ.constants.resources.allocationManagerGroupBy.PROJECT_MANAGER_PROJECT)\n\t\t\tlegendElements.push({label: 'Resource Event', color: PJQ.constants.resources.colors.other});\n\n\t\tif (this.groupBySelectPicker.getValue() === PJQ.constants.resources.allocationManagerGroupBy.PROJECT_MANAGER_PROJECT)\n\t\t\tlegendElements.push({label: 'Warning', color: PJQ.constants.resources.colors.warning});\n\n\t\tthis.renderSubTemplate(false, this.options.subTemplates.scheduleLegend, this.$('.schedule-legend'), {\n\t\t\tlegendElements: legendElements\n\t\t});\n\n\t\tthis.getData(forceRefresh, _.bind(function () {\n\t\t\tif (_.size(this.groups) === 0) {\n\t\t\t\tthis.$('.resource-groups-empty').show();\n\t\t\t\tthis.$('.schedule-legend, .resource-groups').hide();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.$('.resource-groups-empty').hide();\n\t\t\t\tthis.$('.schedule-legend, .resource-groups').show();\n\n\t\t\t\tlet projectCustomFieldColorBar = null;\n\t\t\t\tif (PJQ.app.session.preferences.hasPref(PJQ.constants.preferenceTypes.RESOURCE_ALLOCATION_PROJECT_CUSTOM_FIELD_COLOR_BAR)) {\n\t\t\t\t\tlet values = PJQ.app.session.preferences.getPref(PJQ.constants.preferenceTypes.RESOURCE_ALLOCATION_PROJECT_CUSTOM_FIELD_COLOR_BAR).split('|');\n\t\t\t\t\tprojectCustomFieldColorBar = {\n\t\t\t\t\t\tcustomFieldId: values[0],\n\t\t\t\t\t\tvalue: values[1],\n\t\t\t\t\t\tcolor: values[2]\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tthis.renderSubTemplate(false, this.options.subTemplates.resourceGroups, this.$('.resource-groups'), {\n\t\t\t\t\tgroups: this.groups,\n\t\t\t\t\tresources: this.resources,\n\t\t\t\t\tsubTemplates: this.options.subTemplates,\n\t\t\t\t\tstartDate: this.startDateDatePicker.getValue(),\n\t\t\t\t\tgroupBy: this.groupBySelectPicker.getValue(),\n\t\t\t\t\tprojectStatuses: PJQ.app.session.projectStatuses,\n\t\t\t\t\tprojectCustomFieldColorBar: projectCustomFieldColorBar\n\t\t\t\t}, _.bind(function () {\n\t\t\t\t\tlet scheduleWidthDayPixels = (PJQ.constants.resources.scheduleWidthDay / 100.0) * this.$('.schedule-row').width(),\n\t\t\t\t\t\tself = this;\n\n\t\t\t\t\tnew PJQ.Draggable(this.$('.resource-schedule-event'), {\n\t\t\t\t\t\topacity: 0.9,\n\t\t\t\t\t\tzIndex: 1000000,\n\t\t\t\t\t\taxis: (this.groupBySelectPicker.getValue() !== PJQ.constants.resources.allocationManagerGroupBy.PROJECT_MANAGER_RESOURCE) ? \"x\" : null,\n\t\t\t\t\t\tcursor: (this.groupBySelectPicker.getValue() !== PJQ.constants.resources.allocationManagerGroupBy.PROJECT_MANAGER_RESOURCE) ? \"auto\" : \"move\",\n\t\t\t\t\t\tscroll: true,\n\t\t\t\t\t\trevert: function (valid) {\n\t\t\t\t\t\t\tif (!valid) {\n\t\t\t\t\t\t\t\t$(this).offset($(this).data('originalOffset'));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tsnap: '.schedule-row',\n\t\t\t\t\t\tsnapMode: 'inner',\n\t\t\t\t\t\tsnapTolerance: (this.groupBySelectPicker.getValue() === PJQ.constants.resources.allocationManagerGroupBy.PROJECT_MANAGER_RESOURCE) ? 28 : null,\n\t\t\t\t\t\tstack: '.resource-schedule-event',\n\t\t\t\t\t\tgrid: [scheduleWidthDayPixels, 1],\n\t\t\t\t\t\tstart: function (event, ui) {\n\t\t\t\t\t\t\tui.helper.data('originalPosition', ui.position);\n\t\t\t\t\t\t\tui.helper.data('originalOffset', ui.helper.offset());\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdrag: function (event, ui) {\n\t\t\t\t\t\t\tif (ui.position.left < 0)\n\t\t\t\t\t\t\t\tui.position.left = 0;\n\n\t\t\t\t\t\t\tif (ui.position.left > ui.helper.parent().width() - 10)\n\t\t\t\t\t\t\t\tui.position.left = ui.helper.parent().width() - 10;\n\n\t\t\t\t\t\t\t// resource events cannot be moved up or down\n\t\t\t\t\t\t\tif (self.groupBySelectPicker.getValue() === PJQ.constants.resources.allocationManagerGroupBy.PROJECT_MANAGER_RESOURCE &&\n\t\t\t\t\t\t\t\tui.helper.find('.resource-schedule').data('resourceScheduleId') > 0)\n\t\t\t\t\t\t\t\tui.position.top = ui.originalPosition.top;\n\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tnew PJQ.Droppable(this.$('.schedule-row'), {\n\t\t\t\t\t\taccept: function ($event) {\n\t\t\t\t\t\t\tif ($event.find('.resource-schedule').data('resourceScheduleId'))\n\t\t\t\t\t\t\t\treturn true;\n\n\t\t\t\t\t\t\treturn ($event.closest('.schedule-row')[0] === $(this)[0]) || ($event.find('.resource-schedule').data('resourceId') !== $(this).closest('.resource-resource').data('resourceId'));\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdrop: function (e, ui) {\n\n\t\t\t\t\t\t\tlet days = Math.round((ui.position.left - ui.helper.data('originalPosition').left) / scheduleWidthDayPixels),\n\t\t\t\t\t\t\t\tproject = null,\n\t\t\t\t\t\t\t\tresource = null,\n\t\t\t\t\t\t\t\tevent = null,\n\t\t\t\t\t\t\t\t$eventContainer = ui.helper.find('div.resource-schedule'),\n\t\t\t\t\t\t\t\toriginalStartDate = null,\n\t\t\t\t\t\t\t\toriginalEndDate = null,\n\t\t\t\t\t\t\t\toriginalResourceId = $eventContainer.data('resourceId'),\n\t\t\t\t\t\t\t\tcurrentResourceId = (self.groupBySelectPicker.getValue() === PJQ.constants.resources.allocationManagerGroupBy.PROJECT_MANAGER_PROJECT) ? originalResourceId : $(this).closest('.resource-resource').data('resourceId');\n\n\t\t\t\t\t\t\tif (days === 0 && originalResourceId === currentResourceId)\n\t\t\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t\tif ($eventContainer.data('resourceScheduleId')) {\n\t\t\t\t\t\t\t\tevent = self.events.get($eventContainer.data('resourceScheduleId'));\n\t\t\t\t\t\t\t\tresource = self.resources.get(event.get('resourceId'));\n\t\t\t\t\t\t\t\toriginalStartDate = event.get('startDate');\n\t\t\t\t\t\t\t\toriginalEndDate = event.get('startDate');\n\t\t\t\t\t\t\t\tevent.set('startDate', PJQ.helpers.dateHelpers.parseDateString(event.get('startDate'), false).addDays(days));\n\t\t\t\t\t\t\t\tevent.set('endDate', PJQ.helpers.dateHelpers.parseDateString(event.get('endDate'), false).addDays(days));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\n\t\t\t\t\t\t\t\tif ($eventContainer.data('projectId'))\n\t\t\t\t\t\t\t\t\tproject = self.projects.get($eventContainer.data('projectId'));\n\n\t\t\t\t\t\t\t\tif ($eventContainer.data('resourceId'))\n\t\t\t\t\t\t\t\t\tresource = project.getProjectResource($eventContainer.data('resourceId'));\n\n\t\t\t\t\t\t\t\tif (currentResourceId === PJQ.constants.resources.resourceIdUnassignedProjects)\n\t\t\t\t\t\t\t\t\tresource = null;\n\t\t\t\t\t\t\t\telse if (originalResourceId !== currentResourceId && !resource) {\n\t\t\t\t\t\t\t\t\tresource = {\n\t\t\t\t\t\t\t\t\t\tid: currentResourceId,\n\t\t\t\t\t\t\t\t\t\tstartDate: null,\n\t\t\t\t\t\t\t\t\t\tendDate: null\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (resource && resource.startDate) {\n\t\t\t\t\t\t\t\t\toriginalStartDate = resource.startDate;\n\t\t\t\t\t\t\t\t\toriginalEndDate = resource.endDate;\n\t\t\t\t\t\t\t\t\tresource.startDate = PJQ.helpers.dateHelpers.parseDateString(resource.startDate, false).addDays(days);\n\t\t\t\t\t\t\t\t\tresource.endDate = PJQ.helpers.dateHelpers.parseDateString(resource.endDate, false).addDays(days);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse if (project) {\n\t\t\t\t\t\t\t\t\toriginalStartDate = project.get('startDate');\n\t\t\t\t\t\t\t\t\toriginalEndDate = project.get('endDate');\n\t\t\t\t\t\t\t\t\tproject.set('startDate', PJQ.helpers.dateHelpers.parseDateString(project.get('startDate'), false).addDays(days));\n\t\t\t\t\t\t\t\t\tproject.set('endDate', PJQ.helpers.dateHelpers.parseDateString(project.get('endDate'), false).addDays(days));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tnew PJQ.views.resources.EditEventModal({\n\t\t\t\t\t\t\t\tproject: project,\n\t\t\t\t\t\t\t\tresource: resource,\n\t\t\t\t\t\t\t\tevent: event,\n\t\t\t\t\t\t\t\tresources: self.resources,\n\t\t\t\t\t\t\t\toriginalResourceId: originalResourceId === PJQ.constants.resources.resourceIdUnassignedProjects ? null : originalResourceId,\n\t\t\t\t\t\t\t\tcurrentResourceId: currentResourceId === PJQ.constants.resources.resourceIdUnassignedProjects ? null : currentResourceId,\n\t\t\t\t\t\t\t\ttitle: 'Confirm Schedule Change',\n\t\t\t\t\t\t\t\tonSave: function () {\n\t\t\t\t\t\t\t\t\tself.renderView(true);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tonCancel: function () {\n\t\t\t\t\t\t\t\t\tif (event) {\n\t\t\t\t\t\t\t\t\t\tevent.set('startDate', originalStartDate);\n\t\t\t\t\t\t\t\t\t\tevent.set('endDate', originalEndDate);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tif (resource && resource.startDate) {\n\t\t\t\t\t\t\t\t\t\t\tresource.startDate = originalStartDate;\n\t\t\t\t\t\t\t\t\t\t\tresource.endDate = originalEndDate;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if (project) {\n\t\t\t\t\t\t\t\t\t\t\tproject.set('startDate', originalStartDate);\n\t\t\t\t\t\t\t\t\t\t\tproject.set('endDate', originalEndDate);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif (resource)\n\t\t\t\t\t\t\t\t\t\t\tresource.id = originalResourceId;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tui.helper.offset(ui.helper.data('originalOffset'));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t_.each(this.$('.resource-schedule-event'), _.bind(function (event) {\n\t\t\t\t\t\tlet $event = $(event), handles = [];\n\n\t\t\t\t\t\tif ($event.position().left > 0)\n\t\t\t\t\t\t\thandles.push('w');\n\t\t\t\t\t\tif (($event.parent().width() - ($event.position().left + $event.width())) > 5)\n\t\t\t\t\t\t\thandles.push('e');\n\n\t\t\t\t\t\tif (_.size(handles) === 0)\n\t\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\tnew PJQ.Resizable($event, {\n\t\t\t\t\t\t\thandles: handles.join(','),\n\t\t\t\t\t\t\tgrid: [scheduleWidthDayPixels, 0],\n\t\t\t\t\t\t\tstart: function (e, ui) {\n\t\t\t\t\t\t\t\tui.helper.data('originalOffset', ui.helper.offset());\n\t\t\t\t\t\t\t\tui.helper.data('originalWidth', ui.helper.css('width'));\n\n\t\t\t\t\t\t\t\t$(this).resizable(\"option\", \"minWidth\", scheduleWidthDayPixels);\n\n\t\t\t\t\t\t\t\t// need to figure this out depending on whether we are dragging left side or right side.\n\t\t\t\t\t\t\t\tlet maxWidth = $(e.toElement).hasClass('ui-resizable-w') ? (ui.helper.position().left + ui.helper.width() + 5) : ui.helper.width() + (ui.helper.parent().width() - (ui.helper.position().left + ui.helper.width())) + 5;\n\t\t\t\t\t\t\t\t$(this).resizable(\"option\", \"maxWidth\", maxWidth);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tstop: _.bind(function (e, ui) {\n\t\t\t\t\t\t\t\tlet days = $(e.toElement).hasClass('ui-resizable-w') ? Math.round((ui.position.left - ui.originalPosition.left) / scheduleWidthDayPixels) : Math.round((ui.size.width - ui.originalSize.width) / scheduleWidthDayPixels),\n\t\t\t\t\t\t\t\t\tproject = null,\n\t\t\t\t\t\t\t\t\tresource = null,\n\t\t\t\t\t\t\t\t\tevent = null,\n\t\t\t\t\t\t\t\t\t$eventContainer = ui.helper.find('div.resource-schedule'),\n\t\t\t\t\t\t\t\t\toriginalStartDate = null,\n\t\t\t\t\t\t\t\t\toriginalEndDate = null;\n\n\t\t\t\t\t\t\t\tif (days === 0)\n\t\t\t\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t\t\tif ($eventContainer.data('resourceScheduleId')) {\n\t\t\t\t\t\t\t\t\tevent = this.events.get($eventContainer.data('resourceScheduleId'));\n\t\t\t\t\t\t\t\t\tresource = this.resources.get(event.get('resourceId'));\n\t\t\t\t\t\t\t\t\toriginalStartDate = event.get('startDate');\n\t\t\t\t\t\t\t\t\toriginalEndDate = event.get('startDate');\n\n\t\t\t\t\t\t\t\t\tif ($(e.toElement).hasClass('ui-resizable-w'))\n\t\t\t\t\t\t\t\t\t\tevent.set('startDate', PJQ.helpers.dateHelpers.parseDateString(event.get('startDate'), false).addDays(days));\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\tevent.set('endDate', PJQ.helpers.dateHelpers.parseDateString(event.get('endDate'), false).addDays(days));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tif ($eventContainer.data('projectId'))\n\t\t\t\t\t\t\t\t\t\tproject = this.projects.get($eventContainer.data('projectId'));\n\n\t\t\t\t\t\t\t\t\tif ($eventContainer.data('resourceId'))\n\t\t\t\t\t\t\t\t\t\tresource = project.getProjectResource($eventContainer.data('resourceId'));\n\n\t\t\t\t\t\t\t\t\tif (resource && resource.startDate) {\n\t\t\t\t\t\t\t\t\t\toriginalStartDate = resource.startDate;\n\t\t\t\t\t\t\t\t\t\toriginalEndDate = resource.endDate;\n\t\t\t\t\t\t\t\t\t\tif ($(e.toElement).hasClass('ui-resizable-w'))\n\t\t\t\t\t\t\t\t\t\t\tresource.startDate = PJQ.helpers.dateHelpers.parseDateString(resource.startDate, false).addDays(days);\n\t\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\t\tresource.endDate = PJQ.helpers.dateHelpers.parseDateString(resource.endDate, false).addDays(days);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse if (project) {\n\t\t\t\t\t\t\t\t\t\toriginalStartDate = project.get('startDate');\n\t\t\t\t\t\t\t\t\t\toriginalEndDate = project.get('endDate');\n\t\t\t\t\t\t\t\t\t\tif ($(e.toElement).hasClass('ui-resizable-w'))\n\t\t\t\t\t\t\t\t\t\t\tproject.set('startDate', PJQ.helpers.dateHelpers.parseDateString(project.get('startDate'), false).addDays(days));\n\t\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\t\tproject.set('endDate', PJQ.helpers.dateHelpers.parseDateString(project.get('endDate'), false).addDays(days));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tnew PJQ.views.resources.EditEventModal({\n\t\t\t\t\t\t\t\t\tproject: project,\n\t\t\t\t\t\t\t\t\tresource: resource,\n\t\t\t\t\t\t\t\t\tevent: event,\n\t\t\t\t\t\t\t\t\tresources: this.resources,\n\t\t\t\t\t\t\t\t\ttitle: 'Confirm Schedule Change',\n\t\t\t\t\t\t\t\t\tonSave: _.bind(function () {\n\t\t\t\t\t\t\t\t\t\tthis.renderView(true);\n\t\t\t\t\t\t\t\t\t}, this),\n\t\t\t\t\t\t\t\t\tonCancel: _.bind(function () {\n\t\t\t\t\t\t\t\t\t\tif (event) {\n\t\t\t\t\t\t\t\t\t\t\tevent.set('startDate', originalStartDate);\n\t\t\t\t\t\t\t\t\t\t\tevent.set('endDate', originalEndDate);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tif (resource && resource.startDate) {\n\t\t\t\t\t\t\t\t\t\t\t\tresource.startDate = originalStartDate;\n\t\t\t\t\t\t\t\t\t\t\t\tresource.endDate = originalEndDate;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse if (project) {\n\t\t\t\t\t\t\t\t\t\t\t\tproject.set('startDate', originalStartDate);\n\t\t\t\t\t\t\t\t\t\t\t\tproject.set('endDate', originalEndDate);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tui.helper.offset(ui.helper.data('originalOffset'));\n\t\t\t\t\t\t\t\t\t\tui.helper.css('width', ui.helper.data('originalWidth'));\n\t\t\t\t\t\t\t\t\t}, this)\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t}, this)\n\t\t\t\t\t\t});\n\n\t\t\t\t\t}, this));\n\n\t\t\t\t}, this));\n\t\t\t}\n\t\t}, this));\n\t},\n\tdateRangeButtonClicked: function (e) {\n\t\tlet target = $(e.currentTarget), dayOffset = 0;\n\t\tif (target.hasClass('last-week'))\n\t\t\tdayOffset = -7;\n\t\telse if (target.hasClass('last-4week'))\n\t\t\tdayOffset = -28;\n\t\telse if (target.hasClass('next-week'))\n\t\t\tdayOffset = 7;\n\t\telse if (target.hasClass('next-4week'))\n\t\t\tdayOffset = 28;\n\n\t\tthis.startDateDatePicker.setValue(this.startDateDatePicker.getValue().addDays(dayOffset));\n\n\t\tthis.renderView();\n\t},\n\tsettings: function () {\n\t\tnew PJQ.views.resources.ResourceAllocationSettingsModal({\n\t\t\tresourceAllocationView: this,\n\t\t\tonSave: _.bind(function () {\n\t\t\t\tthis.renderView(true);\n\t\t\t\tPJQ.notifications.notify.successNotify({\n\t\t\t\t\tmessage: 'Settings updated successfully'\n\t\t\t\t});\n\t\t\t}, this)\n\t\t});\n\t},\n\tviewProject: function (e) {\n\t\tlet projectId = $(e.currentTarget).hasClass('resource-project-name') ? $(e.currentTarget).data('projectId') : $(e.currentTarget).closest('div.resource-schedule').data('projectId');\n\t\tPJQ.app.router.navigate('projects/' + projectId, {\n\t\t\ttrigger: true,\n\t\t\treplace: false\n\t\t});\n\t},\n\taddEvent: function (e) {\n\t\t// select resource\n\t\tlet userTypes = [];\n\t\t_.each(PJQ.app.session.userTypes.models, _.bind(function (userType) {\n\t\t\tif (userType.get('isSuperintendent'))\n\t\t\t\tuserTypes.push(userType.id);\n\t\t}, this));\n\n\t\tnew PJQ.views.contacts.SelectContactsModal({\n\t\t\tisSingleChoice: true,\n\t\t\t//userTypeFilter: userTypes,\n\t\t\tisUserTypeFilterDisabled: true,\n\t\t\tcontext: PJQ.constants.contacts.contexts.PARTICIPANTS,\n\t\t\ttitleOverride: 'Select Resource',\n\t\t\tcontacts: new PJQ.collections.resources.Resources(this.resources.getSuperintendents()),\n\t\t\tonSave: _.bind(function (newContact) {\n\n\t\t\t\tlet event = new PJQ.models.resources.ResourceScheduleEvent();\n\t\t\t\tevent.set('resourceId', newContact.id);\n\n\t\t\t\tnew PJQ.views.resources.EditEventModal({\n\t\t\t\t\tresource: this.resources.get(newContact.id),\n\t\t\t\t\tevent: event,\n\t\t\t\t\tresources: this.resources,\n\t\t\t\t\tonSave: _.bind(function () {\n\t\t\t\t\t\tthis.renderView(true);\n\t\t\t\t\t}, this)\n\t\t\t\t});\n\t\t\t}, this)\n\t\t});\n\n\t},\n\teditEvent: function (e) {\n\t\tlet project = null,\n\t\t\tresource = null,\n\t\t\tevent = null,\n\t\t\t$eventContainer = $(e.currentTarget).closest('div.resource-schedule');\n\n\t\tif ($eventContainer.data('resourceScheduleId')) {\n\t\t\tevent = this.events.get($eventContainer.data('resourceScheduleId'));\n\t\t\tresource = this.resources.get(event.get('resourceId'));\n\t\t}\n\t\telse {\n\n\t\t\tif ($eventContainer.data('projectId'))\n\t\t\t\tproject = this.projects.get($eventContainer.data('projectId'));\n\n\t\t\tif ($eventContainer.data('resourceId'))\n\t\t\t\tresource = project.getProjectResource($eventContainer.data('resourceId'));\n\t\t}\n\n\t\tnew PJQ.views.resources.EditEventModal({\n\t\t\tproject: project,\n\t\t\tresource: resource,\n\t\t\tevent: event,\n\t\t\tresources: this.resources,\n\t\t\tonSave: _.bind(function () {\n\t\t\t\tthis.renderView(true);\n\t\t\t}, this)\n\t\t});\n\t},\n\texportView: function () {\n\t\tlet loader = new PJQ.Loader(this.$('.btn-export'), {\n\t\t\ttype: 'button',\n\t\t\tloadingText: 'Exporting'\n\t\t});\n\t\tnew PJQ.models.reporting.Report({\n\t\t\tname: 'resource-allocation',\n\t\t\tfileName: 'ResourceSchedule'\n\t\t}).generate({\n\t\t\thtml: this.$('.resource-allocation').outerHTML()\n\t\t}, function () {\n\t\t\tloader.remove();\n\t\t});\n\t}\n});\n\n// Modals\nPJQ.views.resources.ResourceAllocationSettingsModal = PJQ.views.BaseModal.extend({\n\tdefaults: {\n\t\ttemplate: new PJQ.templating.Template(PJQ.constants.modules.RESOURCES, 'modal-resource-allocation-settings'),\n\t\twidth: '600px',\n\t\tresourceAllocationView: null\n\t},\n\tevents: {\n\t\t'click button.settings-save': 'onSave'\n\t},\n\tbeforeModalCreated: function () {\n\t},\n\trenderData: function () {\n\t\treturn {\n\t\t\tprojectStatuses: PJQ.app.session.projectStatuses.models\n\t\t};\n\t},\n\tafterRender: function () {\n\t\tthis.groupBySelectPicker = new PJQ.inputs.Selectpicker({\n\t\t\tel: this.$('.group-by-default'),\n\t\t\tisIntChoices: true,\n\t\t\tdefaultValue: this.options.resourceAllocationView.settings.get('defaultGroupBy')\n\t\t});\n\n\t\tlet defaultFilter = {};\n\t\tdefaultFilter[PJQ.constants.resources.filterType.PROJECT_FILTER] = [this.options.resourceAllocationView.settings.get('defaultProjectFilter')];\n\t\tdefaultFilter[PJQ.constants.resources.filterType.PROJECT_STATUS_FILTER] = [];\n\t\tif (_.size(this.options.resourceAllocationView.settings.get('defaultProjectStatuses')) > 0)\n\t\t\tdefaultFilter[PJQ.constants.resources.filterType.PROJECT_STATUS_FILTER].push(...this.options.resourceAllocationView.settings.get('defaultProjectStatuses'));\n\t\telse\n\t\t\tdefaultFilter[PJQ.constants.resources.filterType.PROJECT_STATUS_FILTER].push(PJQ.app.session.projectStatuses.getDefault().get('projectStatusId'));\n\n\t\tthis.filterSelectPicker = new PJQ.inputs.Selectpicker({\n\t\t\tel: this.$('.filter-default'),\n\t\t\tisIntChoices: true,\n\t\t\tisMultiple: true,\n\t\t\tisGrouped: true,\n\t\t\tmustSelectValuePerOptGroup: true,\n\t\t\texclusiveChoices: [PJQ.constants.resources.projectFilter.ALL_PROJECTS, PJQ.constants.resources.projectFilter.MY_PROJECTS],\n\t\t\tdefaultValue: defaultFilter\n\t\t});\n\n\t\tthis.$('.show-all-projects-with-status').prop('checked', this.options.resourceAllocationView.settings.get('isShowAllProjectsWithStatus'));\n\t\tthis.$('.hide-empty-groups').prop('checked', this.options.resourceAllocationView.settings.get('isHideEmptyGroups'));\n\t\tthis.$('.group-upcoming-projects').prop('checked', this.options.resourceAllocationView.settings.get('isGroupUpcomingProjects'));\n\t},\n\tonSave: function () {\n\t\tthis.options.resourceAllocationView.settings.set('defaultGroupBy', this.groupBySelectPicker.getValue());\n\n\t\tlet filterValue = this.filterSelectPicker.getValue();\n\t\tthis.options.resourceAllocationView.settings.set('defaultProjectFilter', filterValue[PJQ.constants.resources.filterType.PROJECT_FILTER][0]);\n\t\tthis.options.resourceAllocationView.settings.set('defaultProjectStatuses', filterValue[PJQ.constants.resources.filterType.PROJECT_STATUS_FILTER]);\n\n\t\tthis.options.resourceAllocationView.settings.set('isShowAllProjectsWithStatus', this.$('.show-all-projects-with-status').prop('checked'));\n\t\tthis.options.resourceAllocationView.settings.set('isHideEmptyGroups', this.$('.hide-empty-groups').prop('checked'));\n\t\tthis.options.resourceAllocationView.settings.set('isGroupUpcomingProjects', this.$('.group-upcoming-projects').prop('checked'));\n\n\t\tthis.options.resourceAllocationView.settings.save(null, {\n\t\t\tsuccess: _.bind(function () {\n\t\t\t\tif (typeof this.options.onSave === 'function')\n\t\t\t\t\tthis.options.onSave();\n\n\t\t\t\tthis.removeModal();\n\t\t\t}, this)\n\t\t});\n\t}\n});\n\nPJQ.views.resources.EditEventModal = PJQ.views.BaseModal.extend({\n\tdefaults: {\n\t\ttemplate: new PJQ.templating.Template(PJQ.constants.modules.RESOURCES, 'modal-edit-event'),\n\t\twidth: '600px',\n\t\tproject: null,\n\t\tresource: null,\n\t\tevent: null,\n\t\tresources: null,\n\t\tonSave: _.noop(),\n\t\tonCancel: _.noop()\n\t},\n\tevents: {\n\t\t'click button.event-save': 'onSave',\n\t\t'click button.event-cancel': 'onCancel',\n\t\t'click .project-name': 'viewProject',\n\t\t'click .resource-schedule-override': 'scheduleOverride'\n\t},\n\tbeforeModalCreated: function () {\n\t},\n\trenderData: function () {\n\t\tlet resourceId = this.options.currentResourceId !== 0 ? this.options.currentResourceId : (this.options.resource ? this.options.resource.id : null);\n\t\treturn {\n\t\t\tproject: this.options.project,\n\t\t\tprojectResource: this.options.resource,\n\t\t\tscheduleEvent: this.options.event,\n\t\t\tresource: resourceId ? this.options.resources.get(resourceId) : null\n\t\t};\n\t},\n\tafterRender: function () {\n\t\tif (this.options.title)\n\t\t\tthis.$('div.title').text(this.options.title);\n\t\telse if (this.options.event && this.options.event.isNew())\n\t\t\tthis.$('div.title').text('Add Schedule');\n\n\t\tif (this.options.project) {\n\t\t\tthis.projectStartDatePicker = new PJQ.inputs.Datepicker({\n\t\t\t\tel: this.$('.project-start-date'),\n\t\t\t\tdatepickerOptions: {\n\t\t\t\t\tformat: PJQ.helpers.dateHelpers.dateFormats.datePicker.DATE,\n\t\t\t\t\tdefaultDate: PJQ.helpers.dateHelpers.parseDateString(this.options.project.get('startDate'), false)\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.projectEndDatePicker = new PJQ.inputs.Datepicker({\n\t\t\t\tel: this.$('.project-end-date'),\n\t\t\t\tdatepickerOptions: {\n\t\t\t\t\tformat: PJQ.helpers.dateHelpers.dateFormats.datePicker.DATE,\n\t\t\t\t\tdefaultDate: PJQ.helpers.dateHelpers.parseDateString(this.options.project.get('endDate'), false)\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet defaultStartDate = null;\n\t\tif (this.options.project && this.options.resource) {\n\t\t\tthis.$('.resource-start-date').prop('disabled', !this.options.resource.startDate);\n\t\t\tdefaultStartDate = this.options.resource.startDate ? PJQ.helpers.dateHelpers.parseDateString(this.options.resource.startDate, false) : PJQ.helpers.dateHelpers.parseDateString(this.options.project.get('startDate'), false);\n\t\t}\n\t\telse if (this.options.event) {\n\t\t\tdefaultStartDate = PJQ.helpers.dateHelpers.parseDateString(this.options.event.get('startDate'), false);\n\t\t}\n\n\t\tthis.resourceStartDatePicker = new PJQ.inputs.Datepicker({\n\t\t\tel: this.$('.resource-start-date'),\n\t\t\tdatepickerOptions: {\n\t\t\t\tformat: PJQ.helpers.dateHelpers.dateFormats.datePicker.DATE,\n\t\t\t\tdefaultDate: defaultStartDate\n\t\t\t}\n\t\t});\n\n\t\tlet defaultEndDate = null;\n\t\tif (this.options.project && this.options.resource) {\n\t\t\tthis.$('.resource-end-date').prop('disabled', !this.options.resource.endDate);\n\t\t\tdefaultEndDate = this.options.resource.endDate ? PJQ.helpers.dateHelpers.parseDateString(this.options.resource.endDate, false) : PJQ.helpers.dateHelpers.parseDateString(this.options.project.get('endDate'), false);\n\t\t}\n\t\telse if (this.options.event) {\n\t\t\tdefaultEndDate = PJQ.helpers.dateHelpers.parseDateString(this.options.event.get('endDate'), false);\n\t\t}\n\n\t\tthis.resourceEndDatePicker = new PJQ.inputs.Datepicker({\n\t\t\tel: this.$('.resource-end-date'),\n\t\t\tdatepickerOptions: {\n\t\t\t\tformat: PJQ.helpers.dateHelpers.dateFormats.datePicker.DATE,\n\t\t\t\tdefaultDate: defaultEndDate\n\t\t\t}\n\t\t});\n\n\t\tif (this.options.event) {\n\t\t\tthis.$('.event-description').val(this.options.event.get('eventText'));\n\t\t}\n\n\t},\n\tonCancel: function () {\n\t\tif (typeof this.options.onCancel === 'function')\n\t\t\tthis.options.onCancel();\n\n\t\tthis.removeModal();\n\t},\n\tonSave: function () {\n\t\tlet hasErrors = false, errors = [];\n\t\tif (this.options.project) {\n\t\t\tPJQ.helpers.inputHelpers.setInputError(this.projectStartDatePicker.$el, this.projectStartDatePicker.getValue());\n\t\t\tPJQ.helpers.inputHelpers.setInputError(this.projectEndDatePicker.$el, this.projectEndDatePicker.getValue());\n\n\t\t\tif (!this.projectStartDatePicker.getValue() || !this.projectEndDatePicker.getValue()) {\n\t\t\t\thasErrors = true;\n\t\t\t\terrors.push('Project Start and End Date are required.');\n\t\t\t}\n\t\t\telse if (PJQ.helpers.dateHelpers.parseDateString(this.projectStartDatePicker.getValue(), false) > PJQ.helpers.dateHelpers.parseDateString(this.projectEndDatePicker.getValue(), false)) {\n\t\t\t\thasErrors = true;\n\t\t\t\terrors.push('Project Start Date cannot be after Project End Date.');\n\t\t\t\tPJQ.helpers.inputHelpers.setInputError(this.projectStartDatePicker.$el, false);\n\t\t\t\tPJQ.helpers.inputHelpers.setInputError(this.projectEndDatePicker.$el, false);\n\t\t\t}\n\t\t}\n\n\t\tif (this.options.resource || this.options.event) {\n\t\t\tPJQ.helpers.inputHelpers.setInputError(this.resourceStartDatePicker.$el, true);\n\t\t\tPJQ.helpers.inputHelpers.setInputError(this.resourceEndDatePicker.$el, true);\n\t\t\tif (!this.$('.resource-start-date').prop('disabled')) {\n\t\t\t\tPJQ.helpers.inputHelpers.setInputError(this.resourceStartDatePicker.$el, this.resourceStartDatePicker.getValue());\n\t\t\t\tPJQ.helpers.inputHelpers.setInputError(this.resourceEndDatePicker.$el, this.resourceEndDatePicker.getValue());\n\t\t\t\tif (!this.resourceStartDatePicker.getValue() || !this.resourceEndDatePicker.getValue()) {\n\t\t\t\t\thasErrors = true;\n\t\t\t\t\terrors.push('Resource Start and End Date are required.');\n\t\t\t\t}\n\t\t\t\telse if (PJQ.helpers.dateHelpers.parseDateString(this.resourceStartDatePicker.getValue(), false) > PJQ.helpers.dateHelpers.parseDateString(this.resourceEndDatePicker.getValue(), false)) {\n\t\t\t\t\thasErrors = true;\n\t\t\t\t\terrors.push('Resource Start Date cannot be after Resource End Date.');\n\t\t\t\t\tPJQ.helpers.inputHelpers.setInputError(this.resourceStartDatePicker.$el, false);\n\t\t\t\t\tPJQ.helpers.inputHelpers.setInputError(this.resourceEndDatePicker.$el, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tlet $description = this.$('.event-description');\n\t\tif (this.options.event) {\n\t\t\tPJQ.helpers.inputHelpers.setInputError($description, true);\n\t\t\tif (_.size($description.val()) === 0) {\n\t\t\t\tPJQ.helpers.inputHelpers.setInputError($description, false);\n\t\t\t\thasErrors = true;\n\t\t\t\terrors.push('Description is required.');\n\t\t\t}\n\t\t}\n\n\t\tif (hasErrors) {\n\t\t\tPJQ.notifications.notify.errorNotify({\n\t\t\t\tmessage: errors.join(' ')\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.options.project) {\n\t\t\tthis.options.project.set('startDate', this.projectStartDatePicker.getValue());\n\t\t\tthis.options.project.set('endDate', this.projectEndDatePicker.getValue());\n\n\t\t\tif (this.options.resource) {\n\t\t\t\tif (!this.$('.resource-start-date').prop('disabled')) {\n\t\t\t\t\tthis.options.resource.startDate = this.resourceStartDatePicker.getValue();\n\t\t\t\t\tthis.options.resource.endDate = this.resourceEndDatePicker.getValue();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.options.resource.startDate = null;\n\t\t\t\t\tthis.options.resource.endDate = null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\telse if (this.options.event) {\n\t\t\tthis.options.event.set('startDate', this.resourceStartDatePicker.getValue());\n\t\t\tthis.options.event.set('endDate', this.resourceEndDatePicker.getValue());\n\t\t\tthis.options.event.set('eventText', $description.val());\n\t\t}\n\n\t\tlet callback = _.bind(function () {\n\t\t\tif (typeof this.options.onSave === 'function')\n\t\t\t\tthis.options.onSave();\n\n\t\t\tPJQ.notifications.notify.successNotify({\n\t\t\t\tmessage: 'Schedule saved successfully'\n\t\t\t});\n\t\t\tthis.removeModal();\n\t\t}, this);\n\n\t\tif (this.options.project) {\n\t\t\tnew PJQ.ajax.Request({\n\t\t\t\tendpoint: PJQ.helpers.urlHelpers.generateEndpoint([\n\t\t\t\t\t{\n\t\t\t\t\t\tendpoint: 'resources'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tendpoint: 'schedule'\n\t\t\t\t\t},\n\t\t\t\t]),\n\t\t\t\tdata: {\n\t\t\t\t\tprojectId: this.options.project ? this.options.project.get('projectId') : null,\n\t\t\t\t\tprojectStartDate: this.options.project ? this.options.project.get('startDate') : null,\n\t\t\t\t\tprojectEndDate: this.options.project ? this.options.project.get('endDate') : null,\n\t\t\t\t\tresourceId: this.options.resource ? this.options.resource.id : this.options.originalResourceId,\n\t\t\t\t\tresourceStartDate: this.options.resource ? this.options.resource.startDate : null,\n\t\t\t\t\tresourceEndDate: this.options.resource ? this.options.resource.endDate : null,\n\t\t\t\t\tcurrentResourceId: this.options.currentResourceId\n\t\t\t\t}\n\t\t\t}).post().done(_.bind(function (data) {\n\t\t\t\tcallback();\n\t\t\t}, this)).fail(_.bind(function (xhr, err, result) {\n\t\t\t\tPJQ.notifications.notify.errorNotify({\n\t\t\t\t\tmessage: 'Something went wrong!'\n\t\t\t\t});\n\t\t\t}, this));\n\t\t}\n\t\telse if (this.options.event) {\n\t\t\tthis.options.event.save(null, {\n\t\t\t\tsuccess: _.bind(callback, this)\n\t\t\t});\n\t\t}\n\t},\n\tviewProject: function (e) {\n\t\tthis.removeModal();\n\t\tPJQ.app.router.navigate('projects/' + $(e.currentTarget).data('projectId'), {\n\t\t\ttrigger: true,\n\t\t\treplace: false\n\t\t});\n\t},\n\tscheduleOverride: function (e) {\n\t\tlet button = $(e.currentTarget);\n\t\tif (button.hasClass('override')) {\n\t\t\tbutton.removeClass('override').removeClass('btn-light').addClass('btn-success').text('Override');\n\t\t\tthis.$('.resource-start-date, .resource-end-date').prop('disabled', true);\n\t\t\tthis.resourceStartDatePicker.setValue(PJQ.helpers.dateHelpers.parseDateString(this.options.project.get('startDate'), false));\n\t\t\tthis.resourceEndDatePicker.setValue(PJQ.helpers.dateHelpers.parseDateString(this.options.project.get('endDate'), false));\n\t\t}\n\t\telse {\n\t\t\tbutton.addClass('override').addClass('btn-light').removeClass('btn-success').text('Revert');\n\t\t\tthis.$('.resource-start-date, .resource-end-date').prop('disabled', false);\n\t\t\tthis.resourceStartDatePicker.setValue(null);\n\t\t\tthis.resourceEndDatePicker.setValue(null);\n\t\t}\n\t}\n});\n"]}