Commit 27798f66 by Jose Antonio

Merged branch develop into develop

parents 770d3189 66419d00
Showing with 347 additions and 136 deletions
package com.yottacode.pictogram.supervisor_tablet.gui;
import android.app.Activity;
import com.yottacode.pictogram.supervisor_tablet.R;
import com.yottacode.pictogram.tabletlibrary.gui.login.SerialActivity;
import com.yottacode.tools.GUITools;
/**
* Created by Fernando on 21/11/2016.
*/
public final class Supervisor_SerialActivity extends SerialActivity {
@Override
protected boolean is_legal_user(String user_name, Activity activity) {
boolean legal_user=com.yottacode.pictogram.dao.UserLogin.isSupervisorLoginPattern(user_name);
if (!legal_user)
GUITools.show_alert(activity, R.string.ilegal_user, user_name);
return legal_user;
}
}
......@@ -2,6 +2,10 @@ package com.yottacode.pictogram.tabletlibrary.gui.login;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.provider.ContactsContract;
import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
......@@ -10,6 +14,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import com.yottacode.pictogram.tabletlibrary.R;
import com.yottacode.pictogram.tools.PCBcontext;
import java.util.Vector;
......@@ -19,6 +24,7 @@ import java.util.Vector;
*/
public class CustomList extends ArrayAdapter<String>{
private boolean color;
private final Activity context;
private final String[] name_surname;
private final Vector<Bitmap> images;
......@@ -34,6 +40,7 @@ public class CustomList extends ArrayAdapter<String>{
this.context = context;
this.name_surname = name_surname;
this.images = images;
this.color = true;
}
/**
......@@ -51,9 +58,27 @@ public class CustomList extends ArrayAdapter<String>{
ImageView imageView = (ImageView) rowView.findViewById(R.id.loginStudentPhoto);
txtTitle.setText(name_surname[position]);
ImageView fondo = (ImageView) rowView.findViewById(R.id.fondo);
//if(color){
// color = false;
// rowView.setBackgroundColor(ContextCompat.getColor(context, R.color.VerdeApp));
// txtTitle.setTextColor(ContextCompat.getColor(context, R.color.BlancoApp));
// fondo.setBackgroundResource(R.drawable.round_design_photo_green);
//}else{
// color = true;
rowView.setBackgroundColor(ContextCompat.getColor(context, R.color.BlancoApp));
txtTitle.setTextColor(ContextCompat.getColor(context, R.color.VerdeApp));
fondo.setBackgroundResource(R.drawable.round_design_photo_white);
//}
//imageView.setImageResource(R.drawable.user);
if (images.size()>0) imageView.setImageBitmap(images.elementAt(position));
else imageView.setImageResource(R.drawable.anonymous_student);
if (images.size()>0){
imageView.setImageBitmap(images.elementAt(position));
}else{
imageView.setImageResource(R.drawable.anonymous_student);
}
return rowView;
}
}
......@@ -42,8 +42,10 @@ public class CustomListLogin extends ArrayAdapter<User>{
ImageView imageView = (ImageView) rowView.findViewById(R.id.photo);
ImageView fondo = (ImageView) rowView.findViewById(R.id.fondoFotoLogin);
try {
Bitmap photo=getItem(position).is_supervisor() ? getItem(position).get_bitmap_sup(getContext()) : getItem(position).get_bitmap_stu(getContext());
fondo.setImageResource(R.drawable.round_design_photo_white);
if (photo!=null) imageView.setImageBitmap(photo);
else imageView.setImageResource(R.drawable.anonymous_student);
} catch (IOException e) {
......
......@@ -51,8 +51,14 @@ public class LoginActivity extends FragmentActivity {
logoutButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent serialActivity = new Intent(getBaseContext(), com.yottacode.pictogram.tabletlibrary.gui.login.SerialActivity.class);
Class serialClass;
try {
serialClass=Class.forName(getString(R.string.SerialClass));
} catch (ClassNotFoundException e) {
Log.e(this.getClass().getCanonicalName(),"S:"+getString(R.string.SerialClass));
serialClass=SerialActivity.class;
}
Intent serialActivity = new Intent(getBaseContext(), serialClass);
serialActivity.putExtra("resetPrevUser", true);
startActivity(serialActivity);
}
......
......@@ -43,6 +43,7 @@ public class SerialActivity extends Activity {
LinearLayout stuList;
LinearLayout supList;
protected boolean is_legal_user(String user_name, Activity activity) {return true;}
/**
* Return the default user+pwd when login.The policy is
......@@ -154,16 +155,16 @@ public class SerialActivity extends Activity {
@Override
public void onClick(View view) {
String username = mSerialViewMail.getText().toString();
String password = mSerialViewPass.getText().toString();
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.commit();
if (!username.equals("") && !password.equals(""))
new UserLogin().login(username, password, SerialActivity.this, PictogramActivity.class, LoginActivity.class);
if (is_legal_user(username,SerialActivity.this)) {
String password = mSerialViewPass.getText().toString();
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.commit();
if (!username.equals("") && !password.equals(""))
new UserLogin().login(username, password, SerialActivity.this, PictogramActivity.class, LoginActivity.class);
}
}
});
}
......
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- main color -->
<item
android:bottom="2dp"
android:left="2dp"
android:right="2dp">
<shape>
<solid android:color="@color/BlancoApp" />
</shape>
</item>
<item>
<selector >
<item android:state_enabled="true"
android:state_focused="true">
<shape>
<stroke
android:width="2dp"
android:color="@color/VerdeApp"/>
</shape>
</item>
<item android:state_enabled="true">
<shape>
<stroke
android:width="2dp"
android:color="@color/gray"/>
</shape>
</item>
</selector>
</item>
<!-- draw another block to cut-off the left and right bars -->
<item android:bottom="5.0dp">
<shape>
<solid android:color="@color/BlancoApp" />
</shape>
</item>
</layer-list>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#AfD260"/>
<stroke android:width="3dip" android:color="#EEEEEE" />
<corners android:radius="10dip"/>
<padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
</shape>
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#EEEEEE"/>
<stroke android:width="3dip" android:color="#AFD260" />
<corners android:radius="10dip"/>
<padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
</shape>
......@@ -6,62 +6,64 @@
tools:context="com.yottacode.pictogram.tabletlibrary.gui.login.LoginActivity">
<RelativeLayout
android:id="@+id/loginTopbarLayout"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_margin="8dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="8dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="0dp"
android:id="@+id/loginTopbarLayout">
android:layout_height="70dp"
android:background="@color/VerdeApp"
android:paddingBottom="5dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="5dp">
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
android:id="@+id/loginTopbarSupervisorPhoto"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="left"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:background="@color/accent_material_dark"
android:scaleType="centerCrop" />
android:scaleType="centerCrop"
android:layout_centerVertical="true"
android:layout_alignParentStart="true" />
<LinearLayout
android:orientation="vertical"
android:id="@+id/loginTopbarSupervisorNameLayout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/loginTopbarSupervisorNameLayout"
android:layout_centerVertical="true"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_centerVertical="true"
android:layout_toEndOf="@+id/loginTopbarSupervisorPhoto"
android:gravity="center_vertical">
android:gravity="center_vertical"
android:orientation="vertical">
<TextView
android:id="@+id/loginTopbarSupervisorFullName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text=""
android:id="@+id/loginTopbarSupervisorFullName" />
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/BlancoApp" />
<TextView
android:id="@+id/loginTopbarSupervisorUserName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text=""
android:id="@+id/loginTopbarSupervisorUserName"
android:textColor="@color/abc_secondary_text_material_light" />
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/BlancoApp" />
</LinearLayout>
<Button
style="?android:attr/buttonStyleSmall"
android:id="@+id/loginTopbarLogout"
style="@android:style/TextAppearance.Material.Button"
android:textColor="@color/BlancoApp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/logout"
android:id="@+id/loginTopbarLogout"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:enabled="false" />
android:enabled="false"
android:text="@string/logout" />
</RelativeLayout>
......@@ -77,27 +79,18 @@
<FrameLayout
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/loginTopbarLayout">
android:layout_below="@+id/loginTopbarLayout"
android:paddingTop="10dp">
<fragment
android:id="@+id/loginStudentGrid"
class="com.yottacode.pictogram.tabletlibrary.gui.login.StudentFragmentGrid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
class="com.yottacode.pictogram.tabletlibrary.gui.login.StudentFragmentGrid"
android:id="@+id/loginStudentGrid"
android:layout_gravity="center"
android:layout_gravity="top"
tools:layout="@layout/fragment_new_student" />
</FrameLayout>
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/imageView4"
android:background="@drawable/pictogram_logo"
android:layout_marginRight="30dp"
android:layout_below="@+id/view"
android:layout_alignEnd="@+id/loginTopbarLayout"
android:layout_marginTop="320dp" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/loginStudentGridView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numColumns="auto_fit"
android:gravity="center_vertical|center|center_horizontal"
android:stackFromBottom="false"
android:padding="32dp"
android:horizontalSpacing="16dp"
android:verticalSpacing="16dp" />
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/loginStudentGridView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:numColumns="5"
android:stackFromBottom="false" />
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical|center_horizontal">
<ImageView
android:id="@+id/loginStudentPhoto"
android:layout_width="128dp"
android:layout_height="128dp"
android:layout_centerHorizontal="true" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="50dp"
android:layout_marginTop="50dp"
android:orientation="vertical">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
<ImageView
android:id="@+id/fondo"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignBottom="@+id/loginStudentName"
android:layout_centerHorizontal="false"
android:layout_gravity="center"
android:background="@drawable/round_design_photo_green" />
<ImageView
android:id="@+id/loginStudentPhoto"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignWithParentIfMissing="true"
android:layout_centerHorizontal="false"
android:layout_centerVertical="true"
android:layout_gravity="center" />
</FrameLayout>
<TextView
android:id="@+id/loginStudentName"
android:layout_width="128dp"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_below="@+id/loginStudentPhoto"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_centerHorizontal="true"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:gravity="center" />
</RelativeLayout>
\ No newline at end of file
android:layout_gravity="center"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:layout_width="wrap_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:text="Nombre"
android:layout_height="wrap_content"
android:id="@+id/label_name"
android:layout_weight="0.15"
android:textSize="18sp"
android:textColor="@android:color/black"
android:layout_alignTop="@+id/photo"
android:layout_toEndOf="@+id/photo"
android:layout_width="wrap_content"
android:layout_marginStart="15dp" />
<TextView
android:text="Apellidos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/label_surname"
android:textSize="18sp"
android:textAlignment="textStart"
android:textColor="@android:color/black"
android:layout_alignBottom="@+id/photo"
android:layout_toEndOf="@+id/photo"
android:layout_marginStart="15dp" />
<ImageView
app:srcCompat="@drawable/anonymous_student"
android:id="@+id/photo"
android:layout_weight="0.15"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
android:layout_gravity="center"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:background="@color/BlancoApp"
android:orientation="vertical">
<LinearLayout
android:layout_width="276dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:orientation="horizontal">
<FrameLayout
android:layout_width="50dp"
android:layout_height="50dp">
<ImageView
android:id="@+id/fondoFotoLogin"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
app:srcCompat="@drawable/round_design_photo_white" />
<ImageView
android:id="@+id/photo"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_gravity="center"
android:layout_weight="1"
app:srcCompat="@drawable/anonymous_student" />
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="left"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/label_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/photo"
android:layout_marginStart="15dp"
android:layout_toEndOf="@+id/photo"
android:layout_weight="0.15"
android:text="Nombre"
android:textColor="@color/VerdeApp"
android:textSize="18sp" />
<TextView
android:id="@+id/label_surname"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/photo"
android:layout_marginStart="15dp"
android:layout_toEndOf="@+id/photo"
android:layout_weight="0.15"
android:text="Apellidos"
android:textAlignment="textStart"
android:textColor="@color/VerdeApp"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
</FrameLayout>
......@@ -14,5 +14,7 @@
<color name="guideline">@color/white_translucent</color>
<color name="corner">@android:color/white</color>
<color name="surrounding_area">@color/black_translucent</color>
<color name="VerdeApp">#6a8e1a</color>
<color name="BlancoApp">#eeeeee</color>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:android="http://schemas.android.com/tools">
<style name="sessionBtn">
<item name="android:layout_height">64dp</item>
<item name="android:layout_width">64dp</item>
......
......@@ -5,9 +5,6 @@
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="css/main.css">
<link rel="icon" href="img/logo_pictogram.png" type='image/png'>
<script>
var lang = (navigator.language || navigator.userLanguage).split("-")[0];
</script>
</head>
<body>
......@@ -19,26 +16,67 @@
</div>
</div>
<div class="container vertical-center">
<div class="row">
<div class="col-md-12 text-center">
<br>
<h1>Navegador no compatible con Pictogram <i class="fa fa-frown-o" aria-hidden="true"></i></h1>
<br>
<h4>Le recomendamos utilizar la última versión de <a href="https://www.google.com/chrome/" target="_blank">Google Chrome</a> o <a href="https://www.mozilla.org/firefox/new/" target="_blank">Mozilla Firefox</a>.</h4>
<div id="es">
<div class="container vertical-center">
<div class="row">
<div class="col-md-12 text-center">
<br>
<h1>Navegador no compatible con Pictogram <i class="fa fa-frown-o" aria-hidden="true"></i></h1>
<br>
<h4>Le recomendamos utilizar la última versión de <a href="https://www.google.com/chrome/" target="_blank">Google Chrome</a> o <a href="https://www.mozilla.org/firefox/new/" target="_blank">Mozilla Firefox</a>.</h4>
</div>
</div>
</div>
<div class="languages">
<div class="container">
<div class="row">
<div class="col-xs-12">
<div class="languages-margin text-muted text-center">Si los problemas persisten, contacte con <a href="mailto:soporte@yottacode.com" translate="" class="ng-scope">atención al cliente</a>.</div>
</div>
</div>
</div>
</div>
</div>
<div class="languages">
<div class="container">
<div id="en">
<div class="container vertical-center">
<div class="row">
<div class="col-xs-12">
<div class="languages-margin text-muted text-center">Si los problemas persisten, contacte con <a href="mailto:soporte@yottacode.com" translate="" class="ng-scope">atención al cliente</a>.</div>
<div class="col-md-12 text-center">
<br>
<h1>Browser not compatible with Pictogram <i class="fa fa-frown-o" aria-hidden="true"></i></h1>
<br>
<h4>We recommend using the latest version of <a href="https://www.google.com/chrome/" target="_blank">Google Chrome</a> or <a href="https://www.mozilla.org/firefox/new/" target="_blank">Mozilla Firefox</a>.</h4>
</div>
</div>
</div>
<div class="languages">
<div class="container">
<div class="row">
<div class="col-xs-12">
<div class="languages-margin text-muted text-center">If problems persist, contact with <a href="mailto:soporte@yottacode.com" translate="" class="ng-scope">customer support</a>.</div>
</div>
</div>
</div>
</div>
</div>
<script>
/* SIMPLY DOCUMENT TRANSLATION */
// Browser default language
var lang = (navigator.language || navigator.userLanguage).split("-")[0];
// If language not available, set english as default
if(lang != "en" && lang != "es"){
lang = "en";
}
// Show div acording to language
document.getElementById('en').style.display = (lang=='en')? 'inline' : 'none';
document.getElementById('es').style.display = (lang=='es')? 'inline' : 'none';
</script>
</body>
</html>
......@@ -19,12 +19,14 @@ var clientBrowser = (function(){
var validBrowser = false;
//Browser filter
if(clientBrowser[0] == "Firefox" && parseInt(clientBrowser[1]) >= 25 )
if(clientBrowser[0] == "Firefox" && parseInt(clientBrowser[1]) >= 35 )
validBrowser = true;
if(clientBrowser[0] == "Chrome" && parseInt(clientBrowser[1]) >= 45 )
validBrowser = true;
if(clientBrowser[0] == "Opera" && parseInt(clientBrowser[1]) >= 35 )
validBrowser = true;
if(clientBrowser[0] == "Edge" )
validBrowser = true;
// Redirect to view
if(!validBrowser) window.location = "browserNotCompatible.html";
......@@ -5,7 +5,7 @@ var ASSETS_PATH = path.join(__dirname, '..', 'assets');
var UPLOAD_PATH = path.join(__dirname, '..', '..', 'upload');
module.exports.pictogram = {
version: "1.0", // actual version of the server, to be checked by the client
version: "1.1", // actual version of the server, to be checked by the client
admin: {
email: 'amontejo@ujaen.es',
password: '$2a$06$flEEOc15SerMeYWARrN9w.KSpJuM.jDsaTgrtD0ESzbxKHPl0f/zq' //y00ttaa!!
......
......@@ -468,7 +468,7 @@ function sqlTypeCast(attr) {
break;
case 'datetime':
expandedType = 'DATETIME';
expandedType = 'DATETIME(3)';
break;
case 'time':
......@@ -499,7 +499,8 @@ function toSqlDate(date) {
('00' + date.getDate()).slice(-2) + ' ' +
('00' + date.getHours()).slice(-2) + ':' +
('00' + date.getMinutes()).slice(-2) + ':' +
('00' + date.getSeconds()).slice(-2);
('00' + date.getSeconds()).slice(-2) + '.' +
('00' + date.getMilliseconds()).slice(-3);
return date;
}
......
......@@ -242,7 +242,8 @@ utils.toSqlDate = function toSqlDate(date) {
('00' + date.getDate()).slice(-2) + ' ' +
('00' + date.getHours()).slice(-2) + ':' +
('00' + date.getMinutes()).slice(-2) + ':' +
('00' + date.getSeconds()).slice(-2);
('00' + date.getSeconds()).slice(-2) + "." +
('00' + date.getMilliseconds()).slice(-3);
return date;
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment