2016-04-28 09:42:08 +00:00
function inputPhoneFiche ( a , b ) { this . container = a ; this . nav _container = b }
2016-05-02 10:22:54 +00:00
inputPhoneFiche . prototype = { container : this . container , nav _container : this . nav _container , selected : 0 , handler : null , defaultData : { firstname : "" , lastname : "" , username : "" , sexe : [ { status : ! 0 } , { status : ! 1 } ] , age : "" , job : "." , famsit : [ { status : ! 0 } , { status : ! 1 } , { status : ! 1 } ] , studies : "." , reltype : [ { status : ! 0 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } ] , reltypeSpecial : "" , city : "" , loc : [ { status : ! 0 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } ] , loc2 : [ { status : ! 0 } , { status : ! 1 } , { status : ! 1 } ,
{ status : ! 1 } ] , duration : [ "" , "" ] , context : [ { status : ! 0 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } ] , contextSpecial : [ "" , "" , "" ] , freq : [ [ { status : ! 0 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } ] , [ { status : ! 0 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } ] , [ { status : ! 0 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } ] , [ { status : ! 0 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } ] , [ { status : ! 0 } , { status : ! 1 } , { status : ! 1 } , { status : ! 1 } ] ] , connect : [ [ { status : ! 1 } ,
{ status : ! 0 } ] , [ { status : ! 1 } , { status : ! 0 } ] , [ { status : ! 1 } , { status : ! 0 } ] , [ { status : ! 1 } , { status : ! 0 } ] , [ { status : ! 1 } , { status : ! 0 } ] , [ { status : ! 1 } , { status : ! 0 } ] ] , connectSpecial : [ "" , "" ] , timestamp : 0 , valid : ! 1 } } ;
inputPhoneFiche . prototype . fieldsToStorage = function ( ) { console . log ( "FICHE: FIELDS TO STORAGE" ) ; for ( var a = $$ ( "article.relation-panel .fiche-relation" ) , b = 0 ; b < a . length ; b ++ ) { var c = ( new FormDeflater ( a [ b ] , [ "input" , "select" ] , [ "data-name" ] ) ) . deflate ( ) , d = crc32 ( JSON . stringify ( c ) ) , e = lsi . get ( "fiches" , c . uid . value ) ; ! 1 === e && ( e . username = "inconnu" , e . firstname = "inconnu" , e . lastname = "inconnu" ) ; if ( null != e . hash && e . hash == d ) break ; console . warn ( "> FICHE UPDATE" ) ; c = { uid : c . uid . value , firstname : e . firstname , lastname : e . lastname , username : e . username ,
sexe : c . sexe , age : c . age . value , job : c . job . value , famsit : c . famsit , studies : c . studies . value , reltype : c . reltype , reltypeSpecial : c . reltypeSpecial . value , city : c . city . value , loc : c . loc , loc2 : c . loc2 , duration : [ c . duration [ 0 ] . value , c . duration [ 1 ] . value ] , context : c . context , contextSpecial : [ c . contextSpecial [ 0 ] . value , c . contextSpecial [ 1 ] . value , c . contextSpecial [ 2 ] . value ] , freq : [ c . freq0 , c . freq1 , c . freq2 , c . freq3 , c . freq4 ] , connect : [ c . connect0 , c . connect1 , c . connect2 , c . connect3 , c . connect4 , c . connect5 ] , connectSpecial : [ c . connectSpecial [ 0 ] . value ,
c . connectSpecial [ 1 ] . value ] , hash : d } ; c . valid = this . check ( c ) ; c . timestamp = Date . now ( ) ; lsi . set ( "fiches" , c . uid , c ) } } ;
2016-04-27 12:32:54 +00:00
inputPhoneFiche . prototype . add = function ( a ) { console . log ( "FICHE: ADD" ) ; if ( null == a . uid ) return ! 1 ; a . firstname = null != a . firstname ? a . firstname : this . defaultData . firstname ; a . lastname = null != a . lastname ? a . lastname : this . defaultData . lastname ; a . username = null != a . username ? a . username : this . defaultData . username ; a . age = null != a . age ? a . age : this . defaultData . age ; a . city = null != a . city ? a . city : this . defaultData . city ; a . duration [ 0 ] = null != a . duration [ 0 ] ? a . duration [ 0 ] : this . defaultData . duration [ 0 ] ; a . duration [ 1 ] = null != a . duration [ 1 ] ? a . duration [ 1 ] :
this . defaultData . duration [ 1 ] ; a . reltypeSpecial = null != a . reltypeSpecial ? a . reltypeSpecial : this . defaultData . reltypeSpecial ; a . contextSpecial [ 0 ] = null != a . contextSpecial [ 0 ] ? a . contextSpecial [ 0 ] : this . defaultData . contextSpecial [ 0 ] ; a . contextSpecial [ 1 ] = null != a . contextSpecial [ 1 ] ? a . contextSpecial [ 1 ] : this . defaultData . contextSpecial [ 1 ] ; a . contextSpecial [ 2 ] = null != a . contextSpecial [ 2 ] ? a . contextSpecial [ 2 ] : this . defaultData . contextSpecial [ 2 ] ; a . connectSpecial [ 0 ] = null != a . connectSpecial [ 0 ] ? a . connectSpecial [ 0 ] : this . defaultData . connectSpecial [ 0 ] ;
2016-05-02 10:22:54 +00:00
a . connectSpecial [ 1 ] = null != a . connectSpecial [ 1 ] ? a . connectSpecial [ 1 ] : this . defaultData . connectSpecial [ 1 ] ; a . job = null != a . job ? a . job : this . defaultData . job ; a . studies = null != a . studies ? a . studies : this . defaultData . studies ; a . sexe = null != a . sexe ? a . sexe : this . defaultData . sexe ; a . famsit = null != a . famsit ? a . famsit : this . defaultData . famsit ; a . reltype = null != a . reltype ? a . reltype : this . defaultData . reltype ; a . loc = null != a . loc ? a . loc : this . defaultData . loc ; a . loc2 = null != a . loc2 ? a . loc2 : this . defaultData . loc2 ; a . context = null != a . context ? a . context :
2016-05-03 07:44:25 +00:00
this . defaultData . context ; a . freq = null != a . freq ? a . freq : this . defaultData . freq ; a . connect = null != a . connect ? a . connect : this . defaultData . connect ; this . container . innerHTML += ficheBuilder . build ( { firstname : a . firstname , lastname : a . lastname , username : 0 == a . username . length ? "" : "(" + a . username + ")" , uid : a . uid , age : a . age , city : a . city , duration0 : a . duration [ 0 ] , duration1 : a . duration [ 1 ] , reltypespecial : a . reltypeSpecial , contextspecial0 : a . contextSpecial [ 0 ] , contextspecial1 : a . contextSpecial [ 1 ] , contextspecial2 : a . contextSpecial [ 2 ] , connectspecial0 : a . connectSpecial [ 0 ] ,
connectspecial1 : a . connectSpecial [ 1 ] } ) ; var b = $ ( 'article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>span>select[data-name="job"]>option[value="' + a . job + '"]' ) ; null != b && b . setAttribute ( "selected" , "selected" ) ; b = $ ( 'article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>span>select[data-name="studies"]>option[value="' + a . studies + '"]' ) ; null != b && b . setAttribute ( "selected" , "selected" ) ; for ( var c = $$ ( 'article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="sexe"]' ) ,
b = 0 ; b < c . length && b < a . sexe . length ; b ++ ) a . sexe [ b ] . status ? c [ b ] . setAttribute ( "checked" , "checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( 'article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="famsit"]' ) ; for ( b = 0 ; b < c . length && b < a . famsit . length ; b ++ ) a . famsit [ b ] . status ? c [ b ] . setAttribute ( "checked" , "checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( 'article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="reltype"]' ) ; for ( b = 0 ; b <
c . length && b < a . reltype . length ; b ++ ) a . reltype [ b ] . status ? c [ b ] . setAttribute ( "checked" , "checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( 'article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="loc"]' ) ; for ( b = 0 ; b < c . length && b < a . loc . length ; b ++ ) a . loc [ b ] . status ? c [ b ] . setAttribute ( "checked" , "checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( 'article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="loc2"]' ) ; for ( b = 0 ; b < c . length &&
b < a . loc2 . length ; b ++ ) a . loc2 [ b ] . status ? c [ b ] . setAttribute ( "checked" , "checked" ) : c [ b ] . removeAttribute ( "checked" ) ; c = $$ ( 'article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="context"]' ) ; for ( b = 0 ; b < c . length && b < a . context . length ; b ++ ) a . context [ b ] . status ? c [ b ] . setAttribute ( "checked" , "checked" ) : c [ b ] . removeAttribute ( "checked" ) ; for ( c = 0 ; c < a . freq . length ; c ++ ) for ( var d = $$ ( 'article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="freq' +
c + '"]' ) , b = 0 ; b < d . length && b < a . freq [ c ] . length ; b ++ ) a . freq [ c ] [ b ] . status ? d [ b ] . setAttribute ( "checked" , "checked" ) : d [ b ] . removeAttribute ( "checked" ) ; for ( c = 0 ; c < a . connect . length ; c ++ ) for ( d = $$ ( 'article.fiche-relation input[data-name="uid"][value="' + a . uid + '"] ~ h5>input[type="radio"][data-name="connect' + c + '"]' ) , b = 0 ; b < d . length && b < a . connect [ c ] . length ; b ++ ) a . connect [ c ] [ b ] . status ? d [ b ] . setAttribute ( "checked" , "checked" ) : d [ b ] . removeAttribute ( "checked" ) } ;
2016-05-02 10:22:54 +00:00
inputPhoneFiche . prototype . storageToFields = function ( ) { console . log ( "FICHE: STORAGE TO FIELDS" ) ; var a = lsi [ "export" ] ( "fiches" ) ; this . container . innerHTML = "" ; var b = [ ] , c ; for ( c in a ) { var d = a [ c ] . uid ; d == this . selected && this . add ( a [ c ] ) ; b . push ( d ) } this . updateNavBar ( b ) } ;
inputPhoneFiche . prototype . sync = function ( ) { console . log ( "FICHE: SYNC" ) ; for ( var a = lsi . keys ( "contacts" ) , b = 0 ; b < a . length && 10 > b ; b ++ ) { var c = lsi . get ( "contacts" , a [ b ] ) , d = lsi . get ( "fiches" , a [ b ] ) ; null == d && ( d = this . defaultData ) ; d . uid = c . uid ; d . firstname = c . firstname ; d . lastname = c . lastname ; d . username = c . username ; lsi . set ( "fiches" , a [ b ] , d ) } var a = lsi [ "export" ] ( "mini-fiches" ) , d = lsi [ "export" ] ( "fiches" ) , e ; for ( e in d ) d [ e ] . timestamp > a [ e ] . timestamp ? ( a [ e ] . sexe = d [ e ] . sexe , a [ e ] . age = d [ e ] . age , a [ e ] . job = d [ e ] . job , a [ e ] . loc = d [ e ] . loc ) : ( d [ e ] . sexe =
a [ e ] . sexe , d [ e ] . age = a [ e ] . age , d [ e ] . job = a [ e ] . job , d [ e ] . loc = a [ e ] . loc ) , lsi . set ( "mini-fiches" , e , a [ e ] ) , lsi . set ( "fiches" , e , d [ e ] ) } ; inputPhoneFiche . prototype . nav = function ( a ) { if ( "undefined" == typeof a || isNaN ( a . innerHTML ) || "nav-fiche" != a . parentNode . id ) return ! 1 ; for ( var b = $$ ( "#nav-fiche > span.active" ) , c = 0 ; c < b . length ; c ++ ) b [ c ] . remClass ( "active" ) ; a . addClass ( "active" ) ; this . selected = parseInt ( a . innerHTML ) - 1 } ;
2016-04-29 10:03:05 +00:00
inputPhoneFiche . prototype . updateNavBar = function ( ) { var a = lsi [ "export" ] ( "fiches" ) , b = Object . keys ( a ) . length ; if ( this . nav _container . children . length != b ) { this . nav _container . innerHTML = "" ; for ( var c = 0 ; c < b ; c ++ ) this . nav _container . innerHTML += "<span></span>" } for ( var d in a ) b = this . nav _container . children [ a [ d ] . uid ] , b . innerHTML = a [ d ] . uid + 1 , ! 0 === a [ d ] . valid ? b . addClass ( "done" ) : b . remClass ( "done" ) ; this . nav ( this . nav _container . children [ this . selected ] ) } ;
2016-05-02 10:22:54 +00:00
inputPhoneFiche . prototype . check = function ( a ) { if ( isNaN ( parseInt ( a . age ) ) || 2 > a . city . length || isNaN ( parseInt ( a . duration [ 0 ] ) ) && 0 < a . duration [ 0 ] . length || isNaN ( parseInt ( a . duration [ 1 ] ) ) && 0 < a . duration [ 1 ] . length || 0 == a . duration [ 0 ] . length + a . duration [ 1 ] . length || "." == a . job || "." == a . studies || ! checkRadioValue ( a . sexe ) || ! checkRadioValue ( a . famsit ) || ! checkRadioValue ( a . reltype ) || ! checkRadioValue ( a . loc ) || ! checkRadioValue ( a . loc2 ) || ! checkRadioValue ( a . context ) ) return ! 1 ; for ( var b = 0 ; b < a . freq . length ; b ++ ) if ( ! checkRadioValue ( a . freq [ b ] ) ) return ! 1 ;
for ( b = 0 ; b < a . connect . length ; b ++ ) if ( ! checkRadioValue ( a . connect [ b ] ) ) return ! 1 ; return a . reltype [ 8 ] . status && 2 > a . reltypeSpecial . length || a . context [ 11 ] . status && 2 > a . contextSpecial [ 0 ] . length || a . context [ 12 ] . status && 2 > a . contextSpecial [ 1 ] . length || a . context [ 13 ] . status && 2 > a . contextSpecial [ 2 ] . length ? ! 1 : ! 0 } ;
2016-04-29 10:03:05 +00:00
inputPhoneFiche . prototype . attach = function ( a ) { console . log ( "FICHE: ATTACH" ) ; lsi . createDataset ( "fiches" ) ; this . storageToFields ( ) ; this . handler = a ; var b = this , b = this ; this . nav _container . addEventListener ( "click" , function ( a ) { b . nav ( a . target ) ; b . handler ( a . target ) } , ! 1 ) } ;