2015-08-05 10:24:26 +03:00
'use strict' ;
2015-07-24 18:13:42 +03:00
var csrf ;
2015-09-06 13:57:25 +03:00
var suburl ;
2015-07-24 18:13:42 +03:00
2015-08-19 23:31:28 +03:00
function initCommentPreviewTab ( $form ) {
var $tab _menu = $form . find ( '.tabular.menu' ) ;
$tab _menu . find ( '.item' ) . tab ( ) ;
$tab _menu . find ( '.item[data-tab="' + $tab _menu . data ( 'preview' ) + '"]' ) . click ( function ( ) {
2015-08-10 13:57:57 +03:00
var $this = $ ( this ) ;
$ . post ( $this . data ( 'url' ) , {
"_csrf" : csrf ,
"mode" : "gfm" ,
"context" : $this . data ( 'context' ) ,
2015-08-19 23:31:28 +03:00
"text" : $form . find ( '.tab.segment[data-tab="' + $tab _menu . data ( 'write' ) + '"] textarea' ) . val ( )
2015-08-10 13:57:57 +03:00
} ,
function ( data ) {
2015-09-05 21:11:05 +03:00
var $preview _tab = $form . find ( '.tab.segment[data-tab="' + $tab _menu . data ( 'preview' ) + '"]' ) ;
$preview _tab . html ( data ) ;
emojify . run ( $preview _tab [ 0 ] ) ;
2015-08-10 13:57:57 +03:00
}
) ;
} ) ;
2015-08-19 23:31:28 +03:00
}
function initCommentForm ( ) {
if ( $ ( '.comment.form' ) . length == 0 ) {
return
}
initCommentPreviewTab ( $ ( '.comment.form' ) ) ;
2015-08-10 13:57:57 +03:00
// Labels
var $list = $ ( '.ui.labels.list' ) ;
var $no _select = $list . find ( '.no-select' ) ;
2015-08-14 19:42:43 +03:00
var $label _menu = $ ( '.select-label .menu' ) ;
var has _label _update _action = $label _menu . data ( 'action' ) == 'update' ;
function updateIssueMeta ( url , action , id ) {
$ . post ( url , {
"_csrf" : csrf ,
"action" : action ,
"id" : id
} ) ;
}
$label _menu . find ( '.item:not(.no-select)' ) . click ( function ( ) {
2015-08-10 13:57:57 +03:00
if ( $ ( this ) . hasClass ( 'checked' ) ) {
2015-09-05 21:11:05 +03:00
$ ( this ) . removeClass ( 'checked' ) ;
$ ( this ) . find ( '.octicon' ) . removeClass ( 'octicon-check' ) ;
2015-08-14 19:42:43 +03:00
if ( has _label _update _action ) {
updateIssueMeta ( $label _menu . data ( 'update-url' ) , "detach" , $ ( this ) . data ( 'id' ) ) ;
}
2015-08-10 13:57:57 +03:00
} else {
2015-09-05 21:11:05 +03:00
$ ( this ) . addClass ( 'checked' ) ;
$ ( this ) . find ( '.octicon' ) . addClass ( 'octicon-check' ) ;
2015-08-14 19:42:43 +03:00
if ( has _label _update _action ) {
updateIssueMeta ( $label _menu . data ( 'update-url' ) , "attach" , $ ( this ) . data ( 'id' ) ) ;
}
2015-08-10 13:57:57 +03:00
}
var label _ids = "" ;
$ ( this ) . parent ( ) . find ( '.item' ) . each ( function ( ) {
if ( $ ( this ) . hasClass ( 'checked' ) ) {
label _ids += $ ( this ) . data ( 'id' ) + "," ;
$ ( $ ( this ) . data ( 'id-selector' ) ) . removeClass ( 'hide' ) ;
} else {
$ ( $ ( this ) . data ( 'id-selector' ) ) . addClass ( 'hide' ) ;
}
} ) ;
if ( label _ids . length == 0 ) {
$no _select . removeClass ( 'hide' ) ;
} else {
$no _select . addClass ( 'hide' ) ;
}
$ ( $ ( this ) . parent ( ) . data ( 'id' ) ) . val ( label _ids ) ;
return false ;
} ) ;
2015-08-14 19:42:43 +03:00
$label _menu . find ( '.no-select.item' ) . click ( function ( ) {
if ( has _label _update _action ) {
updateIssueMeta ( $label _menu . data ( 'update-url' ) , "clear" , '' ) ;
}
2015-08-10 13:57:57 +03:00
$ ( this ) . parent ( ) . find ( '.item' ) . each ( function ( ) {
$ ( this ) . removeClass ( 'checked' ) ;
$ ( this ) . find ( '.octicon' ) . removeClass ( 'octicon-check' ) ;
} ) ;
$list . find ( '.item' ) . each ( function ( ) {
$ ( this ) . addClass ( 'hide' ) ;
} ) ;
$no _select . removeClass ( 'hide' ) ;
$ ( $ ( this ) . parent ( ) . data ( 'id' ) ) . val ( '' ) ;
} ) ;
2015-08-10 16:47:23 +03:00
function selectItem ( select _id , input _id ) {
var $menu = $ ( select _id + ' .menu' ) ;
2015-09-05 21:11:05 +03:00
var $list = $ ( '.ui' + select _id + '.list' ) ;
2015-08-14 19:42:43 +03:00
var has _update _action = $menu . data ( 'action' ) == 'update' ;
2015-08-10 16:47:23 +03:00
$menu . find ( '.item:not(.no-select)' ) . click ( function ( ) {
$ ( this ) . parent ( ) . find ( '.item' ) . each ( function ( ) {
$ ( this ) . removeClass ( 'selected active' )
} ) ;
$ ( this ) . addClass ( 'selected active' ) ;
2015-08-14 19:42:43 +03:00
if ( has _update _action ) {
updateIssueMeta ( $menu . data ( 'update-url' ) , '' , $ ( this ) . data ( 'id' ) ) ;
}
2015-08-10 16:47:23 +03:00
switch ( input _id ) {
case '#milestone_id' :
$list . find ( '.selected' ) . html ( '<a class="item" href=' + $ ( this ) . data ( 'href' ) + '>' +
$ ( this ) . text ( ) + '</a>' ) ;
break ;
case '#assignee_id' :
$list . find ( '.selected' ) . html ( '<a class="item" href=' + $ ( this ) . data ( 'href' ) + '>' +
'<img class="ui avatar image" src=' + $ ( this ) . data ( 'avatar' ) + '>' +
$ ( this ) . text ( ) + '</a>' ) ;
}
$ ( '.ui' + select _id + '.list .no-select' ) . addClass ( 'hide' ) ;
$ ( input _id ) . val ( $ ( this ) . data ( 'id' ) ) ;
2015-08-10 13:57:57 +03:00
} ) ;
2015-08-10 16:47:23 +03:00
$menu . find ( '.no-select.item' ) . click ( function ( ) {
$ ( this ) . parent ( ) . find ( '.item:not(.no-select)' ) . each ( function ( ) {
$ ( this ) . removeClass ( 'selected active' )
} ) ;
2015-08-10 13:57:57 +03:00
2015-08-14 19:42:43 +03:00
if ( has _update _action ) {
updateIssueMeta ( $menu . data ( 'update-url' ) , '' , '' ) ;
}
2015-08-10 16:47:23 +03:00
$list . find ( '.selected' ) . html ( '' ) ;
$list . find ( '.no-select' ) . removeClass ( 'hide' ) ;
$ ( input _id ) . val ( '' ) ;
2015-08-10 13:57:57 +03:00
} ) ;
2015-08-10 16:47:23 +03:00
}
2015-08-10 13:57:57 +03:00
2015-08-10 16:47:23 +03:00
// Milestone and assignee
selectItem ( '.select-milestone' , '#milestone_id' ) ;
selectItem ( '.select-assignee' , '#assignee_id' ) ;
2015-08-10 13:57:57 +03:00
}
2015-07-07 20:09:03 +03:00
function initInstall ( ) {
if ( $ ( '.install' ) . length == 0 ) {
return ;
}
// Database type change detection.
$ ( "#db_type" ) . change ( function ( ) {
2015-09-13 16:51:51 +03:00
var sqlite _default = 'data/gogs.db' ;
var tidb _default = 'data/gogs_tidb' ;
2015-09-11 00:11:41 +03:00
var db _type = $ ( this ) . val ( ) ;
2015-09-06 23:31:22 +03:00
if ( db _type === "SQLite3" || db _type === "TiDB" ) {
2015-07-07 20:09:03 +03:00
$ ( '#sql_settings' ) . hide ( ) ;
$ ( '#pgsql_settings' ) . hide ( ) ;
$ ( '#sqlite_settings' ) . show ( ) ;
2015-09-13 16:51:51 +03:00
if ( db _type === "SQLite3" && $ ( '#db_path' ) . val ( ) == tidb _default ) {
$ ( '#db_path' ) . val ( sqlite _default ) ;
} else if ( db _type === "TiDB" && $ ( '#db_path' ) . val ( ) == sqlite _default ) {
$ ( '#db_path' ) . val ( tidb _default ) ;
}
2015-07-07 20:09:03 +03:00
return ;
}
var mysql _default = '127.0.0.1:3306' ;
var postgres _default = '127.0.0.1:5432' ;
$ ( '#sqlite_settings' ) . hide ( ) ;
$ ( '#sql_settings' ) . show ( ) ;
if ( db _type === "PostgreSQL" ) {
$ ( '#pgsql_settings' ) . show ( ) ;
if ( $ ( '#db_host' ) . val ( ) == mysql _default ) {
$ ( '#db_host' ) . val ( postgres _default ) ;
}
} else {
$ ( '#pgsql_settings' ) . hide ( ) ;
if ( $ ( '#db_host' ) . val ( ) == postgres _default ) {
$ ( '#db_host' ) . val ( mysql _default ) ;
}
}
} ) ;
2015-08-29 19:22:26 +03:00
$ ( '#offline-mode input' ) . change ( function ( ) {
if ( $ ( this ) . is ( ':checked' ) ) {
$ ( '#disable-gravatar' ) . checkbox ( 'check' ) ;
}
} ) ;
2015-09-13 19:14:32 +03:00
$ ( '#disable-registration input' ) . change ( function ( ) {
if ( $ ( this ) . is ( ':checked' ) ) {
$ ( '#enable-captcha' ) . checkbox ( 'uncheck' ) ;
}
} ) ;
$ ( '#enable-captcha input' ) . change ( function ( ) {
if ( $ ( this ) . is ( ':checked' ) ) {
$ ( '#disable-registration' ) . checkbox ( 'uncheck' ) ;
}
} ) ;
2015-09-05 21:11:05 +03:00
}
2015-07-07 20:09:03 +03:00
2015-07-24 18:13:42 +03:00
function initRepository ( ) {
2015-07-24 16:02:49 +03:00
if ( $ ( '.repository' ) . length == 0 ) {
return ;
}
2015-08-31 08:36:31 +03:00
// Options
if ( $ ( '.repository.settings.options' ) . length > 0 ) {
$ ( '#repo_name' ) . keyup ( function ( ) {
var $prompt _span = $ ( '#repo-name-change-prompt' ) ;
2015-09-01 16:37:41 +03:00
if ( $ ( this ) . val ( ) . toString ( ) . toLowerCase ( ) != $ ( this ) . data ( 'repo-name' ) . toString ( ) . toLowerCase ( ) ) {
2015-08-31 08:36:31 +03:00
$prompt _span . show ( ) ;
2015-08-31 11:10:28 +03:00
} else {
2015-08-31 08:36:31 +03:00
$prompt _span . hide ( ) ;
}
} ) ;
}
2015-07-24 18:13:42 +03:00
// Labels
2015-08-05 10:24:26 +03:00
if ( $ ( '.repository.labels' ) . length > 0 ) {
2015-08-09 17:45:38 +03:00
// Create label
var $new _label _panel = $ ( '.new-label.segment' ) ;
$ ( '.new-label.button' ) . click ( function ( ) {
$new _label _panel . show ( ) ;
} ) ;
$ ( '.new-label.segment .cancel' ) . click ( function ( ) {
$new _label _panel . hide ( ) ;
} ) ;
2015-08-05 10:24:26 +03:00
$ ( '.color-picker' ) . each ( function ( ) {
$ ( this ) . minicolors ( ) ;
} ) ;
$ ( '.precolors .color' ) . click ( function ( ) {
2015-09-05 21:11:05 +03:00
var color _hex = $ ( this ) . data ( 'color-hex' ) ;
2015-08-05 10:24:26 +03:00
$ ( '.color-picker' ) . val ( color _hex ) ;
$ ( '.minicolors-swatch-color' ) . css ( "background-color" , color _hex ) ;
} ) ;
$ ( '.edit-label-button' ) . click ( function ( ) {
$ ( '#label-modal-id' ) . val ( $ ( this ) . data ( 'id' ) ) ;
2015-08-09 17:45:38 +03:00
$ ( '.edit-label .new-label-input' ) . val ( $ ( this ) . data ( 'title' ) ) ;
2015-09-18 13:18:31 +03:00
$ ( '.edit-label .color-picker' ) . val ( $ ( this ) . data ( 'color' ) ) ;
2015-08-05 10:24:26 +03:00
$ ( '.minicolors-swatch-color' ) . css ( "background-color" , $ ( this ) . data ( 'color' ) ) ;
$ ( '.edit-label.modal' ) . modal ( {
onApprove : function ( ) {
$ ( '.edit-label.form' ) . submit ( ) ;
}
} ) . modal ( 'show' ) ;
return false ;
} ) ;
2015-07-24 16:02:49 +03:00
}
2015-08-05 10:24:26 +03:00
// Milestones
2015-08-05 15:23:08 +03:00
if ( $ ( '.repository.milestones' ) . length > 0 ) {
}
2015-08-05 10:24:26 +03:00
if ( $ ( '.repository.new.milestone' ) . length > 0 ) {
2015-09-05 21:11:05 +03:00
var $datepicker = $ ( '.milestone.datepicker' ) ;
2015-08-05 10:24:26 +03:00
$datepicker . datetimepicker ( {
lang : $datepicker . data ( 'lang' ) ,
inline : true ,
timepicker : false ,
startDate : $datepicker . data ( 'start-date' ) ,
2015-08-05 13:26:18 +03:00
formatDate : 'Y-m-d' ,
2015-08-05 10:24:26 +03:00
onSelectDate : function ( ct ) {
2015-08-05 13:26:18 +03:00
$ ( '#deadline' ) . val ( ct . dateFormat ( 'Y-m-d' ) ) ;
2015-07-24 18:13:42 +03:00
}
2015-08-05 10:24:26 +03:00
} ) ;
$ ( '#clear-date' ) . click ( function ( ) {
$ ( '#deadline' ) . val ( '' ) ;
return false ;
} ) ;
2015-08-06 17:48:11 +03:00
}
2015-08-13 18:21:43 +03:00
// Issues
if ( $ ( '.repository.view.issue' ) . length > 0 ) {
2015-08-19 18:14:57 +03:00
// Edit issue title
var $issue _title = $ ( '#issue-title' ) ;
var $edit _input = $ ( '#edit-title-input input' ) ;
var editTitleToggle = function ( ) {
$issue _title . toggle ( ) ;
$ ( '.not-in-edit' ) . toggle ( ) ;
$ ( '#edit-title-input' ) . toggle ( ) ;
$ ( '.in-edit' ) . toggle ( ) ;
$edit _input . focus ( ) ;
return false ;
2015-09-05 21:11:05 +03:00
} ;
2015-08-19 18:14:57 +03:00
$ ( '#edit-title' ) . click ( editTitleToggle ) ;
$ ( '#cancel-edit-title' ) . click ( editTitleToggle ) ;
$ ( '#save-edit-title' ) . click ( editTitleToggle ) .
click ( function ( ) {
if ( $edit _input . val ( ) . length == 0 ||
$edit _input . val ( ) == $issue _title . text ( ) ) {
$edit _input . val ( $issue _title . text ( ) ) ;
return false ;
}
$ . post ( $ ( this ) . data ( 'update-url' ) , {
"_csrf" : csrf ,
"title" : $edit _input . val ( )
} ,
function ( data ) {
$edit _input . val ( data . title ) ;
$issue _title . text ( data . title ) ;
} ) ;
return false ;
} ) ;
2015-08-19 23:31:28 +03:00
// Edit issue or comment content
$ ( '.edit-content' ) . click ( function ( ) {
var $segment = $ ( this ) . parent ( ) . parent ( ) . next ( ) ;
var $edit _content _zone = $segment . find ( '.edit-content-zone' ) ;
var $render _content = $segment . find ( '.render-content' ) ;
var $raw _content = $segment . find ( '.raw-content' ) ;
var $textarea ;
// Setup new form
if ( $edit _content _zone . html ( ) . length == 0 ) {
$edit _content _zone . html ( $ ( '#edit-content-form' ) . html ( ) ) ;
$textarea = $segment . find ( 'textarea' ) ;
// Give new write/preview data-tab name to distinguish from others
var $edit _content _form = $edit _content _zone . find ( '.ui.comment.form' ) ;
var $tabular _menu = $edit _content _form . find ( '.tabular.menu' ) ;
$tabular _menu . attr ( 'data-write' , $edit _content _zone . data ( 'write' ) ) ;
$tabular _menu . attr ( 'data-preview' , $edit _content _zone . data ( 'preview' ) ) ;
$tabular _menu . find ( '.write.item' ) . attr ( 'data-tab' , $edit _content _zone . data ( 'write' ) ) ;
$tabular _menu . find ( '.preview.item' ) . attr ( 'data-tab' , $edit _content _zone . data ( 'preview' ) ) ;
$edit _content _form . find ( '.write.segment' ) . attr ( 'data-tab' , $edit _content _zone . data ( 'write' ) ) ;
$edit _content _form . find ( '.preview.segment' ) . attr ( 'data-tab' , $edit _content _zone . data ( 'preview' ) ) ;
initCommentPreviewTab ( $edit _content _form ) ;
$edit _content _zone . find ( '.cancel.button' ) . click ( function ( ) {
$render _content . show ( ) ;
$edit _content _zone . hide ( ) ;
} ) ;
$edit _content _zone . find ( '.save.button' ) . click ( function ( ) {
$render _content . show ( ) ;
$edit _content _zone . hide ( ) ;
$ . post ( $edit _content _zone . data ( 'update-url' ) , {
"_csrf" : csrf ,
"content" : $textarea . val ( ) ,
"context" : $edit _content _zone . data ( 'context' )
} ,
function ( data ) {
if ( data . length == 0 ) {
$render _content . html ( $ ( '#no-content' ) . html ( ) ) ;
} else {
$render _content . html ( data . content ) ;
2015-09-05 21:18:02 +03:00
emojify . run ( $render _content [ 0 ] ) ;
2015-08-19 23:31:28 +03:00
}
} ) ;
} ) ;
} else {
$textarea = $segment . find ( 'textarea' ) ;
}
// Show write/preview tab and copy raw content as needed
$edit _content _zone . show ( ) ;
$render _content . hide ( ) ;
if ( $textarea . val ( ) . length == 0 ) {
$textarea . val ( $raw _content . text ( ) ) ;
}
$textarea . focus ( ) ;
return false ;
} ) ;
2015-08-19 18:14:57 +03:00
// Change status
2015-08-13 18:21:43 +03:00
var $status _btn = $ ( '#status-button' ) ;
$ ( '#content' ) . keyup ( function ( ) {
if ( $ ( this ) . val ( ) . length == 0 ) {
$status _btn . text ( $status _btn . data ( 'status' ) )
} else {
$status _btn . text ( $status _btn . data ( 'status-and-comment' ) )
}
} ) ;
$status _btn . click ( function ( ) {
$ ( '#status' ) . val ( $status _btn . data ( 'status-val' ) ) ;
$ ( '#comment-form' ) . submit ( ) ;
} )
}
2015-08-20 19:18:30 +03:00
// Diff
if ( $ ( '.repository.diff' ) . length > 0 ) {
var $counter = $ ( '.diff-counter' ) ;
if ( $counter . length < 1 ) {
return ;
}
$counter . each ( function ( i , item ) {
var $item = $ ( item ) ;
var addLine = $item . find ( 'span[data-line].add' ) . data ( "line" ) ;
var delLine = $item . find ( 'span[data-line].del' ) . data ( "line" ) ;
var addPercent = parseFloat ( addLine ) / ( parseFloat ( addLine ) + parseFloat ( delLine ) ) * 100 ;
$item . find ( ".bar .add" ) . css ( "width" , addPercent + "%" ) ;
} ) ;
}
2015-08-08 17:43:14 +03:00
// Pull request
if ( $ ( '.repository.compare.pull' ) . length > 0 ) {
2015-09-05 21:11:05 +03:00
var $branch _dropdown = $ ( '.choose.branch .dropdown' ) ;
2015-08-09 20:04:23 +03:00
$branch _dropdown . dropdown ( {
2015-08-08 17:43:14 +03:00
fullTextSearch : true ,
2015-08-08 18:12:23 +03:00
onChange : function ( text , value , $choice ) {
window . location . href = $choice . data ( 'url' ) ;
2015-08-09 20:04:23 +03:00
} ,
message : { noResults : $branch _dropdown . data ( 'no-results' ) }
2015-08-08 17:43:14 +03:00
} ) ;
2015-08-05 10:24:26 +03:00
}
2015-09-05 21:11:05 +03:00
}
2015-07-24 16:02:49 +03:00
2015-09-06 23:31:22 +03:00
function initOrganization ( ) {
2015-09-06 17:56:31 +03:00
if ( $ ( '.organization' ) . length == 0 ) {
return ;
}
// Options
if ( $ ( '.organization.settings.options' ) . length > 0 ) {
$ ( '#org_name' ) . keyup ( function ( ) {
var $prompt _span = $ ( '#org-name-change-prompt' ) ;
if ( $ ( this ) . val ( ) . toString ( ) . toLowerCase ( ) != $ ( this ) . data ( 'org-name' ) . toString ( ) . toLowerCase ( ) ) {
$prompt _span . show ( ) ;
} else {
$prompt _span . hide ( ) ;
}
} ) ;
}
2015-09-06 23:31:22 +03:00
}
2015-09-06 17:56:31 +03:00
2015-09-06 23:31:22 +03:00
function initUser ( ) {
if ( $ ( '.user' ) . length == 0 ) {
return ;
}
2015-09-06 17:56:31 +03:00
2015-09-06 23:31:22 +03:00
// Options
if ( $ ( '.user.settings.profile' ) . length > 0 ) {
$ ( '#username' ) . keyup ( function ( ) {
var $prompt _span = $ ( '#name-change-prompt' ) ;
if ( $ ( this ) . val ( ) . toString ( ) . toLowerCase ( ) != $ ( this ) . data ( 'name' ) . toString ( ) . toLowerCase ( ) ) {
$prompt _span . show ( ) ;
} else {
$prompt _span . hide ( ) ;
}
} ) ;
}
2015-09-06 17:56:31 +03:00
}
2015-08-28 18:36:13 +03:00
function initWebhook ( ) {
if ( $ ( '.new.webhook' ) . length == 0 ) {
return ;
}
$ ( '.events.checkbox input' ) . change ( function ( ) {
if ( $ ( this ) . is ( ':checked' ) ) {
$ ( '.events.fields' ) . show ( ) ;
}
} ) ;
$ ( '.non-events.checkbox input' ) . change ( function ( ) {
if ( $ ( this ) . is ( ':checked' ) ) {
$ ( '.events.fields' ) . hide ( ) ;
}
} ) ;
}
2015-09-11 00:11:41 +03:00
function initAdmin ( ) {
if ( $ ( '.admin' ) . length == 0 ) {
return ;
}
2015-09-13 16:51:51 +03:00
// New user
2015-09-13 18:07:21 +03:00
if ( $ ( '.admin.new.user' ) . length > 0 ||
$ ( '.admin.edit.user' ) . length > 0 ) {
2015-09-13 16:51:51 +03:00
$ ( '#login_type' ) . change ( function ( ) {
if ( $ ( this ) . val ( ) . substring ( 0 , 1 ) == '0' ) {
$ ( '#login_name' ) . removeAttr ( 'required' ) ;
$ ( '.non-local' ) . hide ( ) ;
$ ( '.local' ) . show ( ) ;
$ ( '#user_name' ) . focus ( ) ;
2015-09-13 18:07:21 +03:00
if ( $ ( this ) . data ( 'password' ) == "required" ) {
$ ( '#password' ) . attr ( 'required' , 'required' ) ;
}
2015-09-13 16:51:51 +03:00
} else {
$ ( '#login_name' ) . attr ( 'required' , 'required' ) ;
$ ( '.non-local' ) . show ( ) ;
$ ( '.local' ) . hide ( ) ;
$ ( '#login_name' ) . focus ( ) ;
2015-09-13 18:07:21 +03:00
$ ( '#password' ) . removeAttr ( 'required' ) ;
2015-09-13 16:51:51 +03:00
}
} ) ;
}
2015-09-11 00:11:41 +03:00
// New authentication
if ( $ ( '.admin.new.authentication' ) . length > 0 ) {
$ ( '#auth_type' ) . change ( function ( ) {
2015-09-13 16:51:51 +03:00
$ ( '.ldap' ) . hide ( ) ;
$ ( '.dldap' ) . hide ( ) ;
$ ( '.smtp' ) . hide ( ) ;
$ ( '.pam' ) . hide ( ) ;
2015-09-11 00:11:41 +03:00
var auth _type = $ ( this ) . val ( ) ;
switch ( auth _type ) {
case '2' : // LDAP
$ ( '.ldap' ) . show ( ) ;
break ;
case '3' : // SMTP
$ ( '.smtp' ) . show ( ) ;
break ;
case '4' : // PAM
$ ( '.pam' ) . show ( ) ;
break ;
case '5' : // LDAP
$ ( '.dldap' ) . show ( ) ;
break ;
}
} ) ;
}
}
2015-03-07 23:12:13 +03:00
$ ( document ) . ready ( function ( ) {
2015-07-24 18:13:42 +03:00
csrf = $ ( 'meta[name=_csrf]' ) . attr ( "content" ) ;
2015-09-06 13:57:25 +03:00
suburl = $ ( 'meta[name=_suburl]' ) . attr ( "content" ) ;
2015-07-24 18:13:42 +03:00
2015-08-14 19:42:43 +03:00
// Show exact time
$ ( '.time-since' ) . each ( function ( ) {
$ ( this ) . addClass ( 'poping up' ) .
attr ( 'data-content' , $ ( this ) . attr ( 'title' ) ) .
attr ( 'data-variation' , 'inverted tiny' ) .
attr ( 'title' , '' ) ;
} ) ;
2015-07-07 20:09:03 +03:00
// Semantic UI modules.
$ ( '.dropdown' ) . dropdown ( ) ;
2015-07-24 11:42:47 +03:00
$ ( '.jump.dropdown' ) . dropdown ( {
2015-08-10 17:38:21 +03:00
action : 'hide' ,
2015-08-11 07:44:14 +03:00
onShow : function ( ) {
2015-08-10 17:38:21 +03:00
$ ( '.poping.up' ) . popup ( 'hide' ) ;
}
2015-07-23 23:50:05 +03:00
} ) ;
2015-07-07 20:09:03 +03:00
$ ( '.slide.up.dropdown' ) . dropdown ( {
2015-03-07 23:12:13 +03:00
transition : 'slide up'
} ) ;
2015-07-08 14:47:56 +03:00
$ ( '.ui.accordion' ) . accordion ( ) ;
$ ( '.ui.checkbox' ) . checkbox ( ) ;
2015-08-03 12:42:09 +03:00
$ ( '.ui.progress' ) . progress ( {
showActivity : false
} ) ;
2015-07-09 08:17:48 +03:00
$ ( '.poping.up' ) . popup ( ) ;
2015-08-10 17:38:21 +03:00
$ ( '.top.menu .poping.up' ) . popup ( {
2015-08-11 07:44:14 +03:00
onShow : function ( ) {
if ( $ ( '.top.menu .menu.transition' ) . hasClass ( 'visible' ) ) {
2015-08-10 17:38:21 +03:00
return false ;
}
}
} ) ;
2015-08-27 18:06:14 +03:00
$ ( '.tabular.menu .item' ) . tab ( ) ;
$ ( '.toggle.button' ) . click ( function ( ) {
$ ( $ ( this ) . data ( 'target' ) ) . slideToggle ( 100 ) ;
} ) ;
2015-07-07 20:09:03 +03:00
2015-08-27 18:58:50 +03:00
// Highlight JS
2015-08-28 09:24:05 +03:00
if ( typeof hljs != 'undefined' ) {
hljs . initHighlightingOnLoad ( ) ;
}
2015-08-27 18:58:50 +03:00
2015-08-11 12:54:00 +03:00
// Dropzone
if ( $ ( '#dropzone' ) . length > 0 ) {
// Disable auto discover for all elements:
Dropzone . autoDiscover = false ;
var filenameDict = { } ;
var $dropz = $ ( '#dropzone' ) ;
$dropz . dropzone ( {
url : $dropz . data ( 'upload-url' ) ,
headers : { "X-Csrf-Token" : csrf } ,
2015-08-11 18:24:40 +03:00
maxFiles : $dropz . data ( 'max-file' ) ,
2015-08-11 12:54:00 +03:00
maxFilesize : $dropz . data ( 'max-size' ) ,
acceptedFiles : $dropz . data ( 'accepts' ) ,
addRemoveLinks : true ,
dictDefaultMessage : $dropz . data ( 'default-message' ) ,
dictInvalidFileType : $dropz . data ( 'invalid-input-type' ) ,
dictFileTooBig : $dropz . data ( 'file-too-big' ) ,
dictRemoveFile : $dropz . data ( 'remove-file' ) ,
init : function ( ) {
this . on ( "success" , function ( file , data ) {
filenameDict [ file . name ] = data . uuid ;
2015-08-11 18:24:40 +03:00
$ ( '.attachments' ) . append ( '<input id="' + data . uuid + '" name="attachments" type="hidden" value="' + data . uuid + '">' ) ;
2015-09-05 21:11:05 +03:00
} ) ;
2015-08-11 12:54:00 +03:00
this . on ( "removedfile" , function ( file ) {
2015-08-11 18:24:40 +03:00
if ( file . name in filenameDict ) {
$ ( '#' + filenameDict [ file . name ] ) . remove ( ) ;
}
2015-08-11 12:54:00 +03:00
} )
}
} ) ;
}
2015-08-09 10:23:02 +03:00
2015-09-05 21:11:05 +03:00
// Emojify
emojify . setConfig ( {
2015-09-06 13:57:25 +03:00
img _dir : suburl + '/img/emoji'
2015-09-05 21:11:05 +03:00
} ) ;
2015-09-06 13:57:25 +03:00
$ ( '.emojify' ) . each ( function ( ) {
2015-09-05 21:11:05 +03:00
emojify . run ( $ ( this ) [ 0 ] ) ;
} ) ;
2015-08-05 15:23:08 +03:00
// Helpers.
$ ( '.delete-button' ) . click ( function ( ) {
var $this = $ ( this ) ;
$ ( '.delete.modal' ) . modal ( {
closable : false ,
onApprove : function ( ) {
2015-08-18 21:49:44 +03:00
if ( $this . data ( 'type' ) == "form" ) {
$ ( $this . data ( 'form' ) ) . submit ( ) ;
return ;
}
2015-08-05 15:23:08 +03:00
$ . post ( $this . data ( 'url' ) , {
"_csrf" : csrf ,
"id" : $this . data ( "id" )
} ) . done ( function ( data ) {
window . location . href = data . redirect ;
} ) ;
}
} ) . modal ( 'show' ) ;
return false ;
} ) ;
2015-08-18 22:36:16 +03:00
$ ( '.show-panel.button' ) . click ( function ( ) {
$ ( $ ( this ) . data ( 'panel' ) ) . show ( ) ;
} ) ;
2015-08-29 22:21:59 +03:00
$ ( '.show-modal.button' ) . click ( function ( ) {
$ ( $ ( this ) . data ( 'modal' ) ) . modal ( 'show' ) ;
} ) ;
2015-08-05 15:23:08 +03:00
2015-08-10 13:57:57 +03:00
initCommentForm ( ) ;
2015-07-07 20:09:03 +03:00
initInstall ( ) ;
2015-07-24 16:02:49 +03:00
initRepository ( ) ;
2015-09-06 17:56:31 +03:00
initOrganization ( ) ;
2015-09-06 23:31:22 +03:00
initUser ( ) ;
2015-08-28 18:36:13 +03:00
initWebhook ( ) ;
2015-09-11 00:11:41 +03:00
initAdmin ( ) ;
2015-03-07 23:12:13 +03:00
} ) ;