2121import org .labkey .api .action .ApiResponse ;
2222import org .labkey .api .action .ApiSimpleResponse ;
2323import org .labkey .api .action .ApiUsageException ;
24+ import org .labkey .api .action .SimpleApiJsonForm ;
2425import org .labkey .api .action .SimpleViewAction ;
2526import org .labkey .api .action .SpringActionController ;
27+ import org .labkey .api .data .CompareType ;
28+ import org .labkey .api .data .SimpleFilter ;
2629import org .labkey .api .query .BatchValidationException ;
30+ import org .labkey .api .query .FieldKey ;
2731import org .labkey .api .security .RequiresPermission ;
2832import org .labkey .api .security .permissions .ReadPermission ;
33+ import org .labkey .api .snd .SNDService ;
34+ import org .labkey .api .snprc_scheduler .SNPRC_schedulerService ;
2935import org .labkey .api .view .ActionURL ;
3036import org .labkey .api .view .JspView ;
3137import org .labkey .api .view .NavTree ;
3238import org .labkey .snprc_scheduler .domains .Timeline ;
33- import org .labkey .snprc_scheduler .services .SNPRC_schedulerService ;
3439import org .springframework .validation .BindException ;
3540import org .springframework .web .servlet .ModelAndView ;
3641
@@ -77,7 +82,7 @@ public ApiResponse execute(Timeline timeline, BindException errors)
7782 {
7883 Map <String , Object > props = new HashMap <>();
7984
80- if (timeline .getProjectId () != null && timeline .getRevisionNum () != null )
85+ if (timeline .getProjectId () != null && timeline .getRevisionNum () != null )
8186 {
8287 try
8388 {
@@ -93,10 +98,41 @@ public ApiResponse execute(Timeline timeline, BindException errors)
9398 props .put ("message" , e .getMessage ());
9499 }
95100 }
96- else {
101+ else
102+ {
97103 props .put ("success" , false );
98104 props .put ("message" , "ProjectId and RevisionNum are required" );
99105 }
106+ return new ApiSimpleResponse (props );
107+ }
108+ }
109+ // http://deepthought:8080/labkey/snprc_scheduler/snprc/getActiveProjects.view?
110+ @ RequiresPermission (ReadPermission .class )
111+ public class getActiveProjects extends ApiAction <SimpleApiJsonForm >
112+ {
113+ @ Override
114+ public ApiResponse execute (SimpleApiJsonForm simpleApiJsonForm , BindException errors )
115+ {
116+ Map <String , Object > props = new HashMap <>();
117+
118+ // add filters to remove colony maintenance, behavior, clinical, and legacy projects
119+ SimpleFilter [] filters = new SimpleFilter [2 ];
120+ filters [0 ] = new SimpleFilter (FieldKey .fromParts ("ReferenceId" ), 4000 , CompareType .LT );
121+ filters [1 ] = new SimpleFilter (FieldKey .fromParts ("ReferenceId" ), 0 , CompareType .GT );
122+
123+ List <JSONObject > projects = SNDService .get ().getActiveProjects (getContainer (), getUser (), filters );
124+ if (projects .size () > 0 )
125+ {
126+ props .put ("success" , true );
127+ props .put ("rows" , projects );
128+ }
129+ else
130+ {
131+ props .put ("success" , false );
132+ props .put ("message" , "No Active Projects" );
133+ }
134+
135+
100136 return new ApiSimpleResponse (props );
101137 }
102138 }
0 commit comments