forked from community/device-mgt-core
Merge branch 'master' of https://github.com/wso2/carbon-device-mgt
commit
2a55c50ad1
@ -1,20 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* Unless required by applicable law or agreed to in writing,
|
||||||
*
|
* software distributed under the License is distributed on an
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* KIND, either express or implied. See the License for the
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* specific language governing permissions and limitations
|
||||||
* See the License for the specific language governing permissions and
|
* under the License.
|
||||||
* limitations under the License.
|
|
||||||
*/
|
*/
|
||||||
package org.wso2.carbon.mdm.api.util;
|
|
||||||
|
package org.wso2.carbon.device.mgt.jaxrs.api.util;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class holds all the constants used for IOS and Android.
|
* This class holds all the constants used for IOS and Android.
|
@ -1,23 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
|
||||||
* in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* Unless required by applicable law or agreed to in writing,
|
||||||
*
|
* software distributed under the License is distributed on an
|
||||||
* Unless required by applicable law or agreed to in writing,
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
* software distributed under the License is distributed on an
|
* KIND, either express or implied. See the License for the
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
* specific language governing permissions and limitations
|
||||||
* KIND, either express or implied. See the License for the
|
* under the License.
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.wso2.carbon.mdm.beans;
|
package org.wso2.carbon.device.mgt.jaxrs.beans;
|
||||||
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
import java.util.List;
|
import java.util.List;
|
@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
*
|
*
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
* in compliance with the License.
|
* in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing,
|
* Unless required by applicable law or agreed to in writing,
|
||||||
* software distributed under the License is distributed on an
|
* software distributed under the License is distributed on an
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
* either express or implied. See the License for the
|
* KIND, either express or implied. See the License for the
|
||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.wso2.carbon.mdm.beans;
|
package org.wso2.carbon.device.mgt.jaxrs.beans;
|
||||||
|
|
||||||
public class PriorityUpdatedPolicyWrapper {
|
public class PriorityUpdatedPolicyWrapper {
|
||||||
|
|
@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015 WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
*
|
*
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
* in compliance with the License.
|
* in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing,
|
* Unless required by applicable law or agreed to in writing,
|
||||||
* software distributed under the License is distributed on an
|
* software distributed under the License is distributed on an
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
* KIND, either express or implied. See the License for the
|
* KIND, either express or implied. See the License for the
|
||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.wso2.carbon.mdm.beans;
|
package org.wso2.carbon.device.mgt.jaxrs.beans;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,26 +1,25 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015 WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
*
|
*
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
* in compliance with the License.
|
* in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing,
|
* Unless required by applicable law or agreed to in writing,
|
||||||
* software distributed under the License is distributed on an
|
* software distributed under the License is distributed on an
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
* KIND, either express or implied. See the License for the
|
* KIND, either express or implied. See the License for the
|
||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.wso2.carbon.mdm.beans;
|
package org.wso2.carbon.device.mgt.jaxrs.beans;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
|
|
||||||
public class ProfileFeature implements Serializable {
|
public class ProfileFeature implements Serializable {
|
||||||
|
|
@ -1,24 +1,25 @@
|
|||||||
package org.wso2.carbon.mdm.beans;
|
|
||||||
|
|
||||||
import org.wso2.carbon.user.mgt.common.UIPermissionNode;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
*
|
*
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
* in compliance with the License.
|
* in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing,
|
* Unless required by applicable law or agreed to in writing,
|
||||||
* software distributed under the License is distributed on an
|
* software distributed under the License is distributed on an
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
* either express or implied. See the License for the
|
* KIND, either express or implied. See the License for the
|
||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
package org.wso2.carbon.device.mgt.jaxrs.beans;
|
||||||
|
|
||||||
|
import org.wso2.carbon.user.mgt.common.UIPermissionNode;
|
||||||
|
|
||||||
public class RoleWrapper {
|
public class RoleWrapper {
|
||||||
private String roleName;
|
private String roleName;
|
||||||
private String[] permissions;
|
private String[] permissions;
|
@ -1,22 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
*
|
*
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
* in compliance with the License.
|
* in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing,
|
* Unless required by applicable law or agreed to in writing,
|
||||||
* software distributed under the License is distributed on an
|
* software distributed under the License is distributed on an
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
* either express or implied. See the License for the
|
* KIND, either express or implied. See the License for the
|
||||||
* specific language governing permissions and limitations
|
* specific language governing permissions and limitations
|
||||||
* under the License.
|
* under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.wso2.carbon.mdm.beans;
|
package org.wso2.carbon.device.mgt.jaxrs.beans;
|
||||||
|
|
||||||
public class UserCredentialWrapper {
|
public class UserCredentialWrapper {
|
||||||
|
|
@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.wso2.carbon.device.mgt.jaxrs.beans.android;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class represents the Appstore Application information.
|
||||||
|
*/
|
||||||
|
public class AppStoreApplication implements Serializable {
|
||||||
|
|
||||||
|
private String type;
|
||||||
|
private String appIdentifier;
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAppIdentifier() {
|
||||||
|
return appIdentifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppIdentifier(String appIdentifier) {
|
||||||
|
this.appIdentifier = appIdentifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toJSON() throws MDMAPIException {
|
||||||
|
Gson gson = new Gson();
|
||||||
|
return gson.toJson(this);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.wso2.carbon.device.mgt.jaxrs.beans.android;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class represents the Enterprise Application information.
|
||||||
|
*/
|
||||||
|
public class EnterpriseApplication implements Serializable {
|
||||||
|
|
||||||
|
private String type;
|
||||||
|
private String url;
|
||||||
|
private String appIdentifier;
|
||||||
|
|
||||||
|
public String getAppIdentifier() {
|
||||||
|
return appIdentifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAppIdentifier(String appIdentifier) {
|
||||||
|
this.appIdentifier = appIdentifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUrl() {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrl(String url) {
|
||||||
|
this.url = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toJSON() throws MDMAPIException {
|
||||||
|
Gson gson = new Gson();
|
||||||
|
return gson.toJson(this);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.wso2.carbon.device.mgt.jaxrs.beans.android;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class represents the Web Application information.
|
||||||
|
*/
|
||||||
|
public class WebApplication implements Serializable {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private String url;
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUrl() {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrl(String url) {
|
||||||
|
this.url = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toJSON() throws MDMAPIException {
|
||||||
|
Gson gson = new Gson();
|
||||||
|
return gson.toJson(this);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.wso2.carbon.device.mgt.jaxrs.beans.ios;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class RemoveApplication implements Serializable {
|
||||||
|
|
||||||
|
private String bundleId;
|
||||||
|
|
||||||
|
public String getBundleId() {
|
||||||
|
return bundleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBundleId(String bundleId) {
|
||||||
|
this.bundleId = bundleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toJSON() throws MDMAPIException {
|
||||||
|
Gson gson = new Gson();
|
||||||
|
return gson.toJson(this);
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,25 @@
|
|||||||
package org.wso2.carbon.mdm.beans.ios;
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.wso2.carbon.device.mgt.jaxrs.beans.ios;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import org.wso2.carbon.mdm.api.common.MDMAPIException;
|
import org.wso2.carbon.device.mgt.jaxrs.api.common.MDMAPIException;
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
public class WebClip {
|
public class WebClip {
|
||||||
|
|
@ -1,23 +1,22 @@
|
|||||||
/*
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
|
||||||
* in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* Unless required by applicable law or agreed to in writing,
|
||||||
*
|
* software distributed under the License is distributed on an
|
||||||
* Unless required by applicable law or agreed to in writing,
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
* software distributed under the License is distributed on an
|
* KIND, either express or implied. See the License for the
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
* specific language governing permissions and limitations
|
||||||
* KIND, either express or implied. See the License for the
|
* under the License.
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.wso2.mdm.common;
|
package org.wso2.carbon.device.mgt.jaxrs.common;
|
||||||
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
|
|
@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.wso2.carbon.mdm.beans.android;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import org.wso2.carbon.mdm.api.common.MDMAPIException;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class represents the Appstore Application information.
|
|
||||||
*/
|
|
||||||
public class AppStoreApplication implements Serializable {
|
|
||||||
|
|
||||||
private String type;
|
|
||||||
private String appIdentifier;
|
|
||||||
|
|
||||||
public String getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setType(String type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAppIdentifier() {
|
|
||||||
return appIdentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAppIdentifier(String appIdentifier) {
|
|
||||||
this.appIdentifier = appIdentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toJSON() throws MDMAPIException {
|
|
||||||
Gson gson = new Gson();
|
|
||||||
return gson.toJson(this);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,61 +0,0 @@
|
|||||||
/*
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.wso2.carbon.mdm.beans.android;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import org.wso2.carbon.mdm.api.common.MDMAPIException;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class represents the Enterprise Application information.
|
|
||||||
*/
|
|
||||||
public class EnterpriseApplication implements Serializable {
|
|
||||||
|
|
||||||
private String type;
|
|
||||||
private String url;
|
|
||||||
private String appIdentifier;
|
|
||||||
|
|
||||||
public String getAppIdentifier() {
|
|
||||||
return appIdentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAppIdentifier(String appIdentifier) {
|
|
||||||
this.appIdentifier = appIdentifier;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setType(String type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUrl() {
|
|
||||||
return url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUrl(String url) {
|
|
||||||
this.url = url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toJSON() throws MDMAPIException {
|
|
||||||
Gson gson = new Gson();
|
|
||||||
return gson.toJson(this);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,61 +0,0 @@
|
|||||||
/*
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.wso2.carbon.mdm.beans.android;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import org.wso2.carbon.mdm.api.common.MDMAPIException;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This class represents the Web Application information.
|
|
||||||
*/
|
|
||||||
public class WebApplication implements Serializable {
|
|
||||||
|
|
||||||
private String name;
|
|
||||||
private String url;
|
|
||||||
private String type;
|
|
||||||
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUrl() {
|
|
||||||
return url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUrl(String url) {
|
|
||||||
this.url = url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getType() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setType(String type) {
|
|
||||||
this.type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toJSON() throws MDMAPIException {
|
|
||||||
Gson gson = new Gson();
|
|
||||||
return gson.toJson(this);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
package org.wso2.carbon.mdm.beans.ios;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import org.wso2.carbon.mdm.api.common.MDMAPIException;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
public class RemoveApplication implements Serializable {
|
|
||||||
|
|
||||||
private String bundleId;
|
|
||||||
|
|
||||||
public String getBundleId() {
|
|
||||||
return bundleId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBundleId(String bundleId) {
|
|
||||||
this.bundleId = bundleId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String toJSON() throws MDMAPIException {
|
|
||||||
Gson gson = new Gson();
|
|
||||||
return gson.toJson(this);
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,39 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.wso2.carbon.device.mgt.common;
|
||||||
|
|
||||||
|
public class ProvisioningConfig {
|
||||||
|
|
||||||
|
private String providerTenantDomain;
|
||||||
|
private boolean isSharedWithAllTenants;
|
||||||
|
|
||||||
|
public ProvisioningConfig(String providerTenantDomain, boolean sharedWithAllTenants) {
|
||||||
|
this.providerTenantDomain = providerTenantDomain;
|
||||||
|
isSharedWithAllTenants = sharedWithAllTenants;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getProviderTenantDomain() {
|
||||||
|
return providerTenantDomain;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSharedWithAllTenants() {
|
||||||
|
return isSharedWithAllTenants;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
package org.wso2.carbon.device.mgt.common.push.notification;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class PushNotificationConfig {
|
||||||
|
|
||||||
|
private String type;
|
||||||
|
private Set<String> properties;
|
||||||
|
|
||||||
|
public PushNotificationConfig(String type, Set<String> properties) {
|
||||||
|
this.type = type;
|
||||||
|
this.properties = properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<String> getProperties() {
|
||||||
|
return properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,133 +0,0 @@
|
|||||||
<%
|
|
||||||
/*
|
|
||||||
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
|
||||||
*
|
|
||||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
|
||||||
* Version 2.0 (the "License"); you may not use this file except
|
|
||||||
* in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing,
|
|
||||||
* software distributed under the License is distributed on an
|
|
||||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
|
|
||||||
* either express or implied. See the License for the
|
|
||||||
* specific language governing permissions and limitations
|
|
||||||
* under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var uri = request.getRequestURI();
|
|
||||||
var uriMatcher = new URIMatcher(String(uri));
|
|
||||||
|
|
||||||
var log = new Log("apis/group-api.jag");
|
|
||||||
|
|
||||||
var constants = require("/app/modules/constants.js");
|
|
||||||
|
|
||||||
var utility = require("/app/modules/utility.js").utility;
|
|
||||||
var devicemgtProps = require('/app/conf/devicemgt-props.js').config();
|
|
||||||
var responseProcessor = require('utils').response;
|
|
||||||
|
|
||||||
var deviceCloudService = devicemgtProps["httpsURL"] + "/common/group_manager";
|
|
||||||
|
|
||||||
var user = session.get(constants.USER_SESSION_KEY);
|
|
||||||
|
|
||||||
var groupModule = require("/app/modules/group.js").groupModule;
|
|
||||||
|
|
||||||
var result, endPoint, data, groupId, group, role;
|
|
||||||
|
|
||||||
if (!user) {
|
|
||||||
response = responseProcessor.buildErrorResponse(response, 401, "Unauthorized");
|
|
||||||
} else {
|
|
||||||
|
|
||||||
if (uriMatcher.match("/{context}/api/group/add")) {
|
|
||||||
group = request.getContent();
|
|
||||||
result = groupModule.addGroup(group);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}/update")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
group = request.getContent();
|
|
||||||
result = groupModule.updateGroup(groupId, group);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}/remove")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
result = groupModule.removeGroup(groupId);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
result = groupModule.getGroup(groupId);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/name/{groupName}")) {
|
|
||||||
var groupName = uriMatcher.elements().groupName;
|
|
||||||
result = groupModule.findGroups(groupName);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/all")) {
|
|
||||||
result = groupModule.getGroups();
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/all/count")) {
|
|
||||||
result = groupModule.getGroupCount();
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}/share")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
var shareUser = request.getContent()["shareUser"];
|
|
||||||
role = request.getContent()["role"];
|
|
||||||
result = groupModule.shareGroup(groupId, shareUser, role);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}/unshare")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
var unShareUser = request.getContent()["unShareUser"];
|
|
||||||
role = request.getContent()["role"];
|
|
||||||
result = groupModule.unshareGroup(groupId, unShareUser, role);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}/role/add")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
var permissions = request.getContent()["permissions"];
|
|
||||||
role = request.getContent()["role"];
|
|
||||||
result = groupModule.addRole(groupId, role, permissions);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}/role/delete")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
role = request.getContent()["role"];
|
|
||||||
endPoint = deviceCloudService + "/group/id/" + groupId + "/role/" + role;
|
|
||||||
result = groupModule.deleteRole(groupId, role);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}/role/all")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
result = groupModule.getGroupRoles(groupId);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}/{userId}/role/all")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
var userId = uriMatcher.elements().userId;
|
|
||||||
result = groupModule.getUserRoles(groupId, userId);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}/{userId}/rolemapping")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
userId = uriMatcher.elements().userId;
|
|
||||||
result = groupModule.getRoleMapping(groupId, userId);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}/{userId}/roleupdate")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
userId = uriMatcher.elements().userId;
|
|
||||||
var roleMap = request.getContent();
|
|
||||||
result = groupModule.setRoleMapping(groupId, userId, roleMap);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}/user/all")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
result = groupModule.getUsers(groupId);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}/device/all")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
result = groupModule.getDevices(groupId);
|
|
||||||
|
|
||||||
} else if (uriMatcher.match("/{context}/api/group/id/{groupId}/assign")) {
|
|
||||||
groupId = uriMatcher.elements().groupId;
|
|
||||||
var deviceId = request.getContent()["deviceId"];
|
|
||||||
var deviceType = request.getContent()["deviceType"];
|
|
||||||
result = groupModule.assignDevice(groupId, deviceId, deviceType);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// returning the result.
|
|
||||||
if (result) {
|
|
||||||
print(result);
|
|
||||||
}
|
|
||||||
%>
|
|
@ -0,0 +1,89 @@
|
|||||||
|
{{#zone "topCss"}}
|
||||||
|
{{css "css/analytics.css"}}
|
||||||
|
{{css "css/daterangepicker.css"}}
|
||||||
|
{{css "css/graph.css"}}
|
||||||
|
{{/zone}}
|
||||||
|
|
||||||
|
{{unit "cdmf.unit.ui.title" pageTitle="Analytics"}}
|
||||||
|
{{unit "cdmf.unit.ui.content.title" pageHeader=title}}
|
||||||
|
{{unit "cdmf.unit.lib.service-invoker-utility"}}
|
||||||
|
{{unit "cdmf.unit.lib.handlebars"}}
|
||||||
|
|
||||||
|
{{#zone "breadcrumbs"}}
|
||||||
|
<li>
|
||||||
|
<a href="{{@app.context}}/">
|
||||||
|
<i class="icon fw fw-home"></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{#if groupName}}
|
||||||
|
<li>
|
||||||
|
<a href="{{@app.context}}/groups">
|
||||||
|
Groups
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{@app.context}}/devices?groupId={{groupId}}&groupName={{groupName}}">
|
||||||
|
{{groupName}}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{else}}
|
||||||
|
<li>
|
||||||
|
<a href="{{@app.context}}/devices">
|
||||||
|
Devices
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{@app.context}}/device/{{deviceType}}?id={{deviceId}}">
|
||||||
|
{{deviceName}}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{/if}}
|
||||||
|
<li>
|
||||||
|
<a href="#">
|
||||||
|
Analytics
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{{/zone}}
|
||||||
|
|
||||||
|
{{#zone "content"}}
|
||||||
|
<div class="container container-bg white-bg">
|
||||||
|
<div class=" margin-top-double">
|
||||||
|
<div class="row padding-top-double padding-bottom-double margin-bottom-double">
|
||||||
|
<div class="col-lg-3 margin-top-double">
|
||||||
|
<h1 class="grey ">{{deviceType}} Analytics</h1>
|
||||||
|
</div>
|
||||||
|
<div id="rangeSliderWrapper" class="pull-right col-lg-9">
|
||||||
|
<div id="dateRangePickerContainer">
|
||||||
|
<div class="btn-group" role="group">
|
||||||
|
<button id="hour-btn" type="button"
|
||||||
|
class="btn btn-default date-range">Hour
|
||||||
|
</button>
|
||||||
|
<button id="h12-btn" type="button"
|
||||||
|
class="btn btn-default date-range">12 Hours
|
||||||
|
</button>
|
||||||
|
<button id="h24-btn" type="button"
|
||||||
|
class="btn btn-default date-range">24 Hours
|
||||||
|
</button>
|
||||||
|
<button id="h48-btn" type="button"
|
||||||
|
class="btn btn-default date-range">48 Hours
|
||||||
|
</button>
|
||||||
|
<button id="date-range" type="button"
|
||||||
|
class="btn btn-default date-range last-child"
|
||||||
|
data-toggle="popup"
|
||||||
|
title="Click to set custom date range"></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="clear"></div>
|
||||||
|
<div id="div-chart">
|
||||||
|
{{unit deviceAnalyticsViewUnitName}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/zone}}
|
||||||
|
{{#zone "bottomJs"}}
|
||||||
|
{{js "js/jquery.daterangepicker.js"}}
|
||||||
|
{{js "js/graph_util.js"}}
|
||||||
|
{{/zone}}
|
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
function onRequest(context) {
|
||||||
|
context.handlebars.registerHelper('equal', function (lvalue, rvalue, options) {
|
||||||
|
if (arguments.length < 3)
|
||||||
|
throw new Error("Handlebars Helper equal needs 2 parameters");
|
||||||
|
if (lvalue != rvalue) {
|
||||||
|
return options.inverse(this);
|
||||||
|
} else {
|
||||||
|
return options.fn(this);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var deviceType = context.uriParams.deviceType;
|
||||||
|
return {
|
||||||
|
"deviceAnalyticsViewUnitName": "cdmf.unit.device.type." + deviceType + ".analytics-view",
|
||||||
|
"deviceType": deviceType
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"version": "1.0.0",
|
||||||
|
"uri": "/device/analytics/{deviceType}",
|
||||||
|
"layout": "cdmf.layout.default"
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#rangeSliderWrapper {
|
||||||
|
margin-top: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#chart {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
#legend {
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#legend_container {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
bottom: 26px;
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#chart_container {
|
||||||
|
float: left;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ast-container {
|
||||||
|
padding-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shrink {
|
||||||
|
margin-right: 20px;
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
.date-range{
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dateRangePickerContainer button.active{
|
||||||
|
background-color: #e6e6e6 !important;
|
||||||
|
}
|
@ -0,0 +1,348 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.date-picker {
|
||||||
|
width: 170px;
|
||||||
|
height: 25px;
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
line-height: 25px;
|
||||||
|
padding-left: 10px;
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: Arial;
|
||||||
|
font-weight: bold;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #303030;
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 1;
|
||||||
|
border: 1px solid #bfbfbf;
|
||||||
|
background-color: #efefef;
|
||||||
|
width: 448px;
|
||||||
|
padding: 5px 12px;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 20px;
|
||||||
|
color: #aaa;
|
||||||
|
font-family: Arial;
|
||||||
|
box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper.single-date {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper.no-shortcuts {
|
||||||
|
padding-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .footer {
|
||||||
|
display: none;
|
||||||
|
font-size: 11px;
|
||||||
|
padding-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper b {
|
||||||
|
color: #666;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper a {
|
||||||
|
color: rgb(107, 180, 214);
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .month-wrapper {
|
||||||
|
border: 1px solid #bfbfbf;
|
||||||
|
border-radius: 3px;
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 5px;
|
||||||
|
cursor: default;
|
||||||
|
position: relative;
|
||||||
|
_overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .month-wrapper table {
|
||||||
|
width: 190px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .month-wrapper table.month2 {
|
||||||
|
width: 190px;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .month-wrapper table th,
|
||||||
|
.date-picker-wrapper .month-wrapper table td {
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 14px;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .month-wrapper table .day {
|
||||||
|
height: 19px;
|
||||||
|
line-height: 19px;
|
||||||
|
font-size: 12px;
|
||||||
|
margin-bottom: 1px;
|
||||||
|
color: #999;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .month-wrapper table div.day.lastMonth,
|
||||||
|
.date-picker-wrapper .month-wrapper table div.day.nextMonth {
|
||||||
|
color: #999;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .month-wrapper table .day.checked {
|
||||||
|
background-color: rgb(156, 219, 247);
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .month-wrapper table .week-name {
|
||||||
|
height: 20px;
|
||||||
|
line-height: 20px;
|
||||||
|
font-weight: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .month-wrapper table .day.has-tooltip {
|
||||||
|
cursor: help !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .month-wrapper table .day.toMonth.valid {
|
||||||
|
color: #333;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .month-wrapper table .day.real-today {
|
||||||
|
background-color: rgb(255, 230, 132);
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .month-wrapper table .day.real-today.checked {
|
||||||
|
background-color: rgb(112, 204, 213);
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper table .caption {
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper table .caption .next,
|
||||||
|
.date-picker-wrapper table .caption .prev {
|
||||||
|
padding: 0 5px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper table .caption .next:hover,
|
||||||
|
.date-picker-wrapper table .caption .prev:hover {
|
||||||
|
background-color: #ccc;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .gap {
|
||||||
|
position: absolute;
|
||||||
|
display: none;
|
||||||
|
top: 0px;
|
||||||
|
left: 204px;
|
||||||
|
z-index: 1;
|
||||||
|
width: 15px;
|
||||||
|
height: 100%;
|
||||||
|
background-color: red;
|
||||||
|
font-size: 0;
|
||||||
|
line-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .gap .gap-lines {
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .gap .gap-line {
|
||||||
|
height: 15px;
|
||||||
|
width: 15px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .gap .gap-line .gap-1 {
|
||||||
|
z-index: 1;
|
||||||
|
height: 0;
|
||||||
|
border-left: 8px solid white;
|
||||||
|
border-top: 8px solid #eee;
|
||||||
|
border-bottom: 8px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .gap .gap-line .gap-2 {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0px;
|
||||||
|
z-index: 2;
|
||||||
|
height: 0;
|
||||||
|
border-left: 8px solid transparent;
|
||||||
|
border-top: 8px solid white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .gap .gap-line .gap-3 {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 8px;
|
||||||
|
z-index: 2;
|
||||||
|
height: 0;
|
||||||
|
border-left: 8px solid transparent;
|
||||||
|
border-bottom: 8px solid white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .gap .gap-top-mask {
|
||||||
|
width: 6px;
|
||||||
|
height: 1px;
|
||||||
|
position: absolute;
|
||||||
|
top: -1px;
|
||||||
|
left: 1px;
|
||||||
|
background-color: #eee;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .gap .gap-bottom-mask {
|
||||||
|
width: 6px;
|
||||||
|
height: 1px;
|
||||||
|
position: absolute;
|
||||||
|
bottom: -1px;
|
||||||
|
left: 7px;
|
||||||
|
background-color: #eee;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .selected-days {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .drp_top-bar {
|
||||||
|
line-height: 40px;
|
||||||
|
height: 40px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .drp_top-bar .error-top {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .drp_top-bar .normal-top {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .drp_top-bar .default-top {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .drp_top-bar.error .default-top {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .drp_top-bar.error .error-top {
|
||||||
|
display: block;
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .drp_top-bar.normal .default-top {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .drp_top-bar.normal .normal-top {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .drp_top-bar .apply-btn {
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
top: 6px;
|
||||||
|
padding: 3px 5px;
|
||||||
|
margin: 0;
|
||||||
|
font-size: 12px;
|
||||||
|
border-radius: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
color: #d9eef7;
|
||||||
|
border: solid 1px #0076a3;
|
||||||
|
background: #0095cd;
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(#00adee), to(#0078a5));
|
||||||
|
background: -moz-linear-gradient(top, #00adee, #0078a5);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00adee', endColorstr='#0078a5');
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date-picker-wrapper .drp_top-bar .apply-btn.disabled {
|
||||||
|
pointer-events: none;
|
||||||
|
color: #606060;
|
||||||
|
border: solid 1px #b7b7b7;
|
||||||
|
background: #fff;
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#ededed));
|
||||||
|
background: -moz-linear-gradient(top, #fff, #ededed);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed');
|
||||||
|
}
|
||||||
|
|
||||||
|
/*time styling*/
|
||||||
|
.time {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time input[type=range] {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time1, .time2 {
|
||||||
|
width: 180px;
|
||||||
|
padding: 0 5px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time1 {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time2 {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hour, .minute {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hide {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.hour-range, input.minute-range {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dateRangePickerContainer .date-range, #dateRangePickerContainer .input-append {
|
||||||
|
background: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#date-range {
|
||||||
|
padding-right: 30px;
|
||||||
|
width: 300px;
|
||||||
|
height: 100%;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
#dateRangePickerContainer {
|
||||||
|
float: right;
|
||||||
|
}
|
@ -0,0 +1,463 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* graph */
|
||||||
|
|
||||||
|
.rickshaw_graph {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph svg {
|
||||||
|
display: block;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ticks */
|
||||||
|
|
||||||
|
.rickshaw_graph .x_tick {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
width: 0;
|
||||||
|
border-left: 1px dotted rgba(0, 0, 0, 0.2);
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .x_tick .title {
|
||||||
|
position: absolute;
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
opacity: 0.5;
|
||||||
|
white-space: nowrap;
|
||||||
|
margin-left: 3px;
|
||||||
|
bottom: -20px;
|
||||||
|
height: auto;
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* annotations */
|
||||||
|
|
||||||
|
.rickshaw_annotation_timeline {
|
||||||
|
height: 1px;
|
||||||
|
border-top: 1px solid #e0e0e0;
|
||||||
|
margin-top: 10px;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_annotation_timeline .annotation {
|
||||||
|
position: absolute;
|
||||||
|
height: 6px;
|
||||||
|
width: 6px;
|
||||||
|
margin-left: -2px;
|
||||||
|
top: -3px;
|
||||||
|
border-radius: 5px;
|
||||||
|
background-color: rgba(0, 0, 0, 0.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .annotation_line {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: -6px;
|
||||||
|
width: 0;
|
||||||
|
border-left: 2px solid rgba(0, 0, 0, 0.3);
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .annotation_line.active {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .annotation_range {
|
||||||
|
background: rgba(0, 0, 0, 0.1);
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: -6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .annotation_range.active {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .annotation_range.active.offscreen {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_annotation_timeline .annotation .content {
|
||||||
|
background: white;
|
||||||
|
color: black;
|
||||||
|
opacity: 0.9;
|
||||||
|
box-shadow: 0 0 2px rgba(0, 0, 0, 0.8);
|
||||||
|
border-radius: 3px;
|
||||||
|
position: relative;
|
||||||
|
z-index: 20;
|
||||||
|
font-size: 12px;
|
||||||
|
padding: 6px 8px 8px;
|
||||||
|
top: 18px;
|
||||||
|
left: -11px;
|
||||||
|
width: 160px;
|
||||||
|
display: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_annotation_timeline .annotation .content:before {
|
||||||
|
content: "\25b2";
|
||||||
|
position: absolute;
|
||||||
|
top: -11px;
|
||||||
|
color: white;
|
||||||
|
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_annotation_timeline .annotation.active,
|
||||||
|
.rickshaw_annotation_timeline .annotation:hover {
|
||||||
|
background-color: rgba(0, 0, 0, 0.8);
|
||||||
|
cursor: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_annotation_timeline .annotation .content:hover {
|
||||||
|
z-index: 50;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_annotation_timeline .annotation.active .content {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_annotation_timeline .annotation:hover .content {
|
||||||
|
display: block;
|
||||||
|
z-index: 50;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .y_axis,
|
||||||
|
.rickshaw_graph .x_axis_d3 {
|
||||||
|
fill: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .y_ticks .tick line,
|
||||||
|
.rickshaw_graph .x_ticks_d3 .tick {
|
||||||
|
stroke: rgba(0, 0, 0, 0.16);
|
||||||
|
stroke-width: 2px;
|
||||||
|
shape-rendering: crisp-edges;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .y_grid .tick,
|
||||||
|
.rickshaw_graph .x_grid_d3 .tick {
|
||||||
|
z-index: -1;
|
||||||
|
stroke: rgba(0, 0, 0, 0.20);
|
||||||
|
stroke-width: 1px;
|
||||||
|
stroke-dasharray: 1 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .y_grid .tick[data-y-value="0"] {
|
||||||
|
stroke-dasharray: 1 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .y_grid path,
|
||||||
|
.rickshaw_graph .x_grid_d3 path {
|
||||||
|
fill: none;
|
||||||
|
stroke: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .y_ticks path,
|
||||||
|
.rickshaw_graph .x_ticks_d3 path {
|
||||||
|
fill: none;
|
||||||
|
stroke: #808080;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .y_ticks text,
|
||||||
|
.rickshaw_graph .x_ticks_d3 text {
|
||||||
|
opacity: 0.5;
|
||||||
|
font-size: 12px;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .x_tick.glow .title,
|
||||||
|
.rickshaw_graph .y_ticks.glow text {
|
||||||
|
fill: black;
|
||||||
|
color: black;
|
||||||
|
text-shadow: -1px 1px 0 rgba(255, 255, 255, 0.1),
|
||||||
|
1px -1px 0 rgba(255, 255, 255, 0.1),
|
||||||
|
1px 1px 0 rgba(255, 255, 255, 0.1),
|
||||||
|
0 1px 0 rgba(255, 255, 255, 0.1),
|
||||||
|
0 -1px 0 rgba(255, 255, 255, 0.1),
|
||||||
|
1px 0 0 rgba(255, 255, 255, 0.1),
|
||||||
|
-1px 0 0 rgba(255, 255, 255, 0.1),
|
||||||
|
-1px -1px 0 rgba(255, 255, 255, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .x_tick.inverse .title,
|
||||||
|
.rickshaw_graph .y_ticks.inverse text {
|
||||||
|
fill: white;
|
||||||
|
color: white;
|
||||||
|
text-shadow: -1px 1px 0 rgba(0, 0, 0, 0.8),
|
||||||
|
1px -1px 0 rgba(0, 0, 0, 0.8),
|
||||||
|
1px 1px 0 rgba(0, 0, 0, 0.8),
|
||||||
|
0 1px 0 rgba(0, 0, 0, 0.8),
|
||||||
|
0 -1px 0 rgba(0, 0, 0, 0.8),
|
||||||
|
1px 0 0 rgba(0, 0, 0, 0.8),
|
||||||
|
-1px 0 0 rgba(0, 0, 0, 0.8),
|
||||||
|
-1px -1px 0 rgba(0, 0, 0, 0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom_rickshaw_graph {
|
||||||
|
position: relative;
|
||||||
|
left: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom_y_axis {
|
||||||
|
position: absolute;
|
||||||
|
width: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom_slider {
|
||||||
|
left: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom_x_axis {
|
||||||
|
position: relative;
|
||||||
|
left: 40px;
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*detail*/
|
||||||
|
|
||||||
|
.rickshaw_graph .detail {
|
||||||
|
pointer-events: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
z-index: 2;
|
||||||
|
background: rgba(0, 0, 0, 0.1);
|
||||||
|
bottom: 0;
|
||||||
|
width: 1px;
|
||||||
|
transition: opacity 0.25s linear;
|
||||||
|
-moz-transition: opacity 0.25s linear;
|
||||||
|
-o-transition: opacity 0.25s linear;
|
||||||
|
-webkit-transition: opacity 0.25s linear;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail.inactive {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail .item.active {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail .x_label {
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
border-radius: 3px;
|
||||||
|
padding: 6px;
|
||||||
|
opacity: 0.5;
|
||||||
|
border: 1px solid #e0e0e0;
|
||||||
|
font-size: 12px;
|
||||||
|
position: absolute;
|
||||||
|
background: white;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail .x_label.left {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail .x_label.right {
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail .item {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 2;
|
||||||
|
border-radius: 3px;
|
||||||
|
padding: 0.25em;
|
||||||
|
font-size: 12px;
|
||||||
|
font-family: Arial, sans-serif;
|
||||||
|
opacity: 0;
|
||||||
|
background: rgba(0, 0, 0, 0.4);
|
||||||
|
color: white;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.4);
|
||||||
|
margin-left: 1em;
|
||||||
|
margin-right: 1em;
|
||||||
|
margin-top: -1em;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail .item.left {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail .item.right {
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail .item.active {
|
||||||
|
opacity: 1;
|
||||||
|
background: rgba(0, 0, 0, 0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail .item:after {
|
||||||
|
position: absolute;
|
||||||
|
display: block;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
|
||||||
|
content: "";
|
||||||
|
|
||||||
|
border: 5px solid transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail .item.left:after {
|
||||||
|
top: 1em;
|
||||||
|
left: -5px;
|
||||||
|
margin-top: -5px;
|
||||||
|
border-right-color: rgba(0, 0, 0, 0.8);
|
||||||
|
border-left-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail .item.right:after {
|
||||||
|
top: 1em;
|
||||||
|
right: -5px;
|
||||||
|
margin-top: -5px;
|
||||||
|
border-left-color: rgba(0, 0, 0, 0.8);
|
||||||
|
border-right-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail .dot {
|
||||||
|
width: 4px;
|
||||||
|
height: 4px;
|
||||||
|
margin-left: -3px;
|
||||||
|
margin-top: -3.5px;
|
||||||
|
border-radius: 5px;
|
||||||
|
position: absolute;
|
||||||
|
box-shadow: 0 0 2px rgba(0, 0, 0, 0.6);
|
||||||
|
box-sizing: content-box;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
background: white;
|
||||||
|
border-width: 2px;
|
||||||
|
border-style: solid;
|
||||||
|
display: none;
|
||||||
|
background-clip: padding-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_graph .detail .dot.active {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*legend*/
|
||||||
|
.rickshaw_legend {
|
||||||
|
font-family: Arial;
|
||||||
|
font-size: 12px;
|
||||||
|
color: white;
|
||||||
|
background: #404040;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 12px 5px;
|
||||||
|
border-radius: 2px;
|
||||||
|
position: relative;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_legend:hover {
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_legend .swatch {
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_legend .line {
|
||||||
|
clear: both;
|
||||||
|
line-height: 140%;
|
||||||
|
padding-right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_legend .line .swatch {
|
||||||
|
display: inline-block;
|
||||||
|
margin-right: 3px;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_legend .label {
|
||||||
|
margin: 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
display: inline;
|
||||||
|
font-size: inherit;
|
||||||
|
background-color: transparent;
|
||||||
|
color: inherit;
|
||||||
|
font-weight: normal;
|
||||||
|
line-height: normal;
|
||||||
|
padding: 0;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_legend .action:hover {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_legend .action {
|
||||||
|
margin-right: 0.2em;
|
||||||
|
opacity: 0.2;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_legend .line.disabled {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_legend ul {
|
||||||
|
list-style-type: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 2px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_legend li {
|
||||||
|
padding: 0 0 0 2px;
|
||||||
|
min-width: 80px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_legend li:hover {
|
||||||
|
background: rgba(255, 255, 255, 0.08);
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rickshaw_legend li:active {
|
||||||
|
background: rgba(255, 255, 255, 0.2);
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legend {
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
left: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legend_container {
|
||||||
|
float: right;
|
||||||
|
padding-right: 10px;
|
||||||
|
width: 0;
|
||||||
|
z-index: 1;
|
||||||
|
position: relative;
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spaced {
|
||||||
|
margin-top: 20px !important;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,98 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var fromDate, toDate, currentDay = new Date();
|
||||||
|
var startDate = new Date(currentDay.getTime() - (60 * 60 * 24 * 100));
|
||||||
|
var endDate = new Date(currentDay.getTime());
|
||||||
|
|
||||||
|
function initDate() {
|
||||||
|
currentDay = new Date();
|
||||||
|
}
|
||||||
|
|
||||||
|
var DateRange = convertDate(startDate) + " to " + convertDate(endDate);
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
initDate();
|
||||||
|
|
||||||
|
$('#date-range').html(DateRange);
|
||||||
|
$('#date-range').dateRangePicker()
|
||||||
|
.bind('datepicker-apply', function (event, dateRange) {
|
||||||
|
$(this).addClass('active');
|
||||||
|
$(this).siblings().removeClass('active');
|
||||||
|
fromDate = dateRange.date1 != "Invalid Date" ? dateRange.date1.getTime() / 1000 : null;
|
||||||
|
toDate = dateRange.date2 != "Invalid Date" ? dateRange.date2.getTime() / 1000 : null;
|
||||||
|
drawGraph(fromDate, toDate);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
setDateTime(currentDay.getTime() - 3600000, currentDay.getTime());
|
||||||
|
$('#hour-btn').addClass('active');
|
||||||
|
});
|
||||||
|
|
||||||
|
//hour
|
||||||
|
$('#hour-btn').on('click', function () {
|
||||||
|
initDate();
|
||||||
|
setDateTime(currentDay.getTime() - 3600000, currentDay.getTime());
|
||||||
|
});
|
||||||
|
|
||||||
|
//12 hours
|
||||||
|
$('#h12-btn').on('click', function () {
|
||||||
|
initDate();
|
||||||
|
setDateTime(currentDay.getTime() - (3600000 * 12), currentDay.getTime());
|
||||||
|
});
|
||||||
|
|
||||||
|
//24 hours
|
||||||
|
$('#h24-btn').on('click', function () {
|
||||||
|
initDate();
|
||||||
|
setDateTime(currentDay.getTime() - (3600000 * 24), currentDay.getTime());
|
||||||
|
});
|
||||||
|
|
||||||
|
//48 hours
|
||||||
|
$('#h48-btn').on('click', function () {
|
||||||
|
initDate();
|
||||||
|
setDateTime(currentDay.getTime() - (3600000 * 48), currentDay.getTime());
|
||||||
|
});
|
||||||
|
|
||||||
|
$('body').on('click', '.btn-group button', function (e) {
|
||||||
|
$(this).addClass('active');
|
||||||
|
$(this).siblings().removeClass('active');
|
||||||
|
});
|
||||||
|
|
||||||
|
function setDateTime(from, to) {
|
||||||
|
fromDate = from;
|
||||||
|
toDate = to;
|
||||||
|
startDate = new Date(from);
|
||||||
|
endDate = new Date(to);
|
||||||
|
DateRange = convertDate(startDate) + " to " + convertDate(endDate);
|
||||||
|
$('#date-range').html(DateRange);
|
||||||
|
var tzOffset = new Date().getTimezoneOffset() * 60 / 1000;
|
||||||
|
from += tzOffset;
|
||||||
|
to += tzOffset;
|
||||||
|
|
||||||
|
// the relevant import units needs to implement this.
|
||||||
|
drawGraph(parseInt(from / 1000), parseInt(to / 1000));
|
||||||
|
}
|
||||||
|
|
||||||
|
function convertDate(date) {
|
||||||
|
var month = date.getMonth() + 1;
|
||||||
|
var day = date.getDate();
|
||||||
|
var hour = date.getHours();
|
||||||
|
var minute = date.getMinutes();
|
||||||
|
return date.getFullYear() + '-' + (('' + month).length < 2 ? '0' : '') + month + '-' +
|
||||||
|
(('' + day).length < 2 ? '0' : '') + day + " " + (('' + hour).length < 2 ? '0' : '') +
|
||||||
|
hour + ":" + (('' + minute).length < 2 ? '0' : '') + minute;
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue