@@ -504,6 +504,7 @@ var ui = {
504504 import : {
505505 dropbox : $ ( ".ui-import-dropbox" ) ,
506506 googleDrive : $ ( ".ui-import-google-drive" ) ,
507+ gist : $ ( ".ui-import-gist" ) ,
507508 clipboard : $ ( ".ui-import-clipboard" )
508509 } ,
509510 beta : {
@@ -1181,6 +1182,10 @@ function buildImportFromGoogleDrive() {
11811182 }
11821183 } ) ;
11831184}
1185+ //import from gist
1186+ ui . toolbar . import . gist . click ( function ( ) {
1187+ //na
1188+ } ) ;
11841189//import from clipboard
11851190ui . toolbar . import . clipboard . click ( function ( ) {
11861191 //na
@@ -1283,6 +1288,7 @@ function applyScrollspyActive(top, headerMap, headers, target, offset) {
12831288 active . closest ( 'li' ) . addClass ( 'active' ) . parent ( ) . closest ( 'li' ) . addClass ( 'active' ) . parent ( ) . closest ( 'li' ) . addClass ( 'active' ) ;
12841289}
12851290
1291+ // clipboard modal
12861292//fix for wrong autofocus
12871293$ ( '#clipboardModal' ) . on ( 'shown.bs.modal' , function ( ) {
12881294 $ ( '#clipboardModal' ) . blur ( ) ;
@@ -1298,10 +1304,55 @@ $("#clipboardModalConfirm").click(function () {
12981304 $ ( "#clipboardModalContent" ) . html ( '' ) ;
12991305 }
13001306} ) ;
1307+
1308+ // refresh modal
13011309$ ( '#refreshModalRefresh' ) . click ( function ( ) {
13021310 location . reload ( true ) ;
13031311} ) ;
13041312
1313+ // gist import modal
1314+ $ ( "#gistImportModalClear" ) . click ( function ( ) {
1315+ $ ( "#gistImportModalContent" ) . val ( '' ) ;
1316+ } ) ;
1317+ $ ( "#gistImportModalConfirm" ) . click ( function ( ) {
1318+ var gisturl = $ ( "#gistImportModalContent" ) . val ( ) ;
1319+ if ( ! gisturl ) return ;
1320+ $ ( '#gistImportModal' ) . modal ( 'hide' ) ;
1321+ $ ( "#gistImportModalContent" ) . val ( '' ) ;
1322+ if ( ! isValidURL ( gisturl ) ) {
1323+ showMessageModal ( '<i class="fa fa-github"></i> Import from Gist' , 'Not a valid URL :(' , '' , '' , false ) ;
1324+ return ;
1325+ } else {
1326+ var hostname = url ( 'hostname' , gisturl )
1327+ if ( hostname !== 'gist.github.com' ) {
1328+ showMessageModal ( '<i class="fa fa-github"></i> Import from Gist' , 'Not a valid Gist URL :(' , '' , '' , false ) ;
1329+ } else {
1330+ ui . spinner . show ( ) ;
1331+ $ . get ( 'https://api.github.com/gists/' + url ( '-1' , gisturl ) )
1332+ . success ( function ( data ) {
1333+ if ( data . files ) {
1334+ var contents = "" ;
1335+ Object . keys ( data . files ) . forEach ( function ( key ) {
1336+ contents += key ;
1337+ contents += '\n---\n' ;
1338+ contents += data . files [ key ] . content ;
1339+ contents += '\n\n' ;
1340+ } ) ;
1341+ replaceAll ( contents ) ;
1342+ } else {
1343+ showMessageModal ( '<i class="fa fa-github"></i> Import from Gist' , 'Unable to fetch gist files :(' , '' , '' , false ) ;
1344+ }
1345+ } )
1346+ . error ( function ( data ) {
1347+ showMessageModal ( '<i class="fa fa-github"></i> Import from Gist' , 'Not a valid Gist URL :(' , '' , JSON . stringify ( data ) , false ) ;
1348+ } )
1349+ . complete ( function ( ) {
1350+ ui . spinner . hide ( ) ;
1351+ } ) ;
1352+ }
1353+ }
1354+ } ) ;
1355+
13051356function parseToEditor ( data ) {
13061357 var parsed = toMarkdown ( data ) ;
13071358 if ( parsed )
@@ -1320,9 +1371,9 @@ function replaceAll(data) {
13201371
13211372function importFromUrl ( url ) {
13221373 //console.log(url);
1323- if ( url == null ) return ;
1374+ if ( ! url ) return ;
13241375 if ( ! isValidURL ( url ) ) {
1325- showMessageModal ( '<i class="fa fa-cloud-download"></i> Import from URL' , 'Not valid URL :(' , '' , '' , false ) ;
1376+ showMessageModal ( '<i class="fa fa-cloud-download"></i> Import from URL' , 'Not a valid URL :(' , '' , '' , false ) ;
13261377 return ;
13271378 }
13281379 $ . ajax ( {
@@ -1336,7 +1387,7 @@ function importFromUrl(url) {
13361387 replaceAll ( data ) ;
13371388 } ,
13381389 error : function ( data ) {
1339- showMessageModal ( '<i class="fa fa-cloud-download"></i> Import from URL' , 'Import failed :(' , '' , data , false ) ;
1390+ showMessageModal ( '<i class="fa fa-cloud-download"></i> Import from URL' , 'Import failed :(' , '' , JSON . stringify ( data ) , false ) ;
13401391 } ,
13411392 complete : function ( ) {
13421393 ui . spinner . hide ( ) ;
0 commit comments