"Allens nur noch Seelenadel": The Prussian nobility and the Imperial German Navy 1888-1918. Herwig, Holder H. \n... citation needs added
A Critical Analysis of the Allied Blockade of Germany, 1914-1918. Birrer, Christopher.
A Sailor of Austria:\nIn which, without really intending to, Otto Prohaska becomes Official War Hero No. 27 of the Habsburg Empire\nJohn Biggins\n~McBooks Press 2005
Above the lines : the aces and fighter units of the German Air Service, Naval Air Service and Flanders Marine Corps, 1914-1918. Franks, Norman L. R.; Bailey, Frank W.; Guest, Russell.\nLondon : Grub Street, 1993
Admiral von Hipper. ~Waldeyer-Hartz, Hugo von; Holt, Frederic Appleby.\nLondon, Rich & Cowan, 1933
Admiral von Hipper, the inconvenient hero. Philbin, Tobias R.\nAmsterdam : Gruner, 1982
Alfred von Tirpitz and German right-wing politics, 1914-1930. Scheck, Raffael, 1960-\nAtlantic Highlands, N.J. : Humanities Press, 1998
The Arms of Krupp 1587-1968 (hardcover), 1968\nThe Arms of Krupp: The Rise and Fall of the Industrial Dynasty that Armed Germany at War (paperback), reprint 2003. William Manchester.
Autumn of the U-boats. Jones, Geoffrey Patrick.\nLondon : W. Kimber, 1984
http://forum.axishistory.com/viewforum.php?f=72&sid=68dbefd292f452b43ca8d27cc2b01466
Battleship building and party politics in Germany, 1894-1901 : a cross-section of the political, social and ideological preconditions of German imperialism. Kehr, Eckart, 1902-1933.\nChicago : University of Chicago Press, 1975, 1973
Battleships of the Scharnhorst Class : the Scharnhorst and Gneisenau : the backbone of the German surface forces at the outbreak of war. Koop, Gerhard.; Schmolke, ~Klaus-Peter.\nLondon : Greenhill Books ; Annapolis, Md. : Naval Institute Press, 1999
The Blooding of the Guns (Nicholas Everard). Alexander Fullerton
Lawrence Burr. British Battlecruisers 1914-18\nIllustrated by Tony Bryan.\nOsprey Publishing 2006\n
Building the Kaiser’s Navy : the Imperial Naval Office and German industry in the von Tirpitz era, 1890-1919. Weir, Gary E.\nAnnapolis, Md. : Naval Institute Press, 1992
By order of the Kaiser : Otto von Diederichs and the rise of the Imperial German Navy, 1865-1902 . Gottschall, Terrell D\nAnnapolis, Md. : Naval Institute Press, 2003
Castles of steel : Britain, Germany, and the winning of the Great War at sea. Massie, Robert K.\nNew York : Random House, 2003
The collapse of power; mutiny in the High Seas Fleet. Woodward, David, 1909-\nLondon, A. Barker 1973
The cruise of the Sea Eagle : the amazing true story of imperial Germany’s gentleman pirate. Pardoe, Blaine Lee.\nGuilford, Conn. : Lyons Press, 2005
Death of a fleet, 1917-1919. Schubert, Paul; Gibson, Langhorne\nNew York, ~Coward-McCann, inc., 1932
[[Kriegsmarine 1919]] [[Topics (Tagcloud)]]
Defeat at the Falklands : Germany’s East Asia Squadron 1914. Hoyt, Edwin Palmer.\nLondon : R. Hale, 1981
Paschall R. The Defeat of Imperial Germany 1917-1918.
John Brooks. Dreadnought Gunnery And The Battle Of Jutland: The Question of Fire Control\nContributor Andrew Lambert\nRoutledge 2005\n
E-boats and coastal craft : a selection of German wartime photographs from the Budesarchiv, Koblenz. Beaver, Paul.\nTucson, Az. : Aztex Corp., 1981
The ~Emden-Ayesha adventure : German raiders in the South Seas and beyond, 1914. Mucke, Hellmuth von\nAnnapolis, Md. : Naval Institute Press, 2000, 1916
Bird KW. Erich Raeder: Admiral of the Third Reich. \nNaval Institute Press, Annapolois, MD. 2006.
The escape of the Goeben; prelude to Gallipoli. ~McLaughlin, Redmond.\n[London] Seeley Service 1974
Filmfront Weimar: Representations of the First World War in German films of the Weimar Republic. Kester, Bernadette\nAmsterdam University Press, 2003
German Army, Navy uniforms and insignia, 1871-1918. W. H. Tantum, IV & E. J. Hoffschmidt, eds.\nOld Greenwich, Conn., WE, inc. [1969, c1968]
http://germanhistorydocs.ghi-dc.org/
The German naval mutinies of World War I. Horn, Daniel.\nNew Brunswick, N.J., Rutgers University Press 1969
The German naval officer corps; a social and political history, 1890-1918. Herwig, Holger H.\nOxford, Clarendon Press, 1973
Gröner E. German Warships 1815-1945. Volume One: Major Surface Vessels.\nNaval Institute Press, Annapolis MD. 1990 (English Language version)
German capital ships : a selection of German wartime photographs from the Bundesarchiv, Koblenz. Beaver, Paul, Corp. Germany (West)., Bundesarchiv.\nCambridge [Eng.] : P. Stephens, 1980
German raiders of the South Seas. Robin Bromby.\nSydney: Doubleday, 1985
German raiders : a history of auxiliary cruisers of the German Navy, 1895-1945. Schmalenbach, Paul.\nCambridge [England] : Patrick Stephens, 1979
German sea-power; its rise, progress, and economic basis. Hurd, Archibald, Sir, b. 1869.; Wilcox, E. H.,\nWestport, Conn., Greenwood Press 1971, 1913
German students' war letters. Witkop, Philipp (ed), Wedd AF (trans)\nLondon: Methuen, 1929
German submarines. Lenton, H. T.\nGarden City, N.Y., Doubleday 1965
German warships of World War I . Taylor, John Charles.\nGarden City, N.Y., Doubleday, 1970
German warships of World War I : the Royal Navy’s official guide to the capital ships, cruisers, destroyers, submarines, and small craft, 1914-1918\nAnnapolis, Md. : Naval Institute Press, 1992, 1918
Germany’s high sea fleet in the World War. Scheer, Reinhard, 1863-1928.\nLondon, New York [etc.] Cassell and Company, ltd., 1920\n[[On-line version of Scheer's book | http://www.richthofen.com/scheer/]]
Ghost of the Atlantic : the Kronprinz Wilhelm, 1914-19. Edwin P. Hoyt\nLondon : Barker, c1974.
Graf Spee’s raiders : challenge to the Royal Navy, 1914-1915. Yates, Keith, 1928-\nAnnapolis, Md. : Naval Institute Press, 1995
Grand Admiral. Raeder, Erich\n[New York] : Da Capo Press, 2001, 1960
The grand scuttle : the sinking of the German Fleet at Scapa Flow in 1919. Van der Vat, Dan.\nLondon : Hodder and Stoughton, 1982
Rüger J. The great naval game : Britain and Germany in the age of empire.
The great naval race : the ~Anglo-German naval rivalry, 1900-1914. Padfield, Peter.\nLondon : ~Hart-Davis, ~MacGibbon, 1974
The Guns of Evening\nRonald Bassett, 1980\nBased on the tragedy of the battle-cruiser Invincible, Admiral Hood's flagship and the pride of the RN, blown up 31 May, 1916, at the battle of Jutland. 1026 men were lost, only 6 survived. The novel takes four fictional sailors and traces their lives fr om before the war to the day of calamity.
Handbook of German military and naval aviation (war), 1914-1918\n[London?] : Imperial War Museum, Dept. of Printed Books ; Nashville : Battery Press ; Skokie : Articles of War, 1995, 1919
Frohberg U. (1988). Heat stress and illness patterns among engine room personnel on board warships of the Imperial German Navy (1871-1918). Hamdard Medicus. 31(1), 37-42.
Heavy cruisers of the Admiral Hipper class : Admiral Hipper, Blucher, Prinz Eugen, Seydlitz and Lutzow. Koop, Gerhard.; Schmolke, ~Klaus-Peter.\nLondon : Greenhill ; Annapolis, Md. : Naval Institute Press, 2000
The Imperial and Royal ~Austro-Hungarian Navy. Sokol, Anthony Eugene.\nAnnapolis, U.S. Naval Institute 1968
The Imperial Navy in World War I and its Impact on German Literature. Matthias Fechner.\nGerman Life and Letters 1997; 50:1-7.
Holger H. Herwig, "The Influence of A. T. Mahan upon German Sea Power," in The Influence of History on Mahan: The Proceedings of a Conference Marking the Centenary of Alfred Thayer Mahan's The Influence of Sea Power upon History, 1660-1783, ed. John B. Hattendorf\nNewport, R.I.: Naval War College Press, 1991, pp. 67-80.\n
Jutland : the German perspective. Tarrant, V. E.\nLondon : Cassell, 2001
The Kaiser's Merchant Ships in World War I\nWilliam Lowell Putnam, 2001
The Kaiser’s pirates : German surface raiders in World War One. Walter, John\nAnnapolis, Md. : Naval Institute Press, 1994
Georg von Hase; Arthur Chambers; Frederic Appleby Holt. Kiel and Jutland, by Commander George von Hase ... translated by Arthur Chambers and F.A. Holt.\nLondon, Skeffington & Son [1927]
This is my personal bibliography on the German Imperial Navy (kriegsmarine) to approximately 1919 (with some later materials). I am not a newcomer to research, but am a newcomer to historical research, so I am still coming to terms with the strategies and sources, and there are likely to be omissions. Sooner or later I may start annotating the entries, but for now they contain only enough information that I will be able to find the item, or find out more about it. \n\nTiddler headers are the titles or first words of the title of the book or article (trying to keep them to one per line in the sidebar); look for those under the Timeline or All tab on the right-hand sidebar. Websites may or may not be added, as suits my whim. Tagging will likely evolve over time, but will invariably include the author(s) names and keywords by which I would expect to retrieve each reference; look for those under the Tags tab on the sidebar or in the [[Topics (Tagcloud)]] tiddler. \n\nIf you are looking for an introduction to Tiddlywikis, see http://www.tiddlywiki.com/. This page is hosted at http://www.tiddlyspot.com/.
Krupp and the Imperial German Navy, 1898-1914. Epkenhans, Michael.\nJournal of Military History 2000;64(2):335-369.
The last corsair : the story of the Emden. Dan van der Vat.\nLondon: Hodder and Stoughton, 1983
The last cruise of the Emden . Edwin P. Hoyt\nLondon : White Lion Publishers, 1975 (c1966)\n
Last days of the German fleet. Freiwald, Ludwig; Moore, Martin.\nLondon, Constable and Co. Ltd., 1932
The last gentleman-of-war : the raider exploits of the cruiser Emden. Lochner, R. K.\nAnnapolis, Md. : Naval Institute Press, 1988
“Luxury fleet” : the Imperial German Navy, 1888-1918. Herwig, Holger H.\nLondon ; Boston : Allen & Unwin, 1980
[[Kriegsmarine 1919]]
Vogel, J. Military Folklore, Eigensinn: Folkloric Militarism in Germany and France, 1871-1914 \nCENTRAL EUROPEAN HISTORY 2000; 33(4), 487-504
Owen, Richard. ~Military-Industrial Relations: Krupp and the Imperial Navy Office. In Society and Politics in Wilhelmine Germany, ed Richard J Evans. London: Croom Helm, 1978.
Mutiny on the high seas: the imperial German naval mutinies of World War One. Horn, Daniel.; Horn, Daniel.\nLondon, L. Frewin 1973
Pluschow G. My Escape from Donington Hall, Preceded by an account of the siege of Kiao-Chow in 1915. \nLondon: John Lane, 1922. \nAccount by airman who flew recon over Tsingtao until its fall, escaped overland China, ship to America, captured in America, escaped again back to Germany.\nFrom [[World War I Memories]]
Naval Battles of the First World War. Geoffrey Bennett.\n1968. Classic Penguin, 2001.
The navy and German power politics, 1862-1914. Ivo Nikolai Lambi.\nBoston: Allen & Unwin, 1984
Ehlers L, Gillian E. One Lives to Tell the Tale. \nLondon: Jonathan Cape, 1931. \nSeaman on freighter Java, crew captured by British in Cape Town, interned S African prison camp. Seventeen men survived escape, crossing Africa to German colonial territory.\nFrom [[World War I Memories]]
Osterreichs Kriegsmarine, 1848-1918. Gogg, Karl.\nSalzburg, Stuttgart, Verlag Das ~Bergland-Buch 1967
<!--- More ideas shamesslessly begged, borrowed or stolen from..... Simon Baird, Clint Checketts and Christine Hodges :)) --->\n<!--{{{-->\n<div class='header' macro="gradient vert #00005a #0000ad">\n <div id='topMenu'>\n <span refresh='content' tiddler='MainMenu'></span></div>\n </div>\n</div> \n<div id='sidebar'>\n <div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n <div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n</div>\n<div id='displayArea'>\n <div id='messageArea'></div>\n <div id='tiddlerDisplay'></div>\n</div>\n<!--}}}-->\n
The phantom of Scapa Flow. Korganoff, Alexandre.\nLondon : Allan, 1974
Basisgruppe Wik. Revolution in Rendsburg.\nKiel, 1971?\n
Scapa Flow 1919: the end of the German fleet. Ruge, Friedrich.\nLondon, Allan, 1973
Worldcat search categories\n\nsu:Germany. Kriegsmarine History 20th century.\nsu:Germany. Kriegsmarine History World War, 1914-1918.\nsu:World War, 1914-1918 Naval operations, German.\nsu:World War, 1914-1918 Personal narratives, German.\nsu:Germany. Kriegsmarine Sea life.\n\nFor pulling up fiction - su:World War, 1914-1918 Fiction. su:naval
The ship that changed the world : the escape of the Goeben to the Dardanelles in 1914. Van der Vat, Dan.\nLondon : Hodder & Stoughton, 1985
The ships of the German fleets,1848-1945. Hansen, Hans Jurgen\nNew York : Arco, 1975
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<tiddler TspotSidebar>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>
being an attempt to wrangle an exploding bibliography
Kriegsmarine 1919
Sixty Minutes for St. George: The Everard Naval Series: Volume II (Everard Naval) (Paperback)\nby Alexander Fullerton (Author)
The story of Scapa Flow. Cousins, Geoffrey. \nLondon : F. Muller, 1965
<!--- [[Blueberry 2|StyleSheet]] with ideas shamesslessly taken from (and suggested by) Simon Baird, Clint Checketts and Christine Hodges --->\n\n/*{{{*/\n.headerForeground { display: none;}\n#sidebar {width: 185px; background: #e7ecee;border-left: solid 2px #8895bb;border-top: solid 2px #97a8d2;}\n#sidebarTabs .tabContents {width: 170px; background: #dce1e3;font-weight: bold; color: #333 ;}\n#sidebarOptions input { border: solid 2px #8895bb; }\n#sidebarOptions .sliderPanel { background: #eee;}\n#sidebarOptions a {;border: none;}\n#sidebarOptions .sliderPanel a {border: none;color: #00005a;}\n#displayArea {background: #fff;margin: 1em 15.7em 0em 1em;border-left: solid 2px #8895bb;}\n.viewer {line-height: 1.4em;padding-bottom: 1em;border-bottom:solid 1px #dedede;}\n.viewer th, thead td {background: #00009d;border: 1px solid #666;color: #fff;}\n.title {color: #000}\nh1,h2,h3,h4,h5 {color: #fff;background: #00009d;}\na{ color: #00005a;}\na:hover{ background: #00009d; color: #fff;font-weight: bold;}\n.externalLink { text-decoration: underline; color: #000083;}\nbody { background: #97a8d2;}\n.popup { background: #04b; border: 1px solid #04b;}\n.popup li a:hover {background: #dedede;color: #000083;border: none;}\n.popup li.disabled {color: #000;}\n.button:hover {color: #fff;background: #00009d;\n border: 1px solid #dedede;}\n#topMenu { background: transparent; padding: 6px;margin-left: -5px;border-bottom: solid 3px #00005a}\n#topMenu .button, #topMenu .tiddlyLink, tiddlyLinkExisting, #topMenu .externalLink\n{\n color: #fff;\n text-align: center;\n font-weight: bold;\n font-size: 1.1em;\n text-decoration: none;\n letter-spacing: 1.5px;\n background: transparent;\n border-right: solid 1px #fff;\n padding: 5px 15px 6px 15px;\n}\n#topMenu a:hover {\n color: #fff;\n background: #00009d;\n border: solid 1px #db4;\n}\n#topMenu br {display: none; padding-right: 1em;}\n#topMenu span .tiddlyLinkNonExisting {font-style:normal;}\n\n/*}}}*/
Superior force : the conspiracy behind the escape of Goeben and Breslau. Miller, Geoffrey.\nUniversity of Hull Press, 1996
Stephen Graham Spear. A survey of the naval revolt in Kiel, Germany, 1918\nThesis/dissertation/manuscript Archival Material Archival Material, 1968.
von Mucke H. The 'Ayesha', a Great Adventure: the escape of the landing squad from the Emden. \nLondon: Philip Allan, 1930.\nFrom [[World War I Memories]]
von Niezychowski A. The Cruise of the Kronprinz Wilhelm. \nGarden City NY: Doubleday, Doran, 1929. \nAuthor was a lieutenant on the Kronprinz Wilhelm; ship made 251-day cruise before escaping to NY where ship and crew were interned.\nFrom [[World War I Memories]]
The Cruise of the Raider Wolf. Alexander, R.\n1939.
The Emperor's Coloured Coat\nJohn Biggins\n~McBooks Press 2006
The Entourage of Kaiser Wilhelm II, 1888-1918. Isabel V Hull. Cambridge: Cambridge University Press, 1982.\n\nContains information on the relationship of Krupp and Wilhelm II
The Great War: An Imperial History. John Howard Morrow\nRoutledge (UK), 2005
The Imperial Naval Office and the Problem of Armour Prices in Germany. Weir, Gary E.\nMilitary Affairs 1984;48(2):62-65.
The Imperial War Museum Book of The War at Sea 1914-1918: The fact of battle revealed in the words of the men who fought. Thompson, Julian (ed). Sidgwick and Jackson, 2005. Pan Macmillan Ltd, 2006.
The Kaiser's merchant ships in World War I . William Lowell Putnam.\nJefferson NC; ~McFarland, c2001
The Imperial German Navy and Social Democracy, 1878-1897. Lawrence Sondhaus.\nGerman Studies Review 1995;18(1): 51-64.
The Price of Admiralty: The evolution of naval warfare. John Keegan.\nLondon: Hutchinson, 1988\n
The escape of the ‘Scharnhorst’ and ‘Gneisenau’. Kemp, Peter Kemp.\nLondon : Allan, 1975
The frustrated raider : the story of the German cruiser Cormoran in World War I. Charles Burdick.\nCarbondale: Southern Illinois University Press, c1979
The origins of German seapower : Military-industrial relationships in the development of the high seas fleet, 1897-1912\nWeir, Gary. Ann Arbor, MI : Univ. Microfilms Internat., 1982.
The raider “Wolf”. Hoyt, Edwin Palmer.\nLondon, Barker 1974
Hewison WS. This Great Harbour Scapa Flow. \nThe Orkney Press, Orkney, 1985.
<<tagCloud systemConfig>>
/***\nRequired by Tiddlyspot\n***/\n//{{{\n\nconfig.options.chkHttpReadOnly = false; // make it so you can by default see edit controls via http\n\nif (window.location.protocol != "file:")\n config.options.chkGTDLazyAutoSave = false; // disable autosave in d3\n\nconfig.tiddlyspotSiteId = 'kriegsmarine';\n\n// probably will need to redo this for TW 2.2\nwith (config.shadowTiddlers) {\n SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';\n SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");\n OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");\n DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[Welcome to Tiddlyspot]] ");\n MainMenu = MainMenu.replace(/^/,"[[Welcome to Tiddlyspot]] ");\n}\n\nmerge(config.shadowTiddlers,{\n\n'Welcome to Tiddlyspot':[\n "This document is a ~TiddlyWiki from tiddlyspot.com. A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",\n "",\n "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// @@ Before you can save any changes, you need to enter your password in the form below. Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",\n "<<tiddler TspotControls>>",\n "See also GettingStarted.",\n "",\n "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// @@ You can edit this ~TiddlyWiki right now, and save your changes using the \s"save to web\s" button in the column on the right.",\n "",\n "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// @@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick. You can make changes and save them locally without being connected to the Internet. When you're ready to sync up again, just click \s"upload\s" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",\n "",\n "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// @@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]]. Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help. If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",\n "",\n "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// @@ We hope you like using your tiddlyspot.com site. Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."\n].join("\sn"),\n\n'TspotControls':[\n "| tiddlyspot password:|<<option pasUploadPassword>>|",\n "| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<<br>>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",\n "| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[announcements|http://announce.tiddlyspot.com/]], [[blog|http://tiddlyspot.com/blog/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"\n].join("\sn"),\n\n'TspotSidebar':[\n "<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"\n].join("\sn"),\n\n'TspotOptions':[\n "tiddlyspot password:",\n "<<option pasUploadPassword>>",\n ""\n].join("\sn")\n\n});\n//}}}\n
<<upload http://kriegsmarine.tiddlyspot.com/store.cgi index.html . . kriegsmarine>><html><a href='http://kriegsmarine.tiddlyspot.com/download' class='button'>download</a></html>
Twisting the Dragon's Tail: The Zeebrugg and Ostend Raids of 1918. Karau Mark.\nJournal of Military History 2003; 67:455-82.
Venscholten. World War I U-Boat Losses
U-boats and T-boats, 1914-1918. \nWashington : National Archives and Records Service, U.S. General Services Administration, 1985
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |\n| 9/5/2007 23:5:34 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 9/5/2007 23:6:24 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 9/5/2007 23:11:54 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 9/5/2007 23:14:40 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 9/5/2007 23:29:54 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 9/5/2007 23:57:8 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 9/5/2007 23:57:50 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 10/5/2007 0:5:28 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 11/5/2007 14:21:20 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 14/5/2007 8:15:57 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 14/5/2007 8:18:52 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 14/5/2007 11:4:50 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 14/5/2007 11:27:21 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 14/5/2007 12:13:17 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 14/5/2007 14:3:46 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 14/5/2007 14:18:51 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 14/5/2007 14:26:28 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 14/5/2007 16:44:12 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 14/5/2007 21:21:18 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 14/5/2007 21:39:30 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 14/5/2007 21:47:46 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 14/5/2007 21:52:3 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 14/5/2007 22:32:24 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 15/5/2007 11:50:2 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 17/5/2007 16:1:41 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 17/5/2007 16:5:37 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 17/5/2007 17:30:9 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 29/5/2007 21:32:45 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 2/6/2007 21:32:4 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 2/6/2007 22:5:6 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 2/6/2007 22:8:18 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 5/6/2007 21:34:29 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 6/6/2007 14:32:39 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 6/6/2007 15:38:30 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 6/6/2007 15:42:26 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 9/6/2007 21:49:33 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 14/6/2007 22:22:53 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 23/6/2007 19:26:13 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 23/6/2007 19:53:38 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 3/7/2007 21:26:58 | YourName | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 3/7/2007 21:27:28 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 5/12/2007 20:31:45 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 5/12/2007 20:35:20 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 5/12/2007 20:56:38 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 11/12/2007 16:0:52 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 19/1/2008 19:37:32 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 19/1/2008 19:40:37 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 14/2/2008 10:3:37 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 18/3/2008 17:4:56 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 9/7/2009 18:29:42 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 9/7/2009 18:29:58 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 9/7/2009 18:44:49 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 21/8/2011 12:51:25 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 21/8/2011 12:51:51 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 21/8/2011 20:32:48 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 21/8/2011 20:42:10 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 21/8/2011 21:5:57 | Alison | [[/|http://kriegsmarine.tiddlyspot.com/]] | [[store.cgi|http://kriegsmarine.tiddlyspot.com/store.cgi]] | . | index.html | . |
/***\n|''Name:''|UploadPlugin|\n|''Description:''|Save to web a TiddlyWiki|\n|''Version:''|3.4.5|\n|''Date:''|Oct 15, 2006|\n|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|\n|''Documentation:''|http://tiddlywiki.bidix.info/#UploadDoc|\n|''Author:''|BidiX (BidiX (at) bidix (dot) info)|\n|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|\n|''~CoreVersion:''|2.0.0|\n|''Browser:''|Firefox 1.5; InternetExplorer 6.0; Safari|\n|''Include:''|config.lib.file; config.lib.log; config.lib.options; PasswordTweak|\n|''Require:''|[[UploadService|http://tiddlywiki.bidix.info/#UploadService]]|\n***/\n//{{{\nversion.extensions.UploadPlugin = {\n major: 3, minor: 4, revision: 5, \n date: new Date(2006,9,15),\n source: 'http://tiddlywiki.bidix.info/#UploadPlugin',\n documentation: 'http://tiddlywiki.bidix.info/#UploadDoc',\n author: 'BidiX (BidiX (at) bidix (dot) info',\n license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',\n coreVersion: '2.0.0',\n browser: 'Firefox 1.5; InternetExplorer 6.0; Safari'\n};\n//}}}\n\n////+++!![config.lib.file]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.file) config.lib.file= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\nconfig.lib.file.dirname = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(0, lastpos);\n } else {\n return filePath.substring(0, filePath.lastIndexOf("\s\s"));\n }\n};\nconfig.lib.file.basename = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("#")) != -1) \n filePath = filePath.substring(0, lastpos);\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(lastpos + 1);\n } else\n return filePath.substring(filePath.lastIndexOf("\s\s")+1);\n};\nwindow.basename = function() {return "@@deprecated@@";};\n//}}}\n////===\n\n////+++!![config.lib.log]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.log) config.lib.log= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 1}, \n date: new Date(2006,8,19)\n};\nconfig.lib.Log = function(tiddlerTitle, logHeader) {\n if (version.major < 2)\n this.tiddler = store.tiddlers[tiddlerTitle];\n else\n this.tiddler = store.getTiddler(tiddlerTitle);\n if (!this.tiddler) {\n this.tiddler = new Tiddler();\n this.tiddler.title = tiddlerTitle;\n this.tiddler.text = "| !date | !user | !location |" + logHeader;\n this.tiddler.created = new Date();\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[tiddlerTitle] = this.tiddler;\n else\n store.addTiddler(this.tiddler);\n }\n return this;\n};\n\nconfig.lib.Log.prototype.newLine = function (line) {\n var now = new Date();\n var newText = "| ";\n newText += now.getDate()+"/"+(now.getMonth()+1)+"/"+now.getFullYear() + " ";\n newText += now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+" | ";\n newText += config.options.txtUserName + " | ";\n var location = document.location.toString();\n var filename = config.lib.file.basename(location);\n if (!filename) filename = '/';\n newText += "[["+filename+"|"+location + "]] |";\n this.tiddler.text = this.tiddler.text + "\sn" + newText;\n this.addToLine(line);\n};\n\nconfig.lib.Log.prototype.addToLine = function (text) {\n this.tiddler.text = this.tiddler.text + text;\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[this.tiddler.tittle] = this.tiddler;\n else {\n store.addTiddler(this.tiddler);\n story.refreshTiddler(this.tiddler.title);\n store.notify(this.tiddler.title, true);\n }\n if (version.major < 2)\n store.notifyAll(); \n};\n//}}}\n////===\n\n////+++!![config.lib.options]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.options) config.lib.options = {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\n\nconfig.lib.options.init = function (name, defaultValue) {\n if (!config.options[name]) {\n config.options[name] = defaultValue;\n saveOptionCookie(name);\n }\n};\n//}}}\n////===\n\n////+++!![PasswordTweak]\n\n//{{{\nversion.extensions.PasswordTweak = {\n major: 1, minor: 0, revision: 3, date: new Date(2006,8,30),\n type: 'tweak',\n source: 'http://tiddlywiki.bidix.info/#PasswordTweak'\n};\n//}}}\n/***\n!!config.macros.option\n***/\n//{{{\nconfig.macros.option.passwordCheckboxLabel = "Save this password on this computer";\nconfig.macros.option.passwordType = "password"; // password | text\n\nconfig.macros.option.onChangeOption = function(e)\n{\n var opt = this.getAttribute("option");\n var elementType,valueField;\n if(opt) {\n switch(opt.substr(0,3)) {\n case "txt":\n elementType = "input";\n valueField = "value";\n break;\n case "pas":\n elementType = "input";\n valueField = "value";\n break;\n case "chk":\n elementType = "input";\n valueField = "checked";\n break;\n }\n config.options[opt] = this[valueField];\n saveOptionCookie(opt);\n var nodes = document.getElementsByTagName(elementType);\n for(var t=0; t<nodes.length; t++) \n {\n var optNode = nodes[t].getAttribute("option");\n if (opt == optNode) \n nodes[t][valueField] = this[valueField];\n }\n }\n return(true);\n};\n\nconfig.macros.option.handler = function(place,macroName,params)\n{\n var opt = params[0];\n if(config.options[opt] === undefined) {\n return;}\n var c;\n switch(opt.substr(0,3)) {\n case "txt":\n c = document.createElement("input");\n c.onkeyup = this.onChangeOption;\n c.setAttribute ("option",opt);\n c.className = "txtOptionInput "+opt;\n place.appendChild(c);\n c.value = config.options[opt];\n break;\n case "pas":\n // input password\n c = document.createElement ("input");\n c.setAttribute("type",config.macros.option.passwordType);\n c.onkeyup = this.onChangeOption;\n c.setAttribute("option",opt);\n c.className = "pasOptionInput "+opt;\n place.appendChild(c);\n c.value = config.options[opt];\n // checkbox link with this password "save this password on this computer"\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option","chk"+opt);\n c.className = "chkOptionInput "+opt;\n place.appendChild(c);\n c.checked = config.options["chk"+opt];\n // text savePasswordCheckboxLabel\n place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));\n break;\n case "chk":\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option",opt);\n c.className = "chkOptionInput "+opt;\n place.appendChild(c);\n c.checked = config.options[opt];\n break;\n }\n};\n//}}}\n/***\n!! Option cookie stuff\n***/\n//{{{\nwindow.loadOptionsCookie_orig_PasswordTweak = window.loadOptionsCookie;\nwindow.loadOptionsCookie = function()\n{\n var cookies = document.cookie.split(";");\n for(var c=0; c<cookies.length; c++) {\n var p = cookies[c].indexOf("=");\n if(p != -1) {\n var name = cookies[c].substr(0,p).trim();\n var value = cookies[c].substr(p+1).trim();\n switch(name.substr(0,3)) {\n case "txt":\n config.options[name] = unescape(value);\n break;\n case "pas":\n config.options[name] = unescape(value);\n break;\n case "chk":\n config.options[name] = value == "true";\n break;\n }\n }\n }\n};\n\nwindow.saveOptionCookie_orig_PasswordTweak = window.saveOptionCookie;\nwindow.saveOptionCookie = function(name)\n{\n var c = name + "=";\n switch(name.substr(0,3)) {\n case "txt":\n c += escape(config.options[name].toString());\n break;\n case "chk":\n c += config.options[name] ? "true" : "false";\n // is there an option link with this chk ?\n if (config.options[name.substr(3)]) {\n saveOptionCookie(name.substr(3));\n }\n break;\n case "pas":\n if (config.options["chk"+name]) {\n c += escape(config.options[name].toString());\n } else {\n c += "";\n }\n break;\n }\n c += "; expires=Fri, 1 Jan 2038 12:00:00 UTC; path=/";\n document.cookie = c;\n};\n//}}}\n/***\n!! Initializations\n***/\n//{{{\n// define config.options.pasPassword\nif (!config.options.pasPassword) {\n config.options.pasPassword = 'defaultPassword';\n window.saveOptionCookie('pasPassword');\n}\n// since loadCookies is first called befor password definition\n// we need to reload cookies\nwindow.loadOptionsCookie();\n//}}}\n////===\n\n////+++!![config.macros.upload]\n\n//{{{\nconfig.macros.upload = {\n accessKey: "U",\n formName: "UploadPlugin",\n contentType: "text/html;charset=UTF-8",\n defaultStoreScript: "store.php"\n};\n\n// only this two configs need to be translated\nconfig.macros.upload.messages = {\n aboutToUpload: "About to upload TiddlyWiki to %0",\n backupFileStored: "Previous file backuped in %0",\n crossDomain: "Certainly a cross-domain isue: access to an other site isn't allowed",\n errorDownloading: "Error downloading",\n errorUploadingContent: "Error uploading content",\n fileLocked: "Files is locked: You are not allowed to Upload",\n fileNotFound: "file to upload not found",\n fileNotUploaded: "File %0 NOT uploaded",\n mainFileUploaded: "Main TiddlyWiki file uploaded to %0",\n passwordEmpty: "Unable to upload, your password is empty",\n urlParamMissing: "url param missing",\n rssFileNotUploaded: "RssFile %0 NOT uploaded",\n rssFileUploaded: "Rss File uploaded to %0"\n};\n\nconfig.macros.upload.label = {\n promptOption: "Save and Upload this TiddlyWiki with UploadOptions",\n promptParamMacro: "Save and Upload this TiddlyWiki in %0",\n saveLabel: "save to web", \n saveToDisk: "save to disk",\n uploadLabel: "upload" \n};\n\nconfig.macros.upload.handler = function(place,macroName,params){\n // parameters initialization\n var storeUrl = params[0];\n var toFilename = params[1];\n var backupDir = params[2];\n var uploadDir = params[3];\n var username = params[4];\n var password; // for security reason no password as macro parameter\n var label;\n if (document.location.toString().substr(0,4) == "http")\n label = this.label.saveLabel;\n else\n label = this.label.uploadLabel;\n var prompt;\n if (storeUrl) {\n prompt = this.label.promptParamMacro.toString().format([this.toDirUrl(storeUrl, uploadDir, username)]);\n }\n else {\n prompt = this.label.promptOption;\n }\n createTiddlyButton(place, label, prompt, \n function () {\n config.macros.upload.upload(storeUrl, toFilename, uploadDir, backupDir, username, password); \n return false;}, \n null, null, this.accessKey);\n};\nconfig.macros.upload.UploadLog = function() {\n return new config.lib.Log('UploadLog', " !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |" );\n};\nconfig.macros.upload.UploadLog.prototype = config.lib.Log.prototype;\nconfig.macros.upload.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir, backupDir) {\n var line = " [[" + config.lib.file.basename(storeUrl) + "|" + storeUrl + "]] | ";\n line += uploadDir + " | " + toFilename + " | " + backupDir + " |";\n this.newLine(line);\n};\nconfig.macros.upload.UploadLog.prototype.endUpload = function() {\n this.addToLine(" Ok |");\n};\nconfig.macros.upload.basename = config.lib.file.basename;\nconfig.macros.upload.dirname = config.lib.file.dirname;\nconfig.macros.upload.toRootUrl = function (storeUrl, username)\n{\n return root = (this.dirname(storeUrl)?this.dirname(storeUrl):this.dirname(document.location.toString()));\n}\nconfig.macros.upload.toDirUrl = function (storeUrl, uploadDir, username)\n{\n var root = this.toRootUrl(storeUrl, username);\n if (uploadDir && uploadDir != '.')\n root = root + '/' + uploadDir;\n return root;\n}\nconfig.macros.upload.toFileUrl = function (storeUrl, toFilename, uploadDir, username)\n{\n return this.toDirUrl(storeUrl, uploadDir, username) + '/' + toFilename;\n}\nconfig.macros.upload.upload = function(storeUrl, toFilename, uploadDir, backupDir, username, password)\n{\n // parameters initialization\n storeUrl = (storeUrl ? storeUrl : config.options.txtUploadStoreUrl);\n toFilename = (toFilename ? toFilename : config.options.txtUploadFilename);\n backupDir = (backupDir ? backupDir : config.options.txtUploadBackupDir);\n uploadDir = (uploadDir ? uploadDir : config.options.txtUploadDir);\n username = (username ? username : config.options.txtUploadUserName);\n password = config.options.pasUploadPassword; // for security reason no password as macro parameter\n if (!password || password === '') {\n alert(config.macros.upload.messages.passwordEmpty);\n return;\n }\n if (storeUrl === '') {\n storeUrl = config.macros.upload.defaultStoreScript;\n }\n if (config.lib.file.dirname(storeUrl) === '') {\n storeUrl = config.lib.file.dirname(document.location.toString())+'/'+storeUrl;\n }\n if (toFilename === '') {\n toFilename = config.lib.file.basename(document.location.toString());\n }\n\n clearMessage();\n // only for forcing the message to display\n if (version.major < 2)\n store.notifyAll();\n if (!storeUrl) {\n alert(config.macros.upload.messages.urlParamMissing);\n return;\n }\n // Check that file is not locked\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n if (BidiX.GroupAuthoring.lock.isLocked() && !BidiX.GroupAuthoring.lock.isMyLock()) {\n alert(config.macros.upload.messages.fileLocked);\n return;\n }\n }\n \n var log = new this.UploadLog();\n log.startUpload(storeUrl, toFilename, uploadDir, backupDir);\n if (document.location.toString().substr(0,5) == "file:") {\n saveChanges();\n }\n var toDir = config.macros.upload.toDirUrl(storeUrl, toFilename, uploadDir, username);\n displayMessage(config.macros.upload.messages.aboutToUpload.format([toDir]), toDir);\n this.uploadChanges(storeUrl, toFilename, uploadDir, backupDir, username, password);\n if(config.options.chkGenerateAnRssFeed) {\n //var rssContent = convertUnicodeToUTF8(generateRss());\n var rssContent = generateRss();\n var rssPath = toFilename.substr(0,toFilename.lastIndexOf(".")) + ".xml";\n this.uploadContent(rssContent, storeUrl, rssPath, uploadDir, '', username, password, \n function (responseText) {\n if (responseText.substring(0,1) != '0') {\n displayMessage(config.macros.upload.messages.rssFileNotUploaded.format([rssPath]));\n }\n else {\n var toFileUrl = config.macros.upload.toFileUrl(storeUrl, rssPath, uploadDir, username);\n displayMessage(config.macros.upload.messages.rssFileUploaded.format(\n [toFileUrl]), toFileUrl);\n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n });\n }\n return;\n};\n\nconfig.macros.upload.uploadChanges = function(storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var original;\n if (document.location.toString().substr(0,4) == "http") {\n original = this.download(storeUrl, toFilename, uploadDir, backupDir, username, password);\n return;\n }\n else {\n // standard way : Local file\n \n original = loadFile(getLocalPath(document.location.toString()));\n if(window.Components) {\n // it's a mozilla browser\n try {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]\n .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);\n converter.charset = "UTF-8";\n original = converter.ConvertToUnicode(original);\n }\n catch(e) {\n }\n }\n }\n //DEBUG alert(original);\n this.uploadChangesFrom(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password);\n};\n\nconfig.macros.upload.uploadChangesFrom = function(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var startSaveArea = '<div id="' + 'storeArea">'; // Split up into two so that indexOf() of this source doesn't find it\n var endSaveArea = '</d' + 'iv>';\n // Locate the storeArea div's\n var posOpeningDiv = original.indexOf(startSaveArea);\n var posClosingDiv = original.lastIndexOf(endSaveArea);\n if((posOpeningDiv == -1) || (posClosingDiv == -1))\n {\n alert(config.messages.invalidFileError.format([document.location.toString()]));\n return;\n }\n var revised = original.substr(0,posOpeningDiv + startSaveArea.length) + \n allTiddlersAsHtml() + "\sn\st\st" +\n original.substr(posClosingDiv);\n var newSiteTitle;\n if(version.major < 2){\n newSiteTitle = (getElementText("siteTitle") + " - " + getElementText("siteSubtitle")).htmlEncode();\n } else {\n newSiteTitle = (wikifyPlain ("SiteTitle") + " - " + wikifyPlain ("SiteSubtitle")).htmlEncode();\n }\n\n revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");\n revised = revised.replaceChunk("<!--PRE-HEAD-START--"+">","<!--PRE-HEAD-END--"+">","\sn" + store.getTiddlerText("MarkupPreHead","") + "\sn");\n revised = revised.replaceChunk("<!--POST-HEAD-START--"+">","<!--POST-HEAD-END--"+">","\sn" + store.getTiddlerText("MarkupPostHead","") + "\sn");\n revised = revised.replaceChunk("<!--PRE-BODY-START--"+">","<!--PRE-BODY-END--"+">","\sn" + store.getTiddlerText("MarkupPreBody","") + "\sn");\n revised = revised.replaceChunk("<!--POST-BODY-START--"+">","<!--POST-BODY-END--"+">","\sn" + store.getTiddlerText("MarkupPostBody","") + "\sn");\n\n var response = this.uploadContent(revised, storeUrl, toFilename, uploadDir, backupDir, \n username, password, function (responseText) {\n if (responseText.substring(0,1) != '0') {\n alert(responseText);\n displayMessage(config.macros.upload.messages.fileNotUploaded.format([getLocalPath(document.location.toString())]));\n }\n else {\n if (uploadDir !== '') {\n toFilename = uploadDir + "/" + config.macros.upload.basename(toFilename);\n } else {\n toFilename = config.macros.upload.basename(toFilename);\n }\n var toFileUrl = config.macros.upload.toFileUrl(storeUrl, toFilename, uploadDir, username);\n if (responseText.indexOf("destfile:") > 0) {\n var destfile = responseText.substring(responseText.indexOf("destfile:")+9, \n responseText.indexOf("\sn", responseText.indexOf("destfile:")));\n toFileUrl = config.macros.upload.toRootUrl(storeUrl, username) + '/' + destfile;\n }\n else {\n toFileUrl = config.macros.upload.toFileUrl(storeUrl, toFilename, uploadDir, username);\n }\n displayMessage(config.macros.upload.messages.mainFileUploaded.format(\n [toFileUrl]), toFileUrl);\n if (backupDir && responseText.indexOf("backupfile:") > 0) {\n var backupFile = responseText.substring(responseText.indexOf("backupfile:")+11, \n responseText.indexOf("\sn", responseText.indexOf("backupfile:")));\n toBackupUrl = config.macros.upload.toRootUrl(storeUrl, username) + '/' + backupFile;\n displayMessage(config.macros.upload.messages.backupFileStored.format(\n [toBackupUrl]), toBackupUrl);\n }\n var log = new config.macros.upload.UploadLog();\n log.endUpload();\n store.setDirty(false);\n // erase local lock\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n BidiX.GroupAuthoring.lock.eraseLock();\n // change mtime with new mtime after upload\n var mtime = responseText.substr(responseText.indexOf("mtime:")+6);\n BidiX.GroupAuthoring.lock.mtime = mtime;\n }\n \n \n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n }\n );\n};\n\nconfig.macros.upload.uploadContent = function(content, storeUrl, toFilename, uploadDir, backupDir, \n username, password, callbackFn) {\n var boundary = "---------------------------"+"AaB03x"; \n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n if (window.netscape){\n try {\n if (document.location.toString().substr(0,4) != "http") {\n netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');}\n }\n catch (e) {}\n } \n //DEBUG alert("user["+config.options.txtUploadUserName+"] password[" + config.options.pasUploadPassword + "]");\n // compose headers data\n var sheader = "";\n sheader += "--" + boundary + "\sr\snContent-disposition: form-data; name=\s"";\n sheader += config.macros.upload.formName +"\s"\sr\sn\sr\sn";\n sheader += "backupDir="+backupDir\n +";user=" + username \n +";password=" + password\n +";uploaddir=" + uploadDir;\n // add lock attributes to sheader\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n var l = BidiX.GroupAuthoring.lock.myLock;\n sheader += ";lockuser=" + l.user\n + ";mtime=" + l.mtime\n + ";locktime=" + l.locktime;\n }\n sheader += ";;\sr\sn"; \n sheader += "\sr\sn" + "--" + boundary + "\sr\sn";\n sheader += "Content-disposition: form-data; name=\s"userfile\s"; filename=\s""+toFilename+"\s"\sr\sn";\n sheader += "Content-Type: " + config.macros.upload.contentType + "\sr\sn";\n sheader += "Content-Length: " + content.length + "\sr\sn\sr\sn";\n // compose trailer data\n var strailer = new String();\n strailer = "\sr\sn--" + boundary + "--\sr\sn";\n //strailer = "--" + boundary + "--\sr\sn";\n var data;\n data = sheader + content + strailer;\n //request.open("POST", storeUrl, true, username, password);\n try {\n request.open("POST", storeUrl, true); \n }\n catch(e) {\n alert(config.macros.upload.messages.crossDomain + "\snError:" +e);\n exit;\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if (request.status == 200)\n callbackFn(request.responseText);\n else\n alert(config.macros.upload.messages.errorUploadingContent + "\snStatus: "+request.status.statusText);\n }\n };\n request.setRequestHeader("Content-Length",data.length);\n request.setRequestHeader("Content-Type","multipart/form-data; boundary="+boundary);\n request.send(data); \n};\n\n\nconfig.macros.upload.download = function(uploadUrl, uploadToFilename, uploadDir, uploadBackupDir, \n username, password) {\n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n try {\n if (uploadUrl.substr(0,4) == "http") {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");\n }\n else {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n }\n } catch (e) { }\n //request.open("GET", document.location.toString(), true, username, password);\n try {\n request.open("GET", document.location.toString(), true);\n }\n catch(e) {\n alert(config.macros.upload.messages.crossDomain + "\snError:" +e);\n exit;\n }\n \n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if(request.status == 200) {\n config.macros.upload.uploadChangesFrom(request.responseText, uploadUrl, \n uploadToFilename, uploadDir, uploadBackupDir, username, password);\n }\n else\n alert(config.macros.upload.messages.errorDownloading.format(\n [document.location.toString()]) + "\snStatus: "+request.status.statusText);\n }\n };\n request.send(null);\n};\n\n//}}}\n////===\n\n////+++!![Initializations]\n\n//{{{\nconfig.lib.options.init('txtUploadStoreUrl','store.php');\nconfig.lib.options.init('txtUploadFilename','');\nconfig.lib.options.init('txtUploadDir','');\nconfig.lib.options.init('txtUploadBackupDir','');\nconfig.lib.options.init('txtUploadUserName',config.options.txtUserName);\nconfig.lib.options.init('pasUploadPassword','');\nsetStylesheet(\n ".pasOptionInput {width: 11em;}\sn"+\n ".txtOptionInput.txtUploadStoreUrl {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadFilename {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadDir {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadBackupDir {width: 25em;}\sn"+\n "",\n "UploadOptionsStyles");\nif (document.location.toString().substr(0,4) == "http") {\n config.options.chkAutoSave = false; \n saveOptionCookie('chkAutoSave');\n}\nconfig.shadowTiddlers.UploadDoc = "[[Full Documentation|http://tiddlywiki.bidix.info/l#UploadDoc ]]\sn"; \n\n//}}}\n////===\n\n////+++!![Core Hijacking]\n\n//{{{\nconfig.macros.saveChanges.label_orig_UploadPlugin = config.macros.saveChanges.label;\nconfig.macros.saveChanges.label = config.macros.upload.label.saveToDisk;\n\nconfig.macros.saveChanges.handler_orig_UploadPlugin = config.macros.saveChanges.handler;\n\nconfig.macros.saveChanges.handler = function(place)\n{\n if ((!readOnly) && (document.location.toString().substr(0,4) != "http"))\n createTiddlyButton(place,this.label,this.prompt,this.onClick,null,null,this.accessKey);\n};\n\n//}}}\n////===\n\n
War, mutiny, and revolution in the German Navy; the World War I diary of seaman Richard Stumpf. Stumpf, Richard.; Horn, Daniel\nNew Brunswick, N.J., Rutgers University Press 1967
Weimar, the German naval officer corps and the rise of national socialism. Bird, Keith W.\nAmsterdam: Grüner, 1977.
Wielding the dagger : the ~MarineKorps Flandern and the German war effort, 1914-1918. Karau, Mark D.\nWestport, Conn. : Praeger, 2003
Molly Busenbark. The Wilhelmshaven mutinies and the USPD, 1917-1919\nDissertation: Thesis (M.A.) University of Indianapolis, [2006]
The Wilhelmshaven revolt : a chapter of the revolutionary movement in the German Navy, 1918-1919. Icarus, pseud.\nLondon : Freedom Press, 1944
Lengel, Edward G. World War One memories: an annotated bibliography of personal accounts published in English since 1919.\nLanham, MD: Scarecrow Press, 2004.
Yesterday’s deterrent; Tirpitz and the birth of the German battle fleet. Steinberg, Jonathan.\nLondon, Macdonald 1965
The Zeppelin in combat : a history of the German Naval Airship Division, 1912-1918. Robinson, Douglas Hill\nSeattle : University of Washington Press, 1980
version.extensions.tagCloud = {major: 1, minor: 0 , revision: 1, date: new Date(2005,8,16)};\n//Created by Clint Checketts, contributions by Jonny Leroy and Eric Shulman\n\nconfig.macros.tagCloud = {\n noTags: "No tag cloud created because there are no tags.",\n tooltip: "%1 tiddlers tagged with '%0'"\n};\n\nconfig.macros.tagCloud.handler = function(place,macroName,params) {\n \nvar tagCloudWrapper = createTiddlyElement(place,"div",null,"tagCloud",null);\n\nvar tags = store.getTags();\nfor (t=0; t<tags.length; t++) {\n for (p=0;p<params.length; p++) if (tags[t][0] == params[p]) tags[t][0] = "";\n}\n\n if(tags.length == 0) \n createTiddlyElement(tagCloudWrapper,"span",null,null,this.noTags);\n //Findout the maximum number of tags\n var mostTags = 0;\n for (t=0; t<tags.length; t++) if (tags[t][0].length > 0){\n if (tags[t][1] > mostTags) mostTags = tags[t][1];\n }\n //divide the mostTags into 4 segments for the 4 different tagCloud sizes\n var tagSegment = mostTags / 4;\n\n for (t=0; t<tags.length; t++) if (tags[t][0].length > 0){\n var tagCloudElement = createTiddlyElement(tagCloudWrapper,"span",null,null,null);\n tagCloudWrapper.appendChild(document.createTextNode(" "));\n var theTag = createTiddlyButton(tagCloudElement,tags[t][0],this.tooltip.format(tags[t]),onClickTag,"tagCloudtag tagCloud" + (Math.round(tags[t][1]/tagSegment)+1));\n theTag.setAttribute("tag",tags[t][0]);\n }\n\n};\n\nsetStylesheet(".tagCloud span{height: 1.8em;margin: 3px;}.tagCloud1{font-size: 1.2em;}.tagCloud2{font-size: 1.4em;}.tagCloud3{font-size: 1.6em;}.tagCloud4{font-size: 1.8em;}.tagCloud5{font-size: 1.8em;font-weight: bold;}","tagCloudsStyles");